diff --git a/.gitignore b/.gitignore index afd6ca4a..df24fa86 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,9 @@ # Dependencies /node_modules -.next - -# Production -/build - -# Generated files -.docusaurus -.cache-loader +# VitePress +docs/.vitepress/cache +docs/.vitepress/dist # Misc .DS_Store diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..efaab9f8 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules +docs/.vitepress/cache +docs/.vitepress/dist +pnpm-lock.yaml diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts new file mode 100644 index 00000000..154e0e4f --- /dev/null +++ b/docs/.vitepress/config.mts @@ -0,0 +1,393 @@ +import { defineConfig } from "vitepress"; +import { tabsMarkdownPlugin } from "vitepress-plugin-tabs"; + +export default defineConfig({ + title: "Plane", + description: "Modern project management software", + sitemap: { hostname: "https://docs.plane.so" }, + cleanUrls: true, + appearance: "dark", + + markdown: { + config(md) { + md.use(tabsMarkdownPlugin); + }, + }, + + head: [ + ["link", { rel: "icon", href: "https://media.docs.plane.so/logo/favicon-32x32.png" }], + + // GA4 + ["script", { async: "", src: "https://www.googletagmanager.com/gtag/js?id=G-G578SD4VZD" }], + [ + "script", + {}, + `window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('js',new Date());gtag('config','G-G578SD4VZD',{anonymize_ip:true});`, + ], + + // Plausible + ["script", { defer: "", "data-domain": "docs.plane.so", src: "https://plausible.io/js/script.js" }], + + // CR-relay + ["script", { async: "", src: "https://cdn.cr-relay.com/v1/site/b1fcbcbd-67f6-4736-940f-033731801664/signals.js" }], + + // PostHog + [ + "script", + {}, + `!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n +import { useData } from "vitepress"; +import DefaultTheme from "vitepress/theme"; +import HomeLanding from "./components/HomeLanding.vue"; + +const { Layout } = DefaultTheme; +const { frontmatter } = useData(); + + + diff --git a/docs/.vitepress/theme/components/Card.vue b/docs/.vitepress/theme/components/Card.vue new file mode 100644 index 00000000..12074051 --- /dev/null +++ b/docs/.vitepress/theme/components/Card.vue @@ -0,0 +1,95 @@ + + + diff --git a/docs/.vitepress/theme/components/CardGroup.vue b/docs/.vitepress/theme/components/CardGroup.vue new file mode 100644 index 00000000..81ab0544 --- /dev/null +++ b/docs/.vitepress/theme/components/CardGroup.vue @@ -0,0 +1,9 @@ + + + diff --git a/docs/.vitepress/theme/components/HomeLanding.vue b/docs/.vitepress/theme/components/HomeLanding.vue new file mode 100644 index 00000000..f72c9eb8 --- /dev/null +++ b/docs/.vitepress/theme/components/HomeLanding.vue @@ -0,0 +1,200 @@ + + + diff --git a/docs/.vitepress/theme/components/Tags.vue b/docs/.vitepress/theme/components/Tags.vue new file mode 100644 index 00000000..713487af --- /dev/null +++ b/docs/.vitepress/theme/components/Tags.vue @@ -0,0 +1,28 @@ + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 00000000..56909323 --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,21 @@ +import DefaultTheme from "vitepress/theme"; +import type { Theme } from "vitepress"; +import { enhanceAppWithTabs } from "vitepress-plugin-tabs/client"; + +import Layout from "./Layout.vue"; +import Card from "./components/Card.vue"; +import CardGroup from "./components/CardGroup.vue"; +import Tags from "./components/Tags.vue"; + +import "./style.css"; + +export default { + extends: DefaultTheme, + Layout, + enhanceApp({ app }) { + enhanceAppWithTabs(app); + app.component("Card", Card); + app.component("CardGroup", CardGroup); + app.component("Tags", Tags); + }, +} satisfies Theme; diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css new file mode 100644 index 00000000..486f8eb5 --- /dev/null +++ b/docs/.vitepress/theme/style.css @@ -0,0 +1,452 @@ +@import "tailwindcss"; +@source "../../**/*.md"; +@source "../theme/**/*.vue"; + +/* ─── Fonts ─── */ +@font-face { + font-family: "Satoshi"; + src: url("/fonts/Satoshi/Satoshi-Variable.ttf") format("truetype"); + font-weight: 400 680; + font-style: normal italic; + font-display: swap; +} + +@font-face { + font-family: "IBM Mono"; + src: url("/fonts/IBM/IBMPlexMono-Light.ttf") format("truetype"); + font-weight: 300; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "IBM Mono"; + src: url("/fonts/IBM/IBMPlexMono-Regular.ttf") format("truetype"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "IBM Mono"; + src: url("/fonts/IBM/IBMPlexMono-SemiBold.ttf") format("truetype"); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "IBM Mono"; + src: url("/fonts/IBM/IBMPlexMono-Bold.ttf") format("truetype"); + font-weight: 600; + font-style: normal; + font-display: swap; +} + +/* ─── VitePress CSS Variables ─── */ +:root { + --vp-c-brand-1: #006399; + --vp-c-brand-2: #1b47c2; + --vp-c-brand-3: #2257ed; + + --vp-button-brand-border: #006399; + --vp-button-brand-bg: #006399; + --vp-button-brand-text: #fff; + --vp-button-brand-hover-border: #005580; + --vp-button-brand-hover-bg: #005580; + --vp-button-brand-hover-text: #fff; + + --vp-font-family-base: "Satoshi", sans-serif; + --vp-font-family-mono: "IBM Mono", monospace; + + --font-weight-light: 400; + --font-weight-regular: 480; + --font-weight-medium: 560; + --font-weight-semibold: 640; + --font-weight-bold: 680; +} + +.dark { + --vp-c-brand-1: #2690c9; + --vp-c-brand-2: #2257ed; + --vp-c-brand-3: #3e6ef0; + + --vp-button-brand-border: #2690c9; + --vp-button-brand-bg: #2690c9; + --vp-button-brand-text: #fff; + --vp-button-brand-hover-border: #1f80b5; + --vp-button-brand-hover-bg: #1f80b5; + --vp-button-brand-hover-text: #fff; +} + +/* ─── Body text weight ─── */ +body { + font-weight: 480; +} + +/* ─── Images ─── */ +.vp-doc img { + width: 100%; + height: auto; + border-radius: 8px; +} + +/* ─── Headings (scoped to doc content) ─── */ +.vp-doc h1 { + font-size: 2rem; + line-height: 120%; +} +.vp-doc h2 { + font-size: 1.5rem; + line-height: 140%; +} +.vp-doc h3 { + font-size: 1.25rem; + line-height: 140%; +} +.vp-doc h4, +.vp-doc h5, +.vp-doc h6 { + line-height: 140%; +} + +/* ─── Tags / Badges ─── */ +.tag-wrapper { + display: flex; + align-items: center; + gap: 8px; +} + +.tags { + display: flex; + flex-wrap: nowrap; + gap: 8px; + align-items: center; + position: relative; + top: -10px !important; +} + +@media (max-width: 768px) { + .tags { + flex-direction: row; + align-items: flex-start; + white-space: nowrap; + } +} + +.pro { + color: #1a1a1a; + border-radius: 4px; + border: 1px solid #ea992466; + background: linear-gradient(167.44deg, #fdc742 0%, #fed464 67.25%, #fcfcfc 98.9%); + padding: 0 15px; +} + +.dark .pro { + color: #fff; + border-radius: 4px; + border: 1px solid #ea992466; + background: linear-gradient( + 167.44deg, + rgba(234, 153, 36, 0.7) 0%, + rgba(33, 33, 33, 0.4) 49.45%, + rgba(255, 224, 133, 0.32) 98.9% + ); + padding: 0 15px; +} + +.enterprise { + color: #1a1a1a; + border-radius: 4px; + border: 1px solid #7c3aed66; + background: linear-gradient(167.44deg, #a78bfa 0%, #c4b5fd 67.25%, #fcfcfc 98.9%); + padding: 0 15px; +} + +.dark .enterprise { + color: #fff; + border-radius: 4px; + border: 1px solid #7c3aed66; + background: linear-gradient( + 167.44deg, + rgba(124, 58, 237, 0.7) 0%, + rgba(33, 33, 33, 0.4) 49.45%, + rgba(196, 181, 253, 0.32) 98.9% + ); + padding: 0 15px; +} + +.business { + color: #111111; + border-radius: 4px; + border: 1px solid #d6d7d9; + background: linear-gradient(167.44deg, #c2c8e4 0%, #bfc4df 67.25%, #fcfcfc 98.9%); + padding: 0 15px; +} + +.dark .business { + color: #f5f5f5; + border-radius: 4px; + border: 1px solid #646c90; + background: linear-gradient(164.95deg, #414669 0%, rgba(56, 60, 78, 0.12) 53.4%, rgba(172, 211, 255, 0.16) 100%); + padding: 0 15px; +} + +/* ─── Card / CardGroup ─── */ +.card-group { + display: grid; + gap: 16px; + grid-template-columns: repeat(var(--cols), 1fr); +} + +@media (max-width: 640px) { + .card-group { + grid-template-columns: 1fr; + } +} + +.card { + border-radius: 8px; + padding: 15px; + display: flex; + flex-direction: column; + align-items: flex-start; + border: 1px solid #9b9b9b; +} + +.card:hover { + border: 1px solid #006399; +} + +.card-icon { + border-radius: 8px; + display: inline-flex; + justify-content: center; + align-items: center; + margin-bottom: 15px; + color: #006399; +} + +.dark .card-icon { + color: #2690c9; +} + +.card-title { + color: var(--vp-c-text-1) !important; + font-size: 18px; + font-weight: 600; + margin-bottom: 10px; +} + +.card-description { + font-size: 14px; + color: #213547 !important; +} + +.card-link { + text-decoration: none; + color: inherit; + display: block; + width: 100%; + height: 100%; +} + +.card-link:hover { + text-decoration: none; + color: inherit; +} + +.dark .card-title, +.dark .card-description { + color: #fff !important; +} + +/* ─── Tables ─── */ +.vp-doc table tr:nth-child(2n) { + background-color: rgb(250 250 250); +} + +.dark .vp-doc table tr:nth-child(2n) { + background-color: rgb(27 27 29); +} + +.vp-doc table thead tr { + border-bottom: none; +} + +/* ─── Mobile image layout ─── */ +.mobile-img-container { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; +} + +.mobile-img-box { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 25rem; + min-width: 15rem; + text-align: center; + margin: 10px; +} + +/* ─── Hero images ─── */ +.vp-doc p:has(> img[src$="#hero"]), +article p:has(> img[src$="#hero"]) { + max-width: 841px; + background: #f1f3f3; + border-radius: 12px; + box-sizing: border-box; + overflow: hidden; +} + +.vp-doc img[src$="#hero"], +article img[src$="#hero"] { + width: 100%; + height: auto; + display: block; + margin: 0; + border-radius: 8px 8px 0px 0px; + border-width: 1px 1px 0px 1px; + border-style: solid; + border-color: #eaebeb; + object-fit: cover; + box-shadow: + 0px 2px 4px -1px rgba(41, 47, 61, 0.04), + 0px 4px 6px -1px rgba(41, 47, 61, 0.05); +} + +.vp-doc p:has(> img[src$="#hero-tl"]), +article p:has(> img[src$="#hero-tl"]) { + max-width: 841px; + background: #f1f3f3; + border-radius: 12px; + box-sizing: border-box; + overflow: hidden; +} + +.vp-doc img[src$="#hero-tl"], +article img[src$="#hero-tl"] { + width: 100%; + height: auto; + display: block; + margin: 0; + border-radius: 8px 0px 0px 0px; + border-width: 1px 0px 0px 1px; + border-style: solid; + border-color: #eaebeb; + object-fit: cover; + box-shadow: + 0px 2px 4px -1px rgba(41, 47, 61, 0.04), + 0px 4px 6px -1px rgba(41, 47, 61, 0.05); +} + +.vp-doc p:has(> img[src$="#hero-tr"]), +article p:has(> img[src$="#hero-tr"]) { + max-width: 841px; + padding: 36px 56px 0px 0px; + background: #f1f3f3; + border-radius: 12px; + box-sizing: border-box; + overflow: hidden; +} + +.vp-doc img[src$="#hero-tr"], +article img[src$="#hero-tr"] { + width: 100%; + height: auto; + display: block; + margin: 0; + border-radius: 0px 8px 0px 0px; + border-width: 1px 1px 0px 0px; + border-style: solid; + border-color: #eaebeb; + object-fit: cover; + box-shadow: + 0px 2px 4px -1px rgba(41, 47, 61, 0.04), + 0px 4px 6px -1px rgba(41, 47, 61, 0.05); +} + +.vp-doc p:has(> img[src$="#hero-bl"]), +article p:has(> img[src$="#hero-bl"]) { + max-width: 841px; + padding: 0px 0px 36px 56px; + background: #f1f3f3; + border-radius: 12px; + box-sizing: border-box; + overflow: hidden; +} + +.vp-doc img[src$="#hero-bl"], +article img[src$="#hero-bl"] { + width: 100%; + height: auto; + display: block; + margin: 0; + border-radius: 0px 0px 0px 8px; + border-width: 0px 0px 1px 1px; + border-style: solid; + border-color: #eaebeb; + object-fit: cover; + box-shadow: + 0px 2px 4px -1px rgba(41, 47, 61, 0.04), + 0px 4px 6px -1px rgba(41, 47, 61, 0.05); +} + +.vp-doc p:has(> img[src$="#hero-br"]), +article p:has(> img[src$="#hero-br"]) { + max-width: 841px; + padding: 0px 56px 36px 0px; + background: #f1f3f3; + border-radius: 12px; + box-sizing: border-box; + overflow: hidden; +} + +.vp-doc img[src$="#hero-br"], +article img[src$="#hero-br"] { + width: 100%; + height: auto; + display: block; + margin: 0; + border-radius: 0px 0px 8px 0px; + border-width: 0px 1px 1px 0px; + border-style: solid; + border-color: #eaebeb; + object-fit: cover; + box-shadow: + 0px 2px 4px -1px rgba(41, 47, 61, 0.04), + 0px 4px 6px -1px rgba(41, 47, 61, 0.05); +} + +/* ─── Dark mode hero images ─── */ +.dark .vp-doc p:has(> img[src$="#hero"]), +.dark article p:has(> img[src$="#hero"]), +.dark .vp-doc p:has(> img[src$="#hero-tl"]), +.dark article p:has(> img[src$="#hero-tl"]), +.dark .vp-doc p:has(> img[src$="#hero-tr"]), +.dark article p:has(> img[src$="#hero-tr"]), +.dark .vp-doc p:has(> img[src$="#hero-bl"]), +.dark article p:has(> img[src$="#hero-bl"]), +.dark .vp-doc p:has(> img[src$="#hero-br"]), +.dark article p:has(> img[src$="#hero-br"]) { + background: #1b1b1d; + border-color: #2e2e30; +} + +.dark .vp-doc img[src$="#hero"], +.dark article img[src$="#hero"], +.dark .vp-doc img[src$="#hero-tl"], +.dark article img[src$="#hero-tl"], +.dark .vp-doc img[src$="#hero-tr"], +.dark article img[src$="#hero-tr"], +.dark .vp-doc img[src$="#hero-bl"], +.dark article img[src$="#hero-bl"], +.dark .vp-doc img[src$="#hero-br"], +.dark article img[src$="#hero-br"] { + border-color: #2e2e30; +} diff --git a/docs/ai/pi-chat.mdx b/docs/ai/pi-chat.md similarity index 96% rename from docs/ai/pi-chat.mdx rename to docs/ai/pi-chat.md index 9a30eced..68ac2519 100644 --- a/docs/ai/pi-chat.mdx +++ b/docs/ai/pi-chat.md @@ -1,16 +1,12 @@ --- title: AI powered assistant for project management -sidebar_label: Plane AI -hide_title: true description: Plane AI is your intelligent assistant for finding project data, analyzing work items, and managing tasks using natural language. --- -import Tags from "@site/src/components/Tags"; -
-

AI-powered assistant for Plane

- - -
+# AI powered assistant for project management + + + Plane AI is an AI assistant that helps you interact with your Plane workspace using natural language. Instead of navigating through menus and filters, you can simply ask Plane AI questions about your projects, work items, and documentation in plain English. @@ -23,19 +19,21 @@ Think of Plane AI as a knowledgeable team member who has instant access to all y Plane AI excels at finding and analyzing information from your Plane workspace: **Search and discovery** + - Find work items by describing what you're looking for: "Show me all bugs related to user authentication". - Search across project documentation and Pages. - Discover related work items and identify potential duplicates through AI-powered matching with similarity scoring. - Access official Plane documentation and feature guides. - Cross-project discovery to find related content across multiple projects -**Creation and management** +**Creation and management** - Create work items through natural language commands - Generate projects, cycles, and modules with AI assistance - Automatically populate properties and descriptions based on context **Data analysis and insights** + - Analyze project progress and team performance with real-time queries. - Generate reports on work item status and trends using complex filtering and aggregations - Identify bottlenecks and overdue tasks through intelligent database querying @@ -44,11 +42,12 @@ Plane AI excels at finding and analyzing information from your Plane workspace: - Convert natural language to optimized SQL queries for structured Plane data **Contextual assistance** + - Get help with Plane features and workflows. - Find best practices and usage recommendations. - Understand relationships between projects, cycles, and modules. - Navigate complex project structures. -- Access step-by-step instructions and how-to guidance. +- Access step-by-step instructions and how-to guidance. ## What Plane AI cannot do (yet) @@ -84,7 +83,7 @@ Plane AI is accessible in two ways: Plane AI can create work items, projects, cycles, and modules through natural language commands. -:::info +::: info Creating items requires [Build mode](#build-mode). ::: @@ -92,26 +91,29 @@ Creating items requires [Build mode](#build-mode). 1. Ensure you have a project selected using the Focus selector. 2. Type a creation command describing what you want to create: - ``` - Create a bug report for the login page crash - ``` + ``` + Create a bug report for the login page crash + ``` 3. Plane AI processes your request and shows its thinking. 4. Once completed, the work item is created and you'll see a success confirmation with the work item ID. The newly created work item will include: + - Automatically generated title based on your description - AI-generated description summarizing the work item - Appropriate work item type (bug, feature, etc.) inferred from your command - Default project properties -:::tip +::: tip Be specific in your commands. Include details like priority, assignees, or descriptions to help Plane AI create more complete work items. For example: "Create a high-priority bug for the payment gateway timeout issue and assign it to the backend team." ::: ### Ask and build modes + Plane AI operates in two distinct modes to balance information retrieval with project management actions: **Ask** mode and **Build** mode. You can switch between these modes using the mode selector at the bottom of the chat interface. #### Ask mode + Ask mode is designed for answering questions, retrieving information, and finding insights from your Plane workspace. In this mode, Plane AI is read-only—it cannot modify, create, or delete any data. ![Ask mode](https://media.docs.plane.so/pi-chat/ask-mode.webp#hero) @@ -131,11 +133,12 @@ Example queries: - "Summarize the latest comments on issue PAI-123" #### Build mode + Build mode is designed for action and execution. Switch to Build Mode when you need to create, update, or manage data within Plane. ![Build mode](https://media.docs.plane.so/pi-chat/build-mode.webp#hero) -:::warning +::: warning Build mode actions respect your Plane permissions. You can only perform actions you're authorized to do manually. Some operations (like deleting projects or managing workspace features) require admin permissions. ::: @@ -146,19 +149,22 @@ Build mode gives you the ability to create, update, and manage nearly every aspe **Work items** Create and manage work items with full control: + - Create new work items with complete details (title, description, priority, assignees, labels, start/due dates). - Update any field on existing work items. - Delete work items permanently. - Add [relations](/core-concepts/issues/overview#add-relations to work items (blocking, blocked by, relates to, duplicate of, etc.). Add context and collaboration: + - Add comments to any work item. - Edit or delete existing comments. - Log time spent on work items. - Edit or delete time log entries. - Add, edit, or remove external URL references.. -*Example commands:* +_Example commands:_ + ``` Create a high-priority bug for login timeout, assign to Sarah, and add label "authentication" Update WEB-123 to set priority to urgent and move to In Progress @@ -169,12 +175,14 @@ Log 2 hours of work on CORE-789 **Projects** Manage your projects: + - Create new projects with descriptions. - Update project details (name, description, identifier, cover image). - Delete projects. - Enable or disable project features (Epics, Cycles, Modules, Pages, Views). -*Example commands:* +_Example commands:_ + ``` Create a new project called "Mobile App Redesign" with identifier MOB Enable Cycles and Modules for the Backend project @@ -184,6 +192,7 @@ Update the API project description to include our new architecture goals **Cycles** Plan and manage your cycles: + - Create new cycles with start and end dates. - Update cycle details (name, dates, description, owner). - Delete cycles. @@ -191,7 +200,8 @@ Plan and manage your cycles: - Add or remove work items from cycles. - Transfer all remaining work items from one cycle to another. -*Example commands:* +_Example commands:_ + ``` Create a new cycle "Sprint 24" starting next Monday for 2 weeks Move all incomplete items from Sprint 23 to Sprint 24 @@ -202,12 +212,14 @@ Add all authentication bugs to the current sprint **Modules** Organize work into modules: + - Create new modules. - Update module details (name, description, dates). - Delete or archive modules. - Add or remove work items from modules. -*Example commands:* +_Example commands:_ + ``` Create a module called "User Authentication Overhaul" Add all login-related issues to the Authentication module @@ -217,13 +229,15 @@ Archive the Payment Gateway module **Workflows and organization** Customize your project workflows: + - Create custom workflow states (e.g., "In Review", "Ready for QA", "Deployed"). - Update state properties (name, group,). - Delete workflow states. - Create, update, or delete work item labels. - Create, update, or delete custom work item types. -*Example commands:* +_Example commands:_ + ``` Create a new workflow state "Pending Review" in the In Progress group Add a label "technical-debt" with red color @@ -233,13 +247,15 @@ Create a custom work item type called "Spike" for research tasks **Custom properties** Extend work items with custom fields: + - Create new custom property definitions. - Update property settings and options. - Delete custom properties. - Set or update property values on work items. - Manage dropdown options for select properties. -*Example commands:* +_Example commands:_ + ``` Create a custom property "Severity" with options Critical, High, Medium, Low Update the "Customer Impact" property to add a new option "Revenue Blocking" @@ -249,10 +265,12 @@ Set the "Estimated Hours" property to 8 for all bugs in this sprint **Pages and documentation** Create and organize knowledge: + - Create new pages within projects. - Create new pages within workspaces. -*Example commands:* +_Example commands:_ + ``` Create a project page titled "API Integration Guidelines" Create a workspace page for our Q4 OKRs @@ -261,11 +279,13 @@ Create a workspace page for our Q4 OKRs **Intake and triage** Manage incoming requests: + - Create new intake items. - Update intake item details (title, description, priority). - Delete intake items. -*Example commands:* +_Example commands:_ + ``` Create an intake item for the customer feature request about dark mode Update intake item INT-45 to high priority @@ -274,13 +294,15 @@ Update intake item INT-45 to high priority **Initiatives** Align work with strategic goals: + - Create, update, or delete initiatives. - Create, update, or delete initiative-specific labels. - Attach or remove labels from initiatives. - Link or unlink projects to initiatives. - Link or unlink epics to initiatives. -*Example commands:* +_Example commands:_ + ``` Create an initiative "Improve Platform Performance" Link the Backend Optimization project to the Performance initiative @@ -290,12 +312,14 @@ Add the "Q4 Priority" label to the User Experience initiative **Teamspaces** Manage teams and collaboration spaces: + - Create, update, or delete teamspaces. - Add or remove members from teamspaces. - Add or remove projects from teamspaces. - Create, update, or delete sticky notes for brainstorming. -*Example commands:* +_Example commands:_ + ``` Create a teamspace called "Frontend Team" Add Sarah and Mike to the Design teamspace @@ -303,9 +327,11 @@ Add Sarah and Mike to the Design teamspace **Sticky notes** Brainstorm and capture ideas: + - Create, update, or delete sticky notes. -*Example commands:* +_Example commands:_ + ``` Create sticky notes for today's retrospective ideas Update the sticky note about API redesign to include performance concerns @@ -314,11 +340,13 @@ Update the sticky note about API redesign to include performance concerns **Customer management** Track and manage customer information: + - Create new customer profiles. - Update customer information (name, contact details, revenue, industry). - Delete customer records. -*Example commands:* +_Example commands:_ + ``` Create a customer profile for Acme Corp with $50k annual revenue Update the contact email for TechStart Inc @@ -327,21 +355,24 @@ Update the contact email for TechStart Inc **Workspace configuration** Control workspace-level features: + - Enable or disable workspace features (Initiatives, Teamspaces, Customers, Analytics). -*Example commands:* +_Example commands:_ + ``` Enable Initiatives for this workspace Disable the Customers feature ``` -:::tip +::: tip **Be specific with commands** The more details you provide, the better Plane AI can execute your request. Instead of "create a bug", try "create a high-priority bug for the payment gateway timeout, assign to backend team, and add to Sprint 24". ::: ### Attach files Click the **attachment icon** in the chat input to upload files: + - Screenshots and images for visual context - Documents for reference - Error logs or data files for analysis @@ -351,6 +382,7 @@ Plane AI can reference attachments in its responses and help you analyze the con ### Use voice input Click the **microphone icon** to speak your query instead of typing. Plane AI transcribes your speech and processes it as a text query, useful for: + - Quick queries on mobile - Complex questions that are faster to speak - Hands-free operation @@ -374,12 +406,14 @@ Conversational features ![Project context](https://media.docs.plane.so/pi-chat/project-context.webp#hero) Notice the **Focus** selector at the bottom of the chat interface. + - Set your conversation scope to a specific workspace. - Switch between different workspaces if you have access to multiple ones. - Ensure Plane AI searches and analyzes data from the right context. - Narrow context to individual projects when needed. #### AI assistant in-context mode + When you open Plane AI assistant from the top right of a project or work item page, the assistant automatically understands your current context and tailors its responses accordingly. **Project context** @@ -395,11 +429,13 @@ This contextual awareness makes Plane AI faster and more intuitive. You can ask ### Plane AI's reasoning and responses Plane AI includes a **Show thinking** feature that reveals how it processes your queries. + - Click **Show thinking** to see Plane AI's step-by-step reasoning process. - Watch as Plane AI understands your query, plans its approach, and executes database searches. - This transparency helps you understand why Plane AI provides certain results and how to refine your questions. Plane AI provides structured responses that may include: + - Direct answers with relevant data from live Plane databases. - Tables and lists for organized information with complex filtering. - Links to specific work items and pages with clickable references. @@ -412,15 +448,18 @@ When Plane AI references work items, it will show you the title and provide clic ### Get better results **Be specific about your needs** + - Instead of: "Show me issues" - Try: "Show me high-priority bugs in the mobile app project from last month" **Use natural language** + - "What tasks are overdue in my current sprint?" - "Who has been working on authentication issues?" - "Find documentation about setting up webhooks" **Ask follow-up questions** + - Plane AI remembers your conversation context - Build on previous queries: "Now show me only the ones assigned to Sarah" - Ask for different formats: "Can you show this as a summary instead?" @@ -430,16 +469,19 @@ When Plane AI references work items, it will show you the title and provide clic Based on the interface, here are some example questions you might ask: **Personal work insights** + - "Who commented on my work items recently?" - "What did I complete this week?" - "What's the progress of work items in current active cycles?" **Project analysis** + - "Show me all items in the backlog for this project" - "What work is planned for the next sprint?" - "Which items are ready for development?" **Team coordination** + - "What's blocking our current sprint work?" - "Show me overdue items across all projects" - "Which team members need more work assigned?" @@ -453,6 +495,7 @@ Based on the interface, here are some example questions you might ask: ### Response interactions At the bottom of each Plane AI response, you'll find: + - **Thumbs up/down**: Rate the helpfulness of Plane AI's response. - **Copy**: Copy the response text for use elsewhere. - **Share**: Share the conversation or specific responses with team members. @@ -468,6 +511,7 @@ Plane AI works across all your devices: ## Privacy and permissions Plane AI respects your Plane permissions and workspace boundaries: + - You can only access data you normally have permission to view. - Conversations are scoped to your current workspace. - Plane AI cannot see or access other workspaces you don't belong to. @@ -475,22 +519,26 @@ Plane AI respects your Plane permissions and workspace boundaries: ## Tips for effective use **Start broad, then narrow down**. Begin with general queries and use Plane AI's responses to refine your search: + 1. "Show me recent bugs" 2. "Focus on the ones from the authentication module" 3. "Which of these are assigned to the backend team?" **Use Plane AI for discovery** + - "What documentation exists about our API?" - "Find all work items mentioning performance issues" - "Show me pages related to user onboarding" **Leverage context awareness** Plane AI understands your project structure and relationships: + - "What's blocking the login feature work?" - "Find related issues to PROJ-123" - "Show me work items similar to this bug report" If Plane AI doesn't understand your query or provides unexpected results: + - Try rephrasing your question with different terms - Be more specific about timeframes, projects, or work item types - Ask Plane AI to explain its reasoning: "Why did you include these results?" @@ -509,4 +557,4 @@ Workspace admins can disable Plane AI if your organization prefers not to use AI ![Disable Plane AI](https://media.docs.plane.so/pi-chat/turn-off-ai.webp#hero) -Once disabled, Plane AI becomes inaccessible to all workspace members. Conversation history is preserved and restored when re-enabled. \ No newline at end of file +Once disabled, Plane AI becomes inaccessible to all workspace members. Conversation history is preserved and restored when re-enabled. diff --git a/docs/ai/plane-ai-credits.mdx b/docs/ai/plane-ai-credits.md similarity index 60% rename from docs/ai/plane-ai-credits.mdx rename to docs/ai/plane-ai-credits.md index 36cd6f22..92b49609 100644 --- a/docs/ai/plane-ai-credits.mdx +++ b/docs/ai/plane-ai-credits.md @@ -1,17 +1,13 @@ --- title: How AI credits work for team usage and billing -sidebar_label: AI credits -hide_title: true description: Learn how Plane AI's credit system works, why different tasks consume different amounts, and how workspace pooling helps teams manage AI usage efficiently. --- -import Tags from "@site/src/components/Tags"; # How Plane AI credits work Plane AI uses credits as a universal measure of AI processing. This system ensures fair usage while giving teams predictable costs and transparent billing. - -:::caution[IMPORTANT] +::: warning IMPORTANT AI credits apply only to Plane Cloud. On self-hosted instances, you use your own AI provider [API key](https://developers.plane.so/self-hosting/govern/instance-admin#artificial-intelligence), and all AI usage and costs are managed directly through your provider. Plane does not track, pool, or enforce usage through credits. @@ -37,20 +33,20 @@ Three factors influence how many credits a task consumes: Here's how these factors translate into typical usage: -| Action type | Credit range | What this looks like | -| --- | --- | --- | -| **Short query** | ~10 credits | Quick questions, status checks, brief clarifications | -| **Long query** | ~50 credits | Detailed explanations, code generation, analytical responses | -| **Action** | ~100 credits | Creating or editing multiple work items, generating project structures | -| **Heavy action** | ~250 credits | Bulk operations, file analysis, complex workflow automation | +| Action type | Credit range | What this looks like | +| ---------------- | ------------ | ---------------------------------------------------------------------- | +| **Short query** | ~10 credits | Quick questions, status checks, brief clarifications | +| **Long query** | ~50 credits | Detailed explanations, code generation, analytical responses | +| **Action** | ~100 credits | Creating or editing multiple work items, generating project structures | +| **Heavy action** | ~250 credits | Bulk operations, file analysis, complex workflow automation | To illustrate with a real workflow: -| Task | Why this credit amount | -| --- | --- | -| Summarize yesterday's stand-up notes (10 credits) | Simple extraction and formatting of existing text | -| Generate detailed project timeline (50 credits) | Requires analysis, structure creation, and detailed output | -| Create 20 tasks from PRD (100 credits) | Multiple write operations with metadata for each work item | +| Task | Why this credit amount | +| -------------------------------------------------------- | ------------------------------------------------------------ | +| Summarize yesterday's stand-up notes (10 credits) | Simple extraction and formatting of existing text | +| Generate detailed project timeline (50 credits) | Requires analysis, structure creation, and detailed output | +| Create 20 tasks from PRD (100 credits) | Multiple write operations with metadata for each work item | | Analyze project structure for optimization (250 credits) | Deep analysis across multiple projects, with recommendations | With 10,000 credits, you could handle approximately: @@ -58,17 +54,17 @@ With 10,000 credits, you could handle approximately: - 1000 short queries, or - 200 long queries, or - 100 actions, or -- 40 heavy actions, or +- 40 heavy actions, or - any mix that fits your workflow. ## Plan comparison -| Plan | Monthly credits per user | Rollover period | -| --- | --- | --- | -| **Free** | 500 | No rollover | -| **Pro** | 1,000 | 1 month | -| **Business** | 2,000 | 3 months | -| **Enterprise** | Flexible allocation | Up to 12 months | +| Plan | Monthly credits per user | Rollover period | +| -------------- | ------------------------ | --------------- | +| **Free** | 500 | No rollover | +| **Pro** | 1,000 | 1 month | +| **Business** | 2,000 | 3 months | +| **Enterprise** | Flexible allocation | Up to 12 months | New workspaces receive 1,000 bonus credits upon signup. These onboarding credits expire after 30 days and help teams evaluate Plane AI before committing to a plan. @@ -102,12 +98,12 @@ When you have credits from multiple sources (monthly allocation + rollover + top Top-ups exist for months when your team's usage exceeds the plan allocation. These are one-time purchases that don't auto-renew. -| Pack size | Credits | Price (USD) | Best for | -| --- | --- | --- | --- | -| Standard pack | 1,000 | $2.00 | Light monthly overages | -| Growth pack | 2,000 | $4.00 | Small active teams | -| Scale pack | 5,000 | $9.00 | Moderate automation use | -| Bulk pack | 10,000 | $17.00 | Larger workspaces (best value per credit) | +| Pack size | Credits | Price (USD) | Best for | +| ------------- | ------- | ----------- | ----------------------------------------- | +| Standard pack | 1,000 | $2.00 | Light monthly overages | +| Growth pack | 2,000 | $4.00 | Small active teams | +| Scale pack | 5,000 | $9.00 | Moderate automation use | +| Bulk pack | 10,000 | $17.00 | Larger workspaces (best value per credit) | Top-up credits are added instantly to your workspace's shared balance and expire 12 months after purchase. All workspace members can use them, and admins can track consumption in the usage dashboard. @@ -132,73 +128,47 @@ Alerts notify workspace admins when the balance reaches 20% and 5% of total capa ## FAQs
- - Why this pricing model? - -

-

- Credits provide granular control while remaining predictable. Unlike token-based pricing (which fluctuates based on AI model costs), credits give you stable rates. Unlike subscription tiers with arbitrary limits, credits scale naturally with your actual usage. -
-

+Why this pricing model? + +Credits provide granular control while remaining predictable. Unlike token-based pricing (which fluctuates based on AI model costs), credits give you stable rates. Unlike subscription tiers with arbitrary limits, credits scale naturally with your actual usage. +
- - How long do credits last? - -

-

- It depends on your plan and how you acquired them. Free plan credits reset monthly with no rollover. Pro plan credits roll over for 1 month, Business for 3 months, and Enterprise plans roll over for up to 12 months. Top-up credits purchased separately are valid for 12 months on all paid plans, regardless of your base plan's rollover period. - -
-

+How long do credits last? + +It depends on your plan and how you acquired them. Free plan credits reset monthly with no rollover. Pro plan credits roll over for 1 month, Business for 3 months, and Enterprise plans roll over for up to 12 months. Top-up credits purchased separately are valid for 12 months on all paid plans, regardless of your base plan's rollover period. +
- - Do all workspace members share the same credit pool? - -

-

- Yes. Credits are allocated at the workspace level, creating a shared balance that all members draw from. This prevents the problem of some team members having unused credits while others run out. Admins can set per-user limits if needed to prevent any single member from consuming the entire pool. -
-

+Do all workspace members share the same credit pool? + +Yes. Credits are allocated at the workspace level, creating a shared balance that all members draw from. This prevents the problem of some team members having unused credits while others run out. Admins can set per-user limits if needed to prevent any single member from consuming the entire pool. +
- - What happens when my workspace runs out of credits? - -

-

- You'll receive alerts when your balance reaches 20% and 5% of total capacity, giving you time to respond. Once you hit zero, AI features become unavailable until you top up or your monthly allocation renews. Your existing data, past AI results, and all non-AI functionality remain fully accessible. You just can't request new AI operations. -
-

+What happens when my workspace runs out of credits? + +You'll receive alerts when your balance reaches 20% and 5% of total capacity, giving you time to respond. Once you hit zero, AI features become unavailable until you top up or your monthly allocation renews. Your existing data, past AI results, and all non-AI functionality remain fully accessible. You just can't request new AI operations. +
- - Can I switch between plans without losing credits? - -

-

- Yes, you can change plans anytime. When you switch, your unused credits carry forward and adopt the new plan's rollover rules. If you upgrade mid-month, your increased allocation takes effect immediately. If you downgrade, the change happens at your next billing cycle to avoid losing paid credits. -
-

-
+Can I switch between plans without losing credits? +Yes, you can change plans anytime. When you switch, your unused credits carry forward and adopt the new plan's rollover rules. If you upgrade mid-month, your increased allocation takes effect immediately. If you downgrade, the change happens at your next billing cycle to avoid losing paid credits. + +
- - How can I monitor my workspace's credit usage? - -

-

- The real-time dashboard shows your remaining balance, consumption history, and trends over time. Before executing any AI action, you'll see a credit cost preview. -
-

+How can I monitor my workspace's credit usage? + +The real-time dashboard shows your remaining balance, consumption history, and trends over time. Before executing any AI action, you'll see a credit cost preview. +
+ --- Ready to explore how Plane AI can help your team? [View our pricing options](https://plane.so/pricing#ai-&-credits) or start with 1,000 free credits. - diff --git a/docs/authentication/sso.mdx b/docs/authentication/sso.md similarity index 67% rename from docs/authentication/sso.mdx rename to docs/authentication/sso.md index 7e473f9f..f8ebc001 100644 --- a/docs/authentication/sso.mdx +++ b/docs/authentication/sso.md @@ -1,16 +1,11 @@ --- title: Single sign-on (SSO) -sidebar_label: Single sign-on (SSO) -hide_title: true description: Configure SAML or OIDC authentication to let your team sign in to Plane using corporate identity provider credentials. --- -import Tags from "@site/src/components/Tags"; +# Single sign-on (SSO) -
-

Single sign-on (SSO)

- -
+ Single sign-on (SSO) lets your team sign in to Plane using your organization's identity provider instead of managing separate passwords. This centralizes authentication, improves security, and simplifies user management. @@ -18,7 +13,7 @@ Single sign-on (SSO) lets your team sign in to Plane using your organization's i Before configuring SSO, you must verify ownership of your organization's email domain. This ensures only authorized administrators can configure authentication for that domain. -:::caution +::: warning Each domain can only be verified in one workspace at a time. If you've already verified a domain in another workspace, you'll need to remove it there first. ::: @@ -34,21 +29,22 @@ Each domain can only be verified in one workspace at a time. If you've already v ![Verify domain](https://media.docs.plane.so/sso/verify-domain.webp#hero) :::tip - Click **I'll do it later** if you need time to access your DNS. Your domain will appear with a *Pending* status. To resume verification later, click the **⋯** menu next to your domain and select **Verify**. + Click **I'll do it later** if you need time to access your DNS. Your domain will appear with a _Pending_ status. To resume verification later, click the **⋯** menu next to your domain and select **Verify**. ::: ### Add the DNS record + 1. Sign in to your DNS provider. 2. Create a new TXT record: - **Host/Name**: `@` (or leave blank for root domain). - **Value**: Paste the TXT record value from Plane. - **TTL**: Use default or 3600. 3. Wait a few minutes for DNS propagation. -4. Return to Plane and click **Verify domain**. +4. Return to Plane and click **Verify domain**. -Once verified, the status changes to *Verified* and you can configure SSO. +Once verified, the status changes to _Verified_ and you can configure SSO. -:::tip +::: tip DNS propagation times vary by provider. If verification fails immediately, wait a few more minutes and try again. You can check if the TXT record is live using `dig TXT yourdomain.com` or online DNS lookup tools. ::: @@ -86,18 +82,18 @@ The exact steps vary by provider, but generally: #### Configure OIDC in Plane - ![Configure OIDC](https://media.docs.plane.so/sso/configure-oidc.webp#hero) +![Configure OIDC](https://media.docs.plane.so/sso/configure-oidc.webp#hero) 1. Return to Plane and enter the following details from your identity provider: - | Field | Description | - |-------|-------------| - | **Client ID** | The application ID from your IdP | - | **Client secret** | The secret key for authentication | - | **Authorize URL** | The endpoint where users see the login screen | - | **Token URL** | The endpoint Plane uses to exchange authorization codes for tokens | - | **Users' info URL** | The endpoint that returns user profile information | - | **Logout URL** | *(Optional)* Where users go after signing out | + | Field | Description | + | ------------------- | ------------------------------------------------------------------ | + | **Client ID** | The application ID from your IdP | + | **Client secret** | The secret key for authentication | + | **Authorize URL** | The endpoint where users see the login screen | + | **Token URL** | The endpoint Plane uses to exchange authorization codes for tokens | + | **Users' info URL** | The endpoint that returns user profile information | + | **Logout URL** | _(Optional)_ Where users go after signing out | 2. Click **Save changes** to activate OIDC authentication. @@ -130,16 +126,16 @@ SAML works well with traditional enterprise identity providers like Okta, Azure #### Configure SAML in Plane - ![Configure SAML](https://media.docs.plane.so/sso/configure-saml.webp#hero) +![Configure SAML](https://media.docs.plane.so/sso/configure-saml.webp#hero) 1. Return to Plane and enter the following details from your identity provider: - | Field | Description | - |-------|-------------| - | **Entity ID** | Your IdP's unique identifier | - | **SSO URL** | The endpoint where Plane redirects users for authentication | - | **Logout URL** | *(Optional)* Where users go after signing out | - | **Certificate** | The X.509 certificate from your IdP | + | Field | Description | + | --------------- | ----------------------------------------------------------- | + | **Entity ID** | Your IdP's unique identifier | + | **SSO URL** | The endpoint where Plane redirects users for authentication | + | **Logout URL** | _(Optional)_ Where users go after signing out | + | **Certificate** | The X.509 certificate from your IdP | 2. Click **Configure and enable** to activate SAML authentication. @@ -147,13 +143,10 @@ SAML works well with traditional enterprise identity providers like Okta, Azure Once SSO is enabled: - - When users visit your Plane workspace, they see the **Sign in with Single Sign-On** button. - - ![Sign in with SSO](https://media.docs.plane.so/sso/sign-in-with-sso.webp#hero) - - - Clicking it redirects them to your identity provider. - - After authentication, they're signed in to Plane automatically. - - Their Plane account is created automatically on first sign-in if it doesn't exist. - +- When users visit your Plane workspace, they see the **Sign in with Single Sign-On** button. + ![Sign in with SSO](https://media.docs.plane.so/sso/sign-in-with-sso.webp#hero) +- Clicking it redirects them to your identity provider. +- After authentication, they're signed in to Plane automatically. +- Their Plane account is created automatically on first sign-in if it doesn't exist. diff --git a/docs/automations/custom-automations.mdx b/docs/automations/custom-automations.md similarity index 64% rename from docs/automations/custom-automations.mdx rename to docs/automations/custom-automations.md index aae48fe3..0f7536d0 100644 --- a/docs/automations/custom-automations.mdx +++ b/docs/automations/custom-automations.md @@ -1,16 +1,11 @@ --- title: Automate project tasks with trigger based workflows -sidebar_label: Automations -hide_title: true description: Automate repetitive project tasks with trigger-based workflows. Set up rules to automatically update work item properties, assign team members, and manage priorities when specific conditions are met. --- -import Tags from "@site/src/components/Tags"; +# Automate project tasks with trigger based workflows -
-

Automate your project workflow

- -
+ Automations let you streamline your project management workflow by automatically performing actions based on specific triggers and conditions. This powerful feature eliminates repetitive manual tasks, ensures consistency in your processes, and helps your team maintain focus on high-value work by letting the system handle routine operations. @@ -19,18 +14,19 @@ Think of automations as your digital assistant that watches for specific events ![Create automations](https://media.docs.plane.so/automations/create-automation.webp#hero) ## What automations do + Automations follow a simple but powerful logic: When [trigger] happens, if [conditions] are met, then perform [actions]. This trigger-condition-action framework allows you to create sophisticated workflows that adapt to your team's specific needs. ### Key components - **Triggers** -Events that start the automation (work item created, updated, state changed, assignee changed, comment created) + Events that start the automation (work item created, updated, state changed, assignee changed, comment created) - **Conditions** -Optional filters that must be met for the automation to proceed (specific state, type, label, assignee, creator, or priority) + Optional filters that must be met for the automation to proceed (specific state, type, label, assignee, creator, or priority) -- **Actions** -What the automation does when triggered (add comments, change properties) +- **Actions** + What the automation does when triggered (add comments, change properties) You can create complex workflows by adding multiple conditions and multiple actions to a single trigger, giving you fine-grained control over when and how automations execute. @@ -38,34 +34,33 @@ You can create complex workflows by adding multiple conditions and multiple acti ![Configure trigger and action](https://media.docs.plane.so/automations/configure-trigger-and-action.webp#hero) -1. Navigate to your Project Settings. +1. Navigate to your Project Settings. -2. Select **Automations** on the left pane. +2. Select **Automations** on the left pane. 3. Click **Create automation** to start building your workflow. - - Give your automation a descriptive name and description. - - Save the configuration. + - Give your automation a descriptive name and description. + - Save the configuration. 4. Click **Add trigger** in the trigger section. 5. Choose from available trigger types: - - Work item created - - Work item updated - - State changed - - Assignee changed - - Comment created + - Work item created + - Work item updated + - State changed + - Assignee changed + - Comment created 6. Click **Add condition** to specify when the automation should run. Select condition types such as: - - State (specific workflow status) - - Type (work item type) - - Label (project tags) - - Assignees (specific team members) - - Created by - - Priority - + - State (specific workflow status) + - Type (work item type) + - Label (project tags) + - Assignees (specific team members) + - Created by + - Priority 7. Click **Add action** to specify what the automation should do. Choose from available actions: - - Add comment - - Change property (State, Priority, Assignee, Labels, Start Date, Due Date) + - Add comment + - Change property (State, Priority, Assignee, Labels, Start Date, Due Date) -:::tip +::: tip You can add multiple conditions to create more specific rules and multiple actions to perform several operations in sequence on a single trigger. ::: @@ -76,6 +71,7 @@ You can add multiple conditions to create more specific rules and multiple actio ![Manage automations](https://media.docs.plane.so/automations/manage-automations.webp#hero) ### Activity monitoring + Track your automation's performance through the Activity panel, which shows: - When the automation was created @@ -87,6 +83,7 @@ Track your automation's performance through the Activity panel, which shows: Filter the activity view to see only relevant events or view the complete run history to understand your automation's impact. ### Enable or disable automations + Toggle automations on or off as needed without deleting them. This is useful for: - Temporarily suspending automations during maintenance @@ -95,23 +92,23 @@ Toggle automations on or off as needed without deleting them. This is useful for ### Edit and delete automations -- Modify triggers, conditions, and actions using the **Edit** option -- Remove automations that are no longer needed - +- Modify triggers, conditions, and actions using the **Edit** option +- Remove automations that are no longer needed ## Common use cases - **State management** -Automatically transition work items between workflow states and update status when specific conditions are met. + Automatically transition work items between workflow states and update status when specific conditions are met. - **Team assignment and handoffs** -Automatically assign team members when work items reach specific stages, reassign work based on type or priority, and ensure proper handoffs between different teams or departments. + Automatically assign team members when work items reach specific stages, reassign work based on type or priority, and ensure proper handoffs between different teams or departments. - **Priority and categorization** -Auto-adjust work item priorities based on labels or assignees, apply consistent labeling across similar work item types, and maintain project organization through automated property updates. + Auto-adjust work item priorities based on labels or assignees, apply consistent labeling across similar work item types, and maintain project organization through automated property updates. - **Communication and notifications** -Post automatic comments when work items are assigned or reassigned, add context when work items move between stages, and ensure stakeholders receive updates on critical changes. + Post automatic comments when work items are assigned or reassigned, add context when work items move between stages, and ensure stakeholders receive updates on critical changes. --- -Automations transform reactive project management into proactive workflow orchestration, allowing teams to focus on solving problems rather than managing processes. With the ability to monitor, edit, and control when automations run, you maintain full control over your automated workflows while reducing manual overhead. \ No newline at end of file + +Automations transform reactive project management into proactive workflow orchestration, allowing teams to focus on solving problems rather than managing processes. With the ability to monitor, edit, and control when automations run, you maintain full control over your automated workflows while reducing manual overhead. diff --git a/docs/communication-and-collaboration/comments-and-activity.mdx b/docs/communication-and-collaboration/comments-and-activity.md similarity index 98% rename from docs/communication-and-collaboration/comments-and-activity.mdx rename to docs/communication-and-collaboration/comments-and-activity.md index 9cc5de8f..00f80193 100644 --- a/docs/communication-and-collaboration/comments-and-activity.mdx +++ b/docs/communication-and-collaboration/comments-and-activity.md @@ -1,6 +1,5 @@ --- title: Comments for collaboration and activity tracking -sidebar_label: Work Item Comments description: Add comments, mention team members, and track activity on work items --- @@ -21,6 +20,7 @@ Use comments to discuss work items, ask questions, provide updates, and collabor Your comment appears immediately in the activity feed with a timestamp and your profile picture. ## Reply to comments + Reply directly to specific comments to keep discussions organized and contextual. Threaded comments help you maintain focused conversations within a work item, especially when multiple topics are being discussed. ### Create a threaded reply @@ -41,8 +41,9 @@ Replies appear nested under the original comment, making it easy to follow the c The comment editor supports rich text formatting for clear communication: **Available formatting:** + - **Bold** - Emphasize important points -- *Italic* - Add subtle emphasis +- _Italic_ - Add subtle emphasis - `Code` - Share code snippets or technical terms - Bullet lists - Organize information - Numbered lists - Create step-by-step instructions @@ -55,6 +56,7 @@ The comment editor supports rich text formatting for clear communication: Tag team members in comments to notify them and draw their attention to specific work items. **To mention someone** + 1. Type `@` in the comment field. 2. Start typing the person's name. 3. Select their name from the dropdown list. @@ -62,6 +64,7 @@ Tag team members in comments to notify them and draw their attention to specific 5. Post the comment. **What happens** + - The mentioned person receives an email notification (if they have notifications enabled) - The work item appears in their Inbox @@ -90,7 +93,7 @@ Remove comments that are no longer relevant or were posted in error. You can only delete your own comments. -:::warning +::: warning Deleted comments cannot be recovered. ::: @@ -111,6 +114,7 @@ The Activity log shows a chronological history of everything that happens on a w ### Activity types tracked **System activities:** + - Work item creation - Status changes (To Do → In Progress → Done) - Assignee changes @@ -122,6 +126,7 @@ The Activity log shows a chronological history of everything that happens on a w - Relation changes (blocking, blocked by, etc.) **User activities:** + - Comments posted - Time logged ([Worklogs](/core-concepts/issues/time-tracking)) - Attachments uploaded @@ -144,9 +149,10 @@ Show only specific types of activity to focus on what matters. Change the order in which activities appear. **Sort options:** + - **Newest first** (default) - Most recent activity at the top - **Oldest first** - Original activity at the top Click the sort icon next to Filters to toggle between sort orders. ---- \ No newline at end of file +--- diff --git a/docs/communication-and-collaboration/project-updates.mdx b/docs/communication-and-collaboration/project-updates.md similarity index 97% rename from docs/communication-and-collaboration/project-updates.mdx rename to docs/communication-and-collaboration/project-updates.md index 88929d2a..dd250bf6 100644 --- a/docs/communication-and-collaboration/project-updates.mdx +++ b/docs/communication-and-collaboration/project-updates.md @@ -1,6 +1,5 @@ --- title: Project updates to share status and track progress -sidebar_label: Project Updates description: Share project status and track progress over time --- @@ -12,6 +11,7 @@ Project updates provide a way to share project status and create a timeline of p Updates are status posts that appear in your project's side panel. Each update includes a status indicator (On Track, At Risk, or Off Track) and a message describing the current state of the project. Updates appear in chronological order, creating a history of your project's progress over time. **When to use project updates** + - Regular status reporting (weekly sprints, monthly milestones) - Communicating blockers or risks to stakeholders - Keeping remote or distributed teams aligned @@ -61,14 +61,17 @@ The project has significant blockers or delays. Critical issues are preventing p Project updates support threaded discussions and reactions, allowing team members to engage with status updates directly. **Start discussions** + - Add comments in the thread below the update. - Use threads to discuss specific points, ask questions, or provide additional context. - Threaded discussions keep conversations organized and connected to the relevant update. **Use emoji reactions** + - React to updates with emojis for quick feedback. - Reactions provide lightweight acknowledgment without requiring a full comment. -**Mention team members** *(Coming soon)* +**Mention team members** _(Coming soon)_ + - Tag specific team members in update comments to notify them directly. -- Use mentions to request input, escalate issues, or delegate follow-up actions. \ No newline at end of file +- Use mentions to request input, escalate issues, or delegate follow-up actions. diff --git a/docs/core-concepts/account/overview.mdx b/docs/core-concepts/account/overview.md similarity index 98% rename from docs/core-concepts/account/overview.mdx rename to docs/core-concepts/account/overview.md index fe53b497..d2588142 100644 --- a/docs/core-concepts/account/overview.mdx +++ b/docs/core-concepts/account/overview.md @@ -1,6 +1,5 @@ --- title: Personalize your homepage -sidebar_label: Personalize homepage description: Customize your Home page with quick links, recent activity, and sticky notes to create a personalized dashboard for improved productivity. --- diff --git a/docs/core-concepts/account/settings.mdx b/docs/core-concepts/account/settings.md similarity index 99% rename from docs/core-concepts/account/settings.mdx rename to docs/core-concepts/account/settings.md index a22e18c7..dea85666 100644 --- a/docs/core-concepts/account/settings.mdx +++ b/docs/core-concepts/account/settings.md @@ -8,6 +8,7 @@ description: Reference for personal account settings including profile, preferen Account settings control your personal profile, interface preferences, notification preferences, security options, and activity history. These settings apply across all workspaces you belong to. ## Access account settings + 1. Click your profile picture in the sidebar. 2. Select **Settings** @@ -18,11 +19,13 @@ Account settings control your personal profile, interface preferences, notificat Manage your personal information and account visibility across workspaces. All profile information is visible to other members in your workspaces. **Profile picture and cover image** + - Profile picture appears throughout Plane (work items, comments, assignments). - Cover image displays at the top of your profile page. - Click **Change cover** to upload a custom cover image. **Personal information** + - **First name** - Your given name (required) - **Last name** - Your family name - **Display name** - Name shown in work items and mentions (required) @@ -31,7 +34,6 @@ Manage your personal information and account visibility across workspaces. All p **Account deactivation** You have the option to deactivate your account, which removes you from all the workspaces you are associated with. However, please note that deactivating your account will not delete the work items or any other entities created by you. - ## Preferences Customize your interface appearance and behavior. @@ -43,6 +45,7 @@ Your selected theme applies across all workspaces and devices where you're logge **Default:** Light theme **Theme options:** + - **System** - Automatically matches your operating system's theme preference - **Light** - Light color scheme - **Dark** - Dark color scheme @@ -53,6 +56,7 @@ Your selected theme applies across all workspaces and devices where you're logge When you select **Custom theme** from the theme dropdown, you can define your own color scheme by specifying hex color values for five interface elements: **Customizable colors:** + - **Background color** - Sets the background for main content areas (dashboard, work items, pages, etc.) - **Text color** - Determines text color throughout the platform - **Primary (Theme) color** - Defines accent color for interactive elements @@ -64,24 +68,28 @@ Click **Set theme** to apply your custom color scheme. ### First day of the week Changes the starting day for all calendar displays throughout Plane, including: + - Project timelines - Due date pickers - Calendar views - Date range selectors ### Smooth cursor + Adds animation to cursor movement for a more fluid experience when navigating through editors. ### Timezone and language + **Timezone:** + - Sets display format for all times throughout Plane. - Affects notifications, activity logs, start dates, end dates, and timestamps. **Language:** + - Controls interface language. - Supported languages: English, French, Spanish, Japanese, Simplified Chinese, Traditional Chinese, Russian, Italian, Czech, Slovak, German, Ukrainian, Polish, Korean, Brazilian Portuguese, Indonesian, Romanian, Vietnamese, Turkish - ## Notifications Control email notification preferences for work item updates. Email notifications supplement in-app notifications visible in the [Inbox](/core-concepts/inbox) section. @@ -91,24 +99,28 @@ All notifications apply only to work items where you are the creator, assigned t ### Notification types **Property changes** + - Notifies when work item properties change (assignees, priority, estimates, etc.) - Applies to work items you created, are assigned to, or subscribed to **State change** + - Notifies when work items move to different states - Applies to work items you created, are assigned to, or subscribed to **Work item completed** + - Notifies only when work items reach completed state - Subset of state change notifications **Comments** + - Notifies when someone adds a comment to work items you're involved with - Applies to work items you created, are assigned to, or subscribed to **Mentions** -- Notifies when someone mentions you in comments or descriptions +- Notifies when someone mentions you in comments or descriptions ## Security @@ -124,14 +136,10 @@ Manage account access credentials. Password must meet security criteria (minimum View your recent actions and changes across all workspaces. Displays a chronological feed of your activities with timestamps. - ## Connections Manage personal account connections on integrations with external services. - ## Personal access tokens Generate secure API tokens for integrating Plane data with external systems and applications. - - diff --git a/docs/core-concepts/analytics.mdx b/docs/core-concepts/analytics.md similarity index 94% rename from docs/core-concepts/analytics.mdx rename to docs/core-concepts/analytics.md index ad1fd9e0..f78f373a 100644 --- a/docs/core-concepts/analytics.mdx +++ b/docs/core-concepts/analytics.md @@ -1,11 +1,8 @@ --- title: Analytics to visualize work data and track performance -sidebar_label: Analytics description: Visualize work item data, track team capacity, measure progress, and create custom charts. --- -import Tags from "@site/src/components/Tags"; - # View analytics at different levels Transform your entire workspace data into actionable insights with Analytics. Get instant answers to complex questions, forecast demand, track progress across all dimensions, and make data-driven decisions with confidence. @@ -35,9 +32,9 @@ The new analytics experience provides comprehensive views across six key areas: Get a bird's-eye view of your entire workspace with essential performance indicators that drive strategic decision-making. The workspace metrics section displays comprehensive user statistics including total users, admins, members, and guests, alongside project count and distribution across your organization. You can monitor the overall work item count across all projects and track active cycles and intake statistics to understand your team's current workload. -
+
### Projects analysis - +
![Analytics Projects](https://media.docs.plane.so/analytics/projects-analytics.webp#hero) @@ -65,9 +62,9 @@ The interactive chart builder lets you choose what you want to measure and then You can easily export all your analytics data to CSV format, making it simple to dive deeper into the numbers using spreadsheets or other analysis tools you prefer. -
+
### Cycles analysis - +
![Analytics Cycles](https://media.docs.plane.so/analytics/cycle-analytics.webp#hero) @@ -82,9 +79,9 @@ The cycle table at the bottom provides all the essential management information This kind of cycle analysis is invaluable for sprint retrospectives and improving your team's estimation accuracy over time. You can identify patterns in cycle performance and use that data to make better decisions about sprint planning and workload distribution. -
+
### Modules analysis - +
![Analytics Modules](https://media.docs.plane.so/analytics/module-analytics.webp#hero) @@ -97,9 +94,9 @@ When you hover over any module in the chart, you get a detailed breakdown of the The table gives you all the management essentials - who's leading each module, which project it belongs to, planned timelines, and current completion status. This makes it easy to identify modules that might need attention, whether that's because they're running behind schedule, don't have a clear lead assigned, or are sitting at 0% completion when they should have started by now. -
+
### Intake analysis - +
![Analytics Intake](https://media.docs.plane.so/analytics/Intake-analytics.webp#hero) diff --git a/docs/core-concepts/cycles.mdx b/docs/core-concepts/cycles.md similarity index 89% rename from docs/core-concepts/cycles.mdx rename to docs/core-concepts/cycles.md index 626b163c..4bd8888f 100644 --- a/docs/core-concepts/cycles.mdx +++ b/docs/core-concepts/cycles.md @@ -1,11 +1,8 @@ --- title: Manage sprints and track agile workflows -sidebar_label: Cycles description: Create and manage sprints using Cycles in Plane. Track progress, transfer incomplete tasks, and monitor active cycles across projects for efficient Agile workflows. --- -import Tags from "@site/src/components/Tags"; - # Manage and track your sprints using Cycles A Cycle is a set period of time where your team focuses on completing specific tasks or work items, similar to sprints in Agile. Each Cycle is flexible, allowing you to prioritize and tackle backlog items at your own pace. @@ -18,25 +15,25 @@ By default, Cycles are automatically turned on when you create a new project. If ## Create cycles -:::warning[Caution] +::: warning Caution Two cycles cannot have overlapping dates. ::: To create a new Cycle, just press `Q` from anywhere in your project. Or, you can head to the **Cycles** page under your project in the sidebar and click the **Add Cycle** button. You’ll need to give it a name and set the start and due dates. If you want, you can also add a description—either right away or later on! ![Create cycle](https://media.docs.plane.so/cycles/create-cycles.webp#hero) -:::caution[Timezone settings] +::: warning Timezone settings If the Project Admin sets the **Timezone** in [Project settings](/core-concepts/projects/overview#configure-project-settings), the Cycle schedules (start and end) will align with it. However, Members will view Cycles starting and stopping based on the timezone set in their [profile settings](/core-concepts/account/settings#timezone-and-language). ::: ## Add work items to cycles - After you create a cycle, you can start adding new work items or bringing in existing work items right in the Cycle page. - + ![Empty cycle](https://media.docs.plane.so/cycles/cycle-empty-state.webp#hero) - You can also link a Cycle directly as a property within any work item. - + ![Cycle property](https://media.docs.plane.so/cycles/cycle-property.webp#hero-br) ## Cycle states @@ -50,20 +47,20 @@ If the Project Admin sets the **Timezone** in [Project settings](/core-concepts/ - **Completed cycle** When a cycle’s due date has passed, it moves into the completed state. This reflects that the work scheduled during that cycle is finished, and the team can move on to review, wrap-up, and start planning for future cycles. Completed cycles are not editable, however you can transfer work items that are incomplete to an active or upcoming cycle. -:::tip +::: tip You can modify the name, description, start and due dates of active and upcoming cycles at any time. ::: -
+
## Start and stop cycles - +
While Cycles typically run for their set duration, sometimes you need more flexibility in managing your work periods. You can manually control when a Cycle begins or ends using the interface controls. To start a Cycle, simply click the **Start Cycle** button next to your upcoming Cycle. This is particularly useful when you want to begin a planned Cycle earlier than its scheduled start date or if you need to start a fresh Cycle immediately. -:::tip +::: tip You can't start a new Cycle while another is in progress. To begin a new Cycle, you'll need to stop the currently active one first. ::: @@ -93,10 +90,9 @@ Once the due date of an active Cycle passes, it’s automatically marked as comp ![Transfer work items](https://media.docs.plane.so/cycles/transfer-issues.webp#hero-tr) - -
+
## Auto-schedule cycles - +
Automate the creation and management of cycles according to predefined configurations, eliminating manual setup while ensuring consistent cycle planning and team predictability. @@ -104,6 +100,7 @@ Automate the creation and management of cycles according to predefined configura ![Autoschedule cycles](https://media.docs.plane.so/cycles/auto-schedule-cycles.webp#hero-br) ### Benefits + - Maintain regular cycle rhythms automatically without manual intervention. - Keep future cycles pre-scheduled so teams can plan ahead with confidence. - Eliminate repetitive administrative work from cycle creation. @@ -113,12 +110,12 @@ Automate the creation and management of cycles according to predefined configura 1. Navigate to **Project Settings → Features → Cycles**. 2. Turn on the **Auto-schedule cycles** toggle and configure: - - Cycle Title — Set a naming convention for automatically created cycles. - - Cycle Duration — Define the length of each cycle in weeks (e.g., 1 week, 2 weeks). - - Cooldown Period — Add an optional buffer between cycles in days for planning and retrospectives. - - Cycle starts day — Choose the start date for the first auto-scheduled cycle. - - Number of future cycles — Specify how many upcoming cycles to keep pre-scheduled. - - Auto-rollover work items — Enable to automatically move incomplete work items from one cycle to the next. + - Cycle Title — Set a naming convention for automatically created cycles. + - Cycle Duration — Define the length of each cycle in weeks (e.g., 1 week, 2 weeks). + - Cooldown Period — Add an optional buffer between cycles in days for planning and retrospectives. + - Cycle starts day — Choose the start date for the first auto-scheduled cycle. + - Number of future cycles — Specify how many upcoming cycles to keep pre-scheduled. + - Auto-rollover work items — Enable to automatically move incomplete work items from one cycle to the next. Once enabled, the system automatically: @@ -135,9 +132,9 @@ Once a cycle is active and contains work items, you can monitor its progress, as ![Track cycle progress](https://media.docs.plane.so/cycles/track-cycle-progress.webp#hero) -
+
## Cycle progress charts - +
This feature provides powerful visualization tools to help you track project cycles more effectively. With real-time insights, you can see exactly how your cycle is performing against the planned progress, making it easier to stay on top of deadlines and adjust as needed. @@ -197,9 +194,9 @@ The build-up chart helps track how much work has already been completed in the c - **Trailing**\ If fewer tasks are completed than expected, the chart shows a red downward trend, with a light red fill between the ideal and actual lines, indicating the need to speed up progress. -
+
## Active cycles across projects - +
If you have multiple projects with Cycles running at the same time, you can easily track the progress of all active cycles in the **Cycles** section under the **Workspace** section in the sidebar. This gives you a quick overview of each project’s progress and helps you spot any potential issues early on. Each cycle displays its status—whether it’s ahead of schedule or falling behind—based on the burn-down and build-up metrics. @@ -214,11 +211,11 @@ You can archive completed cycles, allowing you to conceal significantly older cy You can delete a Cycle to remove it entirely. When you do, all associated analytics and progress reports will be erased. Any work items linked to that Cycle will also be automatically unlinked. -
+
## Export cycles - +
You can export cycle data to analyze sprint performance, create reports, or share progress with stakeholders outside of Plane. Exports include all work items within the cycle along with their key details. -Learn more about [custom exports](/core-concepts/export#custom-exports). \ No newline at end of file +Learn more about [custom exports](/core-concepts/export#custom-exports). diff --git a/docs/core-concepts/deploy.mdx b/docs/core-concepts/deploy.md similarity index 100% rename from docs/core-concepts/deploy.mdx rename to docs/core-concepts/deploy.md diff --git a/docs/core-concepts/drafts.mdx b/docs/core-concepts/drafts.md similarity index 99% rename from docs/core-concepts/drafts.mdx rename to docs/core-concepts/drafts.md index 007252a6..e753ad3c 100644 --- a/docs/core-concepts/drafts.mdx +++ b/docs/core-concepts/drafts.md @@ -9,7 +9,7 @@ We've all been there—clicking outside a modal or navigating away from a page, ## How drafts work -:::info +::: info Drafts remain private and won't be visible to team members until you move them to project work items. ::: diff --git a/docs/core-concepts/export.mdx b/docs/core-concepts/export.md similarity index 77% rename from docs/core-concepts/export.mdx rename to docs/core-concepts/export.md index 594651eb..034dc9ec 100644 --- a/docs/core-concepts/export.mdx +++ b/docs/core-concepts/export.md @@ -1,11 +1,8 @@ --- title: Export work items from project -sidebar_label: Export description: Export work items from Plane in CSV, Excel, or JSON formats for backup, analysis, or sharing. --- -import Tags from "@site/src/components/Tags"; - # Export data Plane allows you to export all your work items, from a single project or multiple projects, so you can access your data outside of Plane. You can export work items into CSV, Excel, or JSON formats. @@ -19,22 +16,22 @@ Plane allows you to export all your work items, from a single project or multipl ![Export data](https://media.docs.plane.so/workspaces/export-data.webp#hero) -3. **Select Project** +3. **Select Project** - Choose to export work items from all projects or a specific project using the dropdown. 4. **Choose format** - You can export work items in one of the following formats: - - CSV: A plain text file with values separated by commas. - - Excel: A formatted spreadsheet file. + You can export work items in one of the following formats: + - CSV: A plain text file with values separated by commas. + - Excel: A formatted spreadsheet file. - JSON: A lightweight, machine-readable format. -5. **Apply filters** -Narrow down your export by filtering work items based on available filters. +5. **Apply filters** + Narrow down your export by filtering work items based on available filters. -6. **Click Export** -This will package the export into a ZIP file. +6. **Click Export** + This will package the export into a ZIP file. -:::info +::: info Exporting large workspaces may take some time depending on the number of work items. ::: @@ -47,13 +44,13 @@ Exporting large workspaces may take some time depending on the number of work it Once completed, click **Download** to get your file. Use the **Refresh status** button to check for the latest updates. -:::caution +::: warning Exported files remain downloadable for a limited time (7 days). After this period, they will show as "Expired" and you'll need to create a new export. ::: -
+
## Custom exports - +
Export filtered work items, cycles, views, or modules directly from your project. Custom exports let you export exactly what you see after applying filters and display options—perfect for reports, analysis, or sharing specific data sets. @@ -74,8 +71,8 @@ You can export data from: 3. Click the ⋯ (more options) menu in the top right. 4. Select **Export**. 5. Choose your format: - - CSV: For spreadsheet applications. - - JSON: For programmatic use or data processing. + - CSV: For spreadsheet applications. + - JSON: For programmatic use or data processing. 6. Click **Continue** to download your file. -The exported file will include all visible work items based on your current filters and settings. \ No newline at end of file +The exported file will include all visible work items based on your current filters and settings. diff --git a/docs/core-concepts/inbox.mdx b/docs/core-concepts/inbox.md similarity index 92% rename from docs/core-concepts/inbox.mdx rename to docs/core-concepts/inbox.md index 109020a6..908b1f64 100644 --- a/docs/core-concepts/inbox.mdx +++ b/docs/core-concepts/inbox.md @@ -1,11 +1,8 @@ --- title: Inbox for in app notifications and work item updates -sidebar_label: Inbox description: Use Inbox to monitor task updates, filter notifications, and manage mentions. --- -import Tags from "@site/src/components/Tags"; - # Get in-app notifications The Inbox is a space for tracking and managing updates to work items you're connected with. Whether you're assigned to a work item, its creator, mentioned in a discussion, or subscribed to its updates, you'll find everything here. @@ -16,7 +13,7 @@ Located in the sidebar on the left, directly below **Home** and **Your Work**, t ![Inbox](https://media.docs.plane.so/inbox/inbox.webp#hero) -:::tip[Email notifications] +::: tip Email notifications All inbox notifications are also sent to your email by default. You can customize your email notification preferences in [Account Settings](/core-concepts/account/settings#notifications). ::: @@ -41,9 +38,9 @@ In the top-right corner of the Inbox pane, you’ll find the filters dropdown. U ![Inbox filters](https://media.docs.plane.so/inbox/inbox-filters.webp#hero) -
+
## Stacked notifications - +
We’ve introduced stacked notifications to make your Inbox even more efficient. When there are changes to the same work item, they’ll be grouped into a parent notification. Hover over the notification to see all the grouped changes without sifting through a cluttered list. diff --git a/docs/core-concepts/intake.mdx b/docs/core-concepts/intake.md similarity index 86% rename from docs/core-concepts/intake.mdx rename to docs/core-concepts/intake.md index 3322adb6..305d884c 100644 --- a/docs/core-concepts/intake.mdx +++ b/docs/core-concepts/intake.md @@ -1,6 +1,5 @@ --- title: Intake to collect and triage external work requests -sidebar_label: Intake In-app description: Use Intake feature to collect, triage, and manage external work item submissions from stakeholders, clients, and guests before adding them to your workflow. --- @@ -24,8 +23,9 @@ Users with a `Guest` role can create work items in Intake. To create a work item 1. Click on **Intake** under the project on the sidebar. 2. Click the **Add Work item** button at the top right corner. - + ![create-work item-intake](https://media.docs.plane.so/intake/create-issue-intake.webp#hero) + 3. Enter the required details and click the **Create Work item** button. ![enter-work item-details](https://media.docs.plane.so/intake/enter-issue-details.webp#hero) @@ -36,12 +36,12 @@ A `Guest` role can assign properties when creating an Intake work item. However, For a work item in the Intake, you can choose to assign the following properties: -| Property | Description | -| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Priority | Set the priority of the work item to align the expectations on how quickly the work item should be acted upon. | -| Assignees | Assign the team member who should triage or prioritize the work item. | -| Labels | Categorize work items using the labels available in the project. | -| Due date | Set when the work item needs to be prioritized or triaged by adding a due date. | +| Property | Description | +| --------- | -------------------------------------------------------------------------------------------------------------- | +| Priority | Set the priority of the work item to align the expectations on how quickly the work item should be acted upon. | +| Assignees | Assign the team member who should triage or prioritize the work item. | +| Labels | Categorize work items using the labels available in the project. | +| Due date | Set when the work item needs to be prioritized or triaged by adding a due date. | All intake work items use the Triage state, which is specific to Intake and separate from your project's state groups. When you accept a work item into your project, you'll choose which project state it should move to. @@ -54,7 +54,7 @@ When a Guest creates a work item in Intake, it is added to the `Pending` state. ![accept-intake-work item](https://media.docs.plane.so/intake/accept-intake-issue.webp#hero) 1. Open a pending work item in Intake. -2. Click the **Accept** button on the top right. This will open a modal where you can change the work item details before moving it to your project. +2. Click the **Accept** button on the top right. This will open a modal where you can change the work item details before moving it to your project. 3. Click the **Add to project** button to move the work item from **Intake** to **Work items** under the project. The work item will be visible under the **State** selected when accepting the Intake work item. ### Decline work item @@ -111,16 +111,15 @@ Next to the Filters dropdown, you can use the sort drop-down to arrange Intake w - Intake work item description has a rich text editor that allows you to format text, attach pictures, links and files, or add tables and dividers. - ![intake-description-box](https://media.docs.plane.so/intake/intake-description-box.webp#hero) + ![intake-description-box](https://media.docs.plane.so/intake/intake-description-box.webp#hero) - Intake has an activity and comments section to know the status and see feedback from users and customers. All the changes made to the work item can be tracked in real-time under the **Activity** section. - - ![intake-activity](https://media.docs.plane.so/intake/intake-activity.webp#hero) + + ![intake-activity](https://media.docs.plane.so/intake/intake-activity.webp#hero) - The **Add Comment** box has a rich text editor where you can react with emojis and mention your teammates to communicate. - - ![RTE-reactions-and-mentions](https://media.docs.plane.so/intake/RTE-reactions-and-mentions.webp#hero) + + ![RTE-reactions-and-mentions](https://media.docs.plane.so/intake/RTE-reactions-and-mentions.webp#hero) - You can review pending requests in Intake sequentially using 🔼 or 🔽 button. - - ![intake-navigate](https://media.docs.plane.so/intake/intake-navigate.webp#hero) + ![intake-navigate](https://media.docs.plane.so/intake/intake-navigate.webp#hero) diff --git a/docs/core-concepts/issues.mdx b/docs/core-concepts/issues.md similarity index 99% rename from docs/core-concepts/issues.mdx rename to docs/core-concepts/issues.md index acbd4589..081576bb 100644 --- a/docs/core-concepts/issues.mdx +++ b/docs/core-concepts/issues.md @@ -2,6 +2,8 @@ title: Work items --- +# Work items + Inside a work item, you can add as many details as you like to get your work done. Here are five critical things to kick-start: 1. **Work item description**: An enhanced markdown editor inside work items to write as much detail you want. Attachments can be added and dragged around with a simple click, no need to save anything. Everything is auto-saved for you. diff --git a/docs/core-concepts/issues/bulk-ops.mdx b/docs/core-concepts/issues/bulk-ops.md similarity index 88% rename from docs/core-concepts/issues/bulk-ops.mdx rename to docs/core-concepts/issues/bulk-ops.md index dee6855c..e8627da3 100644 --- a/docs/core-concepts/issues/bulk-ops.mdx +++ b/docs/core-concepts/issues/bulk-ops.md @@ -1,16 +1,11 @@ --- title: Bulk update multiple work items to save time -sidebar_label: Bulk Ops -hide_title: true description: Learn how to save time by updating multiple work items at once in Plane. Change states, priorities, assignees, dates, and more with efficient bulk operations. --- -import Tags from "@site/src/components/Tags"; +# Bulk update multiple work items to save time -
-

Update multiple work items at once

- -
+ Working with multiple work items at once can save you significant time. diff --git a/docs/core-concepts/issues/display-options.mdx b/docs/core-concepts/issues/display-options.md similarity index 98% rename from docs/core-concepts/issues/display-options.mdx rename to docs/core-concepts/issues/display-options.md index 3c1be316..94f788cd 100644 --- a/docs/core-concepts/issues/display-options.mdx +++ b/docs/core-concepts/issues/display-options.md @@ -1,6 +1,5 @@ --- title: Display options for viewing work items -sidebar_label: Display options description: Customize display by showing specific properties, grouping by attributes, subgrouping, and ordering items to create the perfect project view. --- diff --git a/docs/core-concepts/issues/epics.mdx b/docs/core-concepts/issues/epics.md similarity index 93% rename from docs/core-concepts/issues/epics.mdx rename to docs/core-concepts/issues/epics.md index 9510b225..89c78792 100644 --- a/docs/core-concepts/issues/epics.mdx +++ b/docs/core-concepts/issues/epics.md @@ -1,15 +1,13 @@ --- title: Organize related work items with Epics -sidebar_label: Epics -hide_title: true description: Create and manage Epics in Plane to organize related work items, track progress across multiple tasks, and align your team around larger objectives. --- -import Tags from "@site/src/components/Tags"; +# Organize related work items with Epics -
+
# Organize and track your work items with Epics - +
Epics help you group related tasks into a larger work item, providing a hierarchical structure for managing complex projects. This feature is ideal for breaking down major objectives into smaller, manageable pieces while keeping everything organized within a project. @@ -20,7 +18,7 @@ Use Epics when you need to: - Track progress and dependencies across multiple related work items. - Improve visibility into how individual tasks contribute to broader goals. -:::tip +::: tip Use an Epic for larger bodies of work that span multiple cycles and extend across different modules. ::: @@ -76,7 +74,7 @@ Once created, all Epics can be accessed from the **Epics** section under your pr ![Epics screen](https://media.docs.plane.so/epics/epics-screen.webp#hero) -:::tip[Sort and filter Epics] +::: tip Sort and filter Epics To help you manage Epics effectively, Plane offers flexible sorting and filtering options. ::: @@ -88,22 +86,24 @@ Clicking on an Epic opens a detailed view where you can quickly view and manage You can add existing work items to the Epic or create new ones directly from the Epic. -:::caution[important] +::: warning important A work item can belong to only one Epic. This ensures clarity in organization and avoids overlapping tasks across multiple Epics. ::: -
+
## Duplicate Epics - +
When you need to create similar Epics or replicate an Epic's structure across projects, Plane allows you to duplicate existing Epics either within the same project or to different projects in your workspace. To duplicate an Epic, click the ••• menu in the Epic header and select Make a copy. You'll see two options: ### Copy in same project + Creates an identical Epic within the current project with all the same properties, description, and custom field values. The new Epic gets a fresh identifier and maintains the same title, description state, priority, start and due dates. ### Copy in different project + Duplicates the Epic to another project in your workspace that has Epics enabled. This is particularly useful when you have similar large-scale objectives across multiple projects or want to replicate Epics between projects. The copied Epic adapts to the destination project's identifier format and default state. ## Work items list and relations @@ -146,14 +146,15 @@ Share epic status using updates. This helps keep your team informed and create a ## Properties, comments, and activity - View and update the Epic’s key properties like assignee, priority, timelines, and other custom properties. - + ![Epic properties](https://media.docs.plane.so/epics/epic-properties.webp#hero-tr) - Add comments to collaborate with your team and to discuss progress, blockers, or updates. - + ![Epic comments](https://media.docs.plane.so/epics/epic-comments.webp#hero-tr) + - Access the activity log for a history of changes made to the Epic, ensuring transparency and accountability. - + ![Epic activity](https://media.docs.plane.so/epics/epic-activity.webp#hero-tr) ## Link Work items to Epics @@ -162,9 +163,9 @@ For each work item, you can assign or change a work item's Epic directly in the ![Link Work items to Epics](https://media.docs.plane.so/epics/link-issue-epic.webp#hero) -
+
## Convert Epics to Work Items - +
Sometimes you realize that what you thought was a big, complex epic is actually something smaller and more focused. That's where converting an epic to a work item comes in handy. This feature lets you transform an epic into a regular work item, making it easier to track and manage as a single deliverable rather than a collection of tasks. diff --git a/docs/core-concepts/issues/estimates.mdx b/docs/core-concepts/issues/estimates.md similarity index 96% rename from docs/core-concepts/issues/estimates.mdx rename to docs/core-concepts/issues/estimates.md index fbb8d971..886d8e0e 100644 --- a/docs/core-concepts/issues/estimates.mdx +++ b/docs/core-concepts/issues/estimates.md @@ -1,11 +1,8 @@ --- title: Task estimates using points, time or categories -sidebar_label: Estimates description: Set up and customize work item estimation using points, categories, or time to quantify task complexity and effort. --- -import Tags from "@site/src/components/Tags"; - # Estimate time and effort for work items Estimates in Plane help quantify the time and effort required for each work item in your project. Whether using a simple number scale or categories like T-shirt sizes, estimates provide a clearer idea of the work involved. They act as a proxy for complexity, helping teams gauge task scale quickly without detailed breakdowns. Estimates also aid in prioritizing, resource allocation, managing workload expectations, and identifying potential bottlenecks. @@ -30,10 +27,10 @@ Getting started with estimates in your project is quick and easy. Here’s how y 4. You can either choose a ready-made template and tweak it to fit your needs or create your own custom estimate system from scratch. 5. When you are done, turn on the **Enable estimates for my project** toggle. - + ![Enable estimate type](https://media.docs.plane.so/projects/enable-estimate-toggle.webp#hero-tr) -:::info +::: info Free plan projects support up to 6 custom estimate values. [Upgrade to Pro](https://plane.so/pricing) to add additional estimate values for Points, Categories, and Time-based estimates. ::: @@ -70,9 +67,9 @@ If you prefer to estimate effort by text categories rather than numbers, this is This system provides a high-level estimate of effort based on intuitive categories, which is especially helpful in teams where relative effort matters more than precise numeric estimates. -
+
### Time - +
This system uses time durations to estimate how long work items will take to complete. It's ideal for teams that need to plan based on actual time investments or track billable hours. Plane offers two ways to set up your time estimates: @@ -99,6 +96,6 @@ To update your estimate system, follow these steps: 3. Select **Change estimate type**. - If a different type of estimate system suits your project better, you can switch between system types here. -:::note +::: info In earlier versions of Plane, we allowed multiple estimate systems within a single project, giving you the ability to switch between them. Based on user feedback, we’ve simplified this process. Now, each project can only have one active estimate system, and older, inactive systems have been archived for better clarity and ease of use. ::: diff --git a/docs/core-concepts/issues/issue-types.mdx b/docs/core-concepts/issues/issue-types.md similarity index 93% rename from docs/core-concepts/issues/issue-types.mdx rename to docs/core-concepts/issues/issue-types.md index 5e0263b9..ba9e1370 100644 --- a/docs/core-concepts/issues/issue-types.mdx +++ b/docs/core-concepts/issues/issue-types.md @@ -1,15 +1,11 @@ --- title: Work Item Types -hide_title: true description: Create specialized work item types in Plane with custom properties, icons, and colors for different teams and workflows to streamline project management. --- -import Tags from "@site/src/components/Tags"; +# Work Item Types -
-

Add, configure and control your work item types

- -
+ Work item Types unlock a whole new way of adding, editing, and moving work forward in Plane. The default work item type called `Issue` is great for starting with Plane, but as you advance in your project management journey, you find the need for names and properties unique to the type of work you are doing. @@ -17,7 +13,7 @@ For example, your Marketing team may need a work item type called `Content` with Work item Types make these and infinite other use cases possible. -
+
## Create work item types -:::warning +::: warning The Work item Types feature cannot be disabled once turned on for a Plane project. ::: @@ -43,14 +39,17 @@ The Work item Types feature cannot be disabled once turned on for a Plane projec 3. Click the **Enable** button to start creating work item types for your project. ![Enable work item type](https://media.docs.plane.so/issues/enable-issue-types.webp#hero) + 4. The default type is called `Issue`. Click the **Add Work item Type** button to create a new work item type. - + ![Add work item type](https://media.docs.plane.so/issues/add-issue-type.webp#hero-tr) + 5. In the **Create work item type** modal, type name, and description, and choose a background color and an icon to represent the work item type. Click the **Create work item type** button. - + ![Create work item type](https://media.docs.plane.so/issues/create-issue-type.webp#hero) + 6. Switch on the toggle button to allow users to select the work item type when creating work items and sub-work items. - + ![Activate work item type](https://media.docs.plane.so/issues/activate-issue-type.webp#hero-tr) ### Examples of work item types @@ -80,15 +79,17 @@ The Work item Types feature cannot be disabled once turned on for a Plane projec Adding custom properties to the default work item type Issue and other newly created work item types is possible. 1. Under the work item type, click **Add New Property** to create custom fields. - + ![Add new property](https://media.docs.plane.so/issues/add-new-property.webp#hero) + 2. Specify values for **Title**, **Description** and **Property type** of the new property. - + ![Property details](https://media.docs.plane.so/issues/property-details.webp#hero) + 3. Select the **Mandatory property** checkbox if it's a required field. Select the **Active** checkbox to make the property visible in work items. 4. Click **Create** to add the property to the work item type. -:::warning +::: warning Before you delete properties, switch off the **Active** toggle button to avoid data loss. ::: @@ -123,7 +124,7 @@ Once the project Admin sets up the work item types any project member can use th - In the **Create new work item** modal, the user can choose the desired work item type from the list at the top left corner. By default, the work item type `Issue` is selected displaying both system-defined and custom properties. - Changing the work item type will update the modal to display the relevant properties for that type. - The system ensures that all properties marked as mandatory are filled before creating the work item. - + ![Use work item types](https://media.docs.plane.so/issues/use-issue-type.webp#hero-tl) When viewing work items, the work item type is displayed with an icon near the title for easy identification. Any custom properties added will also appear in the list of properties, and changes to these values are tracked in the work item's activity trail. @@ -134,11 +135,13 @@ You can easily switch the work item's type at any time. Just follow these steps: 1. Open the work item you’d like to update. 2. Hover over to the right of the work item ID and click **Switch work item type**. Alternatively, you can click **Edit** from the work item's ellipsis (•••) menu to open the **Update work item** modal directly. - + ![Switch work item type](https://media.docs.plane.so/issues/switch-issue-type.webp#hero-tl) + 3. Choose the new work item type from the dropdown next to your project name. - + ![Update work item type](https://media.docs.plane.so/issues/update-issue-type.webp#hero-tl) + 4. Click **Update** to save your changes. ## Bulk update work item types @@ -148,8 +151,9 @@ You can change the work item types for several work items at once. Here’s how: 1. Switch to the **Spreadsheet** layout in the Work items page. 2. Select the work items you want to update. 3. At the bottom of your screen, open the **Work item type** dropdown and pick the new work item type. - + ![Bulk update work item types](https://media.docs.plane.so/issues/bulk-update-issue-types.webp#hero-br) + 4. Click **Update** to apply the changes. ## Disable work item types @@ -158,5 +162,5 @@ You can temporarily pause the creation of new work items for a specific work ite 1. Head to the **Work item types** screen in your project's settings. 2. Toggle off the switch next to the work item type you want to disable. - + ![Disable work item types](https://media.docs.plane.so/issues/disable-issue-types.webp#hero-br) diff --git a/docs/core-concepts/issues/labels.mdx b/docs/core-concepts/issues/labels.md similarity index 98% rename from docs/core-concepts/issues/labels.mdx rename to docs/core-concepts/issues/labels.md index c554bead..dbbf90e4 100644 --- a/docs/core-concepts/issues/labels.mdx +++ b/docs/core-concepts/issues/labels.md @@ -1,6 +1,5 @@ --- title: Categorize and tag project tasks -sidebar_label: Labels description: Use labels to categorize work items, simplify filtering, and organize tasks by component, feature, or custom attributes beyond standard properties. --- @@ -39,6 +38,6 @@ You can also create labels directly from the work item detail page, making it su 1. Ensure no active work items are using the label. 2. Click the **x** icon on the label to delete it. -:::caution +::: warning Removing a label from your project will dissociate it from any work items that had it assigned. ::: diff --git a/docs/core-concepts/issues/layouts.mdx b/docs/core-concepts/issues/layouts.md similarity index 80% rename from docs/core-concepts/issues/layouts.mdx rename to docs/core-concepts/issues/layouts.md index e41d0507..003135bc 100644 --- a/docs/core-concepts/issues/layouts.mdx +++ b/docs/core-concepts/issues/layouts.md @@ -1,6 +1,5 @@ --- title: Project layouts -sidebar_label: Layouts toc_max_heading_level: 2 description: Use layouts to visualize, organize, and manage your work items based on your team's workflow preferences. --- @@ -19,7 +18,7 @@ The List layout is a straightforward, text-based view ideal for scanning and org - **Hierarchy**: View parent-child work item relationships. - **Drag and Drop**: Rearrange tasks directly within the list. -
+
@@ -42,7 +41,7 @@ The Board layout resembles a Kanban board, with work items represented as cards - **Subgroups**: Subgroup tasks to add finer categorizations. - **Status updates**: Drag and drop cards between columns to reflect progress. -
+
@@ -64,7 +63,7 @@ The Calendar layout maps out your work items by their due dates. It's perfect fo - **Date-based planning**: Displays work items based on their end dates. - **Drag and Drop**: Adjust due dates by moving tasks across the calendar. -
+
@@ -86,7 +85,7 @@ The Table layout offers a spreadsheet-like interface, great for bulk editing and - **Keyboard navigation**: Quickly update task properties. - **Bulk edits**: Modify multiple rows at once. -
+
@@ -109,7 +108,7 @@ The Timeline layout, similar to a Gantt chart, shows your project's progress ove - **Critical path visualization**: Identify crucial tasks that could impact deadlines. - **Dependencies**: Link tasks to define order and precedence. See [Dependencies in Timeline](/core-concepts/issues/timeline-dependency) for more info. -
+
diff --git a/docs/core-concepts/issues/overview.mdx b/docs/core-concepts/issues/overview.md similarity index 94% rename from docs/core-concepts/issues/overview.mdx rename to docs/core-concepts/issues/overview.md index 151dd26c..ba780b83 100644 --- a/docs/core-concepts/issues/overview.mdx +++ b/docs/core-concepts/issues/overview.md @@ -3,8 +3,6 @@ title: Manage work items description: Create, manage and organize work items in Plane with sub-tasks, relations, file attachments, automations, and activity tracking for efficient project management --- -import Tags from "@site/src/components/Tags"; - # Create, organize, and track project tasks In Plane, a work item serves as the fundamental unit of work. They represent the tasks you need to accomplish to make progress Think of work items as the to-dos of your project management flow—assignable, trackable, and actionable. @@ -21,7 +19,7 @@ In the **Create new work item** modal, you can define all the attributes of the When you create a work item, Plane assigns it a sequential identifier based on your project (e.g., PROJ-1). -:::tip +::: tip Plane automatically saves your half-written work items so you can access them later in [Drafts](/core-concepts/drafts), in case you're not ready to finalize them or if you accidentally close the modal. ::: @@ -47,18 +45,20 @@ Break down larger tasks into smaller, manageable components by creating sub-work ![sub-work items](https://media.docs.plane.so/issues/issue-sub-issues.webp#hero) -
+
## Duplicate work items - +
When you need to create similar work items or replicate a work item's structure and properties, Plane lets you duplicate existing work items either within the same project or across different projects. To duplicate a work item, click the **•••** menu in the work item header and select **Make a copy**. You'll see two options: ### Copy in same project + Creates an identical work item within the current project with all the same properties, description, and settings. The new work item gets a fresh identifier and maintains the same title, description, state, and priority attributes. ### Copy in different project + Duplicates the work item to another project in your workspace. This is particularly useful when you have similar tasks across multiple projects or want to move work items between teams. The copied work item adapts to the destination project's identifier format and default state. Duplicating work items is perfect for replicating recurring tasks, or moving work between project phases while maintaining all the essential context and settings. @@ -126,21 +126,21 @@ Plane allows you to upload different file types directly to the work item. Use t - **Other** CSS, JavaScript, JSON, XML, CSV, SQL -
+
## Link pages to work items - +
Connect relevant project pages and wiki documentation to your work items to provide instant access to related context, specifications, or reference materials. -1. Use the **Link pages** button in the work item to open the page linking modal. -2. You can search through your project pages and use the **Show Wiki pages** toggle to include wiki documentation in your search results. +1. Use the **Link pages** button in the work item to open the page linking modal. +2. You can search through your project pages and use the **Show Wiki pages** toggle to include wiki documentation in your search results. 3. Select multiple pages by checking the boxes next to the pages you want to link, then click **Confirm** to establish the connections. Linked pages appear directly in the work item, making it easy for team members to access relevant documentation without leaving the context of their current task. -
+
## Convert work items to epics - +
Sometimes a work item grows in scope and complexity, and you realize it's actually big enough to be its own epic with multiple sub-tasks. This feature promotes a regular work item into an epic, giving you the structure and flexibility to break it down into smaller, manageable pieces. @@ -152,7 +152,8 @@ From any work item, find the **Convert to Epic** option. The system will ask you You can also [convert Epics to Work Items](/core-concepts/issues/epics#convert-epics-to-work-items). ## Comment on work items -Collaborate on work items through comments. Tag team members, format text, and track all changes in the activity log. See [Work item comments](/communication-and-collaboration/comments-and-activity) for details. + +Collaborate on work items through comments. Tag team members, format text, and track all changes in the activity log. See [Work item comments](/communication-and-collaboration/comments-and-activity) for details. ![Work item activity and comments](https://media.docs.plane.so/issues/issue-activity-comments.webp#hero) @@ -194,21 +195,21 @@ Within your project, you can set up automations to perform the following tasks: - **Auto-archive closed work items** You can set up an automation to archive work items that are marked as closed. This helps keep your active project board clean and organized, while still retaining closed work items for reference. You can customize the time period after which closed work items will automatically be moved to the archive. - + ![Project archive automation](https://media.docs.plane.so/projects/auto-archive-closed-issues.webp#hero) - **Auto-close work items** You can also automate the closing of work items that are still open after a certain period of time. This is useful for ensuring that work items don’t remain open unnecessarily, helping to keep your project board organized and up to date. The automation will move all open work items matching the time period to a selected closed state. - + ![Project close automation](https://media.docs.plane.so/projects/auto-close-issues.webp#hero) -
+
## Export work items - +
You can export your work items to access and analyze your data outside of Plane. Exports support CSV and JSON formats, and you can filter exactly which work items to include. This is useful when you need to create reports, perform external analysis, or share data with stakeholders who don't use Plane. -Learn more about [custom exports](/core-concepts/export#custom-exports). \ No newline at end of file +Learn more about [custom exports](/core-concepts/export#custom-exports). diff --git a/docs/core-concepts/issues/properties.mdx b/docs/core-concepts/issues/properties.md similarity index 100% rename from docs/core-concepts/issues/properties.mdx rename to docs/core-concepts/issues/properties.md diff --git a/docs/core-concepts/issues/states.mdx b/docs/core-concepts/issues/states.md similarity index 100% rename from docs/core-concepts/issues/states.mdx rename to docs/core-concepts/issues/states.md diff --git a/docs/core-concepts/issues/time-tracking.mdx b/docs/core-concepts/issues/time-tracking.md similarity index 85% rename from docs/core-concepts/issues/time-tracking.mdx rename to docs/core-concepts/issues/time-tracking.md index cb33c37e..6f0f363b 100644 --- a/docs/core-concepts/issues/time-tracking.mdx +++ b/docs/core-concepts/issues/time-tracking.md @@ -1,16 +1,11 @@ --- title: Time tracking to log hours on tasks -sidebar_label: Time Tracking -hide_title: true description: Log hours on work items, view timesheet records, and download comprehensive reports for project time management. --- -import Tags from "@site/src/components/Tags"; +# Time tracking to log hours on tasks -
-

Log time on work items

- -
+ > **Role**: Project Admins @@ -20,7 +15,7 @@ Log time per work item, record time by members and guests per work item, and dow Project members can easily log the time they spend working on specific work items directly within the work item details page. Each time entry can include details such as the amount of time spent and optional notes to provide context. Plane also offers comprehensive reports that aggregate time-tracking data across different projects helping managers analyze productivity and ensure successful project delivery. -
+
@@ -38,11 +33,11 @@ Project members can easily log the time they spend working on specific work item To turn on the Time Tracking feature on your project, follow the steps below: 1. Click the **…** icon next to your project name on the sidebar and click **Settings**. - + ![Project settings](https://media.docs.plane.so/time-tracking/project-settings.webp#hero-bl) 2. Select **Features** on the right pane. Turn on the **Time Tracking** toggle button. - + ![Enable time tracking](https://media.docs.plane.so/time-tracking/enable-time-tracking.webp#hero) The Time Tracking feature is now turned on for your project. @@ -53,10 +48,11 @@ To track time on your work items, follow the steps below: 1. Under your project, open the work item on which you want to log time. 2. Click the **+ Log work** button. Enter the hours, minutes, and description. Click **Save**. - + ![Log work](https://media.docs.plane.so/time-tracking/log-work.webp#hero-br) + 3. The **Tracked time** property will display the logged time. Every time you log work to the work item, this property is updated. - + ![Worklog created](https://media.docs.plane.so/time-tracking/worklog-created.webp#hero) ## View worklogs @@ -64,11 +60,13 @@ To track time on your work items, follow the steps below: To view timesheet records and download reports, follow the steps below: 1. Click the **∨** icon next to your workspace name on the sidebar and click **Workspace Settings**. - + ![Workspace settings](https://media.docs.plane.so/workspaces/workspace-settings.webp#hero-tl) + 2. Select **Worklogs** on the right pane to view the timesheet records. - + ![View worklogs](https://media.docs.plane.so/time-tracking/view-worklogs.webp#hero) + 3. You can filter the records by **Users**, **Projects**, **Start date** and **End date**. It also allows you to download the timesheet reports as Excel or CSV files. - + ![Filter and download worklogs](https://media.docs.plane.so/time-tracking/filter-and-download-worklogs.webp#hero) diff --git a/docs/core-concepts/issues/timeline-dependency.mdx b/docs/core-concepts/issues/timeline-dependency.md similarity index 90% rename from docs/core-concepts/issues/timeline-dependency.mdx rename to docs/core-concepts/issues/timeline-dependency.md index 555b2ee6..c9872e6c 100644 --- a/docs/core-concepts/issues/timeline-dependency.mdx +++ b/docs/core-concepts/issues/timeline-dependency.md @@ -1,22 +1,17 @@ --- title: Task dependencies -sidebar_label: Timeline dependencies -hide_title: true description: Create and manage visual task dependencies in Plane with timeline connectors. --- -import Tags from "@site/src/components/Tags"; +# Task dependencies -
-

Set up task dependencies in Timeline layout

- -
+ With dependencies, managing connected tasks has never been easier. This feature provides a clear, high-level view of task relationships, allowing you to quickly see which tasks depend on each other. It helps you plan tasks more efficiently, optimize resource allocation, and stay on top of critical tasks. By tracking dependencies, you can spot bottlenecks, prevent delays, and keep everything on track. ## Timeline connectors -:::info +::: info You need to set the Start date and Due date on work items for dependencies to appear in the Timeline layout. ::: @@ -24,7 +19,7 @@ In the Timeline layout, you can easily set up dependencies by dragging connector ![Timeline dependencies](https://media.docs.plane.so/issues/timeline-dependencies.webp#hero) -:::tip +::: tip When you drag tasks along the timeline, dependent tasks will adjust automatically to stay in sync. ::: diff --git a/docs/core-concepts/issues/visualise_filter.mdx b/docs/core-concepts/issues/visualise_filter.md similarity index 53% rename from docs/core-concepts/issues/visualise_filter.mdx rename to docs/core-concepts/issues/visualise_filter.md index dc44aa36..a62f6ac3 100644 --- a/docs/core-concepts/issues/visualise_filter.mdx +++ b/docs/core-concepts/issues/visualise_filter.md @@ -1,6 +1,5 @@ --- title: Filter work items -sidebar_label: Work Item Filters description: Learn how to filter work items in Plane. --- @@ -20,10 +19,10 @@ Filters live in their own dedicated row below the main toolbar, making them alwa To start filtering your work items: -1. Click the Filters icon button to open a dropdown with all the fields. +1. Click the Filters icon button to open a dropdown with all the fields. 2. Select any field (State, Priority, Assignee, etc.) to add a filter condition. 3. Choose your operator from the dropdown (like "is", "is not", "after", etc.). -4. Select one or more values you want to filter the field by. +4. Select one or more values you want to filter the field by. 5. Your work items update instantly to match your criteria. ### Build complex filters @@ -31,15 +30,18 @@ To start filtering your work items: You can combine multiple filters to create powerful queries: **Find urgent items for your team:** + - Set **Priority** → **is** → `High` - Add **Assignee** → **in** → [Select team members] - Add **State** → **is not** → `Done` **Track overdue work:** + - Set **Target date** → **before** → [Select date] - Add **State group** → **is not** → `Completed` **Review items without assignments:** + - Set **Assignee** → is → [Leave empty] - Add State → in → [Backlog, To Do] @@ -48,33 +50,36 @@ You can combine multiple filters to create powerful queries: Date filters are particularly powerful for project management: **This week's deliverables:** + - Set **Target date** → **between** → [[Select date range] **Items starting soon:** + - Set **Start Date** → **after or on** → [Select date] - Add **Start Date** → **before or on** → [Select date] **Overdue items:** + - Set **Target date** → **before** → [Select date] - Add **State group** → **is not** → [Completed] ## Manage your filters - **Clear specific filters:** -Click the **X** next to any filter condition to remove just that filter. + Click the **X** next to any filter condition to remove just that filter. - **Clear all filters:** -Use the **Clear all** button to start fresh. + Use the **Clear all** button to start fresh. - **Save your view:** -Once you've built the perfect filter combination, use **Save view** to preserve your configuration as a custom view for easy access in the future. Views allow you to quickly switch between different perspectives, such as a high-priority tasks dashboard or a specific team’s workload. See [Views](/core-concepts/views) for more details. + Once you've built the perfect filter combination, use **Save view** to preserve your configuration as a custom view for easy access in the future. Views allow you to quickly switch between different perspectives, such as a high-priority tasks dashboard or a specific team’s workload. See [Views](/core-concepts/views) for more details. ## Filter operators reference Each field supports different operators to give you precise control over your filtering. -:::info[Operator availability] -**Free plan** +::: info Operator availability +**Free plan** You get essential filtering with the `is` operator, plus `between` for date fields. This covers the most common filtering needs. **Paid plans** @@ -85,132 +90,133 @@ Unlock advanced filtering with additional operators including `is not`, `is not Filter by custom work item types, such as Bug, Feature, or Task. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one type | Show only work items with type *Bug* | -| `is any of` | Matches any of several types | Bugs or Tasks only | -| `is not` | Excludes one type | Everything except Bug | -| `is not any of` | Excludes several types | Not Bugs or Tasks | +| Operator | Description | Use case | +| --------------- | ---------------------------- | ------------------------------------ | +| `is` | Exactly matches one type | Show only work items with type _Bug_ | +| `is any of` | Matches any of several types | Bugs or Tasks only | +| `is not` | Excludes one type | Everything except Bug | +| `is not any of` | Excludes several types | Not Bugs or Tasks | ### State View work items based on their current state, such as Todo, In Progress, or Done. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one state | Only items In Progress | -| `is any of` | Matches any of several states | Todo or In Progress | -| `is not` | Excludes one state | Everything except Done | -| `is not any of` | Excludes several states | Not Done or Cancelled | +| Operator | Description | Use case | +| --------------- | ----------------------------- | ---------------------- | +| `is` | Exactly matches one state | Only items In Progress | +| `is any of` | Matches any of several states | Todo or In Progress | +| `is not` | Excludes one state | Everything except Done | +| `is not any of` | Excludes several states | Not Done or Cancelled | ### State Group View all, active or backlog work items. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one group | Show only Started work items | -| `is any of` | Matches any of several groups | Backlog or Unstarted | -| `is not` | Excludes one group | Everything except Backlog | -| `is not any of` | Excludes several groups | Not Backlog or Cancelled | +| Operator | Description | Use case | +| --------------- | ----------------------------- | ---------------------------- | +| `is` | Exactly matches one group | Show only Started work items | +| `is any of` | Matches any of several groups | Backlog or Unstarted | +| `is not` | Excludes one group | Everything except Backlog | +| `is not any of` | Excludes several groups | Not Backlog or Cancelled | ### Assignees Focus on work items assigned to specific team members to track workloads or identify pending tasks. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one person | Find work assigned to Sarah | -| `is any of` | Matches any of multiple people | Show work for the frontend team | -| `is not` | Excludes one person | Hide items assigned to John | -| `is not any of` | Excludes multiple people | Not assigned to John or Sarah | +| Operator | Description | Use case | +| --------------- | ------------------------------ | ------------------------------- | +| `is` | Exactly matches one person | Find work assigned to Sarah | +| `is any of` | Matches any of multiple people | Show work for the frontend team | +| `is not` | Excludes one person | Hide items assigned to John | +| `is not any of` | Excludes multiple people | Not assigned to John or Sarah | ### Priority Filter work items by their priority level (e.g., Urgent, High, Medium, Low) to focus on the most critical tasks. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one priority | Only high priority items | -| `is any of` | Matches any of several priorities | High or medium priority | -| `is not` | Excludes one priority | Everything except low priority | -| `is not any of` | Excludes several priorities | Not low or none priority | +| Operator | Description | Use case | +| --------------- | --------------------------------- | ------------------------------ | +| `is` | Exactly matches one priority | Only high priority items | +| `is any of` | Matches any of several priorities | High or medium priority | +| `is not` | Excludes one priority | Everything except low priority | +| `is not any of` | Excludes several priorities | Not low or none priority | ### Mentions Filter tasks where you or another team member has been mentioned to ensure no critical tasks are missed. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one person | Items mentioning Sarah | -| `is any of` | Matches any of multiple people | Mentioning team leads | -| `is not` | Excludes one person | Not mentioning John | -| `is not any of` | Excludes multiple people | Not mentioning John or Sarah | +| Operator | Description | Use case | +| --------------- | ------------------------------ | ---------------------------- | +| `is` | Exactly matches one person | Items mentioning Sarah | +| `is any of` | Matches any of multiple people | Mentioning team leads | +| `is not` | Excludes one person | Not mentioning John | +| `is not any of` | Excludes multiple people | Not mentioning John or Sarah | ### Label Filter work items based on custom tags, such as "Frontend", or "Marketing". -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exact label match | Label exactly "bug" | -| `is any of` | Matches any of the Labels| frontend or backend | -| `is not` | Not exact label match | Label not exactly "bug" | -| `is not any of` | Excludes several labels | Not frontend or backend | +| Operator | Description | Use case | +| --------------- | ------------------------- | ----------------------- | +| `is` | Exact label match | Label exactly "bug" | +| `is any of` | Matches any of the Labels | frontend or backend | +| `is not` | Not exact label match | Label not exactly "bug" | +| `is not any of` | Excludes several labels | Not frontend or backend | ### Cycle View work items tied to specific cycles to monitor progress within a timeframe. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly this cycle | Items in Sprint 23 | -| `is any of` | Any of these cycles | In Sprint 23 or 24 | -| `is not` | Not this specific cycle | Not in Sprint 23 | +| Operator | Description | Use case | +| --------------- | -------------------------- | ---------------------- | +| `is` | Exactly this cycle | Items in Sprint 23 | +| `is any of` | Any of these cycles | In Sprint 23 or 24 | +| `is not` | Not this specific cycle | Not in Sprint 23 | | `is not any of` | Not in any of these cycles | Not in Sprint 23 or 24 | ### Module Filter work items by their associated module to analyze related tasks together. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly this module | Items in Authentication module | -| `is any of` | Any of these modules | In API development or Data management modules | -| `is not` | Not this specific module | Not in Authentication module | -| `is not any of` | Not in any of these modules | Not in API or Data management | +| Operator | Description | Use case | +| --------------- | --------------------------- | --------------------------------------------- | +| `is` | Exactly this module | Items in Authentication module | +| `is any of` | Any of these modules | In API development or Data management modules | +| `is not` | Not this specific module | Not in Authentication module | +| `is not any of` | Not in any of these modules | Not in API or Data management | ### Start date and Target date Filter work items by start dates to view tasks that are planned or already in progress, and by target dates to track upcoming deadlines or overdue tasks. For even more flexibility, you can specify a custom date range to focus on a specific timeframe. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly this date | Items due today | -| `is not` | Not this specific date | Not due today | -| `before` | Earlier than this date | Due before Monday | -| `not before` | This date or later | Not due before Monday (due Monday or later) | -| `before or on` | This date or earlier | Due Monday or earlier | -| `not before or on` | Later than this date | Not due Monday or earlier (due after Monday) | -| `after` | Later than this date | Due after Friday | -| `not after` | This date or earlier | Not due after Friday (due Friday or earlier) | -| `after or on` | This date or later | Due Friday or later | -| `not after or on` | Earlier than this date | Not due Friday or later (due before Friday) | -| `between` | Within date range | Due this week | -| `not between` | Outside date range | Not due this week | +| Operator | Description | Use case | +| ------------------ | ---------------------- | -------------------------------------------- | +| `is` | Exactly this date | Items due today | +| `is not` | Not this specific date | Not due today | +| `before` | Earlier than this date | Due before Monday | +| `not before` | This date or later | Not due before Monday (due Monday or later) | +| `before or on` | This date or earlier | Due Monday or earlier | +| `not before or on` | Later than this date | Not due Monday or earlier (due after Monday) | +| `after` | Later than this date | Due after Friday | +| `not after` | This date or earlier | Not due after Friday (due Friday or earlier) | +| `after or on` | This date or later | Due Friday or later | +| `not after or on` | Earlier than this date | Not due Friday or later (due before Friday) | +| `between` | Within date range | Due this week | +| `not between` | Outside date range | Not due this week | ### Created by Identify work items created by specific individuals. -| Operator | Description | Use case | -|----------|-------------|----------| -| `is` | Exactly matches one person | Items created by Sarah | -| `is any of` | Matches any of multiple people | Show work for the frontend team | -| `is not` | Excludes one person | Not created by John | -| `is not any of` | Excludes multiple people | Not created by John or Sarah | +| Operator | Description | Use case | +| --------------- | ------------------------------ | ------------------------------- | +| `is` | Exactly matches one person | Items created by Sarah | +| `is any of` | Matches any of multiple people | Show work for the frontend team | +| `is not` | Excludes one person | Not created by John | +| `is not any of` | Excludes multiple people | Not created by John or Sarah | ### Custom properties + Filter work items by any custom properties defined for each work item type in your project. The available operators depend on the property type. **Text properties** @@ -237,7 +243,7 @@ Filter work items by any custom properties defined for each work item type in yo | `between` | Within numeric range | Estimated hours between 5 and 10 | | `not between` | Outside numeric range | Priority score not between 20 and 40 | -**Dropdown properties** +**Dropdown properties** | Operator | Description | Use case | |----------|-------------|----------| | `is` | Exactly this option | Severity is Critical | diff --git a/docs/core-concepts/modules.mdx b/docs/core-concepts/modules.md similarity index 95% rename from docs/core-concepts/modules.mdx rename to docs/core-concepts/modules.md index 97f74b33..6227b29a 100644 --- a/docs/core-concepts/modules.mdx +++ b/docs/core-concepts/modules.md @@ -1,10 +1,7 @@ --- title: Organize project features with Modules -sidebar_label: Modules description: Use Modules to organize work items, track feature development, and break down projects into manageable components with progress tracking and multiple layouts. --- -import Tags from "@site/src/components/Tags"; - # Break your project down into Modules @@ -24,7 +21,7 @@ To create a new Module: ![Create module](https://media.docs.plane.so/modules/create-module.webp#hero) -:::info +::: info You can add Members to the Module irrespective of whether they are the assignees in the work items present in the Module. ::: @@ -33,11 +30,11 @@ You can add Members to the Module irrespective of whether they are the assignees Once your Module is created, you can populate it with work items: - Add new or existing work items directly from the Module page. - + ![Add work items to module](https://media.docs.plane.so/modules/add-issues-to-module.webp#hero) - Assign multiple Modules to a work item from its properties. For instance, a work item can belong to both a Feature module and a Release module simultaneously. - + ![Work item module property](https://media.docs.plane.so/modules/issue-module-property.webp#hero) ## Module states @@ -90,10 +87,10 @@ Visualize your Modules in different layouts: - **Gallery layout** – Displays Modules as cards, with a clear breakdown of work item counts by state for better visibility. - **Timeline layout** – Displays the sequence of goals and their progress, helping you ensure your project is on track. - + ![Module layout](https://media.docs.plane.so/modules/module-gallery.webp#hero) -:::info +::: info Easily share a Module by copying its link. Mark frequently used Modules as favorites for quick access. ::: @@ -105,11 +102,11 @@ Archive completed Modules to declutter your views while preserving historical da If a Module is no longer needed, you can delete it. Deleting a Module removes its progress analytics and de-links all associated work items. -
+
## Export modules - +
You can export module data to track progress, create reports, or share module updates with stakeholders outside of Plane. Exports include all work items within the module along with their key details. -Learn more about [custom exports](/core-concepts/export#custom-exports). \ No newline at end of file +Learn more about [custom exports](/core-concepts/export#custom-exports). diff --git a/docs/core-concepts/pages/editor-blocks.mdx b/docs/core-concepts/pages/editor-blocks.md similarity index 85% rename from docs/core-concepts/pages/editor-blocks.mdx rename to docs/core-concepts/pages/editor-blocks.md index f5e6674c..c70db6cf 100644 --- a/docs/core-concepts/pages/editor-blocks.mdx +++ b/docs/core-concepts/pages/editor-blocks.md @@ -1,10 +1,9 @@ --- title: Editor blocks for pages -sidebar_label: Editor blocks description: Explore all available content blocks in Plane's Page editor. --- -import Tags from "@site/src/components/Tags"; +# Editor blocks for pages List of all the content blocks available in the page, description and comment editors. @@ -45,66 +44,62 @@ Highlights quoted text or important statements with distinct formatting. Displays code snippets or command-line text with proper formatting and syntax highlighting. - -
+
## Embed - +
Seamlessly integrate external content directly into your documents with rich, interactive embeds. The embed feature supports a wide variety of platforms and content types, making it easy to enhance your documentation with multimedia and interactive elements. ![Embed](https://media.docs.plane.so/pages/external-embeds.webp#hero) - Use the `/embed` slash command to quickly insert an embed block. +Use the `/embed` slash command to quickly insert an embed block. This opens an embed dialog where you can paste any supported link. The system automatically detects the content type and creates an appropriate embed with a rich preview. This eliminates the need for users to navigate away from your content to view referenced materials. ## Image -Inserts and displays images within your content. -
+Inserts and displays images within your content. + +
## Attachment -
Uploads and embeds files directly into your content, supporting documents, images, and other file types up to 100MB each. #### Show video preview + When you upload video files as attachments, you can display them with inline playback controls. Just hover over the block and click the **⋮⋮** icon that appears. Select **Show preview** to convert the file link into an embedded video player. This works for all supported video formats. - ![Show preview](https://media.docs.plane.so/pages/show-preview.webp#hero) +![Show preview](https://media.docs.plane.so/pages/show-preview.webp#hero) -
+
## Video -
Embeds video content directly into your pages for rich multimedia documentation. ![Embed videos](https://media.docs.plane.so/pages/embed-videos.webp#hero) -Type `/video` to insert a video block, then upload a video file. The video appears inline with playback controls, allowing viewers to watch without leaving the page. Supported video formats include MP4, MPEG, OGG Video, WebM, QuickTime, AVI, and WMV. +Type `/video` to insert a video block, then upload a video file. The video appears inline with playback controls, allowing viewers to watch without leaving the page. Supported video formats include MP4, MPEG, OGG Video, WebM, QuickTime, AVI, and WMV. #### Show as attachment + If you have a video displayed with inline preview and want to convert it to a simple file link, hover over the video block and select **Show as attachment** from the actions menu. This collapses the video player into a compact attachment link. ![Show as attachment](https://media.docs.plane.so/pages/show-as-attachment.webp#hero) -
+
## Math equations -
Add mathematical expressions and formulas to your Pages using LaTeX syntax. Whether you need to document complex calculations, display statistical formulas, or include scientific notations, Plane supports both inline and block-style mathematical equations. This is perfect for technical documentation, engineering specs, data analysis reports, and any content requiring precise mathematical notation. @@ -112,42 +107,47 @@ Add mathematical expressions and formulas to your Pages using LaTeX syntax. Whet ![Math equations](https://media.docs.plane.so/pages/math-equations.webp#hero) ### Block equation + Creates standalone mathematical expressions using LaTeX syntax. Block equations are displayed on their own line with centered formatting, perfect for formulas, theorems, and complex mathematical statements that need emphasis. Use the `/blockequation` slash command: - ``` - \lim_{x \to \infty} \frac{1}{x} = 0 - ``` + +``` +\lim_{x \to \infty} \frac{1}{x} = 0 +``` + Or use double dollar syntax: - ```latex - $$ \int_a^b f(x)\,dx = F(b) - F(a) $$ - ``` + +```latex +$$ \int_a^b f(x)\,dx = F(b) - F(a) $$ +``` ### Inline equation + Embeds mathematical expressions within regular text flow using LaTeX syntax. Inline equations maintain the same text baseline, allowing you to seamlessly integrate mathematical notation into sentences and paragraphs. Use the `/inlineequation` slash command: - ``` - \bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i - ``` -Or use single dollar syntax: - ```latex - $ a^2 + b^2 = c^2 $ - ``` -Both equation types support full LaTeX rendering with built-in validation and error handling for invalid mathematical expressions. +``` +\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i +``` + +Or use single dollar syntax: +```latex +$ a^2 + b^2 = c^2 $ +``` + +Both equation types support full LaTeX rendering with built-in validation and error handling for invalid mathematical expressions. -
+
## Draw.io diagrams -
-:::tip[Prerequisites] +::: tip Prerequisites Before you can add Draw.io diagrams to Pages or Wiki, you need to [connect the Draw.io integration](/integrations/draw-io) from Workspace Settings. ::: @@ -156,21 +156,24 @@ Create and manage interactive diagrams and whiteboards directly within your Page ![Draw.io diagram](https://media.docs.plane.so/pages/draw-io-diagram.webp#hero) ### Diagram + Create professional diagrams, flowcharts, and visual documentation using the full Draw.io editor with comprehensive shape libraries. Perfect for technical documentation, process flows, system architecture, network diagrams, and organizational charts. Use the `/diagram` or `/drawio-diagram` slash command to insert a diagram block. Click the placeholder to launch the Draw.io editor. ### Board + Create whiteboards with freehand drawing and sketching capabilities using a simplified interface. Ideal for brainstorming sessions, quick mockups, concept visualization, and collaborative ideation. Use the `/board` or `/drawio-board` slash command to insert a whiteboard block. Click the placeholder that says "Click to start editing whiteboard" to launch the board interface. Both modes feature a consistent toolbar with **Save** and **Exit** buttons, making it easy to preserve your work and return to your Page. All diagrams are fully interactive—simply click any saved diagram to edit it again. -## Callout +## Callout + Creates visually distinct sections with customizable icons and colors for highlighting warnings, tips , and calls-to-action. -
+
## Work item embed - +
References work items directly in the editor to track details and progress. @@ -182,4 +185,3 @@ Adds a horizontal line to separate content sections visually. ## Emoji Add emojis to your content across all Plane editors. Type `/emoji` to open the picker or use `:` and start typing for suggestions like `:smile:`. Choose from standard Unicode emojis and GitHub's extended collection. - diff --git a/docs/core-concepts/pages/inline-comments.mdx b/docs/core-concepts/pages/inline-comments.md similarity index 74% rename from docs/core-concepts/pages/inline-comments.mdx rename to docs/core-concepts/pages/inline-comments.md index 3e86714a..bc759846 100644 --- a/docs/core-concepts/pages/inline-comments.mdx +++ b/docs/core-concepts/pages/inline-comments.md @@ -1,15 +1,13 @@ --- title: Inline comments for collaborative page discussions -sidebar_label: Page Inline Comments -hide_title: true description: Collaborate directly in Plane pages with inline comments. Highlight text, mention teammates, and resolve discussions across projects, wikis, and teamspaces. --- -import Tags from "@site/src/components/Tags"; +# Inline comments for collaborative page discussions -
+
# Add inline comments in pages - +
Inline comments allow you to collaborate directly within your documentation by highlighting specific text and starting focused discussions. This feature is available across Project pages, Wiki pages, and Teamspace pages. @@ -25,13 +23,13 @@ When you need to discuss, clarify, or provide feedback on specific content in yo Inline comments work across three different page types in Plane: - **Project pages** -Collaborate on project-specific documentation with your project team. Comments are visible to all project members. + Collaborate on project-specific documentation with your project team. Comments are visible to all project members. - **Wiki pages** -Discuss workspace-wide documentation that spans multiple projects. All workspace members can view and participate in these conversations. + Discuss workspace-wide documentation that spans multiple projects. All workspace members can view and participate in these conversations. - **Teamspace pages** -Have focused discussions within your teamspace. Only teamspace members have access to these comments. + Have focused discussions within your teamspace. Only teamspace members have access to these comments. Each location functions independently, allowing you to keep conversations contextual to their scope. @@ -51,12 +49,13 @@ To comment on specific text within any page: Your comment will be anchored to the selected text, indicated by highlighting on the page. ## Attach images to comments + You can add images to any comment or reply to provide screenshots, diagrams, or visual references: - In the comment input field, click the attachment icon. - Select an image file from your device. - The image will be uploaded and attached to your comment. -- You can attach multiple images to a single comment if needed. +- You can attach multiple images to a single comment if needed. ## Mention team members @@ -109,11 +108,11 @@ The comment will return to the active comments list and become visible in the de Use the **Filters** button in the Comments panel to control which comments you see: - **Show active** -Displays only unresolved comments (default view). + Displays only unresolved comments (default view). - **Show resolved** -Displays only resolved comments. + Displays only resolved comments. - **Show all** -Displays all comments regardless of status. + Displays all comments regardless of status. This helps you focus on conversations that still need attention or review closed discussions when needed. @@ -124,9 +123,9 @@ To modify or remove your own comments: 1. Click the three-dot menu (•••) next to your comment. 2. Choose either: - **Edit** - Modify the comment text and save your changes. - - **Delete** - Permanently remove the comment. + Modify the comment text and save your changes. + - **Delete** + Permanently remove the comment. Note that only the comment author can edit or delete their own comments. @@ -135,14 +134,14 @@ Note that only the comment author can edit or delete their own comments. Comment permissions align with page access: - **Project pages** -Project admins and members can view and comment on all project pages. If you have access to view the project page, you can participate in its comment threads. + Project admins and members can view and comment on all project pages. If you have access to view the project page, you can participate in its comment threads. - **Wiki pages** -Workspace admins and members can view and comment on wiki pages. For private pages that have been shared with you, you can also add and view comments based on your sharing permissions. + Workspace admins and members can view and comment on wiki pages. For private pages that have been shared with you, you can also add and view comments based on your sharing permissions. - **Teamspace pages** -Only teamspace members can view and comment on teamspace pages. These comments remain private to the teamspace and are not visible to users outside the teamspace. + Only teamspace members can view and comment on teamspace pages. These comments remain private to the teamspace and are not visible to users outside the teamspace. -:::info -Guest users can only comment on pages they create. -::: \ No newline at end of file +::: info +Guest users can only comment on pages they create. +::: diff --git a/docs/core-concepts/pages/nested-pages.mdx b/docs/core-concepts/pages/nested-pages.md similarity index 91% rename from docs/core-concepts/pages/nested-pages.mdx rename to docs/core-concepts/pages/nested-pages.md index e4dd4d55..a0e67b9f 100644 --- a/docs/core-concepts/pages/nested-pages.mdx +++ b/docs/core-concepts/pages/nested-pages.md @@ -1,22 +1,20 @@ --- title: Nested pages for hierarchical documentation structure -sidebar_label: Nested Pages -hide_title: true description: Create structured documentation with Nested Pages. Build parent-child hierarchies, organize content logically, and improve navigation for your team's knowledge base. --- -import Tags from "@site/src/components/Tags"; +# Nested pages for hierarchical documentation structure -
+
# Structure content with nested pages - +
Nested Pages allows you to create a hierarchical structure for your content, helping you organize documentation logically and improve navigation for your team. This feature enables you to build robust knowledge architecture with parent and child pages, similar to folders and files. Nested pages are available in two contexts: -- Wiki Pages (Workspace level) +- Wiki Pages (Workspace level) - Project Pages (Project level) ## Create nested pages @@ -30,6 +28,7 @@ Wiki Pages offer an additional ways to create nested pages. Click the **+** icon ![Nested page on the wiki sidebar](https://media.docs.plane.so/pages/create-nested-page-sidebar.webp#hero) ## Move pages between levels + Both Wiki Pages and Project Pages support reorganizing your page hierarchy. To promote a nested page to a higher level, drag it to the desired position in the hierarchy. To demote a page to become nested under another, drag it under the new parent. @@ -64,4 +63,4 @@ To promote a nested page to a higher level, drag it to the desired position in t - Archived pages can be restored from the **Archived** section. - Deleting a parent page prompts a warning about nested content. You can choose to: - Delete only the parent page and move nested pages up one level. - - Delete the parent and all nested content permanently. \ No newline at end of file + - Delete the parent and all nested content permanently. diff --git a/docs/core-concepts/pages/overview.mdx b/docs/core-concepts/pages/overview.md similarity index 90% rename from docs/core-concepts/pages/overview.mdx rename to docs/core-concepts/pages/overview.md index dca297dd..785042b9 100644 --- a/docs/core-concepts/pages/overview.mdx +++ b/docs/core-concepts/pages/overview.md @@ -1,11 +1,8 @@ --- title: Pages for project documentation -sidebar_label: Manage project pages description: Create, format, and share project documentation with AI assistance, content blocks, version history, and web publishing options. --- -import Tags from "@site/src/components/Tags"; - # Document with AI-powered Pages Pages in Plane let you easily capture and organize project-related information. Whether you’re documenting meeting notes or detailing technical or product requirements, Pages allow you to collaborate directly within the context of your project—no need for external tools. @@ -21,7 +18,7 @@ Pages are turned on by default when you create a new project. If needed, you can ![Create page](https://media.docs.plane.so/pages/create-page.webp#hero) - You can set pages to be either public or private. Public pages are visible to everyone in your workspace, while private pages are only accessible to you. To change a page’s visibility, just go to the **•••** menu on that page anytime. - + ![Public or private pages](https://media.docs.plane.so/pages/public-private-page.webp#hero) ## Add content @@ -32,16 +29,15 @@ Pages are turned on by default when you create a new project. If needed, you can - You can easily drag and drop content blocks in Plane to rearrange them on the page. Just hover over any block, grab the **⋮⋮** icon that shows up, and drag it to where you want. Let go of it to drop the block in its new spot. - ### Format your content ![Static toolbar](https://media.docs.plane.so/pages/static-toolbar.webp#hero) -+ The static toolbar at the top of the page offers a range of styling options for your content, including basic blocks like headings and lists, and advanced blocks like images, tables, and more. +- The static toolbar at the top of the page offers a range of styling options for your content, including basic blocks like headings and lists, and advanced blocks like images, tables, and more. -- Quickly adjust headings (H1-H6) to create a clear, structured hierarchy in your document. -- Add emphasis with text or background colors, and style important information with bold, italic, underline, and strikethrough options for better readability. -- Align your content to the left, right, or center to ensure proper layout and visual balance in your document. +* Quickly adjust headings (H1-H6) to create a clear, structured hierarchy in your document. +* Add emphasis with text or background colors, and style important information with bold, italic, underline, and strikethrough options for better readability. +* Align your content to the left, right, or center to ensure proper layout and visual balance in your document. ### Markdown support @@ -49,22 +45,22 @@ Plane allows you to use Markdown in Pages, making it easy to format content quic To use Markdown in Plane, simply type the relevant symbols (like # for headings or - for lists) directly within the page. Plane will automatically convert your Markdown into the appropriate format, helping you keep your workflow smooth and efficient. -
+
## AI helper - +
![AI helper](https://media.docs.plane.so/pages/ai-helper.webp#hero-tl) -Plane’s AI tools enhance content creation by helping you refine, reframe, and enrich your writing. Whether you need to paraphrase a sentence, simplify complex information, or elaborate on a topic, Pages offers quick solutions right within the editor. +Plane’s AI tools enhance content creation by helping you refine, reframe, and enrich your writing. Whether you need to paraphrase a sentence, simplify complex information, or elaborate on a topic, Pages offers quick solutions right within the editor. -- Make your content clearer or concise by rephrasing text or breaking down complex ideas. -- Quickly generate summaries to highlight key points, ideal for meetings or lengthy documents. +- Make your content clearer or concise by rephrasing text or breaking down complex ideas. +- Quickly generate summaries to highlight key points, ideal for meetings or lengthy documents. - Expand on ideas to add context, detail, or depth to your writing. - Get suggestions for clear, catchy titles. -
+
## Mention work items - +
Link directly to work items within your pages using the `@` mention feature. This creates a connection between your documentation and the actual work being tracked in your project. @@ -89,23 +85,25 @@ Mentioned work items appear as interactive links in your page. Clicking them tak You can perform several actions on any block within a page. Just hover over the block and click the **⋮⋮ icon** that appears. -
+
### Copy link to block - +
Get a direct URL to this specific block. When someone opens this link, they'll jump straight to this block in the page, making it easy to reference specific sections in discussions or work items. ### Duplicate block + Create a copy of the block to reuse content without starting from scratch. ### Delete block + Remove the block entirely from the page. These quick actions help you manage and reference your content efficiently, especially in longer documents where you need to point teammates to specific sections. -
+
## Convert selected text to work items - +
Turn any text selection in your page into a work item instantly. This feature helps you capture action items or tasks directly from your documentation without interrupting your flow. @@ -123,7 +121,7 @@ This seamless workflow ensures nothing gets lost in translation between planning ## Page actions -:::info +::: info When a Member locks, unlocks, archives, or restores a Page, the action takes effect immediately for all users with access to the Page. ::: @@ -147,9 +145,9 @@ Share the page by copying its link to send to your teammates or link it in a wor Duplicate an existing page to jumpstart new content. -
+
### Move Page - +
Transfer a page to Wiki, Teamspace or a different Project in your workspace. @@ -182,9 +180,9 @@ But it goes beyond just knowing who's there - you can actually see where your te The live cursors update instantly as people type, select text, or move around the document. It's like having everyone gathered around the same whiteboard, but digitally. -
+
## Publish Page - +
![Publish Page](https://media.docs.plane.so/pages/publish-page.webp#hero-tr) diff --git a/docs/core-concepts/pages/wiki.mdx b/docs/core-concepts/pages/wiki.md similarity index 84% rename from docs/core-concepts/pages/wiki.mdx rename to docs/core-concepts/pages/wiki.md index 3d22ed3c..8d72ded2 100644 --- a/docs/core-concepts/pages/wiki.mdx +++ b/docs/core-concepts/pages/wiki.md @@ -1,15 +1,13 @@ --- title: Wiki for company wide knowledge base -sidebar_label: Wiki -hide_title: true description: Create and organize company-wide documentation, policies, guides, and knowledge that extends beyond individual projects. --- -import Tags from "@site/src/components/Tags"; +# Wiki for company wide knowledge base -
+
# Centralized documentation with Wiki - +
Plane's Wiki is a place to store and share company-wide information. Unlike project pages that focus on specific work, the Wiki helps you create documentation that matters to everyone in the organization. @@ -43,33 +41,31 @@ Where project pages zoom in on team-specific details, the Wiki gives you a bird' 4. Need to find something quick? Use the sidebar's search function to locate specific pages or information. -
+
## Share private pages -
While private pages are typically only accessible to their creator, you can selectively share private wiki pages with specific team members in your workspace. This gives you granular control over who can access sensitive documentation without making it visible to your entire organization. -![Wiki](https://media.docs.plane.so/wiki/share-private-pages.webp#hero) +![Wiki](https://media.docs.plane.so/wiki/share-private-pages.webp#hero) 1. Open any private page you've created. 2. Click the **Share** button in the top-right corner of the page. 3. In the dialog box, use the search field to find and add specific team members. 4. Set appropriate permissions for each person: - - Can view - Allows the person to read the page but not make changes - - Can edit - Gives full editing access to the page content + - Can view - Allows the person to read the page but not make changes + - Can edit - Gives full editing access to the page content 5. Click **Share** to apply the changes. -When you share a private wiki page, it will automatically appear in the **Shared** section of the Wiki sidebar. +When you share a private wiki page, it will automatically appear in the **Shared** section of the Wiki sidebar. ### Manage shared access + The page creator always retains full control over sharing settings. Once you've shared a wiki page, you can easily modify permissions or remove access: 1. Click the dropdown next to any shared member's name to change their permission level. 2. Select **Remove** to revoke their access to the page. - diff --git a/docs/core-concepts/power-k.mdx b/docs/core-concepts/power-k.md similarity index 98% rename from docs/core-concepts/power-k.mdx rename to docs/core-concepts/power-k.md index d2b02c2e..b4035a77 100644 --- a/docs/core-concepts/power-k.mdx +++ b/docs/core-concepts/power-k.md @@ -3,6 +3,8 @@ title: Power K description: Use the Power K command palette to quickly search across projects, access settings, create new items, and navigate efficiently with keyboard shortcuts. --- +# Power K + ![](https://media.docs.plane.so/power-k/power-k1.webp#hero) ## The power of Power K @@ -17,7 +19,7 @@ description: Use the Power K command palette to quickly search across projects, ![](https://media.docs.plane.so/power-k/power-k3.webp#hero) -:::note +::: info 🎯 Roadmap item Search profiles, comments, and work item descriptions diff --git a/docs/core-concepts/projects/initiatives.mdx b/docs/core-concepts/projects/initiatives.md similarity index 97% rename from docs/core-concepts/projects/initiatives.mdx rename to docs/core-concepts/projects/initiatives.md index 3929b35f..2f40da13 100644 --- a/docs/core-concepts/projects/initiatives.mdx +++ b/docs/core-concepts/projects/initiatives.md @@ -1,15 +1,13 @@ --- title: Align multiple projects with Initiatives -sidebar_label: Initiatives -hide_title: true description: Create and manage Initiatives to align multiple projects with strategic goals, track cross-project epics, and monitor aggregated progress. --- -import Tags from "@site/src/components/Tags"; +# Align multiple projects with Initiatives -
+
# Group multiple projects using Initiatives - +
Initiatives is designed to help you manage and track progress across multiple related projects under a unified objective. This feature is particularly useful if you need a high-level view of how various projects align with strategic goals. @@ -55,38 +53,44 @@ Once created, you can view all Initiatives in the **Initiatives** section on the ![View Initiatives](https://media.docs.plane.so/initiatives/view-initiatives.webp#hero) -Selecting an Initiative opens its detailed view. +Selecting an Initiative opens its detailed view. ![Initiative overview](https://media.docs.plane.so/initiatives/initiative-overview.webp#hero) Initiatives now offer two distinct views to help you track progress and manage scope effectively. Use the dropdown in the top navigation to switch between Overview and Scope views depending on whether you need high-level progress insights or detailed scope management. ### Initiative layouts + Initiatives offers three distinct layouts to help you visualize and manage your strategic goals. Use the layout selector in the top navigation bar to switch between views. ![Initiative layouts](https://media.docs.plane.so/initiatives/initiative-layouts.webp#hero) #### List layout + The default view that displays Initiatives in a structured list format, showing key details like progress status, dates, connected projects and epics, leads, and states at a glance. This layout is ideal for quickly scanning through multiple Initiatives and comparing their high-level status. #### Board layout + Organizes Initiatives into columns based on grouping criteria, providing a kanban-style view of your strategic work. This layout works well for tracking Initiatives through different stages or when you want to see how work is distributed across teams or states. #### Timeline layout + Visualizes Initiative timelines on a gantt view, making it easy to see duration, overlaps, and scheduling across your strategic portfolio. Switch between Week, Month, Quarter, and Today views to adjust your time horizon. This layout is perfect for identifying timeline conflicts and understanding how Initiatives are sequenced over time. All three layouts support filtering and grouping in the top navigation. ### Initiative overview + The **Overview** gives you a bird's-eye view of your Initiative's progress. You'll see a comprehensive scope breakdown that tracks both projects and epics within your initiative, showing completion percentages and recent updates at a glance. The progress visualization at the bottom provides an instant snapshot of work distribution across different states - from backlog items to completed work. The percentages and counts for each category are automatically calculated based on the associated projects. This makes it easy to understand where your initiative stands and identify any bottlenecks in your workflow. -:::tip +::: tip Use Initiatives for a top-down view of progress. For detailed updates, navigate to individual projects. ::: ### Initiative scope + ![Initiative scope](https://media.docs.plane.so/initiatives/initiative-scope.webp#hero) Use the dropdown in the top navigation to switch to the **Scope** view to see all the building blocks of your initiative. Here you'll find detailed lists of: @@ -104,7 +108,6 @@ After you create an Initiative and add Epics from any project. From there, you c This is perfect for cross-functional teams working on company-wide objectives, product launches, or any effort that spans multiple projects. - **Projects** Connected projects showing completion rates and key details like execution status, leads, and timelines. @@ -157,7 +160,6 @@ This consolidated view enables Initiative owners to monitor progress across all ## Properties, comments, and activity - The Info tab on the side panel of an Initiative provides a quick snapshot of key properties and metadata associated with the Initiative. - - **State**: Track the Initiative's lifecycle phase (Drafts, Planned, Active, Completed, Closed) - **Projects**: Number of connected projects - **Epics**: Number of associated epics @@ -170,11 +172,11 @@ This consolidated view enables Initiative owners to monitor progress across all ![Initiative properties](https://media.docs.plane.so/initiatives/properties.webp#hero-tr) - Add comments to discuss updates or highlight issues. - + ![Initiative comments](https://media.docs.plane.so/initiatives/comments.webp#hero-tr) - View the activity log for all updates related to the Initiative. - + ![Initiative activity](https://media.docs.plane.so/initiatives/activity.webp#hero-tr) ## Sort and filter initiatives @@ -196,6 +198,7 @@ Use the filter icon in the top navigation to apply filters: Click the **Display** dropdown in the top navigation to customize how Initiatives are organized and sorted: **Group by** + - **Lead**: Group Initiatives by the person responsible for them - **Created By**: Group by the person who created the Initiative - **States**: Group by lifecycle phase (Drafts, Planned, Active, Completed, Closed) @@ -203,8 +206,9 @@ Click the **Display** dropdown in the top navigation to customize how Initiative - **None**: View all Initiatives in a flat list without grouping **Order by** + - **Manual**: Drag and drop to arrange Initiatives in your preferred order - **Last Created**: Sort by creation date, showing newest Initiatives first - **Last Updated**: Sort by last modification date, showing recently updated Initiatives first -These filtering, grouping, and sorting tools make it easier to focus on specific Initiatives or prioritize your view based on team needs and workflow preferences. \ No newline at end of file +These filtering, grouping, and sorting tools make it easier to focus on specific Initiatives or prioritize your view based on team needs and workflow preferences. diff --git a/docs/core-concepts/projects/manage-project-members.mdx b/docs/core-concepts/projects/manage-project-members.md similarity index 96% rename from docs/core-concepts/projects/manage-project-members.mdx rename to docs/core-concepts/projects/manage-project-members.md index 36071625..6b583316 100644 --- a/docs/core-concepts/projects/manage-project-members.mdx +++ b/docs/core-concepts/projects/manage-project-members.md @@ -1,16 +1,14 @@ --- title: Manage project members -sidebar_label: Manage members description: Add members to projects, assign roles, and configure access --- -import Tags from "@site/src/components/Tags"; - # Manage project members Manage who has access to your project and what they can do by adding members and assigning roles. -**Prerequisites:** +**Prerequisites:** + - You must be a Project Admin or Workspace Admin to manage project members - Users must be workspace members before they can be added to projects @@ -21,10 +19,12 @@ Users must be workspace members before you can add them to a project. ![Project members and teamspaces](https://media.docs.plane.so/projects/project-members-teamspaces.webp#hero) **If the user isn't in your workspace yet:** + 1. First, [invite them to the workspace](/core-concepts/workspaces/members#invite-members-to-your-workspace). 2. Once they accept the workspace invitation, proceed with adding them to the project. **Add existing workspace members to your project:** + 1. Navigate to **Project Settings > Members & Teamspaces**. 2. Scroll to the **Members** section. 3. Click **Add member**. @@ -35,6 +35,7 @@ Users must be workspace members before you can add them to a project. The member now has access to the project with the permissions defined by their role. **Project roles:** + - **Admin** - Full project access including settings, member management, and all features. - **Member** - Can create and manage work items, cycles, and modules (cannot change project settings). - **Guest** - Limited view access (cannot create or edit). @@ -64,6 +65,7 @@ Remove members who no longer need project access. The member loses access to the project immediately but remains in the workspace. **What happens when you remove a member:** + - They can no longer access the project or its work items - Work items they created remain in the project - Their comments and activity history are preserved @@ -79,6 +81,7 @@ Configure a default assignee to ensure all work items get assigned when created 4. The setting saves automatically **How default assignee works:** + - When someone creates a work item without selecting an assignee, the default assignee is automatically assigned. - This ensures no work items are left unassigned. - Useful for projects where a specific person triages new work items. @@ -99,6 +102,7 @@ Designate a project lead who serves as the primary point of contact for the proj The project lead is the go-to person for questions about the project's execution, goals, and status. This is an informational role that helps team members know who to contact, not a permission level. **Project lead vs. Project Admin:** + - Project lead is a designation that identifies a point of contact. - Project Admin is a role with specific permissions. - They can be the same person but don't have to be. @@ -115,7 +119,6 @@ By default, Guests can only see work items they've created through the Intake se This setting is project-specific. Enabling it in one project doesn't affect Guest permissions in other projects. Even with view access, Guests remain isolated to invited projects only. - ## How users join projects Users can become project members in two different ways, and understanding both helps you manage your project team effectively. @@ -126,13 +129,12 @@ Users can become project members in two different ways, and understanding both h Users can have both types of access simultaneously. When this happens, Plane automatically applies whichever role gives them higher permissions. For example, if someone is a `Guest` on your project but joins a linked teamspace, they're automatically upgraded to `Member` access. If they're already an `Admin`, they keep their `Admin` role. - -
+
## View project member activity - +
-:::info +::: info The Enterprise plan is currently only available for self-hosted instances. If you're interested in Enterprise features for your self-hosted deployment, contact [sales@plane.so](mailto:sales@plane.so) for pricing and licensing information. ::: @@ -144,11 +146,13 @@ Track member actions like additions, role changes, and removals to maintain visi 2. Click **Activity** in the top right corner of the Members section. The activity panel shows recent project member events: + - **Member additions** - Who added which members to the project and when. - **Role changes** - Role updates with who made the change and when. - **Member removals** - Who removed members from the project. Each activity entry shows: + - The action taken - Who performed the action - When it happened (relative time like "6 days ago" or "3 days ago") @@ -166,4 +170,5 @@ Users can become project members in two different ways, and understanding both h Users can have both types of access simultaneously. When this happens, Plane automatically applies whichever role gives them higher permissions. For example, if someone is a `Guest` on your project but joins a linked teamspace, they're automatically upgraded to `Member` access. If they're already an `Admin`, they keep their `Admin` role. ## See also -- [Manage workspace members](/core-concepts/workspaces/members) \ No newline at end of file + +- [Manage workspace members](/core-concepts/workspaces/members) diff --git a/docs/core-concepts/projects/milestones.mdx b/docs/core-concepts/projects/milestones.md similarity index 83% rename from docs/core-concepts/projects/milestones.mdx rename to docs/core-concepts/projects/milestones.md index cb2d61da..d0f760ea 100644 --- a/docs/core-concepts/projects/milestones.mdx +++ b/docs/core-concepts/projects/milestones.md @@ -1,20 +1,19 @@ --- title: Align work toward target dates with Milestones -sidebar_label: Milestones -hide_title: true description: Align work items toward shared completion dates with milestones. Track progress on quarterly objectives, product launches, and strategic initiatives in Plane. --- -import Tags from "@site/src/components/Tags"; +# Align work toward target dates with Milestones -
+
# Track goals with Milestones - +
Milestones provide a layer to align work items and epics toward shared completion dates, helping teams focus on strategic objectives and critical deliverables. Whether tracking quarterly goals, product launches, or major feature releases, milestones give you visibility into progress and ensure teams stay on track. ## Set up milestones + Workspace and project admins can turn on the Milestones feature in the project. ![Enable Milestones](https://media.docs.plane.so/milestones/set-up-milestones.webp#hero) @@ -26,6 +25,7 @@ To enable milestones in your project: 3. A **Milestones** section will appear in your project's Overview page. ## Create a milestone + ![Create Milestones](https://media.docs.plane.so/milestones/create-milestone.webp#hero) From your project's Overview page: @@ -33,15 +33,16 @@ From your project's Overview page: 1. Scroll down to the **Milestones** section. 2. Click **Create** or the **+** icon to add a new milestone. 3. Enter the milestone details: - - Title: Name your milestone (e.g., "Q4 Launch", "MVP Release"). - - Description: Add context about the milestone's purpose and goals. - - Target date: Set the completion deadline. - - Link work items: Associate relevant work and epics with the milestone. + - Title: Name your milestone (e.g., "Q4 Launch", "MVP Release"). + - Description: Add context about the milestone's purpose and goals. + - Target date: Set the completion deadline. + - Link work items: Associate relevant work and epics with the milestone. 4. Click **Create** to save your milestone. ## Manage milestones ### Track progress + ![Manage Milestones](https://media.docs.plane.so/milestones/manage-milestone.webp#hero) Each milestone displays: @@ -52,6 +53,7 @@ Each milestone displays: Click on a milestone to expand and see all linked work items. The progress bar updates automatically as work items are completed or cancelled. ### Link work items and epics + You can link work items and epics to milestones in two ways: **From the milestone** @@ -63,10 +65,10 @@ Open any work item or epic and assign it to a milestone from the properties pane ![Link work items](https://media.docs.plane.so/milestones/link-work-items.webp#hero) ### Edit or delete milestones + Update milestone details anytime: - Modify the title, description, or target date. - Adjust linked work items. - Track metrics and progress indicators. - Click the ⋯ menu for additional options. - diff --git a/docs/core-concepts/projects/overview.mdx b/docs/core-concepts/projects/overview.md similarity index 83% rename from docs/core-concepts/projects/overview.mdx rename to docs/core-concepts/projects/overview.md index d4d928a6..ed30cd21 100644 --- a/docs/core-concepts/projects/overview.mdx +++ b/docs/core-concepts/projects/overview.md @@ -1,6 +1,5 @@ --- title: Create and manage projects -sidebar_label: Manage projects description: Create and manage projects, configure settings, add team members, and enable features. --- @@ -45,14 +44,17 @@ Choose who can access your project when creating it or change visibility later i ### Public projects **Who can access:** + - All workspace members (Admins and Members) - Guests cannot access public projects unless explicitly invited to them **Who can join:** + - Any workspace member can discover and join public projects on their own - No invitation required for members to join **Best for:** + - Company-wide initiatives where everyone should have visibility - Shared resources or documentation that benefits the entire team - Cross-team collaboration projects @@ -61,26 +63,30 @@ Choose who can access your project when creating it or change visibility later i ### Private projects **Who can access:** + - Only members who have been explicitly invited to the project - Workspace Admins automatically have access to all private projects **Who can join:** + - Only Project Admins can add new members to the project - Members must receive an invitation and cannot join on their own **Best for:** + - Confidential or sensitive work that needs restricted access - Client projects where only specific team members should have visibility - Small team projects where you want to control exactly who participates - Projects requiring tight access control for security or privacy reasons **Change visibility** + 1. Open **Project Settings** (click **…** next to project name in sidebar). 2. Navigate to **General** tab. 3. Change **Access** setting to Public or Private. 4. Save changes. -:::warning +::: warning When you change a project from Private to Public, it becomes visible to all workspace members immediately. Make sure this is what you want before making the change, as you cannot undo the visibility that members gained. ::: @@ -113,11 +119,12 @@ Each project can have its own timezone setting, which is independent of individu 4. Save changes. **What the project timezone affects** + - Cycle start and end dates and times - Project-level date displays in the interface **How timezone works for members** -While the project has its own timezone, individual members will see cycle and module times converted to their personal timezone (set in their [Account preferences](/core-concepts/account/settings#timezone-and-language)). +While the project has its own timezone, individual members will see cycle and module times converted to their personal timezone (set in their [Account preferences](/core-concepts/account/settings#timezone-and-language)). For example, if a cycle is set to end at 5:00 PM in the project timezone (Pacific), a member in Eastern timezone will see the cycle ending at 8:00 PM their time. This ensures everyone sees times in their local timezone while maintaining consistent scheduling across the project. @@ -135,22 +142,22 @@ Control which features are available in your project based on how your team work **Available features** - **Cycles** -Timebox your work items into sprints or iterations. Cycles help you organize work into manageable time periods, track progress over defined intervals, and build momentum with regular delivery cadence. Perfect for agile teams running sprints. + Timebox your work items into sprints or iterations. Cycles help you organize work into manageable time periods, track progress over defined intervals, and build momentum with regular delivery cadence. Perfect for agile teams running sprints. - **Modules** -Group related work items together logically. Modules help you organize large projects into manageable components or features, making it easier to track progress on specific parts of your project. Useful for breaking down complex work into logical groupings. + Group related work items together logically. Modules help you organize large projects into manageable components or features, making it easier to track progress on specific parts of your project. Useful for breaking down complex work into logical groupings. - **Views** -Create custom filtered views of your work items and save them for quick access. Views let you define specific filters, sorts, and display options, then save them so you and your team can quickly access frequently-used perspectives on your work. + Create custom filtered views of your work items and save them for quick access. Views let you define specific filters, sorts, and display options, then save them so you and your team can quickly access frequently-used perspectives on your work. - **Pages** -Document project information, create guides, and build knowledge bases. Pages provide a space for your team to collaborate on documentation, meeting notes, specifications, and any other written content related to your project. + Document project information, create guides, and build knowledge bases. Pages provide a space for your team to collaborate on documentation, meeting notes, specifications, and any other written content related to your project. - **Intake** -Capture incoming requests from team members, stakeholders, or guests. The Intake feature provides a way to collect, review, and triage requests before adding them to your project backlog. Useful for managing feature requests, bug reports, and ad-hoc work requests. + Capture incoming requests from team members, stakeholders, or guests. The Intake feature provides a way to collect, review, and triage requests before adding them to your project backlog. Useful for managing feature requests, bug reports, and ad-hoc work requests. - **Time Tracking** -Log time spent on work items and track effort across your project. Time tracking lets team members record hours worked on specific work items and provides reports on time spent. You can download worklog data for analysis or billing purposes. + Log time spent on work items and track effort across your project. Time tracking lets team members record hours worked on specific work items and provides reports on time spent. You can download worklog data for analysis or billing purposes. ## Archive a project @@ -162,12 +169,14 @@ Archive projects you're no longer actively working on but want to keep for refer 4. Confirm the action. **What happens when you archive:** + - The project is removed from your sidebar to reduce clutter. - The project remains fully accessible in the **Archived projects** section. - The project can be restored at any time with all data intact. - The project no longer appears in workspace search results or active project lists. ## Restore archived projects + 1. Navigate to **Projects** in the sidebar. 2. Scroll to the bottom to find the **Archived projects** section. 3. Click **Restore project** on any archived project. @@ -179,16 +188,18 @@ Archive projects you're no longer actively working on but want to keep for refer Permanently remove a project and all its data from your workspace. Use this when you're certain you no longer need the project or any of its contents. -:::warning +::: warning Deleting a project is permanent and cannot be undone. All work items, cycles, modules, views, pages, and other project data will be permanently deleted. Plane does not provide any way to recover a deleted project, so make sure you're certain before proceeding. ::: **Before deleting, consider:** + - Exporting any data you might need to keep for records or future reference - Notifying all project members that the project will be deleted - Archiving the project instead if you might need it later **To delete a project:** + 1. Navigate to **Project Settings**. 2. Scroll to the bottom of the **General** tab. 3. Click **Delete project**. diff --git a/docs/core-concepts/projects/project-overview.mdx b/docs/core-concepts/projects/project-overview.md similarity index 94% rename from docs/core-concepts/projects/project-overview.mdx rename to docs/core-concepts/projects/project-overview.md index 03fdce0d..7b6c0674 100644 --- a/docs/core-concepts/projects/project-overview.mdx +++ b/docs/core-concepts/projects/project-overview.md @@ -1,14 +1,13 @@ --- title: Project Overview -hide_title: true description: Track metrics, share status updates, and monitor overall project health from a centralized dashboard for better team alignment. --- -import Tags from "@site/src/components/Tags"; +# Project Overview -
+
# Monitor project progress at a glance - +
Without a centralized project view, teams often face challenges like fragmented information, inefficient progress tracking, and communication gaps. @@ -56,6 +55,7 @@ Quickly view and edit project properties in the info icon tab on the side panel. - **Timeline**: Manage and monitor **Start date** and **Due date** for the project. ## Project updates + Communicate project status without meetings. Post updates with status indicators to keep your team aligned and create a historical record of progress. See **[Project updates](/communication-and-collaboration/project-updates)** for details. ![Add project updates](https://media.docs.plane.so/projects/add-project-updates.webp#hero) @@ -68,4 +68,4 @@ Get real-time updates on project activities, such as task progress, state change ## See also -- [Project updates](/communication-and-collaboration/project-updates) \ No newline at end of file +- [Project updates](/communication-and-collaboration/project-updates) diff --git a/docs/core-concepts/projects/project-states.mdx b/docs/core-concepts/projects/project-states.md similarity index 92% rename from docs/core-concepts/projects/project-states.mdx rename to docs/core-concepts/projects/project-states.md index 0deb746e..b67897a9 100644 --- a/docs/core-concepts/projects/project-states.mdx +++ b/docs/core-concepts/projects/project-states.md @@ -1,14 +1,13 @@ --- title: Project States -hide_title: true description: Use Project States to categorize and track project progress across your workspace. --- -import Tags from "@site/src/components/Tags"; +# Project States -
+
# Track your projects with states - +
Project States allows you to track the overall progress of your projects. With this tool, you can categorize projects into different states, helping you quickly identify which projects need attention and which are on track. diff --git a/docs/core-concepts/projects/recurring-work-items.mdx b/docs/core-concepts/projects/recurring-work-items.md similarity index 77% rename from docs/core-concepts/projects/recurring-work-items.mdx rename to docs/core-concepts/projects/recurring-work-items.md index e8ed2c66..d332d889 100644 --- a/docs/core-concepts/projects/recurring-work-items.mdx +++ b/docs/core-concepts/projects/recurring-work-items.md @@ -1,15 +1,13 @@ --- title: Recurring work items to automate repetitive tasks -sidebar_label: Recurring Work Items -hide_title: true description: Learn how to set up recurring work items to automatically create repetitive tasks, maintenance schedules, and routine work on a predefined schedule. --- -import Tags from "@site/src/components/Tags"; +# Recurring work items to automate repetitive tasks -
+
# Automate repetitive tasks - +
Keep your team on track with repetitive tasks by setting them up once and letting them automatically repeat on your schedule. @@ -30,16 +28,15 @@ Think of it like setting a recurring calendar appointment, but for your project 3. Click **Create recurring work item**. - ![Create recurring work items](https://media.docs.plane.so/projects/create-recurring-work-items.webp#hero) + ![Create recurring work items](https://media.docs.plane.so/projects/create-recurring-work-items.webp#hero) 4. Fill out your recurring work item just like any regular task - add a title, description, assignees, and any custom properties your team uses. This becomes your template that gets copied each time a new instance is created. 5. In the **Schedule** section, you'll configure when and how often your work item repeats: - - **Start and end dates** - When the recurring pattern begins and optionally when it should stop. + When the recurring pattern begins and optionally when it should stop. - **Frequency** - Choose from daily, weekly, monthly, or yearly patterns. The system will continue creating items based on your frequency until the end date you specify, or indefinitely if you don't set an end date. + Choose from daily, weekly, monthly, or yearly patterns. The system will continue creating items based on your frequency until the end date you specify, or indefinitely if you don't set an end date. 6. Click **Create recurring work item**. @@ -55,4 +52,4 @@ When you edit a recurring work item, your changes only affect future instances. --- -Recurring work items help ensure nothing falls through the cracks while reducing the administrative burden on your team. Set them up once, and focus your energy on the work that matters most. \ No newline at end of file +Recurring work items help ensure nothing falls through the cracks while reducing the administrative burden on your team. Set them up once, and focus your energy on the work that matters most. diff --git a/docs/core-concepts/projects/run-project.mdx b/docs/core-concepts/projects/run-project.md similarity index 99% rename from docs/core-concepts/projects/run-project.mdx rename to docs/core-concepts/projects/run-project.md index 0c359683..7e26568b 100644 --- a/docs/core-concepts/projects/run-project.mdx +++ b/docs/core-concepts/projects/run-project.md @@ -3,6 +3,8 @@ title: Running your project description: Projects have states, labels, estimations along with integrations and automations which can be setup to run your project smoothly. --- +# Running your project + ## Build project workflow with states Work items within a project can transition through various states to reflect the progression of work in your project. This movement of work items through states constitutes the project workflow. @@ -50,7 +52,7 @@ Start by choosing an estimate system from the two below. When you are done, you can turn on estimates by toggling on `Enable estimates for my project`. You can also change the type of the system by clicking the pencil icon next to each system you have set. -:::warning +::: warning In previous versions of Estimates we let you add more than one estimate system so you could switch between them. After overwhelming feedback to make it simpler for you, we now let you create one system per project. Inactive estimate systems from previous versions are now archived. ::: @@ -58,7 +60,7 @@ In previous versions of Estimates we let you add more than one estimate system s Similar to states, labels on projects aid in filtering, differentiating, and categorizing work items within your project. You can create and control as many work item labels as needed. -:::note +::: info Labels can also be created directly from the work item detail page. ::: diff --git a/docs/core-concepts/stickies.mdx b/docs/core-concepts/stickies.md similarity index 98% rename from docs/core-concepts/stickies.mdx rename to docs/core-concepts/stickies.md index 82a07f9e..2b28e69d 100644 --- a/docs/core-concepts/stickies.mdx +++ b/docs/core-concepts/stickies.md @@ -1,6 +1,5 @@ --- title: Quick notes and reminders for project tasks -sidebar_label: Stickies description: Use Stickies in Plane to capture quick ideas, reminders, and notes without leaving your workspace. --- diff --git a/docs/core-concepts/views.mdx b/docs/core-concepts/views.md similarity index 92% rename from docs/core-concepts/views.mdx rename to docs/core-concepts/views.md index 8f27bad5..3e055aff 100644 --- a/docs/core-concepts/views.mdx +++ b/docs/core-concepts/views.md @@ -1,13 +1,10 @@ --- title: Save custom views for filtered work items -sidebar_label: Views description: Create, save, and share Views in Plane to quickly access filtered work items. --- # Save custom views -import Tags from "@site/src/components/Tags"; - Views are saved collections of filters that you can apply to work items, allowing you to analyze and manage them efficiently. Instead of reapplying the same filters repeatedly, you can save them with a title for easy access and reuse. ## View types @@ -16,7 +13,7 @@ In Plane, you can create two different types of views: - **Workspace Views** These are created at the Workspace level and are available to all Members, depending on whether they are marked as public or private. These include some default system-defined Views that cannot be removed. - + ![Workspace Views](https://media.docs.plane.so/views/workspace-views.webp#hero) - **Project Views** @@ -52,9 +49,9 @@ After creating a view, you can: Workspace Views are visualized using the spreadsheet layout, while project Views support all layouts. Learn more about layouts and grouping options [here](/core-concepts/issues/layouts). -
+
## Publish Views - +
Publishing a View allows you to share it more interactively by enabling features like comments, reactions, and voting. Here's how to publish a view: @@ -79,11 +76,11 @@ You can remove views by deleting them from the list of views in your workspace o - Mark frequently used views as favorites for quick access. Favorited views appear on the sidebar under **Your Favorites** section. - Use the search bar in the **Views** section to locate specific views quickly. -
+
## Export views - +
You can export data from any saved view to analyze filtered work items, create custom reports, or share specific subsets of your project data. Exports respect all filters applied to the view. -Learn more about [custom exports](/core-concepts/export#custom-exports). \ No newline at end of file +Learn more about [custom exports](/core-concepts/export#custom-exports). diff --git a/docs/core-concepts/workspaces/members.mdx b/docs/core-concepts/workspaces/members.md similarity index 90% rename from docs/core-concepts/workspaces/members.mdx rename to docs/core-concepts/workspaces/members.md index d50d707a..9d0d3b21 100644 --- a/docs/core-concepts/workspaces/members.mdx +++ b/docs/core-concepts/workspaces/members.md @@ -1,13 +1,11 @@ --- title: Manage workspace members -sidebar_label: Manage members description: Add, update, and remove workspace members --- -import Tags from "@site/src/components/Tags"; # Manage members -Keeping your workspace organized and secure is essential for smooth project management. Plane makes it easy to control who can access your workspace, what they can do, and how they collaborate with others. +Keeping your workspace organized and secure is essential for smooth project management. Plane makes it easy to control who can access your workspace, what they can do, and how they collaborate with others. This guide shows you how to add members to your workspace, change their roles, and remove them when needed. @@ -28,12 +26,13 @@ You can add members individually or in bulk using CSV import. The invited person receives an email notification with instructions to join your workspace. **If the invitation isn't accepted:** + - The invitation remains pending until accepted or declined. - You can manually remove pending invitations using the Remove option (see below). -
+
## Import members from CSV - +
Workspace admins can bulk invite members by importing a CSV file. This is useful when onboarding teams or migrating users from another system. @@ -41,21 +40,24 @@ Workspace admins can bulk invite members by importing a CSV file. This is useful ![Import members from CSV](https://media.docs.plane.so/workspaces/import-members.webp#hero) **To import members:** + 1. Navigate to **Workspace settings → Members**. 2. Click **Import**. 3. Upload your CSV file (drag and drop or click to browse). -4. Select **Import** to bulk invite the members. +4. Select **Import** to bulk invite the members. Imported users are added directly to the workspace. When they sign in using the imported email, they're automatically redirected to the workspace without going through onboarding. **CSV format requirements** Your CSV must contain these columns in this exact order: + ``` Email, Display Name, First Name, Last Name, Role ``` **Example CSV:** + ``` Email,Display Name,First Name,Last Name,Role alex@company.com,Alex Chen,Alex,Chen,15 @@ -64,16 +66,18 @@ mike@company.com,Mike Rodriguez,Mike,Rodriguez,5 ``` **Role values:** + - `5` – Guest - `15` – Member - `20` – Admin **Important notes** + - Only `.csv` files are supported. - Valid users appear immediately in the Members list after import. - Invalid entries are skipped (check your CSV for errors if some users don't appear). -:::caution[Self-hosted Plane instance] +::: warning Self-hosted Plane instance Ensure your SMTP server is properly configured to send invite emails successfully. See [Configure SMTP for email](https://developers.plane.so/self-hosting/govern/communication) for more information. ::: @@ -88,9 +92,9 @@ Ensure your SMTP server is properly configured to send invite emails successfull The role change takes effect immediately. -
+
## View workspace member activity - +
Track member actions like invitations, role changes, and removals to maintain visibility over workspace management. @@ -103,12 +107,14 @@ Track member actions like invitations, role changes, and removals to maintain vi 2. Click **Activity** in the top right. The activity panel shows recent workspace member events: + - **Member invitations** - Who invited which members and when - **Invitation acceptances** - When members accepted and joined the workspace - **Role changes** - Role updates with who made the change and when - **Member removals** - Who removed members from the workspace Each activity entry shows: + - The action taken - Who performed the action - When it happened (relative time like "about 1 month ago" or "5 days ago") @@ -126,9 +132,10 @@ This audit trail helps workspace admins monitor membership changes and troublesh The member loses access to the workspace and all its projects immediately. -:::warning +::: warning Removing members doesn't change your seat count or billing. You must [remove seats](/workspaces-and-users/add-remove-seats#remove-unused-seats) separately. ::: ## See also -- [Manage project members](/core-concepts/projects/manage-project-members) \ No newline at end of file + +- [Manage project members](/core-concepts/projects/manage-project-members) diff --git a/docs/core-concepts/workspaces/overview.mdx b/docs/core-concepts/workspaces/overview.md similarity index 93% rename from docs/core-concepts/workspaces/overview.mdx rename to docs/core-concepts/workspaces/overview.md index 2a8e2bfb..bd503c76 100644 --- a/docs/core-concepts/workspaces/overview.mdx +++ b/docs/core-concepts/workspaces/overview.md @@ -1,9 +1,10 @@ --- title: Create and manage workspaces -sidebar_label: Manage workspace description: Create and manage Workspaces in Plane. --- +# Create and manage workspaces + Think of a Workspace in Plane as your command center, the place where everything comes together. It’s the top-level space that holds all your projects, work items, cycles, modules, and pages. Picture it like this. A Workspace in Plane is similar to a server in Discord or an organization in Slack. It’s where your team gathers to work on projects, track progress, and get things done. You can create your own projects, invite others to join, and collaborate as a group, or just do your own thing if that’s how you roll. @@ -31,7 +32,7 @@ When you first sign up for Plane, you'll create your workspace during onboarding ![Create workspace](https://media.docs.plane.so/workspaces/workspace-creation-form.webp#hero) -:::info[Workspace URL] +::: info Workspace URL Each workspace gets a unique URL (slug). You can have duplicate workspace names, but URLs must be unique. ::: @@ -47,7 +48,7 @@ Click the invitation link in the email you received. 1. Click your workspace name in the top-left corner. 2. Select **Workspace invites** from the dropdown menu. 3. View pending invitations. -4. Click Accept on the workspace you want to join. +4. Click Accept on the workspace you want to join. ## Access workspace settings @@ -57,6 +58,7 @@ Click the invitation link in the email you received. ![workspace-settings](https://media.docs.plane.so/workspaces/workspace-settings.webp#hero-tl) From workspace settings, you can: + - Manage workspace members and roles - Configure integrations - Import or export data @@ -72,12 +74,13 @@ If you belong to multiple workspaces: All your workspaces must be associated with the same email address. ## Delete workspace -Workspace admins are the only ones who can delete a workspace. -:::warning +Workspace admins are the only ones who can delete a workspace. + +::: warning Deleting a workspace permanently removes all data including projects, work items, cycles, modules, and pages. Plane does not provide automatic backups. Export any important data before deleting. ::: 1. Navigate to **Workspace Settings**. 2. In the **General** tab, scroll to the **Delete workspace** section. -3. Confirm the deletion. \ No newline at end of file +3. Confirm the deletion. diff --git a/docs/core-concepts/workspaces/teamspaces.mdx b/docs/core-concepts/workspaces/teamspaces.md similarity index 97% rename from docs/core-concepts/workspaces/teamspaces.mdx rename to docs/core-concepts/workspaces/teamspaces.md index c9984116..b87aeeda 100644 --- a/docs/core-concepts/workspaces/teamspaces.mdx +++ b/docs/core-concepts/workspaces/teamspaces.md @@ -1,15 +1,13 @@ --- title: Track team work with Teamspaces -sidebar_label: Teamspaces -hide_title: true description: Organize team members across projects, track team-specific work items, and create dedicated spaces for team knowledge and collaboration. --- -import Tags from "@site/src/components/Tags"; +# Track team work with Teamspaces -
+
# Track work by teams - +
With Teamspaces, you can mirror your real-world teams of any kind and track work separately from a project. See your team's work automatically filtered across projects, and house your team's knowledge separate from anything else in Plane. @@ -20,7 +18,7 @@ Teamspaces brings together people and projects in a neat space tucked away from ## Turn on Teamspaces -:::warning +::: warning Once on, the feature cannot be turned off in a workspace. ::: diff --git a/docs/customers.mdx b/docs/customers.md similarity index 94% rename from docs/customers.mdx rename to docs/customers.md index 17982900..88e3b41f 100644 --- a/docs/customers.mdx +++ b/docs/customers.md @@ -1,16 +1,11 @@ --- title: Customer management to track client requests and priorities -sidebar_label: Customers -hide_title: true description: Track client requests, link work items to specific customers, and prioritize tasks based on customer importance. --- -import Tags from "@site/src/components/Tags"; +# Customer management to track client requests and priorities -
-

Manage your work by customer priorities

- -
+ The Customers feature transforms how you organize and prioritize work by placing your clients at the center of your process. Instead of managing tasks in isolation, Customers creates direct connections between your work items and the people they serve, helping teams make better decisions about what to prioritize and ensuring customer requests receive proper attention. @@ -97,14 +92,14 @@ Customer requests serve as the bridge between what your clients need and the act ### Link work to requests - Add source information - + ![Add source](https://media.docs.plane.so/customers/add-source.webp#hero) 1. From a request, click **Add source**. 2. Enter the URL for the source. 3. Click **Submit**. - Connect existing work items - + ![Link work items](https://media.docs.plane.so/customers/link-work-items.webp#hero) 1. From a request, click **Link work items**. 2. Search and select relevant Work Items or Epics. @@ -114,6 +109,6 @@ Customer requests serve as the bridge between what your clients need and the act ![Customer property](https://media.docs.plane.so/customers/customer-property.webp#hero) -:::info[What's next] +::: info What's next Soon, you'll be able to bulk upload customer records via CSV files. ::: diff --git a/docs/dashboards.mdx b/docs/dashboards.md similarity index 88% rename from docs/dashboards.mdx rename to docs/dashboards.md index e406e004..528b2fc7 100644 --- a/docs/dashboards.mdx +++ b/docs/dashboards.md @@ -1,20 +1,15 @@ --- title: Custom dashboards to visualize project metrics and data -sidebar_label: Dashboards -hide_title: true description: Build custom dashboards in Plane to visualize project metrics. --- -import Tags from "@site/src/components/Tags"; +# Custom dashboards to visualize project metrics and data -
-

Build custom dashboards

- -
+ Dashboards in Plane give you a bird's-eye view of your projects through customizable visualizations. They help you monitor progress, identify bottlenecks, and make data-driven decisions without diving into individual projects. -
+
diff --git a/docs/devices/mobile.mdx b/docs/devices/mobile.md similarity index 98% rename from docs/devices/mobile.mdx rename to docs/devices/mobile.md index ea2e097f..5a0adf7b 100644 --- a/docs/devices/mobile.mdx +++ b/docs/devices/mobile.md @@ -1,6 +1,5 @@ --- title: Project management mobile app for iOS and Android -sidebar_label: Mobile description: Learn how to use Plane's mobile app for iOS and Android. --- @@ -21,7 +20,7 @@ With the mobile app, you can easily manage your projects on the go. Whether you' Head over to [Download](https://plane.so/download) to install the app for Android or iOS. -:::caution[Limitation] +::: warning Limitation Sign-up isn't available through the mobile app. To use the app, you'll need to be a member of at least one workspace. ::: @@ -177,7 +176,8 @@ You will notice that the bottom navigation bar now shows different buttons:
## Push notifications -:::info + +::: info Push notifications are currently available only for Plane Cloud users. ::: @@ -187,7 +187,7 @@ The Plane mobile app supports push notifications to keep you updated on importan ### Unable to log in to the mobile app -
Error: 404 Page Not Found
+
Error: 404 Page Not Found
This error occurs when attempting to log in to the mobile app with a self-hosted URL on the Community Edition or an outdated version of the Commercial Edition. @@ -233,8 +233,8 @@ Ensure the correct Redirect URI is configured in your OAuth service: ``` - For GitHub Sign-In: Add the following URL to the Callback URL section in your GitHub OAuth app: `bash - https:///auth/mobile/github/callback/ - ` + https:///auth/mobile/github/callback/ + ` Verify that the `` part of the URL matches your self-hosted instance's domain. ### Link not opening iOS app diff --git a/docs/importers/asana.mdx b/docs/importers/asana.md similarity index 97% rename from docs/importers/asana.mdx rename to docs/importers/asana.md index b733b719..7c122b66 100644 --- a/docs/importers/asana.mdx +++ b/docs/importers/asana.md @@ -1,6 +1,5 @@ --- title: Import data from Asana -sidebar_label: Asana description: Migrate your Asana data to Plane. --- @@ -8,7 +7,7 @@ description: Migrate your Asana data to Plane. With the Asana importer, you can easily import issues, states, labels, priorities and user data from Asana to Plane and continue managing your existing projects. -:::info +::: info The Asana importert is available on Plane Cloud and on all plans of the Commercial Edition for self-hosted instances. ::: @@ -16,7 +15,7 @@ The Asana importert is available on Plane Cloud and on all plans of the Commerci > **Role**: Workspace admins -:::tip +::: tip To import issue types from Asana, make sure the [Work item types](/core-concepts/issues/issue-types) feature is enabled in your Plane project. ::: @@ -25,46 +24,46 @@ To import Asana issues to a Plane project, follow these steps: 1. Click the **∨** icon next to your workspace name on the sidebar and select **Workspace Settings**. 2. Select **Imports** on the right pane and click the **Import** button in the Asana section. - + ![Import from Asana](https://media.docs.plane.so/importers/asana/import-asana.webp#hero) 3. In the **Asana to Plane Migration Assistant** screen, enter your **Personal Access Token** to allow Plane access to your Asana account. - + ![Connect Asana](https://media.docs.plane.so/importers/asana/asana-plane-migration-assistant.webp#hero) 4. Click the **Connect Asana** button to link the accounts. 5. Click the **Import** button under the **Imports** section. - + ![Import Asana](https://media.docs.plane.so/importers/asana/import-asana-data.webp#hero) 6. **Configure Plane** Select the Plane project where you want to import your Asana data and and click **Next**. - + ![Configure Plane](https://media.docs.plane.so/importers/asana/configure-plane.webp#hero) 7. **Configure Asana** Choose the workspace and project in Asana from where you want to import data. - + ![Configure Asana](https://media.docs.plane.so/importers/asana/configure-asana.webp#hero) 8. **Map states** Map **Asana sections** to their equivalent **Plane states**. - + ![Map states](https://media.docs.plane.so/importers/asana/map-states.webp#hero) 9. **Map priorities** Map the **Asana priorities** to the corresponding **Plane priorities**. If there's no match, select **None** in the **Plane priorities** list. - + ![Map priorities](https://media.docs.plane.so/importers/asana/map-priorities.webp#hero) 10. **Summary** Review the mappings and make any changes if needed. Click **Back** to adjust, or click **Confirm** to start the migration. - + ![Review mappings](https://media.docs.plane.so/importers/asana/import-summary.webp#hero) 11. The data migration begins and takes a few minutes to complete depending on the number of issues in your Asana workspace. - + ![Migration complete](https://media.docs.plane.so/importers/asana/import-complete.webp#hero) 12. Once it's done, go to **Work items** in your Plane project to confirm that the data import is successful. @@ -86,7 +85,7 @@ Here’s a quick look at what gets imported during the migration from Asana to P | Reporter | Created by | | | Created | Created at | | | Assignee | Assignees | If you skip user import during migration, this will be blank. | -| Issue types | Labels \| Prefix in Work item title | | +| Issue types | Labels \| Prefix in Work item title | | | Images in the Issue description | Images in the Work item description | | | Summary | Work item title | | | Start date | Start date | | @@ -100,5 +99,5 @@ After the import, if there are any new or updated issues in Asana, you can easil 1. Go to **Workspace settings**. 2. Select **Imports** on the right pane. 3. Click the **Re run** button next to the project you want to sync. - + ![Sync Asana](https://media.docs.plane.so/importers/asana/rerun-import.webp#hero) diff --git a/docs/importers/clickup.mdx b/docs/importers/clickup.md similarity index 55% rename from docs/importers/clickup.mdx rename to docs/importers/clickup.md index 5050e0cd..4a588066 100644 --- a/docs/importers/clickup.mdx +++ b/docs/importers/clickup.md @@ -1,8 +1,8 @@ --- title: Import data from ClickUp -sidebar_label: ClickUp description: Import work items from ClickUp to Plane. --- + # Import your ClickUp data to Plane The ClickUp importer helps you transfer your project data from ClickUp to Plane. It pulls information from your ClickUp workspace and maps it to the corresponding structure in Plane. This includes your projects, tasks, team members, custom fields, attachments, and comments. @@ -12,63 +12,64 @@ The ClickUp importer helps you transfer your project data from ClickUp to Plane. - A ClickUp Personal Access Token from your ClickUp App Settings. - ClickUp Lists organized within Folders. -:::tip +::: tip To import custom task types from ClickUp, make sure the [Work item types](/core-concepts/issues/issue-types) feature is enabled in your Plane project. ::: ## Import from ClickUp + > **Role**: Workspace admins ![Import from ClickUp](https://media.docs.plane.so/importers/clickup/import-clickup.webp#hero) + 1. Go to your Workspace Settings. - 2. Select **Imports** on the left pane and click **Import** next to ClickUp. - ![Personal access token](https://media.docs.plane.so/importers/clickup/personal-access-token.webp#hero) + ![Personal access token](https://media.docs.plane.so/importers/clickup/personal-access-token.webp#hero) 3. Enter your ClickUp Personal Access Token on the Migration Assistant page. If you don't have one, go to your ClickUp settings under **Apps** to generate it. Click **Connect ClickUp** after entering the token. 4. Choose what to import: - - ![Configure ClickUp](https://media.docs.plane.so/importers/clickup/configure-clickup.webp#hero) - 1. Select your ClickUp team (workspace). - 2. Pick your ClickUp space. - 3. Choose the folders to migrate. - 4. Check "Import comments and attachments" if you want these included. - 5. Click **Next** to continue. + + ![Configure ClickUp](https://media.docs.plane.so/importers/clickup/configure-clickup.webp#hero) + 1. Select your ClickUp team (workspace). + 2. Pick your ClickUp space. + 3. Choose the folders to migrate. + 4. Check "Import comments and attachments" if you want these included. + 5. Click **Next** to continue. 5. Match your ClickUp priorities to Plane priorities using the dropdown menus. This keeps your task prioritization consistent after migration. - - ![Map priorities](https://media.docs.plane.so/importers/clickup/map-priorities.webp#hero) + + ![Map priorities](https://media.docs.plane.so/importers/clickup/map-priorities.webp#hero) 6. Review the mappings and make any changes if needed. Click **Back** to adjust. 7. You can check "Skip importing User data" if you don't want to migrate user information and manually add them later. - :::warning - If you skip user import, work items and comments will show the name of the person who performed the migration, and the Assignees field will be empty. - ::: + :::warning + If you skip user import, work items and comments will show the name of the person who performed the migration, and the Assignees field will be empty. + ::: -9. Click **Confirm** to start. +8. Click **Confirm** to start. - The migration runs in batches with real-time status updates. You'll see progress indicators and can cancel if needed. Migration time depends on your data size rate limits. + The migration runs in batches with real-time status updates. You'll see progress indicators and can cancel if needed. Migration time depends on your data size rate limits. -10. After completion, review your imported projects in Plane. Check that work items, modules, and custom fields transferred correctly. +9. After completion, review your imported projects in Plane. Check that work items, modules, and custom fields transferred correctly. ## Data mapping Here's how your ClickUp structure converts to Plane: -| ClickUp | Plane | -|---------|--------| -| Users | Members | -| Folders | Projects | -| Lists within folders | Modules within projects | -| Tasks | Work items | -| Custom task types | Work item types | -| Custom fields | Custom properties at project level | -| Task attachments | Work item attachments | -| Task comments | Work item comments | -| Task data | Work item data | +| ClickUp | Plane | +| -------------------- | ---------------------------------- | +| Users | Members | +| Folders | Projects | +| Lists within folders | Modules within projects | +| Tasks | Work items | +| Custom task types | Work item types | +| Custom fields | Custom properties at project level | +| Task attachments | Work item attachments | +| Task comments | Work item comments | +| Task data | Work item data | ### Supported custom fields @@ -91,4 +92,3 @@ After the import, if there are any new or updated issues in ClickUp, you can eas 1. Go to **Workspace settings**. 2. Select **Imports** on the left pane. 3. Click the **Re run** button next to the project you want to sync. - diff --git a/docs/importers/confluence.mdx b/docs/importers/confluence.md similarity index 58% rename from docs/importers/confluence.mdx rename to docs/importers/confluence.md index 9ccfc849..ed36d983 100644 --- a/docs/importers/confluence.mdx +++ b/docs/importers/confluence.md @@ -1,18 +1,13 @@ --- title: Import data from Confluence -sidebar_label: Confluence description: Import data from Confluence to Plane. --- -import Tags from "@site/src/components/Tags"; - -
+
# Import your Confluence data to Plane -
The Confluence to Plane importer lets you transfer your Confluence pages and content to Plane's Wiki. This is useful when you want to bring your documentation, notes, and structured content from Confluence into your Plane workspace as Wiki pages. @@ -28,12 +23,16 @@ First, you need to export your content from Confluence: 3. In the left sidebar, expand **General** if it's not already expanded. 4. Click on **Export space**. 5. In the export options: - - **File format**: Select **HTML**. + +- **File format**: Select **HTML**. + 6. After selecting HTML, you'll see additional options: - - Choose **Export each item, with attachments. Comments are excluded.** - :::info - Only HTML exports from Confluence are supported. Make sure to select HTML as your export format. - ::: + +- Choose **Export each item, with attachments. Comments are excluded.** + :::info + Only HTML exports from Confluence are supported. Make sure to select HTML as your export format. + ::: + 7. Click **Export**. 8. The system will process your export and show a progress bar with time elapsed, time remaining, and completion percentage. 9. Once complete, you'll see "Export complete. Download here.". Click the download link. @@ -49,14 +48,15 @@ Once you have your exported ZIP file: 2. Click **Import** next to the Confluence option. 3. On the Confluence import page, click **Upload Confluence Exported ZIP**. 4. Select and upload the ZIP file you exported from Confluence. - - ![Upload confluence file](https://media.docs.plane.so/importers/confluence/upload-confluence-file.webp#hero) + + ![Upload confluence file](https://media.docs.plane.so/importers/confluence/upload-confluence-file.webp#hero) + 5. Wait for the upload to complete. You'll see a "Upload complete!" message. 6. Click **Start Import** to begin processing your Confluence data. 7. The import will process in phases. Once finished, the status will change to "Finished". - - ![Confluence file uploaded](https://media.docs.plane.so/importers/confluence/confluence-file-uploaded.webp#hero) + + ![Confluence file uploaded](https://media.docs.plane.so/importers/confluence/confluence-file-uploaded.webp#hero) 8. After the import completes, your Confluence pages will be available in Plane's **Wiki** section. The page hierarchy from Confluence will be preserved, with main pages and their subpages organized in the same structure. @@ -64,20 +64,20 @@ Once you have your exported ZIP file: Here's how different Confluence elements are handled during import: -| Confluence | Plane | -|-------------------|--------------| -| Markdown | Markdown | -| Videos | Links | -| Embeds | Links | -| Attachments | Links | -| Text and background colors | Text and background colors | -| Links | Links | -| Subpages | Nested pages | -| Page mentions | Links | -| User mentions | Link (Atlassian user) | -| Table background colors | Not imported | -| Block highlight | Text highlight (not supported) | -| Columns | Rendered Vertically (not supported) | -| Comments | Not supported | -| Databases | Tables | -| Collapsible | Callout | \ No newline at end of file +| Confluence | Plane | +| -------------------------- | ----------------------------------- | +| Markdown | Markdown | +| Videos | Links | +| Embeds | Links | +| Attachments | Links | +| Text and background colors | Text and background colors | +| Links | Links | +| Subpages | Nested pages | +| Page mentions | Links | +| User mentions | Link (Atlassian user) | +| Table background colors | Not imported | +| Block highlight | Text highlight (not supported) | +| Columns | Rendered Vertically (not supported) | +| Comments | Not supported | +| Databases | Tables | +| Collapsible | Callout | diff --git a/docs/importers/csv.mdx b/docs/importers/csv.md similarity index 98% rename from docs/importers/csv.mdx rename to docs/importers/csv.md index 4c2a605b..35194efa 100644 --- a/docs/importers/csv.mdx +++ b/docs/importers/csv.md @@ -1,6 +1,5 @@ --- title: Import data from CSV file -sidebar_label: CSV description: Import work items from CSV files to Plane. --- @@ -8,7 +7,7 @@ description: Import work items from CSV files to Plane. With the CSV importer, you can easily import work items from your CSV file to Plane. -:::info +::: info The CSV importer is only available on Plane Cloud. ::: @@ -16,7 +15,7 @@ The CSV importer is only available on Plane Cloud. > **Role**: Workspace admins -:::caution[Work Item Types] +::: warning Work Item Types To import work item types, make sure the [Work item types](/core-concepts/issues/issue-types) feature is enabled in your Plane project. ::: @@ -34,7 +33,7 @@ Here's how to get started: 6. Click the **Upload CSV** button. - :::warning[Prepare your CSV] + ::: warning Prepare your CSV When importing user fields like **Assignee**, make sure to use email addresses rather than usernames. This ensures your team members are correctly linked to their work items. ::: diff --git a/docs/importers/github-imp.mdx b/docs/importers/github-imp.md similarity index 99% rename from docs/importers/github-imp.mdx rename to docs/importers/github-imp.md index d819ae12..b9211eaa 100644 --- a/docs/importers/github-imp.mdx +++ b/docs/importers/github-imp.md @@ -3,6 +3,8 @@ title: GitHub Importer sidebarTitle: Github --- +# GitHub Importer + :::tipIntegrations and importers are only available on the cloud version. We plan to open-source our SDKs in the near future so that the community can request or contribute integrations as needed.::: Import issues from your Github repository into Plane. diff --git a/docs/importers/jira.mdx b/docs/importers/jira.md similarity index 98% rename from docs/importers/jira.mdx rename to docs/importers/jira.md index ab91cb15..fc399fbe 100644 --- a/docs/importers/jira.mdx +++ b/docs/importers/jira.md @@ -1,6 +1,5 @@ --- title: Import data from Jira -sidebar_label: Jira description: Import your projects and issues from Jira Cloud, Jira Server, or Jira Data Center into Plane. --- @@ -8,7 +7,7 @@ description: Import your projects and issues from Jira Cloud, Jira Server, or Ji Plane supports importing from Jira Cloud, Jira Server, and Jira Data Center. Choose the import option that matches your Jira deployment. -:::info +::: info The Jira importer is available on Plane Cloud and on all plans of the Commercial Edition for self-hosted instances. ::: @@ -16,7 +15,7 @@ The Jira importer is available on Plane Cloud and on all plans of the Commercial > **Role**: Workspace admins -:::tip +::: tip To import issue types from Jira, make sure the [Issue types](/core-concepts/issues/issue-types) feature is enabled in your Plane project. ::: @@ -25,30 +24,30 @@ To import Jira issues to a Plane project, follow these steps: 1. Click the **∨** icon next to your workspace name on the sidebar and select **Workspace Settings**. 2. Select **Imports** on the right pane and click the **Import** button in the Jira section. - + ![Import from Jira](https://media.docs.plane.so/importers/jira/import-jira-cloud-server.webp#hero) 3. In the **Jira to Plane Migration Assistant** screen, enter your **Personal Access Token**, **User email** and the **Jira domain** to allow Plane access to your Atlassian account. - + ![Connect Jira](https://media.docs.plane.so/importers/jira/jira-plane-migration-assitant.webp#hero) 4. Click the **Connect Jira** button to link the accounts. 5. Click the **Import** button. - + ![Import Jira](https://media.docs.plane.so/importers/jira/import-jira-data.webp#hero) 6. **Configure Plane** Select the Plane project where you want to import your Jira data and and click **Next**. - + ![Configure Plane](https://media.docs.plane.so/importers/jira/configure-plane.webp#hero) 7. **Configure Jira** Choose the workspace and project in Jira from where you want to import data. - + ![Configure Jira](https://media.docs.plane.so/importers/jira/configure-jira.webp#hero) - :::info[Work item types] + ::: info Work item types If you're on a paid plan (Pro or higher), issue types in Jira will be imported as work item types in Plane. On the free plan, issue types from Jira won't be imported. ::: @@ -68,27 +67,27 @@ To import Jira issues to a Plane project, follow these steps: :::warning If you skip user import, work items and comments will show the name of the person who performed the migration, and the Assignees field will be empty. ::: - + ![Import users](https://media.docs.plane.so/importers/jira/import-users.webp#hero) 9. **Map states** 1. Map **Jira status** to their equivalent **Plane states**. 2. Select the **Auto create and map the remaining Jira states** checkbox to automatically create and map any missing states. - + ![Map states](https://media.docs.plane.so/importers/jira/map-states.webp#hero) 10. **Map priorities** Map the **Jira priorities** to the corresponding **Plane priorities**. If there's no match, select **None** in the **Plane priorities** list. - + ![Map priorities](https://media.docs.plane.so/importers/jira/map-priorities.webp#hero) 11. **Summary** Review the mappings and make any changes if needed. Click **Back** to adjust, or click **Confirm** to start the migration. - + ![Review mappings](https://media.docs.plane.so/importers/jira/import-summary.webp#hero) 12. The data migration begins and takes a few minutes to complete depending on the number of issues in your Jira workspace. - + ![Migration complete](https://media.docs.plane.so/importers/jira/jira-import-complete.webp#hero) 13. Once it's done, go to **Work items** in your Plane project to confirm that the data import is successful. @@ -126,5 +125,5 @@ After the import, if there are any new or updated issues in Jira, you can easily 1. Go to **Workspace settings**. 2. Select **Imports** on the right pane. 3. Click the **Re run** button next to the project you want to sync. - + ![Sync Jira](https://media.docs.plane.so/importers/jira/rerun-import.webp#hero) diff --git a/docs/importers/linear.mdx b/docs/importers/linear.md similarity index 98% rename from docs/importers/linear.mdx rename to docs/importers/linear.md index 8d31c8f1..235f5203 100644 --- a/docs/importers/linear.mdx +++ b/docs/importers/linear.md @@ -1,6 +1,5 @@ --- title: Import data from Linear -sidebar_label: Linear description: Migrate your Linear data to Plane. --- @@ -8,7 +7,7 @@ description: Migrate your Linear data to Plane. With the Linear importer, you can easily import issues, states, labels, priorities and user data from Linear to Plane and continue managing your existing projects. -:::info +::: info The Linear importert is available on Plane Cloud and on all plans of the Commercial Edition for self-hosted instances. ::: @@ -16,7 +15,7 @@ The Linear importert is available on Plane Cloud and on all plans of the Commerc > **Role**: Workspace admins -:::tip +::: tip To import issue types from Linear, make sure the [Work item types](/core-concepts/issues/issue-types) feature is enabled in your Plane project. ::: @@ -25,45 +24,45 @@ To import Linear issues to a Plane project, follow these steps: 1. Click the **∨** icon next to your workspace name on the sidebar and select **Workspace settings**. 2. Select **Imports** on the right pane and click the **Import** button in the Linear section. - + ![Import Linear](https://media.docs.plane.so/importers/linear/import-linear.webp#hero) 3. In the **Linear to Plane Migration Assistant** screen, enter your **Personal Access Token** to allow Plane access to your Linear account. - + ![Connect Linear](https://media.docs.plane.so/importers/linear/linear-plane-migration-assistant.webp#hero) 4. Click the **Connect Linear** button to link the accounts. 5. Click the **Import** button in the **Imports** section. - + ![Import Linear data](https://media.docs.plane.so/importers/linear/import-linear-data.webp#hero) 6. **Configure Plane** Select the Plane project where you want to import your Linear data and and click **Next**. - + ![Configure Plane](https://media.docs.plane.so/importers/linear/configure-plane.webp#hero) 7. **Configure Linear** Choose the Linear team from where you want to import data. - + ![Configure Linear](https://media.docs.plane.so/importers/linear/configure-linear.webp#hero) 8. **Map states** Map **Linear states** to their equivalent **Plane states**. - + ![Map states](https://media.docs.plane.so/importers/linear/map-states.webp#hero) 9. **Summary** Review the mappings and make any changes if needed. Click **Back** to adjust, or click **Confirm** to start the migration. - + ![Review mappings](https://media.docs.plane.so/importers/linear/import-summary.webp#hero) 10. The data migration begins and takes a few minutes to complete depending on the number of issues in your Linear workspace. - + ![Migration complete](https://media.docs.plane.so/importers/linear/import-complete.webp#hero) 11. Once it's done, go to **Work items** in your Plane project to confirm that the data import is successful. - + ![Verify import](https://media.docs.plane.so/importers/linear/verify-import.webp#hero) ### Imported entities @@ -99,5 +98,5 @@ After the import, if there are any new or updated issues in Linear, you can easi 1. Go to **Workspace settings**. 2. Select **Imports** on the right pane. 3. Click the **Re run** button next to the project you want to sync. - + ![Sync Linear](https://media.docs.plane.so/importers/linear/rerun-import.webp#hero) diff --git a/docs/importers/notion.mdx b/docs/importers/notion.md similarity index 50% rename from docs/importers/notion.mdx rename to docs/importers/notion.md index 2be7ea1d..e86013c4 100644 --- a/docs/importers/notion.mdx +++ b/docs/importers/notion.md @@ -1,18 +1,13 @@ --- title: Import data from Notion -sidebar_label: Notion description: Import data from Notion to Plane. --- -import Tags from "@site/src/components/Tags"; - -
+
# Import your Notion data to Plane -
The Notion to Plane importer lets you transfer your Notion pages and content to Plane's Wiki. This is useful when you want to bring your documentation, notes, and structured content from Notion into your Plane workspace as Wiki pages. @@ -25,16 +20,17 @@ The importer takes exported Notion content and converts it into Plane wiki pages 2. Click the three-dot menu (⋯) in the top-right corner of the page. 3. Select **Export** from the dropdown menu. 4. In the export dialog: - - **Export format**: Choose **HTML** - - **Include databases**: Select **Current view** - - **Include content**: Choose **Everything** - - **Include subpages**: Toggle this **ON** - - **Create folders for subpages**: Toggle this **ON** - - **Export comments**: Toggle this **OFF** (unless you want comments included) - :::info - Only HTML exports from Notion are supported. Make sure to select HTML as your export format. - ::: +- **Export format**: Choose **HTML** +- **Include databases**: Select **Current view** +- **Include content**: Choose **Everything** +- **Include subpages**: Toggle this **ON** +- **Create folders for subpages**: Toggle this **ON** +- **Export comments**: Toggle this **OFF** (unless you want comments included) + +:::info +Only HTML exports from Notion are supported. Make sure to select HTML as your export format. +::: 5. Click **Export**. 6. Notion will generate a ZIP file containing your exported content. @@ -51,14 +47,14 @@ Once you have your exported ZIP file: 3. On the Notion import page, click **Upload Notion Exported ZIP**. 4. Select and upload the ZIP file you exported from Notion. - - ![Upload notion file](https://media.docs.plane.so/importers/notion/upload-notion-file.webp#hero) + + ![Upload notion file](https://media.docs.plane.so/importers/notion/upload-notion-file.webp#hero) 5. Wait for the upload to complete. You'll see a "Upload complete!" message. 6. Click **Start Import** to begin processing your Notion data. 7. The import will process in phases. Once finished, the status will change to "Finished". - ![Notion file uploaded](https://media.docs.plane.so/importers/notion/notion-file-uploaded.webp#hero) + ![Notion file uploaded](https://media.docs.plane.so/importers/notion/notion-file-uploaded.webp#hero) 8. After the import completes, your Notion pages will be available in Plane's **Wiki** section. The page hierarchy from Notion will be preserved, with main pages and their nested pages organized in the same structure. @@ -66,21 +62,21 @@ Once you have your exported ZIP file: Here's how different Notion elements are handled during import: -| Notion | Plane | -|----------------|--------------| -| Markdown | Markdown | -| Videos | Links | -| Embeds | Links | -| Attachments | Links | -| Text and background colors | Text and background colors | -| Page icons | Page icons | -| Page banner | Not imported | -| Links | Links | -| Subpages | Nested pages | -| Page mentions | Links | -| User mentions | Text (Not imported) | -| Table background colors | Not imported | -| Block highlight | Text Highlight (not supported) | -| Columns | Rendered vertically (not supported) | -| Comments | Not supported | -| Databases | Tables | \ No newline at end of file +| Notion | Plane | +| -------------------------- | ----------------------------------- | +| Markdown | Markdown | +| Videos | Links | +| Embeds | Links | +| Attachments | Links | +| Text and background colors | Text and background colors | +| Page icons | Page icons | +| Page banner | Not imported | +| Links | Links | +| Subpages | Nested pages | +| Page mentions | Links | +| User mentions | Text (Not imported) | +| Table background colors | Not imported | +| Block highlight | Text Highlight (not supported) | +| Columns | Rendered vertically (not supported) | +| Comments | Not supported | +| Databases | Tables | diff --git a/docs/importers/overview.md b/docs/importers/overview.md new file mode 100644 index 00000000..2b2a8c84 --- /dev/null +++ b/docs/importers/overview.md @@ -0,0 +1,33 @@ +--- +title: Importers overview +description: Importers to migrate your project data to Plane +--- + +# Easily migrate your project data with Plane Importers + +Switching to Plane? No need to start from scratch. Our importers make it simple to move your project data from other tools, saving you time and effort. Instead of manually setting up your structure and history, you can directly transfer your existing issues into Plane, keeping your team’s progress intact for a smooth transition. + +::: info +Importers are available on Plane Cloud and on all plans of the Commercial Edition for self-hosted instances. +::: + + + + Import boards from Jira into Plane, streamlining your project setup. + + + + +Bring Linear tasks into Plane, ensuring smooth transitions and continued progress. + + + + +Migrate tasks from Asana to Plane, keeping your workflow intact and organized. + + + + Import work items from CSV files, perfect for migrating data from spreadsheets or other tools. + + + diff --git a/docs/importers/overview.mdx b/docs/importers/overview.mdx deleted file mode 100644 index ffd38746..00000000 --- a/docs/importers/overview.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Importers overview -sidebar_label: Overview -description: Importers to migrate your project data to Plane ---- - -import { CardGroup, Card } from "@site/src/components"; - -# Easily migrate your project data with Plane Importers - -Switching to Plane? No need to start from scratch. Our importers make it simple to move your project data from other tools, saving you time and effort. Instead of manually setting up your structure and history, you can directly transfer your existing issues into Plane, keeping your team’s progress intact for a smooth transition. - -:::info -Importers are available on Plane Cloud and on all plans of the Commercial Edition for self-hosted instances. -::: - - - - Import boards from Jira into Plane, streamlining your project setup. - - - - - - } - href="/importers/linear" -> - Bring Linear tasks into Plane, ensuring smooth transitions and continued progress. - - - - - - } - href="/importers/asana" -> - Migrate tasks from Asana to Plane, keeping your workflow intact and organized. - - - - Import work items from CSV files, perfect for migrating data from spreadsheets or other tools. - - - diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..c455f78c --- /dev/null +++ b/docs/index.md @@ -0,0 +1,43 @@ +--- +layout: home +title: Plane Documentation +description: Discover Plane, the enterprise project management software for teams of all sizes. Learn how our issue tracking, sprint management, and knowledge tools can streamline your workflow. + +hero: + name: "Plane" + text: "Documentation" + tagline: Everything you need to plan, track, and manage your projects — from quick setup to advanced workflows. + actions: + - theme: brand + text: Get Started + link: /introduction/home + - theme: alt + text: View Tutorials + link: /introduction/tutorials/overview + +features: + - title: Quickstart + details: Set up your workspace, create your first project, and start tracking work. + link: /introduction/quickstart + linkText: Read the quickstart + - title: Work Items + details: Create and manage work items with custom properties, states, and types. + link: /core-concepts/issues/overview + linkText: Explore work items + - title: Projects + details: Organize work into projects with states, labels, cycles, and member roles. + link: /core-concepts/projects/overview + linkText: Learn about projects + - title: Pages & Wiki + details: Build your team's knowledge base with rich pages, nested docs, and wiki. + link: /core-concepts/pages/overview + linkText: Explore pages + - title: Cycles & Modules + details: Plan sprints with cycles, group related work into modules, and track progress. + link: /core-concepts/cycles + linkText: Plan with cycles + - title: Integrations + details: Connect with GitHub, GitLab, Slack, Sentry, and build custom integrations. + link: /integrations/about + linkText: Browse integrations +--- diff --git a/docs/intake/intake-email.mdx b/docs/intake/intake-email.md similarity index 89% rename from docs/intake/intake-email.mdx rename to docs/intake/intake-email.md index d0829b7a..f6f978e8 100644 --- a/docs/intake/intake-email.mdx +++ b/docs/intake/intake-email.md @@ -1,16 +1,11 @@ --- title: Intake emails to collect work items from email submissions -sidebar_label: Intake Email -hide_title: true description: Set up a dedicated email address for your project that automatically converts incoming messages into work items for easy review and processing. --- -import Tags from "@site/src/components/Tags"; +# Intake emails to collect work items from email submissions -
-

Collect work items via email

- -
+ With Intake Emails, you get a dedicated email address where people can send requests that automatically appear in your project's Intake section. @@ -18,7 +13,7 @@ With Intake Emails, you get a dedicated email address where people can send requ When someone sends an email to your project's dedicated address, our system automatically converts it into a work item in your Intake section. The email subject becomes the work item title, while the body becomes the description. Any attachments are preserved and added to the work item for easy reference. -:::danger[Self-hosted Plane instance] +::: danger Self-hosted Plane instance If you're running a self-hosted instance of Plane, you'll need to set up a few extra configurations to get Intake Email working. Check out the [setup guide](https://developers.plane.so/self-hosting/govern/configure-dns-email-service) first before diving into the steps on this page. ::: @@ -45,7 +40,7 @@ From there, you can: - Accept items you want to work on (moving them into your project workflow). - Reject items that don't fit your current priorities. -:::info +::: info All work items submitted through forms appear in Intake under the **Triage** state. When you accept an item into your project, you'll choose which project state it should move to. ::: diff --git a/docs/intake/intake-forms.mdx b/docs/intake/intake-forms.md similarity index 82% rename from docs/intake/intake-forms.mdx rename to docs/intake/intake-forms.md index 59b5f558..47d15cb8 100644 --- a/docs/intake/intake-forms.mdx +++ b/docs/intake/intake-forms.md @@ -1,16 +1,12 @@ --- title: Intake to collect and triage external work requests -sidebar_label: Intake Forms -hide_title: true description: Set up public web forms to collect bug reports, feature requests, and support tickets from external users without giving them project access. --- -import Tags from "@site/src/components/Tags"; +# Intake to collect and triage external work requests + + -
-

Collect work items with public web forms

- -
Now, you can easily gather bug reports, feature requests, or support tickets from external users, all by sharing a simple form link. @@ -32,7 +28,7 @@ Once users submit the form, you’ll see their work item in your project's **Int ![mark-duplicate-intake-issues](https://media.docs.plane.so/intake/review-intake-form-issues.webp#hero) -:::info +::: info All work items submitted through forms appear in Intake under the **Triage** state. When you accept an item into your project, you'll choose which project state it should move to. ::: @@ -43,19 +39,21 @@ Plane provides a default intake form structure for quick setup. However, if you When you build forms with work item types, you design the form around a specific type's properties. This approach lets you: + - Build forms that match the structure of your work item types - Select exactly which properties appear on the form. - Create multiple forms for different purposes, each with its own structure. - Collect the right information based on what users are submitting. ### Create a custom form + ![custom-intake-form](https://media.docs.plane.so/intake/custom-intake-forms.webp#hero-br) -1. In your project settings, go to **Features > Intake > Forms**. +1. In your project settings, go to **Features > Intake > Forms**. 2. Click **+** next to **Create Forms using work item types**. -3. Enter a form title and select the work item type it should use to create the form. -3. Under **Properties**, choose which custom fields from that work item type to include. -4. Use **Preview** to see how the form appears to external users. -5. Click **Save** when you're ready to generate the form URL. +3. Enter a form title and select the work item type it should use to create the form. +4. Under **Properties**, choose which custom fields from that work item type to include. +5. Use **Preview** to see how the form appears to external users. +6. Click **Save** when you're ready to generate the form URL. -Each custom form gets its own unique URL that you can share. Users filling out the form will only see the fields you've selected, keeping their experience focused and straightforward. \ No newline at end of file +Each custom form gets its own unique URL that you can share. Users filling out the form will only see the fields you've selected, keeping their experience focused and straightforward. diff --git a/docs/intake/overview.mdx b/docs/intake/overview.md similarity index 94% rename from docs/intake/overview.mdx rename to docs/intake/overview.md index 71129cf7..f669c84d 100644 --- a/docs/intake/overview.mdx +++ b/docs/intake/overview.md @@ -1,9 +1,7 @@ --- title: Collect and triage external work requests -sidebar_label: Intake Overview description: Use Intake to collect work items from guests, forms, and email submissions, then triage and manage them before adding to your project workflow. --- -import Tags from "@site/src/components/Tags"; # Intake overview @@ -11,9 +9,10 @@ Intake helps you collect, review, and triage work items from external sources be ## How Intake works -Intake creates a buffer between external submissions and your active project work. Items submitted through any intake channel land in a *Triage* state where your team can review, add context, and decide whether to accept them into your workflow or decline them. +Intake creates a buffer between external submissions and your active project work. Items submitted through any intake channel land in a _Triage_ state where your team can review, add context, and decide whether to accept them into your workflow or decline them. This approach helps you: + - Keep your project backlog focused and intentional - Give external users an easy way to submit requests without project access - Review and add context to submissions before they enter your workflow @@ -24,16 +23,19 @@ This approach helps you: Plane offers three ways to collect work items through Intake: ### Intake In-app + Allow guests in a project to create work items through Plane's interface. Best for stakeholders who need regular access to submit requests. [Learn about Intake In-app →](/core-concepts/intake) ### Intake Forms + Share a public web form where anyone can submit work items without creating an account. Perfect for collecting bug reports, feature requests, or support tickets from a wider audience. [Learn about Intake Forms →](/intake/intake-forms) ### Intake Email + Get a dedicated email address that automatically converts incoming messages into work items. Ideal for customers or clients who prefer email communication. [Learn about Intake Email →](/intake/intake-email) @@ -49,14 +51,15 @@ Intake operates at the project level and is disabled by default. Project admins Once enabled, you'll see an **Intake** section under your project in the sidebar where all incoming work items appear. -
+
## Intake responsbility - +
Assign a team member to take ownership of incoming work items and ensure nothing falls through the cracks. When you designate an intake responsible person, they'll automatically be assigned to and notified about every new work item that comes through any intake channel (in-app, forms, or email). This helps teams: + - Ensure someone is always accountable for reviewing new requests - Get timely notifications when work items arrive - Smooth the transition from intake to your project workflow @@ -75,11 +78,12 @@ This helps teams: The designated person will now be automatically assigned to all new work items created through in-app intake, intake forms, or intake email. They'll receive notifications for each new item, allowing them to triage, add details, or reassign as needed. -:::tip +::: tip The intake responsible person can still reassign work items after initial review. This role is about ensuring accountability for the intake process, not permanent ownership of every request. ::: ## Intake state + All work items in Intake use a single state called **Triage**, regardless of which channel they came through. This intake-specific state keeps incoming requests separate from your project's workflow and doesn't appear in your project's state groups. When you accept an intake work item into your project, you can choose which project state it should move to. By default, it moves to your project's default state, but you can select any state during the acceptance process. diff --git a/docs/integrations/about.md b/docs/integrations/about.md new file mode 100644 index 00000000..213c7a44 --- /dev/null +++ b/docs/integrations/about.md @@ -0,0 +1,27 @@ +--- +title: Integrations overview +description: Connect your workspace to external tools for synchronized workflows, reduced context switching, and improved team efficiency. +--- + +# Integrations overview + +Plane's integrations make it easy to connect your workspace and projects with your favorite tools to streamline your workflow and keep everything in sync. Instead of constantly switching between different platforms, you can access and manage your external tools directly inside Plane. This creates a more efficient workflow, keeping your team focused and your projects running smoothly. + + + + Sync issues and pull requests between Plane and GitHub for a smooth, two-way workflow. + + + Sync issues and pull requests between Plane and GitHub Enterprise for a smooth, two-way workflow. + + + Connect Plane with Slack to create work items, sync discussions, and take action on tasks—all without leaving Slack. + + + Connect GitLab to Plane to automate merge request tracking, link issues seamlessly, and streamline your development + workflow. + + + Connect Sentry to Plane to automatically create work items from Sentry issues, sync issue states, and streamline your error tracking workflow. + + diff --git a/docs/integrations/about.mdx b/docs/integrations/about.mdx deleted file mode 100644 index 0882dd62..00000000 --- a/docs/integrations/about.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Integrations overview -sidebar_label: Overview -description: Connect your workspace to external tools for synchronized workflows, reduced context switching, and improved team efficiency. ---- - -import { CardGroup, Card } from "@site/src/components"; - -Plane's integrations make it easy to connect your workspace and projects with your favorite tools to streamline your workflow and keep everything in sync. Instead of constantly switching between different platforms, you can access and manage your external tools directly inside Plane. This creates a more efficient workflow, keeping your team focused and your projects running smoothly. - - - - Sync issues and pull requests between Plane and GitHub for a smooth, two-way workflow. - - - Sync issues and pull requests between Plane and GitHub Enterprise for a smooth, two-way workflow. - - - Connect Plane with Slack to create work items, sync discussions, and take action on tasks—all without leaving Slack. - - - Connect GitLab to Plane to automate merge request tracking, link issues seamlessly, and streamline your development - workflow. - - - - - - - - } - href="/integrations/sentry" - > - Connect Sentry to Plane to automatically create work items from Sentry issues, sync issue states, and streamline your error tracking workflow. - - diff --git a/docs/integrations/draw-io.mdx b/docs/integrations/draw-io.md similarity index 78% rename from docs/integrations/draw-io.mdx rename to docs/integrations/draw-io.md index 2fe73485..08ade24e 100644 --- a/docs/integrations/draw-io.mdx +++ b/docs/integrations/draw-io.md @@ -1,16 +1,11 @@ --- title: Connect Draw.io integration -sidebar_label: Draw.io -hide_title: true description: Connect Draw.io to your Plane workspace to create and edit diagrams and whiteboards directly inside Plane Pages. --- -import Tags from "@site/src/components/Tags"; +# Connect Draw.io integration -
-

Connect Draw.io integration

- -
+ Connect Draw.io to create and edit powerful diagrams and whiteboards directly inside Plane Pages and Wiki. diff --git a/docs/integrations/github.mdx b/docs/integrations/github.md similarity index 91% rename from docs/integrations/github.mdx rename to docs/integrations/github.md index 9557396b..4eaeca68 100644 --- a/docs/integrations/github.mdx +++ b/docs/integrations/github.md @@ -1,28 +1,21 @@ --- title: Integrate GitHub to sync repositories with projects -sidebar_label: GitHub -hide_title: true description: Integrate Plane with GitHub Cloud and GitHub Enterprise Server to synchronize issues and pull requests. Connect repositories to projects for bidirectional updates and seamless workflows. --- -import Tags from "@site/src/components/Tags"; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +# Integrate GitHub to sync repositories with projects -
-

Integrate with GitHub

- -
+ GitHub integration with Plane allows seamless synchronization between your GitHub repositories and Plane projects. By linking the two, your issues and pull requests stay updated across both platforms, enhancing collaboration and streamlining your workflow. Whether you're managing code, tasks, or both, this integration ensures your team stays in sync without the hassle of switching between platforms. Plane supports integration with: - **GitHub Cloud** -The standard cloud-hosted GitHub service + The standard cloud-hosted GitHub service -- **GitHub Enterprise Server** -Self-hosted GitHub instances for organizations with specific compliance or security requirements +- **GitHub Enterprise Server** + Self-hosted GitHub instances for organizations with specific compliance or security requirements ## Set up GitHub integration @@ -33,28 +26,28 @@ To get started, you'll need to connect your GitHub account, organization, and re 3. [Configure PR state automation](/integrations/github#configure-pr-state-automation) ### Connect GitHub organization -Link your GitHub organization to your Plane workspace to start syncing repositories. - - - :::danger[Plane self-hosted instances] - If you're running a self-hosted instance of Plane, you'll need to first create and configure a GitHub App to get GitHub integration working. Follow this [setup guide](https://developers.plane.so/self-hosting/govern/integrations/github?edition=github-cloud#create-github-app) first before diving into the steps on this page. - ::: +Link your GitHub organization to your Plane workspace to start syncing repositories. + +:::tabs +== GitHub Cloud +::: danger Plane self-hosted instances +If you're running a self-hosted instance of Plane, you'll need to first create and configure a GitHub App to get GitHub integration working. Follow this [setup guide](https://developers.plane.so/self-hosting/govern/integrations/github?edition=github-cloud#create-github-app) first before diving into the steps on this page. +::: 1. Navigate to [Workspace settings](/core-concepts/workspaces/overview#access-workspace-settings) in Plane. 2. On the right pane, select **Integrations**. 3. Find the **GitHub** integration and click **Configure**. 4. In the **Connect Organization** section, click **Connect**. - + ![Connect GitHub](https://media.docs.plane.so/integrations/github/connect-github.webp#hero) 5. On the GitHub app installation page, choose the organization you want to connect. 6. Select whether you want to sync all repositories or pick specific ones. 7. Click **Install** to finalize the connection. 8. After authorization, you’ll be redirected back to Plane, where your GitHub organization will appear as connected. - - - - :::danger[Plane Cloud and self-hosted instances] + +== GitHub Enterprise Server +::: danger Plane Cloud and self-hosted instances Before you can integrate with GitHub Enterprise Server, you must first create and configure a GitHub App in your GitHub Enterprise Server instance. This is required for both Plane Cloud and self-hosted users. @@ -65,17 +58,17 @@ Link your GitHub organization to your Plane workspace to start syncing repositor 2. On the right pane, select **Integrations**. 3. Find the **GitHub Enterprise** integration and click **Configure**. 4. In the **Connect Organization** section, click **Connect**. - + ![Connect GitHub Enterprise organization](https://media.docs.plane.so/integrations/github/connect-github-enterprise.webp#hero) 5. Fill the form with the details of your GitHub Enterprise instance and click **Connect**. - + ![Configure GitHub Enterprise organization](https://media.docs.plane.so/integrations/github/configure-github-enterprise.webp#hero) 6. On the GitHub app installation page, choose the organization you want to connect. 7. Select whether you want to sync all repositories or pick specific ones. 8. Click **Install** to finalize the connection. 9. After authorization, you’ll be redirected back to Plane, where your GitHub organization will appear as connected. - - + +::: ### Connect personal GitHub account @@ -93,7 +86,7 @@ Workspace admins can connect their personal GitHub accounts from Workspace setti 2. Review the required permissions GitHub requests and authorize. 3. After granting permissions, you’ll see the status updated to show that your personal account is connected. -:::info +::: info Only one Workspace Admin can connect their GitHub account via Workspace Settings. Others can connect their accounts through [Profile Settings](/integrations/github#from-profile-settings). ::: @@ -117,12 +110,14 @@ If you don’t have admin access, you can still connect your personal GitHub acc With the GitHub integration set up, you can sync issues between Plane and GitHub at the project level. This ensures GitHub issues and Plane work items stay synchronized within your configured repositories and projects. ### Add project work item sync + Once GitHub is connected to Plane, workspace admins can link GitHub repositories with Plane projects. 1. Navigate to the **Project Issue Sync** section under **Integrations**. 2. Click the (+) button to create a new sync mapping. - + ![Sync project to GitHub](https://media.docs.plane.so/integrations/github/sync-project-github.webp#hero) + 3. In the modal that appears, configure the following: 1. **Plane project** Select the Plane project you want to sync with. @@ -135,43 +130,50 @@ Once GitHub is connected to Plane, workspace admins can link GitHub repositories 4. **Select issue sync direction** Choose how issues should sync: - Unidirectional → Sync issues from GitHub to Plane only. - :::warning - This will overwrite Plane work item content with GitHub issue data. - ::: + :::warning + This will overwrite Plane work item content with GitHub issue data. + ::: - Bidirectional → Sync issues both ways between GitHub and Plane. ![Sync direction](https://media.docs.plane.so/integrations/github/sync-direction.webp#hero) + 5. Click **Start Sync**. All configured project issue syncs will appear in a list where you can edit or remove them as needed. ### Sync issues to Plane + After configuring project work item sync, you can link existing GitHub issues into your Plane project. #### GitHub → Plane 1. In your GitHub repository, add the `Plane` label to any issue you want to sync. - + ![Add Plane label](https://media.docs.plane.so/integrations/github/add-plane-label.webp#hero) + 2. The issue will automatically be created as a work item in the linked Plane project. 3. Plane posts a comment on the GitHub issue with a link to the newly created work item, confirming the connection. - + ![Synced issue from GitHub](https://media.docs.plane.so/integrations/github/synced-issue-from-github.webp#hero) + 4. The work item in Plane will include a link back to the original GitHub issue. - + ![Creates issue in Plane](https://media.docs.plane.so/integrations/github/creates-plane-issue.webp#hero) ### Sync work items to GitHub + If you have existing work items in Plane that you want to sync to GitHub, you can do so using labels. #### Plane → GitHub 1. In your Plane project, add the `GitHub` label to any work item you want to sync. - + ![Add GitHub label](https://media.docs.plane.so/integrations/github/add-github-label.webp#hero) + 2. A new issue will automatically be created in the linked GitHub repository. - + ![Creates issue in GitHub](https://media.docs.plane.so/integrations/github/create-github-issue.webp#hero) + 3. The GitHub issue will be linked back to the Plane work item. 4. Future updates will sync according to your configured sync direction (unidirectional or bidirectional). @@ -194,7 +196,7 @@ If you have existing work items in Plane that you want to sync to GitHub, you ca ### What gets synced? -:::warning[important] +::: warning important In unidirectional sync mode (GitHub → Plane only), data from GitHub issues will overwrite corresponding data in Plane. Changes made in Plane will not sync back to GitHub unless you enable Bidirectional sync in your integration settings. ::: @@ -221,15 +223,17 @@ Once GitHub is connected to Plane, workspace admins can configure pull request s 1. Navigate to the **Pull request state mapping** section. 2. Click the (+) button to create a new mapping. - + ![Repository mapping](https://media.docs.plane.so/integrations/github/pr-state-mapping.webp#hero) + 3. In the modal that appears, configure the following: - **Plane project** Select the Plane project where PR state automation should be enabled. - **Pull request automation** - Map GitHub pull request states to Plane work item states - + Map GitHub pull request states to Plane work item states + ![Sync repo and project](https://media.docs.plane.so/integrations/github/pr-automation.webp#hero) + 4. Click **Save**. All configured pull request state mappings will appear in a list where you can edit or remove them as needed. @@ -243,6 +247,7 @@ To automate pull request state changes with Plane work items: 3. Automatic state updates will move the work item state in Plane based on the GitHub PR state defined in your mapping. #### Reference formats + There are two ways to reference Plane work items in your GitHub PRs: ##### With brackets [WEB-344] - State automation @@ -257,13 +262,15 @@ There are two ways to reference Plane work items in your GitHub PRs: - Adds a comment from Plane App showing referenced work items - Does not trigger automatic state updates -*Example* +_Example_ + ```bash PR Title: [WEB-344] Add user authentication feature PR Description: Implements login functionality for WEB-345 ``` In this example: + - WEB-344 will be fully automated (state changes with PR state) - WEB-345 will be linked as a reference only (no state automation) diff --git a/docs/integrations/gitlab.mdx b/docs/integrations/gitlab.md similarity index 70% rename from docs/integrations/gitlab.mdx rename to docs/integrations/gitlab.md index d85fb636..84936eda 100644 --- a/docs/integrations/gitlab.mdx +++ b/docs/integrations/gitlab.md @@ -1,34 +1,27 @@ --- title: Integrate GitLab to sync repositories with projects -sidebar_label: GitLab -hide_title: true description: Integrate Plane with GitLab and Self-managed GitLab to automate pull requests and work item state mapping. Connect repositories to projects for bidirectional updates and seamless workflows. --- -import Tags from "@site/src/components/Tags"; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +# Integrate GitLab to sync repositories with projects -
-

Integrate with GitLab

- -
+ Integrating GitLab with Plane allows you to sync your development workflow seamlessly by linking GitLab merge requests with Plane work items. This connection enables automated updates and enhances collaboration between developers and project managers. Plane supports integration with: -- **GitLab.com** -The standard cloud-hosted GitLab service +- **GitLab.com** + The standard cloud-hosted GitLab service -- **GitLab Self-managed** -Self-hosted GitLab instances for organizations with specific compliance or security requirements +- **GitLab Self-managed** + Self-hosted GitLab instances for organizations with specific compliance or security requirements This guide walks you through the steps to connect your GitLab account, link GitLab projects to Plane, and configure pull request automation. ## Set up GitLab integration -:::danger[Self-hosted Plane instance (Commercial Edition)] +::: danger Self-hosted Plane instance (Commercial Edition) If you're running a self-hosted instance of Plane, you'll need to set up a few extra configurations to get GitLab integration working. Check out the [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab) first before diving into the steps on this page. ::: @@ -42,53 +35,50 @@ To get started, you'll need to connect your GitLab account, organization, and re Link your GitLab organization to your Plane workspace to start syncing repositories. This step is crucial for enabling the full range of GitLab-Plane integration. - - - :::danger[Self-hosted Plane instance (Commercial Edition)] - If you're running a self-hosted instance of Plane, you'll need to set up a few extra configurations to get GitLab integration working. Check out the [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab?edition=gitlab-cloud) first before diving into the steps on this page. - ::: +:::tabs +== GitLab.com +::: danger Self-hosted Plane instance (Commercial Edition) +If you're running a self-hosted instance of Plane, you'll need to set up a few extra configurations to get GitLab integration working. Check out the [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab?edition=gitlab-cloud) first before diving into the steps on this page. +::: + +1. Navigate to Workspace **Settings** in Plane. + +2. Go to the **Integrations** tab. - 1. Navigate to Workspace **Settings** in Plane. +3. Locate the **GitLab** integration section. - 2. Go to the **Integrations** tab. +4. Click **Connect** to authenticate your GitLab account and initiate the connection. - 3. Locate the **GitLab** integration section. + ![Connect GitLab](https://media.docs.plane.so/integrations/gitlab/connect-gitlab.webp#hero) - 4. Click **Connect** to authenticate your GitLab account and initiate the connection. +5. Review the requested permissions and click **Authorize Plane** to grant access. - ![Connect GitLab](https://media.docs.plane.so/integrations/gitlab/connect-gitlab.webp#hero) +6. Once authenticated, you should see your GitLab account listed as connected. + == GitLab Self-managed + ::: danger Plane Cloud and self-hosted instances - 5. Review the requested permissions and click **Authorize Plane** to grant access. +Before you can integrate with GitLab Self-managed, you must first set up the necessary configurations in your GitLab instance. This is required for both Plane Cloud and self-hosted users. - 6. Once authenticated, you should see your GitLab account listed as connected. - - - - :::danger[Plane Cloud and self-hosted instances] +Follow this [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab?edition=gitlab-self-managed) first before diving into the steps on this section. +::: - Before you can integrate with GitLab Self-managed, you must first set up the necessary configurations in your GitLab instance. This is required for both Plane Cloud and self-hosted users. +1. Navigate to [Workspace settings](/core-concepts/workspaces/overview#access-workspace-settings) in Plane. +2. On the right pane, select **Integrations**. +3. Find the **GitLab Self-managed** integration and click **Configure**. +4. In the **Connect Organization** section, click **Connect**. - Follow this [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab?edition=gitlab-self-managed) first before diving into the steps on this section. - ::: + ![Connect GitLab Enterprise organization](https://media.docs.plane.so/integrations/gitlab/connect-gitlab-self-managed.webp#hero) - 1. Navigate to [Workspace settings](/core-concepts/workspaces/overview#access-workspace-settings) in Plane. - 2. On the right pane, select **Integrations**. - 3. Find the **GitLab Self-managed** integration and click **Configure**. - 4. In the **Connect Organization** section, click **Connect**. - - ![Connect GitLab Enterprise organization](https://media.docs.plane.so/integrations/gitlab/connect-gitlab-self-managed.webp#hero) - 5. Fill the form with the details of your GitLab self-managed instance and click **Connect**. - - ![Configure GitLab Self-managed organization](https://media.docs.plane.so/integrations/gitlab/configure-gitlab-self-managed.webp#hero) - 6. On the GitLab app installation page, choose the organization you want to connect. - 7. Select whether you want to sync all repositories or pick specific ones. - 8. Click **Install** to finalize the connection. - 9. After authorization, you’ll be redirected back to Plane, where your GitLab organization will appear as connected. - - +5. Fill the form with the details of your GitLab self-managed instance and click **Connect**. -At this stage, your GitLab account is linked to Plane, but you still need to connect specific GitLab projects to Plane projects. + ![Configure GitLab Self-managed organization](https://media.docs.plane.so/integrations/gitlab/configure-gitlab-self-managed.webp#hero) +6. On the GitLab app installation page, choose the organization you want to connect. +7. Select whether you want to sync all repositories or pick specific ones. +8. Click **Install** to finalize the connection. +9. After authorization, you’ll be redirected back to Plane, where your GitLab organization will appear as connected. + ::: + At this stage, your GitLab account is linked to Plane, but you still need to connect specific GitLab projects to Plane projects. ### Connect GitLab project @@ -123,12 +113,14 @@ After linking a GitLab project, the next step is to associate it with a Plane pr With the GitLab integration set up, you can sync issues between Plane and GitLab at the project level. This ensures GitLab issues and Plane work items stay synchronized within your configured GitLab Projects and Plane projects. ### Add project work item sync + Once GitLab is connected to Plane, workspace admins can link GitLab Projects with Plane projects. 1. Navigate to the **Project Issue Sync** section under **Integrations**. 2. Click the (+) button to create a new sync mapping. - + ![Sync project to GitLab](https://media.docs.plane.so/integrations/gitlab/sync-project-gitlab.webp#hero) + 3. In the modal that appears, configure the following: 1. **Plane project** Select the Plane project you want to sync with. @@ -141,42 +133,47 @@ Once GitLab is connected to Plane, workspace admins can link GitLab Projects wit 4. **Select issue sync direction** Choose how issues should sync: - Unidirectional → Sync issues from GitLab to Plane only. - :::warning - This will overwrite Plane work item content with GitLab issue data. - ::: + :::warning + This will overwrite Plane work item content with GitLab issue data. + ::: - Bidirectional → Sync issues both ways between GitLab and Plane. ![Sync direction](https://media.docs.plane.so/integrations/gitlab/sync-direction.webp#hero) + 5. Click **Start Sync**. All configured project issue syncs will appear in a list where you can edit or remove them as needed. ### Sync issues to Plane + After configuring project work item sync, you can link existing GitLab issues into your Plane project. #### GitLab → Plane 1. In your GitLab project, add the `Plane` label to any issue you want to sync. - + ![Add Plane label](https://media.docs.plane.so/integrations/gitlab/add-plane-label.webp#hero) + 2. The issue will automatically be created as a work item in the linked Plane project. 3. Plane posts a comment on the GitLab issue with a link to the newly created work item, confirming the connection. - 4. The work item in Plane will include a link back to the original GitLab issue. - + ![Creates issue in Plane](https://media.docs.plane.so/integrations/gitlab/creates-plane-issue.webp#hero) ### Sync work items to GitLab + If you have existing work items in Plane that you want to sync to GitLab, you can do so using labels. #### Plane → GitLab 1. In your Plane project, add the `gitlab` label to any work item you want to sync. - + ![Add gitlab label](https://media.docs.plane.so/integrations/gitlab/add-gitlab-label.webp#hero) + 2. A new issue will automatically be created in the linked GitLab project. - + ![Creates issue in GitLab](https://media.docs.plane.so/integrations/gitlab/create-gitlab-issue.webp#hero) + 3. The GitLab issue will be linked back to the Plane work item. 4. Future updates will sync according to your configured sync direction (unidirectional or bidirectional). @@ -199,22 +196,21 @@ If you have existing work items in Plane that you want to sync to GitLab, you ca ### What gets synced? -:::warning[important] +::: warning important In unidirectional sync mode (GitLab → Plane only), data from GitLab issues will overwrite corresponding data in Plane. Changes made in Plane will not sync back to GitLab unless you enable Bidirectional sync in your integration settings. ::: Here’s what syncs automatically between Plane and GitLab: -| Property   | Sync direction   | Notes | -| -------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Title | Both ways | Updates in either platform reflect in the other. | -| Description | Both ways | Content remains consistent between Plane and GitLab. | -| Labels | Both ways | If a Label doesn’t exist in Plane, it will be created (and vice versa). | -| States | Both ways | Updates in either platform reflect in the other. | -| Comments | Both ways | Comments sync between platforms with source attribution. The comment appears as posted by the Admin with the username of the user who posted the comment. -| Mentions | Both ways | Mentioned users username will be displayed in Plane and in the GitLab issue. | -| Issue links | GitLab → Plane | Any issue references in GitLab descriptions or comments will be displayed in Plane with a direct link to the issue including the project name and owner. | - +| Property   | Sync direction   | Notes | +| -------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Title | Both ways | Updates in either platform reflect in the other. | +| Description | Both ways | Content remains consistent between Plane and GitLab. | +| Labels | Both ways | If a Label doesn’t exist in Plane, it will be created (and vice versa). | +| States | Both ways | Updates in either platform reflect in the other. | +| Comments | Both ways | Comments sync between platforms with source attribution. The comment appears as posted by the Admin with the username of the user who posted the comment. | +| Mentions | Both ways | Mentioned users username will be displayed in Plane and in the GitLab issue. | +| Issue links | GitLab → Plane | Any issue references in GitLab descriptions or comments will be displayed in Plane with a direct link to the issue including the project name and owner. | ## Configure PR state automation @@ -226,6 +222,7 @@ To automate pull request state changes with Plane work items: 2. Automatic state updates will move the work item state in Plane based on the GitLab PR state defined in your mapping. #### Reference formats + There are two ways to reference Plane work items in your GitLab PRs: ##### With brackets [WEB-344] - State automation @@ -240,13 +237,15 @@ There are two ways to reference Plane work items in your GitLab PRs: - Adds a comment from Plane App showing referenced work items - Does not trigger automatic state updates -*Example* +_Example_ + ```bash PR Title: [WEB-344] Add user authentication feature PR Description: Implements login functionality for WEB-345 ``` In this example: + - WEB-344 will be fully automated (state changes with PR state) - WEB-345 will be linked as a reference only (no state automation) @@ -263,4 +262,4 @@ The lifecycle of a pull request can be mapped to workflow states in Plane. The f ### Work item backlinks in pull requests -When a PR references Plane work items, Plane will post a confirmation comment on the pull request, ensuring visibility into which issues are linked. \ No newline at end of file +When a PR references Plane work items, Plane will post a confirmation comment on the pull request, ensuring visibility into which issues are linked. diff --git a/docs/integrations/sentry.mdx b/docs/integrations/sentry.md similarity index 95% rename from docs/integrations/sentry.mdx rename to docs/integrations/sentry.md index 61dcd4f3..20bca724 100644 --- a/docs/integrations/sentry.mdx +++ b/docs/integrations/sentry.md @@ -1,16 +1,11 @@ --- title: Integrate Sentry for automatic error tracking sync -sidebar_label: Sentry -hide_title: true description: Integrate Plane with Sentry to automatically create work items from Sentry issues, sync issue states, and streamline your error tracking workflow. --- -import Tags from "@site/src/components/Tags"; +# Integrate Sentry for automatic error tracking sync -
-

Integrate with Sentry

- -
+ Integrating Sentry with Plane allows your team to automatically create work items from Sentry issues and keep your error tracking workflow streamlined. Whether you're syncing issue states, creating work items from errors, or collaborating on bug fixes, this integration brings the power of Sentry and Plane together for a more connected development workflow. @@ -52,7 +47,7 @@ Select resolution states for Sentry issues. Configure which states to use when a ![Post State Mapping](https://media.docs.plane.so/sentry/sentry_config.png#hero#hero) -:::info +::: info State mapping ensures that when Sentry issues are automatically synced to Plane, they appear with the correct state. You can always modify these mappings later if your workflow changes. ::: @@ -76,7 +71,7 @@ In Sentry alerts, users can setup an action to auto create a work item in Plane 6. Click **Settings** and open the modal to configure the properties on work item that will be created on Plane like priority, assignee, etc. 7. Save your alert rule. -:::info +::: info Once configured, Sentry will automatically create work items in your selected Plane project whenever the alert conditions are met. This ensures that critical errors are immediately tracked and assigned to your development team. ::: @@ -94,12 +89,12 @@ On a Sentry issue, you can use Makeplane in the "Issue Tracking" section to link ![Create / Link Work Item](https://media.docs.plane.so/sentry/create_link.png#hero) - Once linked, the Sentry issue and Plane work item will sync bi-directionally: + - If the issue is resolved on Sentry, it will be closed on Plane. - If the work item is marked as done on Plane, it will be resolved on Sentry. -:::info +::: info This bi-directional sync keeps your error tracking and project management in perfect alignment, ensuring that issue resolution status is consistent across both platforms. ::: @@ -113,7 +108,6 @@ Once the state on a work item is moved to the resolved state specified during st If the status is changed back to the unresolved state of your Sentry mapping, it will mark the Sentry issue as "unresolved" as well. -:::info +::: info This automatic status synchronization works both ways - changes in Plane reflect in Sentry, and changes in Sentry reflect in Plane, keeping your error tracking and project management perfectly synchronized. ::: - diff --git a/docs/integrations/slack.mdx b/docs/integrations/slack.md similarity index 95% rename from docs/integrations/slack.mdx rename to docs/integrations/slack.md index e7bbe05c..a784dd11 100644 --- a/docs/integrations/slack.mdx +++ b/docs/integrations/slack.md @@ -1,23 +1,18 @@ --- title: Integrate Slack to sync threads and create work items -sidebar_label: Slack -hide_title: true description: Integrate Plane with Slack to create work items from messages, sync thread conversations, and take actions directly from your chat interface. --- -import Tags from "@site/src/components/Tags"; +# Integrate Slack to sync threads and create work items -
-

Integrate with Slack

- -
+ Plane's Slack integration brings your project management directly into your team's communication flow. Create work items from conversations, get notified about updates, interact with Plane AI, and keep everyone aligned — all without leaving Slack. This guide will walk you through how to set up and connect your Slack account to Plane. ## Set up Slack integration -:::danger[Self-hosted instances (Commercial Edition)] +::: danger Self-hosted instances (Commercial Edition) If you're running a self-hosted instance of Plane, you'll need to set up a few extra configurations to get Slack integration working. Check out the [setup guide](https://developers.plane.so/self-hosting/govern/integrations/slack) first before diving into the steps on this page. ::: @@ -53,7 +48,7 @@ Workspace admins can connect their personal Slack accounts from Workspace settin 2. Slack will ask for permission to integrate with Plane. Review and allow the necessary permissions. 3. After granting permissions, you’ll see the status updated to show that your personal account is connected. -:::info +::: info Only one Workspace Admin can connect their personal Slack account via Workspace Settings. Other Admins and Members can connect theirs from [Profile settings](/integrations/slack#from-workspace-settings). ::: @@ -66,6 +61,7 @@ If you don’t have admin access, you can still connect your personal Slack acco 3. In the dropdown menu, select the Plane workspace you want to connect your personal account to. ![Connect personal account member](https://media.docs.plane.so/integrations/slack/connect-personal-account-profile.webp#hero) + 4. Click **Connect** in the Slack section, which will redirect you to Slack to complete the connection. :::info If your workspace doesn’t have Slack integration enabled, you won’t be able to connect your personal account. In this case, contact your Workspace Admin. @@ -87,17 +83,19 @@ There are two easy ways to create issues from Slack, depending on your workflow: ![Thread sync](https://media.docs.plane.so/integrations/slack/create-plane-work-item.webp#hero) Convert any Slack message into a Plane work item: + 1. Hover over any message in Slack. -2. Click the three-dot menu. +2. Click the three-dot menu. 3. Select **Create a Work Item**. 4. A modal opens with options: ![Slack modal](https://media.docs.plane.so/integrations/slack/create-work-item-modal.webp#hero) - **Project** - Select which Plane project receives the work item. - **Add as** - Choose between: - - **Work Item** - Standard task in your project. - - **Intake** - Sends to your project's intake queue for triage. - - **Work Item Type** - Select from your project's work item types. This will also show mandatory custom properties associated with the work item type. + - **Work Item** - Standard task in your project. + - **Intake** - Sends to your project's intake queue for triage. + - **Work Item Type** - Select from your project's work item types. This will also show mandatory custom properties associated with the work item type. + 5. Add a title and description. The original Slack message text auto-fills as the description. 6. Assign Labels, State, Priority, and Assignees. 7. Turn on Thread Sync (optional). When enabled, Thread Sync keeps your conversation and Plane work item comments in sync. Anything you say in the Slack thread appears in the Plane work item comments, and vice versa. It’s the easiest way to keep everyone aligned without repeating updates in two places. @@ -122,8 +120,9 @@ If a Plane work item already exists, and you want to connect it to a Slack threa 1. Hover over the relevant Slack message or thread. 2. Click the three-dot menu and select **Link Work Item**. - + ![Link Work Item](https://media.docs.plane.so/integrations/slack/link-work-item-to-slack.webp#hero) + 3. In the modal, search for the work item by title or ID. 4. Select the right work item and hit **Link**. @@ -132,6 +131,7 @@ That’s it. Now the thread and the work item are connected. Comments in the thr This is perfect for situations where someone logs a work item in Plane but the conversation about it happens in Slack. Just link them up and avoid duplication. ### Add Plane to private Slack channels + When you use Plane in public Slack channels, it automatically adds the Plane bot to those channels. However, for private channels, you must manually add the bot before you can create or link work items. Here's how to add Plane to your private channels: @@ -141,11 +141,11 @@ Here's how to add Plane to your private channels: 3. Go to the **Integrations** tab. 4. Click **Add apps** in the **Apps** section. 5. Search for `Plane` in the app directory. You'll see the Plane app with the `/plane` slash command -6. Click *Add* next to the Plane app. +6. Click _Add_ next to the Plane app. This will add the Plane bot to your private channel, and Slack will show you a confirmation message. -:::note +::: info Only channel members with the right permissions can add apps to private channels. If you don't see the option to add apps, ask a channel admin or the channel creator to add Plane for you. ::: @@ -174,7 +174,7 @@ To configure this: 7. Click **Save**. -**To edit or remove a project notification**. +**To edit or remove a project notification**. Find the project-channel mapping in the Project Notifications list. Click the edit icon to change notification settings or the delete icon to remove the connection entirely. ### Get DM notifications @@ -192,10 +192,12 @@ Stay informed about work items that need your attention through Slack DMs. #### What triggers DM notifications Once enabled, you receive Slack DMs when: + - **Someone mentions you** in a work item comment or description. - **You're assigned** to a work item. Each notification includes: + - Direct link to the work item - Context about what triggered the notification - Quick actions (**View Work Item**, **Reply**) @@ -211,6 +213,7 @@ Interact with Plane AI directly from Slack to create work items, check project s Tag `@Plane` in any Slack thread to ask questions or request actions: **Create work items conversationally:** + ``` @Plane create a work item 'live tail' and assign it to Mike. ``` @@ -218,11 +221,13 @@ Tag `@Plane` in any Slack thread to ask questions or request actions: Plane AI responds with clarifying questions if it needs more details (like which project), then creates the work item and confirms with a link. **Get project information:** + ``` @Plane can you provide the identifiers of these projects? ``` **Check cycle progress:** + ``` @Plane how are we doing in the current cycle for the AI project? ``` @@ -254,10 +259,11 @@ This means you can triage work items, update priorities, reassign tasks, and man When you use the Slack integration with Plane, we take your privacy seriously. The integration only accesses the minimum permissions necessary to function properly, and we handle your data in accordance with our [Privacy Policy](https://plane.so/legals/privacy-policy). The integration may collect and process: + - Messages and threads you choose to sync with Plane work items - Channel information for project notifications - Basic user information for authentication and personalization All data is encrypted in transit and at rest, and you can disconnect the integration at any time from your [Workspace Settings](/core-concepts/workspaces/overview#access-workspace-settings) or [Profile settings](/core-concepts/account/settings). ---- \ No newline at end of file +--- diff --git a/docs/introduction/core-concepts.mdx b/docs/introduction/core-concepts.md similarity index 99% rename from docs/introduction/core-concepts.mdx rename to docs/introduction/core-concepts.md index a0d96289..b099243d 100644 --- a/docs/introduction/core-concepts.mdx +++ b/docs/introduction/core-concepts.md @@ -3,9 +3,12 @@ title: Core concepts description: Learn the essential building blocks of Plane - workspaces, projects, work items, cycles, views, and pages. Master these concepts to organize your team's workflow effectively. --- +# Core concepts + This page explains how Plane is structured and how its features work together. Understanding these concepts helps you organize work effectively and collaborate with your team. ## Understand Plane's structure + Plane is organized in a hierarchy that reflects how teams naturally work together: At the top level, **Workspaces** contain everything—typically one per organization, team, or client. Inside workspaces, you create **Projects** for specific products, initiatives, or goals. Within projects, you manage **Work items** (the individual tasks your team completes). You can organize these work items using **Cycles** (time-boxed periods) and **Views** (saved filters and layouts). Finally, **Pages** provide space to document context and decisions alongside your work. @@ -13,6 +16,7 @@ At the top level, **Workspaces** contain everything—typically one per organiza This structure gives you flexibility to work at whatever level makes sense. Sometimes you'll focus on a single work item. Other times, you'll view an entire project or cycle to understand the bigger picture. ## How features connect + Understanding relationships between Plane's features helps you use them effectively. ### Workspaces @@ -48,6 +52,7 @@ Cycles help you organize work into time-bound periods, like sprints or phases. T Learn more about [Cycles](/core-concepts/cycles). ### Views + Views help you filter and organize work items to see exactly what matters right now. Instead of manually configuring filters every time, views save your layout, filters, and display settings so you can access them instantly. The same work item can appear in multiple views simultaneously. Views exist at both project and workspace levels. Project views show work from a single project, while workspace views can display work items across all projects you have access to. diff --git a/docs/introduction/home.mdx b/docs/introduction/home.md similarity index 97% rename from docs/introduction/home.mdx rename to docs/introduction/home.md index f23ffd78..8a4f6f32 100644 --- a/docs/introduction/home.mdx +++ b/docs/introduction/home.md @@ -1,8 +1,6 @@ --- title: Modern project management software -sidebar_label: Introduction description: Discover Plane, the enterprise project management software for teams of all sizes. Learn how our issue tracking, sprint management, and knowledge tools can streamline your workflow. -slug: / --- # Welcome to Plane @@ -44,5 +42,6 @@ You can setup Plane in two ways: Install and run Plane on your own servers if you want full control over your data and infrastructure. ## What's next + - **New to Plane?** Start with [Tutorials](/introduction/tutorials/overview). -- **Want to understand key concepts?** Explore [Core Concepts](/introduction/core-concepts). \ No newline at end of file +- **Want to understand key concepts?** Explore [Core Concepts](/introduction/core-concepts). diff --git a/docs/introduction/quickstart.mdx b/docs/introduction/quickstart.md similarity index 67% rename from docs/introduction/quickstart.mdx rename to docs/introduction/quickstart.md index c0750828..07455bc0 100644 --- a/docs/introduction/quickstart.mdx +++ b/docs/introduction/quickstart.md @@ -1,6 +1,5 @@ --- title: Set up Plane for your team -sidebar_label: Quickstart guide description: Get a functional workspace with team members working on their first project. --- @@ -16,9 +15,11 @@ What you'll accomplish: - Sprint planning with cycles ## Before you begin + - [Create a Plane account](/#get-plane) -## Set up your Workspace +## Set up your Workspace + When you sign up for the first time on Plane, we'll prompt you to create a new Workspace. In this guide, you'll see how to customize the Workspace and invite your team members. Your workspace is the central hub where all your projects and team collaboration will happen, so let’s make it feel like home. ### Customize workspace details @@ -27,11 +28,12 @@ When you sign up for the first time on Plane, we'll prompt you to create a new W 1. Click on the workspace logo at the top left. 2. Select **Settings**. -2. In the **General** tab under **Administration**: - - Upload your company logo. - - Update workspace name if you need to change it. +3. In the **General** tab under **Administration**: + - Upload your company logo. + - Update workspace name if you need to change it. ### Invite your team + Get your team members into the workspace so they can start collaborating. ![Invite team members](https://media.docs.plane.so/quickstart/invite-team-members.webp#hero) @@ -39,12 +41,12 @@ Get your team members into the workspace so they can start collaborating. 1. Under Workspace Settings, click **Members** tab on the left pane. 2. Click the **Add member** button. 3. In the **Invite people to collaborate** dialog: - - Type the email address in the provided box. - - Select the role you want them to have. - - Admin: Full workspace control and settings access. - - Member (Default): Can create projects, issues, and collaborate fully. - - Guest: Limited access to specific projects they're invited to. - - Use the **+ Add more** link to invite multiple people at once. + - Type the email address in the provided box. + - Select the role you want them to have. + - Admin: Full workspace control and settings access. + - Member (Default): Can create projects, issues, and collaborate fully. + - Guest: Limited access to specific projects they're invited to. + - Use the **+ Add more** link to invite multiple people at once. 4. Click **Send invitation**. Team members will receive email invitations and can access the workspace. @@ -57,14 +59,14 @@ Now that your workspace is ready, it’s time to create your first project. Proj 1. Look for **Projects** tab under the **Workspace** section on your sidebar. 2. Click the **Add Project** button. -4. In the project creation form: - 1. Enter the name and write a brief description explaining what this project aims to accomplish. - 2. Select `Planning` in the **State** dropdown. - 3. By default, the project access is **Public** This means that all Workspace Admins and Members can see and join this project. Change this to **Private** if you want members to join only through invite. - 4. Select start and end dates if you want to and set a priority level. - 5. Assign a project Lead and add the Members you want to part of this project. -5. Click **Create project** to finish the basic setup. -6. You’ll see a modal with all the features enabled for this project. Leave the defaults as they are and click **Open project**. +3. In the project creation form: + 1. Enter the name and write a brief description explaining what this project aims to accomplish. + 2. Select `Planning` in the **State** dropdown. + 3. By default, the project access is **Public** This means that all Workspace Admins and Members can see and join this project. Change this to **Private** if you want members to join only through invite. + 4. Select start and end dates if you want to and set a priority level. + 5. Assign a project Lead and add the Members you want to part of this project. +4. Click **Create project** to finish the basic setup. +5. You’ll see a modal with all the features enabled for this project. Leave the defaults as they are and click **Open project**. Your team can see the project and access it from their workspace. @@ -77,19 +79,19 @@ Add tasks so your team can start working immediately. 1. Navigate to the **Work items** page under your new project. 2. Click **Add work item**. 3. Enter title and brief description about the work item. - *Example:* + _Example:_ - **Title** - *Design new homepage layout* + _Design new homepage layout_ - **Description** - *Create a fresh layout for the homepage focusing on improved navigation, modern visuals, and clear call-to-actions.* -3. Set work item properties: - - **Assignee**: `You` + _Create a fresh layout for the homepage focusing on improved navigation, modern visuals, and clear call-to-actions._ +4. Set work item properties: + - **Assignee**: `You` - **Priority**: `Medium` - **Start date**: Today - **Due date**: One week from today -6. Click **Save** to create the work item. -7. You'll see a new row added in the List layout. -8. Add a few more work items in the same manner. +5. Click **Save** to create the work item. +6. You'll see a new row added in the List layout. +7. Add a few more work items in the same manner. Team members see their assigned work and can start immediately. @@ -102,18 +104,18 @@ In this final step, you’ll learn how to organize your work into cycles (time-b 1. Click **Cycles** in your project sidebar. 2. Click the **Add cycle** button on the top right. 3. In the Create cycle modal: - - Name your cycle: `Sprint 1`. - - Set date range: 2 weeks (today through next Friday) - - Click **Create cycle**. + - Name your cycle: `Sprint 1`. + - Set date range: 2 weeks (today through next Friday) + - Click **Create cycle**. 4. Click on your newly created cycle name to open it. 5. Click **Add existing work item** -6. Select the issues you created earlier. -7. Click **Add to cycle**. +6. Select the issues you created earlier. +7. Click **Add to cycle**. 8. Return to the main Cycles page to view your active cycle with progress indicators. Your active cycle shows work items with progress tracking and burndown visualization. -:::tip +::: tip Cycles work best when they're 1-2 weeks long and contain achievable goals for your team. ::: @@ -121,6 +123,5 @@ Cycles work best when they're 1-2 weeks long and contain achievable goals for yo You've set up a complete workspace in under 20 minutes. Your team is ready to start collaborating effectively. ## What's next? -- **Ready to level up?** Explore these detailed [tutorials](/introduction/tutorials/overview). - +- **Ready to level up?** Explore these detailed [tutorials](/introduction/tutorials/overview). diff --git a/docs/introduction/tutorials/collaborate-on-work-items.mdx b/docs/introduction/tutorials/collaborate-on-work-items.md similarity index 80% rename from docs/introduction/tutorials/collaborate-on-work-items.mdx rename to docs/introduction/tutorials/collaborate-on-work-items.md index f16a64ef..e277ed89 100644 --- a/docs/introduction/tutorials/collaborate-on-work-items.mdx +++ b/docs/introduction/tutorials/collaborate-on-work-items.md @@ -1,9 +1,10 @@ --- title: Collaborate on work items -description: Learn how to collaborate effectively on work items in Plane using comments, mentions, sub-work items, and activity tracking. +description: Learn how to collaborate effectively on work items in Plane using comments, mentions, sub-work items, and activity tracking. --- # Collaborate on work items + Now that you can create and manage work items, let's learn how to collaborate with your team. In this tutorial, you'll: @@ -29,15 +30,16 @@ Start conversations that move work forward effectively. - Click in the **Add comment** text area. - Write a comment that provides value to the team. - *Example:* - ``` - Started working on this - I've identified the CSS issue and should have a fix ready by tomorrow. The problem is with the media query breakpoint at 375px. - ``` + _Example:_ + + ``` + Started working on this - I've identified the CSS issue and should have a fix ready by tomorrow. The problem is with the media query breakpoint at 375px. + ``` 3. **Use formatting options** - Bold important information with **text**. - Create lists for multiple points. - - Add code snippets or quotes. + - Add code snippets or quotes. 4. **Post your comment** - Click **Comment** to publish. @@ -45,11 +47,13 @@ Start conversations that move work forward effectively. - Relevant team members receive notifications. ## Use @mentions + Ensure the right people see important messages and requests. + 1. Type @ followed by a team member's name. 2. Select the person from the dropdown that appears. -3. Continue writing your message with context. - +3. Continue writing your message with context. + ## Divide work with sub-work items Organize large tasks into manageable, assignable pieces. @@ -57,6 +61,7 @@ Organize large tasks into manageable, assignable pieces. ![Sub-work items](https://media.docs.plane.so/tutorials/create-sub-work-items.webp#hero) 1. **Use sub-work items for:** + - Large tasks requiring multiple steps - Tasks needing different skills or team members - Work that can be done in parallel @@ -66,20 +71,20 @@ Organize large tasks into manageable, assignable pieces. - Click to create a related, smaller task. - Fill in the sub-item details with specificity. - *Example:* - - **Parent task:** "Implement user authentication system" - - **Sub-work items:** - - "Design login page wireframes" → Designer - - "Set up authentication database tables" → Backend developer - - "Create password reset flow" → Frontend developer - - "Write user registration API endpoints" → Backend developer + _Example:_ + + - **Parent task:** "Implement user authentication system" + - **Sub-work items:** + - "Design login page wireframes" → Designer + - "Set up authentication database tables" → Backend developer + - "Create password reset flow" → Frontend developer + - "Write user registration API endpoints" → Backend developer 3. **Understand sub-item benefits** - Each sub-item has independent lifecycle and can be worked on separately. - Team members focus on specific sub-items while staying connected to bigger picture. - Clear ownership and accountability for different aspects of complex work. - ## Track activity and filter updates Stay informed about work progress without information overload. @@ -92,9 +97,9 @@ Stay informed about work progress without information overload. 2. **Use activity filters** - Click **Filters** button in the Activity section. - Control what information you see: - - **Updates:** Show only property changes (state, priority, assignments) - - **Comments:** Display only team discussions and communications - - **Worklogs:** View only time tracking entries + - **Updates:** Show only property changes (state, priority, assignments) + - **Comments:** Display only team discussions and communications + - **Worklogs:** View only time tracking entries 3. **Use activity tracking strategically** - **Catch up quickly:** See what happened while you were away. @@ -133,18 +138,19 @@ Set up email notifications to stay informed about important updates. - Select **Notifications** in the left pane. 2. **Ensure all notifications are enabled** - - This ensures you receive email updates about all important work item activity. + - This ensures you receive email updates about all important work item activity. ### Understand notification triggers **You receive notifications when:** + - Someone @mentions you in comments. - Work items assigned to you are updated. - Work items you created have activity. - Someone comments on work items you're subscribed to. ## What's next? + Your collaboration skills are solid! You're ready to: - [Create custom views](/introduction/tutorials/organize-and-view-work) to filter and organize work items for different contexts. - diff --git a/docs/introduction/tutorials/create-pages.mdx b/docs/introduction/tutorials/create-pages.md similarity index 88% rename from docs/introduction/tutorials/create-pages.mdx rename to docs/introduction/tutorials/create-pages.md index ed110c30..64d8311e 100644 --- a/docs/introduction/tutorials/create-pages.mdx +++ b/docs/introduction/tutorials/create-pages.md @@ -1,17 +1,19 @@ --- -title: Write content with Pages +title: Write content with Pages description: Learn to create documentation, meeting notes, and project requirements using Plane's built-in rich text editor with blocks and formatting options. --- +# Write content with Pages + Learn to create and share documentation, meeting notes, and project requirements using Plane's powerful Pages. You'll master the basics of content creation, formatting, and sharing in just a few minutes. By the end of this tutorial, you'll: + - Create and customize pages in your project - Use editor blocks to structure content effectively - Share pages with your team - Configure page settings for different use cases - ## Create your first page Start by creating a new page in your project. @@ -28,7 +30,6 @@ Start by creating a new page in your project. 5. Click on "Untitled" and replace with `Project Requirements Document`. The page automatically saves your changes. - ## Add content using editor blocks Learn to structure your content with Plane's powerful block-based editor. @@ -51,29 +52,30 @@ Learn to structure your content with Plane's powerful block-based editor. ![Format content](https://media.docs.plane.so/tutorials/format-content.webp#hero) -1. Select text to see formatting options or use the formatting toolbar at the top for all styling options. +1. Select text to see formatting options or use the formatting toolbar at the top for all styling options. 2. Add links by selecting text and using the link option. -4. Create a complete document structure: +3. Create a complete document structure: + ``` # Project Requirements Document - + ## Project Overview Brief description of project goals and scope. - + ## Key Requirements • Requirement 1 - • Requirement 2 + • Requirement 2 • Requirement 3 - + ## Action Items ☐ Task 1 ☐ Task 2 ☐ Task 3 ``` -:::tip +::: tip Explore all available editor blocks in our complete editor blocks [reference guide](/core-concepts/pages/editor-blocks). ::: @@ -82,10 +84,11 @@ Explore all available editor blocks in our complete editor blocks [reference gui ![Page settings menu](https://media.docs.plane.so/tutorials/page-options.webp#hero) ### Get shareable link - - Click the link icon in the top toolbar - - The page URL is copied to your clipboard - - Paste this link in Slack, email, or anywhere you want to share the page - - Anyone with project access can view the page using this link + +- Click the link icon in the top toolbar +- The page URL is copied to your clipboard +- Paste this link in Slack, email, or anywhere you want to share the page +- Anyone with project access can view the page using this link ### Configure page options diff --git a/docs/introduction/tutorials/create-project.md b/docs/introduction/tutorials/create-project.md new file mode 100644 index 00000000..724cfb42 --- /dev/null +++ b/docs/introduction/tutorials/create-project.md @@ -0,0 +1,174 @@ +--- +title: Create projects +description: Learn how to create and configure your first Plane project with the right features, workflow states, and team members +--- + +# Create projects + +Set up your first project where your team can organize work, track progress, and collaborate effectively. + +In this tutorial, you'll: + +- Navigate the Projects section and understand project visibility +- Create a project with proper configuration +- Enable essential features for your team's workflow +- Set up workflow states that match how your team works +- Add team members and organize work with labels + +## Explore the Projects section + +Before creating your project, let's understand where all projects live in your workspace. + +![Workspace Projects](https://media.docs.plane.so/tutorials/workspace-projects.webp#hero) + +1. Look for **Projects** under the Workspace section in your sidebar. +2. Select **Browse all projects** in the dropdown at the top. +3. You might see a few projects already there that other members may have created. +4. This is where all workspace projects are displayed. + +### Understand project visibility + +- Public projects show for all workspace members with the **Join** option. +- Projects you're part ofdisplay directly in your sidebar under the **Projects** section. +- Private projects are only visible if you're specifically invited. + +## Create your project + +Start building a space for your team's work and collaboration. + +1. **Begin the creation process** + - Click **Projects** in your workspace sidebar to view all projects. + - Click **Add Project** button (top-right). + - The project creation form opens. + + :::tip + You can also create projects quickly using the **+** button next to the **Projects** section in your sidebar. + ::: + +2. **Configure basic project information** + + ![Create project](https://media.docs.plane.so/tutorials/create-project.webp#hero) + - **Project name**: Enter something clear and recognizable. Choose names your team will instantly understand. + _Examples_: "Website Redesign", "Mobile App v2.0", "Q4 Marketing Campaign" + + - **Description**: Add 1-2 sentences explaining the project's purpose. + _Example_: "Complete redesign of company website focusing on improved user experience and modern design" + + - **Project ID**: Plane automatically suggests a Project ID based on your project name (like "WEB" for "Website Redesign"). This ID will prefix all your issues (WEB-1, WEB-2, etc.).You can customize it, but keep it short (3-5 characters). + + - **Set project access**: Keep **Public** selected for now. This allows all workspace Admins and Members to see and join the project. You can change this to **Private** later if needed. + +3. **Create the project** + - Click **Create project** to finish basic setup. + - You’ll see a modal with all the features enabled for this project. Leave the defaults as they are and click **Open project**. + - Your new project appears in the sidebar under the **Projects** section. + +## Configure project settings + +Customize your project to match how your team works. + +![Project settings](https://media.docs.plane.so/tutorials/access-project-settings.webp#hero) + +1. **Access project settings** + - Click the three dots (...) next to your project name in the sidebar. + - Select **Settings**. + - You'll land on the **General** tab by default. + +2. **Customize project details** + +![Project general settings](https://media.docs.plane.so/tutorials/project-general-settings.webp#hero) - **Project icon and cover**: Choose an emoji and a header image for your project. + + - **Project visibility (Network)**: Choose based on your team's collaboration needs. + - **Public**: All workspace members can see and join the project. + - **Private**: Only invited members can access the project. + + - **Project timezone**: Set the timezone for project scheduling and deadlines. + +3. **Save your changes** + - Click **Update project** to apply your modifications. + - Your project now reflects the updated configuration. + +## Add team members to your project + +Get the right people contributing to your project. + +![Project members](https://media.docs.plane.so/tutorials/add-project-members.webp#hero) + +1. **Access member management** + - In project settings, select **Members** in the left pane. + - You'll see the Members section with current project members + +2. **Configure project lead** + - **Project Lead** - Select a project lead from the dropdown. + - **Default Assignee** - Set a default assignee for new work items. + - **Guest access** - Toggle ON to allow guests view access to all project work items. + +3. **Add team members** + - Click **Add member**. + - Click **Select co-worker** to see all workspace members. + - Add 2-3 key team members who will actively contribute. + +Key team members are added and can access the project to start contributing. + +## Set up workflow states + +Workflow states define how work moves through your team's process. + +![Project states](https://media.docs.plane.so/tutorials/project-states.webp#hero) + +1. **Access states configuration** + - In project settings, click **States** in the left pane. + - You'll see default state groups already created + +2. **Understand state groups** + - **Backlog**: For ideas and future work + - **Unstarted**: Ready to work on but not yet started + - **Started**: Work currently in progress + - **Completed**: Finished work + - **Cancelled**: Work that won't be completed + +3. **Customize states for your workflow** + - Click on any state group to see individual states inside. + - Use the **+** button to add new states. + - Rename states to match your team's language. + - Reorder states to reflect your actual process. + + **Example workflows** + + _Simple development workflow_: + - Backlog: "Backlog" + - Unstarted: "Ready", "Assigned" + - Started: "In Progress", "In Review" + - Completed: "Done" + + _Design workflow_: + - Backlog: "Ideas" + - Unstarted: "Scheduled", "Ready for Design" + - Started: "Designing", "Review", "Revisions" + - Completed: "Approved" + +Don't overthink this - you can always adjust states later as your team's process evolves. + +## Create useful labels + +Labels help categorize and organize your work. + +![Project labels](https://media.docs.plane.so/tutorials/project-labels.webp#hero) + +1. **Access labels configuration** + - In project settings, click **Labels** in the sidebar. + - You'll see any existing labels (may be empty) + +2. **Create essential labels** + - Click **Add label** to create new labels. + - Add a few labels that match your work types + Examples: `frontend`, `backend`, `database`, `API`, `design`, `documentation`, `testing`, `research` + +3. **Customize label appearance** + - Choose colors for each label to make them easily distinguishable. + +## What's next? + +Your project foundation is complete. You're ready to: + +- [Create your first work items](/introduction/tutorials/create-work-items) to begin tracking tasks. diff --git a/docs/introduction/tutorials/create-project.mdx b/docs/introduction/tutorials/create-project.mdx deleted file mode 100644 index 6351e133..00000000 --- a/docs/introduction/tutorials/create-project.mdx +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Create projects -description: Learn how to create and configure your first Plane project with the right features, workflow states, and team members ---- - -Set up your first project where your team can organize work, track progress, and collaborate effectively. - -In this tutorial, you'll: - -- Navigate the Projects section and understand project visibility -- Create a project with proper configuration -- Enable essential features for your team's workflow -- Set up workflow states that match how your team works -- Add team members and organize work with labels - -## Explore the Projects section -Before creating your project, let's understand where all projects live in your workspace. - -![Workspace Projects](https://media.docs.plane.so/tutorials/workspace-projects.webp#hero) - -1. Look for **Projects** under the Workspace section in your sidebar. -2. Select **Browse all projects** in the dropdown at the top. -3. You might see a few projects already there that other members may have created. -4. This is where all workspace projects are displayed. - -### Understand project visibility -- Public projects show for all workspace members with the **Join** option. -- Projects you're part ofdisplay directly in your sidebar under the **Projects** section. -- Private projects are only visible if you're specifically invited. - -## Create your project - -Start building a space for your team's work and collaboration. - -1. **Begin the creation process** - - Click **Projects** in your workspace sidebar to view all projects. - - Click **Add Project** button (top-right). - - The project creation form opens. - - :::tip - You can also create projects quickly using the **+** button next to the **Projects** section in your sidebar. - ::: - -2. **Configure basic project information** - - ![Create project](https://media.docs.plane.so/tutorials/create-project.webp#hero) - - - **Project name**: Enter something clear and recognizable. Choose names your team will instantly understand. - *Examples*: "Website Redesign", "Mobile App v2.0", "Q4 Marketing Campaign" - - - **Description**: Add 1-2 sentences explaining the project's purpose. - *Example*: "Complete redesign of company website focusing on improved user experience and modern design" - - - **Project ID**: Plane automatically suggests a Project ID based on your project name (like "WEB" for "Website Redesign"). This ID will prefix all your issues (WEB-1, WEB-2, etc.).You can customize it, but keep it short (3-5 characters). - - - **Set project access**: Keep **Public** selected for now. This allows all workspace Admins and Members to see and join the project. You can change this to **Private** later if needed. - -3. **Create the project** - - Click **Create project** to finish basic setup. - - You’ll see a modal with all the features enabled for this project. Leave the defaults as they are and click **Open project**. - - Your new project appears in the sidebar under the **Projects** section. - -## Configure project settings -Customize your project to match how your team works. - -![Project settings](https://media.docs.plane.so/tutorials/access-project-settings.webp#hero) -1. **Access project settings** - - Click the three dots (...) next to your project name in the sidebar. - - Select **Settings**. - - You'll land on the **General** tab by default. - -2. **Customize project details** - - ![Project general settings](https://media.docs.plane.so/tutorials/project-general-settings.webp#hero) - - **Project icon and cover**: Choose an emoji and a header image for your project. - - - **Project visibility (Network)**: Choose based on your team's collaboration needs. - - **Public**: All workspace members can see and join the project. - - **Private**: Only invited members can access the project. - - - **Project timezone**: Set the timezone for project scheduling and deadlines. - -3. **Save your changes** - - Click **Update project** to apply your modifications. - - Your project now reflects the updated configuration. - -## Add team members to your project -Get the right people contributing to your project. - -![Project members](https://media.docs.plane.so/tutorials/add-project-members.webp#hero) - -1. **Access member management** - - In project settings, select **Members** in the left pane. - - You'll see the Members section with current project members - -2. **Configure project lead** - - **Project Lead** - Select a project lead from the dropdown. - - **Default Assignee** - Set a default assignee for new work items. - - **Guest access** - Toggle ON to allow guests view access to all project work items. - -3. **Add team members** - - Click **Add member**. - - Click **Select co-worker** to see all workspace members. - - Add 2-3 key team members who will actively contribute. - -Key team members are added and can access the project to start contributing. - -## Set up workflow states - -Workflow states define how work moves through your team's process. - -![Project states](https://media.docs.plane.so/tutorials/project-states.webp#hero) - -1. **Access states configuration** - - In project settings, click **States** in the left pane. - - You'll see default state groups already created - -2. **Understand state groups** - - **Backlog**: For ideas and future work - - **Unstarted**: Ready to work on but not yet started - - **Started**: Work currently in progress - - **Completed**: Finished work - - **Cancelled**: Work that won't be completed - -3. **Customize states for your workflow** - - - Click on any state group to see individual states inside. - - Use the **+** button to add new states. - - Rename states to match your team's language. - - Reorder states to reflect your actual process. - - **Example workflows** - - *Simple development workflow*: - - - Backlog: "Backlog" - - Unstarted: "Ready", "Assigned" - - Started: "In Progress", "In Review" - - Completed: "Done" - - *Design workflow*: - - - Backlog: "Ideas" - - Unstarted: "Scheduled", "Ready for Design" - - Started: "Designing", "Review", "Revisions" - - Completed: "Approved" - -Don't overthink this - you can always adjust states later as your team's process evolves. - -## Create useful labels -Labels help categorize and organize your work. - -![Project labels](https://media.docs.plane.so/tutorials/project-labels.webp#hero) - -1. **Access labels configuration** - - In project settings, click **Labels** in the sidebar. - - You'll see any existing labels (may be empty) - -2. **Create essential labels** - - Click **Add label** to create new labels. - - Add a few labels that match your work types - Examples: `frontend`, `backend`, `database`, `API`, `design`, `documentation`, `testing`, `research` - -3. **Customize label appearance** - - Choose colors for each label to make them easily distinguishable. - -## What's next? -Your project foundation is complete. You're ready to: - -- [Create your first work items](/introduction/tutorials/create-work-items) to begin tracking tasks. - diff --git a/docs/introduction/tutorials/create-work-items.mdx b/docs/introduction/tutorials/create-work-items.md similarity index 52% rename from docs/introduction/tutorials/create-work-items.mdx rename to docs/introduction/tutorials/create-work-items.md index d89fc3ff..a4170c89 100644 --- a/docs/introduction/tutorials/create-work-items.mdx +++ b/docs/introduction/tutorials/create-work-items.md @@ -4,6 +4,7 @@ description: Learn how to create, organize, and track work items in Plane with t --- # Create and manage work items + Now that your project is set up, let's add your first piece of work to track. Work items are the fundamental building blocks in Plane - they represent any task or piece of work your team needs to complete. In this tutorial, you'll: @@ -15,62 +16,64 @@ In this tutorial, you'll: - Complete the full work item lifecycle ## Create your first work item + Add a real piece of work to your project with proper details and organization. ![Create work items](https://media.docs.plane.so/tutorials/create-work-items.webp#hero) 1. **Navigate to your project** - - Click your project name in the sidebar. - - Make sure you're in the Work items tab. + - Click your project name in the sidebar. + - Make sure you're in the Work items tab. 2. **Start creating tasks** - - Click **Add work item** in the top-right corner. - - The work item creation dialog opens + - Click **Add work item** in the top-right corner. + - The work item creation dialog opens 3. **Add title and description** - - Title: Be specific and actionable - - Description: Provide context and details - :::tip[Example] - **Title** - "Fix login button alignment on mobile" + - Title: Be specific and actionable + - Description: Provide context and details + ::: tip Example + **Title** + "Fix login button alignment on mobile" - **Description** - The login button on mobile devices is misaligned and appears cut off on screens smaller than 375px width. + **Description** + The login button on mobile devices is misaligned and appears cut off on screens smaller than 375px width. - Steps to reproduce: - a) Visit login page on mobile device. - b) Notice button extends beyond screen edge. + Steps to reproduce: + a) Visit login page on mobile device. + b) Notice button extends beyond screen edge. - Expected result: - Button should be fully visible and properly centered. - ::: + Expected result: + Button should be fully visible and properly centered. + ::: 4. **Configure work item properties** - - **State:** - - Choose where this work fits in your workflow. - - Select `Planned` since you're ready to work on it. - - **Priority:** - - Indicate urgency level. - - Choose `Medium` priority for this tutorial. - - **Assignees:** - - Choose who will do the work. - - Assign this first work item to yourself. - - **Labels:** - - Categorize the work type. - - Select `frontend` label for this example. - - **Dates:** - - Set timeline expectations - - For this tutorial, set a due date a few days from now or skip dates. + - **State:** + - Choose where this work fits in your workflow. + - Select `Planned` since you're ready to work on it. + - **Priority:** + - Indicate urgency level. + - Choose `Medium` priority for this tutorial. + - **Assignees:** + - Choose who will do the work. + - Assign this first work item to yourself. + - **Labels:** + - Categorize the work type. + - Select `frontend` label for this example. + - **Dates:** + - Set timeline expectations + - For this tutorial, set a due date a few days from now or skip dates. 5. **Save your work item** - Click **Save** to create the work item. - You'll see it appear in the List layout with a unique ID (like "ENG-1" or "PROJ-1") -:::info +::: info Unfinished work items automatically save to your **Drafts** section, so you can always come back to complete them later. ::: ## View and update work items + Learn different ways to view and access your work items. ![View and update work items](https://media.docs.plane.so/tutorials/view-and-update-work-items.webp#hero) @@ -92,10 +95,10 @@ Learn different ways to view and access your work items. - Provides full editing and collaboration interface. 3. **Update work item state** - - Open your work item in peek view or full view - - Click on the **State** field. - - Change it from `Planned` to `In Progress`. - - The change saves automatically. Notice how the work item moves to a different section in your layout view, reflecting its new state. + - Open your work item in peek view or full view + - Click on the **State** field. + - Change it from `Planned` to `In Progress`. + - The change saves automatically. Notice how the work item moves to a different section in your layout view, reflecting its new state. 4. **Modify other properties** - **Priority:** Change based on new urgency levels @@ -103,38 +106,39 @@ Learn different ways to view and access your work items. - **Labels:** Add or remove as you learn more about the work - **Assignees:** Reassign if responsibility changes - All changes save automatically, and you'll see them reflected immediately in your view. - -4. **Move work to completion** + All changes save automatically, and you'll see them reflected immediately in your view. - ![Switch to board layout](https://media.docs.plane.so/tutorials/switch-to-board-layout.webp#hero) +5. **Move work to completion** - - Look for the layout options on the top right of the screen. - - Click the Board icon. - - You'll now see your work items organized in columns by state. - - Find your work item in the current state column (likely "In Progress"). - - Drag and drop the work item card to the "Done" column. + ![Switch to board layout](https://media.docs.plane.so/tutorials/switch-to-board-layout.webp#hero) + - Look for the layout options on the top right of the screen. + - Click the Board icon. + - You'll now see your work items organized in columns by state. + - Find your work item in the current state column (likely "In Progress"). + - Drag and drop the work item card to the "Done" column. - The work item automatically updates its state when you drop it, and you'll see it move visually from one column to another. + The work item automatically updates its state when you drop it, and you'll see it move visually from one column to another. - If you prefer, you can still update the state directly by opening your work item and clicking the **State** field to select `Done`. + If you prefer, you can still update the state directly by opening your work item and clicking the **State** field to select `Done`. - Both methods accomplish the same result - the drag and drop approach gives you a visual, intuitive way to move work through your workflow states. + Both methods accomplish the same result - the drag and drop approach gives you a visual, intuitive way to move work through your workflow states. -You've successfully created and managed your first work item! +You've successfully created and managed your first work item! ## Practice with real work + Now create 2-3 more work items using actual tasks from your project. This gives you realistic data to work with as you learn more Plane features. **Examples:** + - "Update company logo on homepage" -- "Research competitor pricing strategies" +- "Research competitor pricing strategies" - "Fix bug in user registration flow" - "Create onboarding email template" ## What's next? + You now understand the complete work item lifecycle and can effectively track work in Plane. - You're ready to: +You're ready to: - Collaborate on work items to learn comments, mentions, and team communication - diff --git a/docs/introduction/tutorials/create-workspace.mdx b/docs/introduction/tutorials/create-workspace.md similarity index 96% rename from docs/introduction/tutorials/create-workspace.mdx rename to docs/introduction/tutorials/create-workspace.md index 69276d00..c47c5b41 100644 --- a/docs/introduction/tutorials/create-workspace.mdx +++ b/docs/introduction/tutorials/create-workspace.md @@ -4,6 +4,7 @@ description: Learn how to create and set up your first Plane workspace. Get star --- # Create workspace + Let's get you set up your workspace where you and your team can collaborate on projects. In this tutorial, you'll: @@ -14,9 +15,10 @@ In this tutorial, you'll: - Access workspace settings and support resources ## Create new workspace + If you've already signed up for Plane, you have your first workspace created during [signup](https://app.plane.so/sign-up). This tutorial shows you how to create additional workspaces. -:::info +::: info 💡 Don't need another workspace right now? You can skip to the next section. ::: @@ -39,14 +41,14 @@ If you've already signed up for Plane, you have your first workspace created dur 4. **Set workspace URL** - Your URL is auto-generated from the workspace name. - Customize it if needed: `app.plane.so/`. - + :::warning This URL choice is permanent and cannot be changed later. Make sure it's exactly how you want it. ::: 5. **Select team size** - Choose the range that matches your expected team size. This helps optimize your Plane experience. - - You can always invite more people later. + - You can always invite more people later. 6. **Complete setup** - Click **Create workspace** to finish @@ -63,6 +65,7 @@ After creating your workspace, you'll land on the Home page. ### Understanding the Home page **Key sections you'll see:** + - **Quicklinks:** Save links to frequently accessed resources - **Recents:** Recently accessed work items, pages, and projects - **Your stickies:** Personal notes and reminders @@ -72,23 +75,27 @@ After creating your workspace, you'll land on the Home page. Understanding the sidebar helps you move efficiently around Plane. ### Personal section + - **Home:** Your workspace home - **Inbox:** Notifications and mentions - **Your work:** All work items assigned to you across projects ### Workspace section + - **Projects:** All projects in your workspace - **More:** Click to pin additional workspace features like Views, Analytics, Drafts, and Archives to your sidebar for quick access. -:::tip[Search] - Use the search bar at the top to quickly find work items, projects, or pages across your workspace. +::: tip Search +Use the search bar at the top to quickly find work items, projects, or pages across your workspace. ::: ### Projects section + - Direct links to individual projects for both configuration and daily work - Shows all projects you're part of or have access to ### Additional options + Click the **?** icon at the bottom of the sidebar to access: - Documentation: Help guides and tutorials @@ -115,10 +122,12 @@ Learn to work with multiple workspaces effectively. ### Join other workspaces **When someone invites you:** + - You'll receive an email notification - Accept from email or directly in Plane **To join from within Plane:** + - Look for **Workspace invites** at the bottom of the switcher - Pending invitations appear here - Click to accept invitations from other teams @@ -142,4 +151,5 @@ Customize your workspace to match your team's needs. You can successfully navigate to workspace settings and see customization options. ## What's next? + - [Invite members](/introduction/tutorials/invite-members) to get your team on board diff --git a/docs/introduction/tutorials/invite-members.mdx b/docs/introduction/tutorials/invite-members.md similarity index 85% rename from docs/introduction/tutorials/invite-members.mdx rename to docs/introduction/tutorials/invite-members.md index 11dd8a70..c7f5c9b9 100644 --- a/docs/introduction/tutorials/invite-members.mdx +++ b/docs/introduction/tutorials/invite-members.md @@ -1,6 +1,6 @@ --- title: Invite members -description: Learn how to invite team members to your Plane workspace, assign roles, and manage member permissions. +description: Learn how to invite team members to your Plane workspace, assign roles, and manage member permissions. --- # Invite members @@ -8,22 +8,24 @@ description: Learn how to invite team members to your Plane workspace, assign r Let's get your colleagues set up so you can start collaborating on projects together. In this tutorial, you'll: + - Invite team members to your workspace with appropriate roles - Understand workspace roles and permissions - Manage team members after they join - Handle pending invitations and role adjustments ## Access Members page + There are two ways to invite team members to your workspace: -**From the workspace switcher** +**From the workspace switcher** ![Switcher invite members](https://media.docs.plane.so/tutorials/switcher-invite-members.webp#hero) 1. Click on your workspace name in the top-left corner. 2. Next to your current workspace, click **Invite members**. -**From workspace settings** +**From workspace settings** ![Workspace members](https://media.docs.plane.so/tutorials/workspace-members.webp#hero) @@ -34,20 +36,19 @@ There are two ways to invite team members to your workspace: Both options open the same invitation dialog. ## Add team members + Configure who joins your workspace and what they can do. ![Add members](https://media.docs.plane.so/tutorials/add-members.webp#hero) -In the **Invite people to collaborate** dialog: - - Type email address in the provided field. - - Use the **+ Add more** link to invite multiple people at once. - :::tip - 💡 Start with core team members who will actively use Plane. You can always add more people later. - ::: +In the **Invite people to collaborate** dialog: - Type email address in the provided field. - Use the **+ Add more** link to invite multiple people at once. +:::tip +💡 Start with core team members who will actively use Plane. You can always add more people later. +::: ### Choose member roles -For each person you're inviting, select their role from the dropdown. +For each person you're inviting, select their role from the dropdown. #### 👑 Admin @@ -67,11 +68,12 @@ For each person you're inviting, select their role from the dropdown. - Cannot see other projects or workspace-level information - Best for External contractors, clients, temporary collaborators -:::tip +::: tip 💡 Want a deeper breakdown? Check out the [full guide](https://docs.plane.so/core-concepts/workspaces/members) on roles and permissions. ::: ## Send invitations + Once you've added email addresses and selected roles: 1. Review your invitation list. @@ -87,6 +89,7 @@ Once you've added email addresses and selected roles: - Join with the role you assigned them ## Manage your members + Learn to adjust roles and monitor team membership. ### View member information @@ -96,6 +99,7 @@ Learn to adjust roles and monitor team membership. Go to **Settings → Members** to see complete member information: **Member details displayed:** + - Full name and display name - Email address and account type - Current role (Admin/Member/Guest) @@ -107,7 +111,7 @@ Go to **Settings → Members** to see complete member information: 1. Click the role dropdown next to any member's name. 2. Change between **Admin**, **Member**, or **Guest** as needed. -3. Changes take effect immediately. +3. Changes take effect immediately. ### Remove members from workspace @@ -120,7 +124,8 @@ Go to **Settings → Members** to see complete member information: Removed members lose access to all workspace projects and data immediately. They can be re-invited later if needed. ## What's next? -Your team now has access to collaborate effectively in Plane. + +Your team now has access to collaborate effectively in Plane. **Ready to start collaborating?** diff --git a/docs/introduction/tutorials/organize-and-view-work.mdx b/docs/introduction/tutorials/organize-and-view-work.md similarity index 84% rename from docs/introduction/tutorials/organize-and-view-work.mdx rename to docs/introduction/tutorials/organize-and-view-work.md index 68129f7f..717e3f64 100644 --- a/docs/introduction/tutorials/organize-and-view-work.mdx +++ b/docs/introduction/tutorials/organize-and-view-work.md @@ -4,15 +4,18 @@ description: Learn how to organize and visualize your work items using layouts, --- # Organize and view your work + Now that you can create and collaborate on work items, let's learn how to organize and view them effectively. Plane provides powerful tools to help you see exactly the work that matters to you, when you need to see it. In this tutorial, you'll: + - Switch between different layout views to match your workflow - Navigate workspace and project level views - Use filters and display options to focus on relevant work - Create and save custom views for recurring organizational needs ## Explore different layouts + Layouts change how your work items are visually organized. Each layout shows the same work items but optimized for different tasks. ![Explore layouts](https://media.docs.plane.so/tutorials/explore-layouts.webp#hero) @@ -26,19 +29,19 @@ Layouts change how your work items are visually organized. Each layout shows the **List** - Text-based view for task organization - Best for: Quick scanning of all project activities, grouping work items by properties, viewing parent-child relationships - Use when: Reviewing status updates, bulk property changes, organizing tasks by priority/assignee - - **Board** - Visual workflow cards + + **Board** - Visual workflow cards - Best for: Drag-and-drop state management, team discussions - Use when: Sprint planning, workflow visualization - + **Calendar** - Timeline view - Best for: Deadline management and scheduling - Use when: Planning due dates, avoiding conflicts - + **Table** - Excel-like grid - Best for: Bulk editing and data manipulation - Use when: Mass updates, data analysis - + **Timeline** - Project timeline view - Best for: Dependencies and milestone tracking - Use when: Project planning, dependency management @@ -46,21 +49,22 @@ Layouts change how your work items are visually organized. Each layout shows the **Try switching between layouts** to see which feels more natural for your current work. ## Apply filters to work items + Filters help you see only the work items relevant to your current task. ![Explore layouts](https://media.docs.plane.so/tutorials/filter-work-items.webp#hero) 1. **Access the filters interface** - - Click the **Filters** button between the toolbar and your work items. - - Filters are applied as visual chips that you can see and modify easily. + - Click the **Filters** button between the toolbar and your work items. + - Filters are applied as visual chips that you can see and modify easily. 2. **Smart filter combinations** - - Each filter appears as a chip showing the property and selected values: - - Priority: "Priority is any of High, Urgent" - - Assignee: "Assignees is any of alex, amara" - - State: "State is not Completed" + - Each filter appears as a chip showing the property and selected values: + - Priority: "Priority is any of High, Urgent" + - Assignee: "Assignees is any of alex, amara" + - State: "State is not Completed" - Multiple filters work together automatically, no need to manually combine them. + Multiple filters work together automatically, no need to manually combine them. 3. Click the **x** on any filter chip to remove it. @@ -69,22 +73,23 @@ Filters help you see only the work items relevant to your current task. The work items list updates in real-time as you add or remove filters, giving you exactly the view you need for your current context. ## Customize display options + Display options control what information you see for each work item. The display options change based on your layout. ![Display options](https://media.docs.plane.so/tutorials/display-options.webp#hero) -1. **Control visible information** - - Click the **Display** dropdown on the top right of the screen. - - Toggle properties on/off to reduce visual clutter. +1. **Control visible information** + - Click the **Display** dropdown on the top right of the screen. + - Toggle properties on/off to reduce visual clutter. 2. **Organize your work items** - - **Group by:** Cluster work items logically (by State, Assignee, Priority, or Labels). - - **Order by:** Sort items within groups (by Priority for planning, Due date for deadlines, or Updated date for recent activity). - - **Sub-work items:** Show or hide nested tasks depending on detail needs. + - **Group by:** Cluster work items logically (by State, Assignee, Priority, or Labels). + - **Order by:** Sort items within groups (by Priority for planning, Due date for deadlines, or Updated date for recent activity). + - **Sub-work items:** Show or hide nested tasks depending on detail needs. ## Save and manage custom views -Views save your perfect combination of layout, filters, and display settings so you can reuse them instantly. +Views save your perfect combination of layout, filters, and display settings so you can reuse them instantly. 1. **Create a view from your current configuration** - Set up your ideal combination: Board layout + your assignee + active states @@ -101,6 +106,7 @@ Views save your perfect combination of layout, filters, and display settings so Both methods create views that appear in your project sidebar under **Views**. ## Use Your work dashboard + Your work dashboard gives you a unified view of all your work across every project in your workspace. ![Your work dashboard](https://media.docs.plane.so/tutorials/explore-your-work.webp#hero) @@ -136,6 +142,7 @@ Your work dashboard gives you a unified view of all your work across every proje - Use for: Catching up on updates and team progress ### Build a daily routine + Use Your work as your starting point each morning. Check the Summary tab for workload balance and priority distribution, then switch to Assigned to see today's specific tasks. The Activity tab catches you up on overnight updates and team progress. @@ -143,6 +150,7 @@ Check the Summary tab for workload balance and priority distribution, then switc This cross-project view helps you prioritize when you're working on multiple projects and ensures nothing falls through the cracks. Your work dashboard becomes your personal mission control for staying organized across your entire workspace. ## What's next? + Your work organization skills are solid! You're ready to: - [Plan work with cycles](/introduction/tutorials/plan-and-create-cycles) to group work into time-based iterations. diff --git a/docs/introduction/tutorials/overview.mdx b/docs/introduction/tutorials/overview.md similarity index 90% rename from docs/introduction/tutorials/overview.mdx rename to docs/introduction/tutorials/overview.md index 8b40697a..e9835c13 100644 --- a/docs/introduction/tutorials/overview.mdx +++ b/docs/introduction/tutorials/overview.md @@ -13,15 +13,15 @@ Build your workspace and team structure: **[Create workspace](/introduction/tutorials/create-workspace)** Set up your dedicated workspace, navigate the Plane interface, and understand the sidebar. Learn to switch between workspaces and access essential settings and support resources. -*Time: 5 minutes* +_Time: 5 minutes_ **[Invite members](/introduction/tutorials/invite-members)** Bring your team into Plane with appropriate roles and permissions. Master workspace roles, manage team members, and handle invitations effectively. -*Time: 3-5 minutes* +_Time: 3-5 minutes_ **[Create projects](/introduction/tutorials/create-project)** Set up your first project where teams organize work and collaborate. Configure project settings, add team members, customize workflows, and organize work with labels. -*Time: 8-10 minutes* +_Time: 8-10 minutes_ ## Working with tasks and collaboration @@ -29,11 +29,11 @@ Learn to create, manage, and collaborate on work: **[Create work items](/introduction/tutorials/create-work-items)** Add your first tasks with clear titles, descriptions, and properties. Navigate different views, move work through workflow states, and complete the full work item lifecycle. -*Time: 8-10 minutes* +_Time: 8-10 minutes_ **[Collaborate on work items](/introduction/tutorials/collaborate-on-work-items)** Transform individual tasks into team collaboration opportunities. Use comments and mentions, create sub-work items, manage notifications, and track activity effectively. -*Time: 10-12 minutes* +_Time: 10-12 minutes_ ## Organization and planning @@ -41,40 +41,45 @@ Organize and plan work for maximum team effectiveness: **[Organize and view your work](/introduction/tutorials/organize-and-view-work)** Master work organization using layouts, filters, and custom views. Create workspace-level views, use personal dashboards, and build effective daily routines. -*Time: 12-15 minutes* +_Time: 12-15 minutes_ **[Plan work with Cycles](/introduction/tutorials/plan-and-create-cycles)** Transform scattered work into focused, time-boxed periods. Create cycles with clear boundaries, track team velocity, and build sustainable planning rhythms. -*Time: 10-12 minutes* +_Time: 10-12 minutes_ **[Write content with Pages](/introduction/tutorials/create-pages)** Create professional documentation, meeting notes, and project requirements. Master the block-based editor, share pages effectively, and configure settings for different use cases. -*Time: 5 minutes* +_Time: 5 minutes_ --- ## Tutorial pathways ### For workspace administrators + - Create workspace → Invite members → Create projects → Advanced organization features -### For project managers +### For project managers + - Create projects → Create work items → Plan with Cycles → Organize and view work ### For team contributors -- Create work items → Collaborate on work items → Organize and view work → Write content with Pages + +- Create work items → Collaborate on work items → Organize and view work → Write content with Pages ## What you'll accomplish By completing these tutorials, you'll have: **Essential skills:** + - Functional workspace with proper team access and permissions - Project structure that matches your team's workflow - Work creation and management capabilities - Effective collaboration patterns and communication practices **Advanced capabilities:** + - Custom views and organization systems that support different work contexts - Time-based planning with cycles for consistent delivery - Documentation and knowledge sharing through Pages @@ -82,4 +87,4 @@ By completing these tutorials, you'll have: --- -*These tutorials provide the foundation for effective team collaboration in Plane. Work through them at your own pace, and don't hesitate to revisit sections as your team grows and workflow needs evolve.* \ No newline at end of file +_These tutorials provide the foundation for effective team collaboration in Plane. Work through them at your own pace, and don't hesitate to revisit sections as your team grows and workflow needs evolve._ diff --git a/docs/introduction/tutorials/plan-and-create-cycles.mdx b/docs/introduction/tutorials/plan-and-create-cycles.md similarity index 97% rename from docs/introduction/tutorials/plan-and-create-cycles.mdx rename to docs/introduction/tutorials/plan-and-create-cycles.md index b5272452..377814bf 100644 --- a/docs/introduction/tutorials/plan-and-create-cycles.mdx +++ b/docs/introduction/tutorials/plan-and-create-cycles.md @@ -8,6 +8,7 @@ description: Learn how to create and manage cycles in Plane to organize work int Cycles help you organize work into focused time periods - like sprints. Instead of endless lists of work items, cycles create clear boundaries with start dates, end dates, and specific goals your team can work toward together. In this tutorial, you'll: + - Understand when and why to use cycles for time-based planning - Create cycles with clear timeframes and achievable goals - Add and organize work items within cycle boundaries @@ -19,6 +20,7 @@ In this tutorial, you'll: **Cycles are time-boxed containers** for your work that create focused periods where your team commits to completing specific work items within set timeframes. **Key benefits:** + - Clear deadlines create urgency and focus - Team alignment on what's being worked on when - Progress tracking shows velocity and capacity over time @@ -32,12 +34,13 @@ In this tutorial, you'll: - **Goal-driven work** - Organize work around specific outcomes or milestones ## Create your first cycle + Build a focused work period with clear boundaries and achievable goals. ![Create cycle dialog](https://media.docs.plane.so/tutorials/create-cycle.webp#hero) 1. **Begin creating your cycle** - - In your project sidebar, click **Cycles**. + - In your project sidebar, click **Cycles**. - Click **Add cycle** button (top-right). - The cycle creation dialog opens. @@ -68,13 +71,15 @@ Explore how Plane organizes your cycles and provides timeline visibility. ![Cycles overview](https://media.docs.plane.so/tutorials/cycles-interface.webp#hero) **Understand cycle organization:** - - **Active** - Currently running cycles - - **Upcoming** - Planned but not yet started - - **Completed** - Finished cycles with results + +- **Active** - Currently running cycles +- **Upcoming** - Planned but not yet started +- **Completed** - Finished cycles with results This gives you comprehensive perspective on your project's planned work across past, present, and future periods. ## Add work items to your cycle + Populate your cycle with the right amount of work for your team's capacity. ![Cycle detail view](https://media.docs.plane.so/tutorials/add-work-items-to-cycle.webp#hero) @@ -99,6 +104,7 @@ Populate your cycle with the right amount of work for your team's capacity. - You can always add more items if you finish early. ## Track cycle progress + Once your cycle is active with work items, monitor progress regularly to ensure successful delivery and continuous improvement. ![Cycle progress tracking](https://media.docs.plane.so/tutorials/view-cycle-progress.webp#hero) @@ -145,6 +151,7 @@ Finish cycles with clear outcomes and learning for future improvement. You've created your first cycle and learned the fundamentals of time-boxed work planning. This approach helps teams deliver consistently and makes progress visible to everyone. ## What's next? + Your cycle planning skills are established! You're ready to: -- [Create content with Pages](/introduction/tutorials/create-pages) for documentation, meeting notes, and other project requirements. \ No newline at end of file +- [Create content with Pages](/introduction/tutorials/create-pages) for documentation, meeting notes, and other project requirements. diff --git a/static/fonts/IBM/IBMPlexMono-Bold.ttf b/docs/public/fonts/IBM/IBMPlexMono-Bold.ttf similarity index 100% rename from static/fonts/IBM/IBMPlexMono-Bold.ttf rename to docs/public/fonts/IBM/IBMPlexMono-Bold.ttf diff --git a/static/fonts/IBM/IBMPlexMono-Light.ttf b/docs/public/fonts/IBM/IBMPlexMono-Light.ttf similarity index 100% rename from static/fonts/IBM/IBMPlexMono-Light.ttf rename to docs/public/fonts/IBM/IBMPlexMono-Light.ttf diff --git a/static/fonts/IBM/IBMPlexMono-Regular.ttf b/docs/public/fonts/IBM/IBMPlexMono-Regular.ttf similarity index 100% rename from static/fonts/IBM/IBMPlexMono-Regular.ttf rename to docs/public/fonts/IBM/IBMPlexMono-Regular.ttf diff --git a/static/fonts/IBM/IBMPlexMono-SemiBold.ttf b/docs/public/fonts/IBM/IBMPlexMono-SemiBold.ttf similarity index 100% rename from static/fonts/IBM/IBMPlexMono-SemiBold.ttf rename to docs/public/fonts/IBM/IBMPlexMono-SemiBold.ttf diff --git a/static/fonts/Satoshi/Satoshi-Variable.ttf b/docs/public/fonts/Satoshi/Satoshi-Variable.ttf similarity index 100% rename from static/fonts/Satoshi/Satoshi-Variable.ttf rename to docs/public/fonts/Satoshi/Satoshi-Variable.ttf diff --git a/docs/logo/dark.svg b/docs/public/logo/dark.svg similarity index 100% rename from docs/logo/dark.svg rename to docs/public/logo/dark.svg diff --git a/docs/logo/favicon.svg b/docs/public/logo/favicon.svg similarity index 100% rename from docs/logo/favicon.svg rename to docs/public/logo/favicon.svg diff --git a/docs/logo/light.svg b/docs/public/logo/light.svg similarity index 100% rename from docs/logo/light.svg rename to docs/public/logo/light.svg diff --git a/docs/support/get-help.mdx b/docs/support/get-help.md similarity index 92% rename from docs/support/get-help.mdx rename to docs/support/get-help.md index e36f6674..c0e2338f 100644 --- a/docs/support/get-help.mdx +++ b/docs/support/get-help.md @@ -1,6 +1,5 @@ --- -title: Support and help resources -sidebar_label: Get help +title: Support and help resources description: Find support for Plane through in-app chat, email, Discord community, and developer resources. Report bugs, request features, and get answers to your questions. --- @@ -10,13 +9,12 @@ Need assistance with Plane? We're here to help you get unstuck and make the most ## Chat with us -The fastest way to get help is through our in-app support chat. +The fastest way to get help is through our in-app support chat. ![Get help](https://media.docs.plane.so/support/get-help-plane.webp#hero-bl) Click the **?** icon in your Plane workspace to start a conversation with our team. We're available to answer questions, troubleshoot issues, and guide you through features. - ## Join our community Connect with other Plane users, share tips, and get community support on our [Discord server](https://discord.com/invite/A92xrEGCge). It's a great place to see how others are using Plane, get quick answers, and stay updated on what's new. @@ -35,4 +33,4 @@ Found a bug? Help us improve Plane by reporting it on [GitHub Issues](https://gi ## Improve these docs -Notice something unclear or missing in our documentation? Let us know on the [docs GitHub repository](https://github.com/makeplane/docs). Your feedback helps us create better resources for everyone. \ No newline at end of file +Notice something unclear or missing in our documentation? Let us know on the [docs GitHub repository](https://github.com/makeplane/docs). Your feedback helps us create better resources for everyone. diff --git a/docs/support/keyboard-shortcuts.md b/docs/support/keyboard-shortcuts.md new file mode 100644 index 00000000..e6fe5e2c --- /dev/null +++ b/docs/support/keyboard-shortcuts.md @@ -0,0 +1,123 @@ +--- +title: Complete list of keyboard shortcuts and hotkeys +description: Complete list of keyboard shortcuts in Plane. Speed up your workflow with shortcuts for work items, navigation, cycles, modules, pages, and more. Press Cmd+/ to access anytime. +--- + +# Keyboard shortcuts + +Speed up your workflow in Plane with keyboard shortcuts. Access this list anytime by pressing `Cmd + /` (Mac) or `Ctrl + /` (Windows/Linux). + +## Work item actions + +| Action | Shortcut | +| -------------------------- | ----------- | +| Change state | `S` | +| Change priority | `P` | +| Assign to | `A` | +| Assign to me | `I` | +| Change estimate | `⌘ + E` | +| Add to cycle | `⌘ + C` | +| Add to modules | `⌘ + M` | +| Add labels | `L` | +| Subscribe to notifications | `⌘ + S` | +| Delete | `⌘ + ⌫` | +| Copy ID | `⌘ + .` | +| Copy title | `⌘ + ⇧ + '` | +| Copy URL | `⌘ + ⇧ + ,` | + +## Cycle actions + +| Action | Shortcut | +| ---------------- | ----------- | +| Add to favorites | `⌘ + F` | +| Copy URL | `⌘ + ⇧ + ,` | + +## Module actions + +| Action | Shortcut | +| ------------------ | ----------- | +| Add/remove members | `M` | +| Change status | `S` | +| Add to favorites | `⌘ + F` | +| Copy URL | `⌘ + ⇧ + ,` | + +## Page actions + +| Action | Shortcut | +| ---------------- | ----------- | +| Lock | `⌘ + L` | +| Make public | `⌘ + A` | +| Archive | `⌘ + R` | +| Add to favorites | `⌘ + F` | +| Copy URL | `⌘ + ⇧ + ,` | + +## Initiative actions + +| Action | Shortcut | +| ------------ | ----------- | +| Change state | `S` | +| Change lead | `L` | +| Copy URL | `⌘ + ⇧ + ,` | + +## Create + +| Action | Shortcut | +| -------------- | ------------ | +| New work item | `N` then `I` | +| New page | `N` then `D` | +| New view | `N` then `V` | +| New cycle | `N` then `C` | +| New module | `N` then `M` | +| New project | `N` then `P` | +| New teamspace | `N` then `T` | +| New initiative | `N` then `N` | +| New dashboard | `N` then `B` | +| New customer | `N` then `U` | + +## Navigate + +| Action | Shortcut | +| ------------------------- | ------------ | +| Open a cycle | `O` then `C` | +| Open a module | `O` then `M` | +| Open a project view | `O` then `V` | +| Open a project setting | `O` then `S` | +| Open a project | `O` then `P` | +| Open a teamspace | `O` then `T` | +| Open an initiative | `O` then `N` | +| Open a customer record | `O` then `U` | +| Open a workspace setting | `O` then `S` | +| Open a workspace | `O` then `W` | +| Go to home | `G` then `H` | +| Go to inbox | `G` then `X` | +| Go to your work | `G` then `Y` | +| Go to epics | `G` then `E` | +| Go to work items | `G` then `I` | +| Go to pages | `G` then `D` | +| Go to cycles | `G` then `C` | +| Go to modules | `G` then `M` | +| Go to project views | `G` then `V` | +| Go to intake | `G` then `K` | +| Go to project settings | `G` then `S` | +| Go to project archives | `G` then `R` | +| Go to workspace analytics | `G` then `A` | +| Go to workspace settings | `G` then `S` | +| Go to workspace drafts | `G` then `J` | +| Go to workspace archives | `G` then `R` | +| Go to teamspaces | `G` then `T` | +| Go to initiatives | `G` then `N` | +| Go to dashboards | `G` then `B` | +| Go to customer records | `G` then `U` | +| Go to projects list | `G` then `P` | + +## Miscellaneous + +| Action | Shortcut | +| ----------------------- | ----------- | +| Toggle app sidebar | `⌘ + B` | +| Copy current page URL | `⌘ + ⇧ + C` | +| Open keyboard shortcuts | `⌘ + /` | + +--- + +**Note:** `⌘` represents Command on Mac and Ctrl on Windows/Linux. `⇧` represents Shift, and `⌫` represents Delete/Backspace. diff --git a/docs/support/keyboard-shortcuts.mdx b/docs/support/keyboard-shortcuts.mdx deleted file mode 100644 index 66d2ae8a..00000000 --- a/docs/support/keyboard-shortcuts.mdx +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Complete list of keyboard shortcuts and hotkeys -sidebar_label: Keyboard shortcuts -description: Complete list of keyboard shortcuts in Plane. Speed up your workflow with shortcuts for work items, navigation, cycles, modules, pages, and more. Press Cmd+/ to access anytime. ---- - -# Keyboard shortcuts - -Speed up your workflow in Plane with keyboard shortcuts. Access this list anytime by pressing `Cmd + /` (Mac) or `Ctrl + /` (Windows/Linux). - -## Work item actions - -| Action | Shortcut | -|--------|----------| -| Change state | `S` | -| Change priority | `P` | -| Assign to | `A` | -| Assign to me | `I` | -| Change estimate | `⌘ + E` | -| Add to cycle | `⌘ + C` | -| Add to modules | `⌘ + M` | -| Add labels | `L` | -| Subscribe to notifications | `⌘ + S` | -| Delete | `⌘ + ⌫` | -| Copy ID | `⌘ + .` | -| Copy title | `⌘ + ⇧ + '` | -| Copy URL | `⌘ + ⇧ + ,` | - -## Cycle actions - -| Action | Shortcut | -|--------|----------| -| Add to favorites | `⌘ + F` | -| Copy URL | `⌘ + ⇧ + ,` | - -## Module actions - -| Action | Shortcut | -|--------|----------| -| Add/remove members | `M` | -| Change status | `S` | -| Add to favorites | `⌘ + F` | -| Copy URL | `⌘ + ⇧ + ,` | - -## Page actions - -| Action | Shortcut | -|--------|----------| -| Lock | `⌘ + L` | -| Make public | `⌘ + A` | -| Archive | `⌘ + R` | -| Add to favorites | `⌘ + F` | -| Copy URL | `⌘ + ⇧ + ,` | - -## Initiative actions - -| Action | Shortcut | -|--------|----------| -| Change state | `S` | -| Change lead | `L` | -| Copy URL | `⌘ + ⇧ + ,` | - -## Create - -| Action | Shortcut | -|--------|----------| -| New work item | `N` then `I` | -| New page | `N` then `D` | -| New view | `N` then `V` | -| New cycle | `N` then `C` | -| New module | `N` then `M` | -| New project | `N` then `P` | -| New teamspace | `N` then `T` | -| New initiative | `N` then `N` | -| New dashboard | `N` then `B` | -| New customer | `N` then `U` | - -## Navigate - -| Action | Shortcut | -|--------|----------| -| Open a cycle | `O` then `C` | -| Open a module | `O` then `M` | -| Open a project view | `O` then `V` | -| Open a project setting | `O` then `S` | -| Open a project | `O` then `P` | -| Open a teamspace | `O` then `T` | -| Open an initiative | `O` then `N` | -| Open a customer record | `O` then `U` | -| Open a workspace setting | `O` then `S` | -| Open a workspace | `O` then `W` | -| Go to home | `G` then `H` | -| Go to inbox | `G` then `X` | -| Go to your work | `G` then `Y` | -| Go to epics | `G` then `E` | -| Go to work items | `G` then `I` | -| Go to pages | `G` then `D` | -| Go to cycles | `G` then `C` | -| Go to modules | `G` then `M` | -| Go to project views | `G` then `V` | -| Go to intake | `G` then `K` | -| Go to project settings | `G` then `S` | -| Go to project archives | `G` then `R` | -| Go to workspace analytics | `G` then `A` | -| Go to workspace settings | `G` then `S` | -| Go to workspace drafts | `G` then `J` | -| Go to workspace archives | `G` then `R` | -| Go to teamspaces | `G` then `T` | -| Go to initiatives | `G` then `N` | -| Go to dashboards | `G` then `B` | -| Go to customer records | `G` then `U` | -| Go to projects list | `G` then `P` | - -## Miscellaneous - -| Action | Shortcut | -|--------|----------| -| Toggle app sidebar | `⌘ + B` | -| Copy current page URL | `⌘ + ⇧ + C` | -| Open keyboard shortcuts | `⌘ + /` | - ---- - -**Note:** `⌘` represents Command on Mac and Ctrl on Windows/Linux. `⇧` represents Shift, and `⌫` represents Delete/Backspace. \ No newline at end of file diff --git a/docs/templates/page-templates.mdx b/docs/templates/page-templates.md similarity index 92% rename from docs/templates/page-templates.mdx rename to docs/templates/page-templates.md index 264f4136..35e31466 100644 --- a/docs/templates/page-templates.mdx +++ b/docs/templates/page-templates.md @@ -1,16 +1,11 @@ --- title: Page templates to standardize documentation structure -sidebar_label: Page Templates -hide_title: true description: Create Page templates to standardize documentation and build reusable page structures. Save time and ensure consistency with our step-by-step guide. --- -import Tags from "@site/src/components/Tags"; +# Page templates to standardize documentation structure -
-

Create pages faster with templates

- -
+ Page Templates help you standardize and streamline your documentation workflow by providing reusable page structures for common content types. Instead of manually creating similar pages from scratch, templates allow you to quickly apply predefined formats and content, saving time and ensuring consistency across your workspace. @@ -24,8 +19,9 @@ Templates are perfect for teams who: ## Create page template 1. Navigate to [Workspace Settings](https://docs.plane.so/core-concepts/workspaces/overview#access-workspace-settings). - + ![Create page template](https://media.docs.plane.so/templates/create-page-templates.webp#hero-tr) + 2. Select the **Templates** tab on the right pane. 3. Click the **Create template** button in the top-right corner. 4. Select **Page template** from the dropdown options. @@ -37,6 +33,7 @@ Templates are perfect for teams who: - Design your page layout and add any standard content, headers, or formatting. - Include placeholder text or instructions for future users. - Set up any recurring elements like tables, checklists, or sections. + 6. Click **Create page template** to save. ## Use page templates diff --git a/docs/templates/project-templates.mdx b/docs/templates/project-templates.md similarity index 92% rename from docs/templates/project-templates.mdx rename to docs/templates/project-templates.md index 2a297ed0..68413b36 100644 --- a/docs/templates/project-templates.mdx +++ b/docs/templates/project-templates.md @@ -1,16 +1,11 @@ --- title: Project templates to standardize new project setup -sidebar_label: Project Templates -hide_title: true description: Create and use Project Templates to standardize projects, save setup time, and ensure consistency across your workspace with predefined settings. --- -import Tags from "@site/src/components/Tags"; +# Project templates to standardize new project setup -
-

Create projects faster with templates

- -
+ Project Templates help you standardize and streamline your workflow by providing reusable structures for common project types. Instead of manually configuring similar projects from scratch, templates allow you to quickly apply predefined settings, saving time and ensuring consistency across your workspace. @@ -26,6 +21,7 @@ Templates are perfect for teams who: 1. Navigate to [Workspace Settings](https://docs.plane.so/core-concepts/workspaces/overview#access-workspace-settings). ![Create project template](https://media.docs.plane.so/templates/create-project-template.webp#hero-tr) + 2. Select the **Templates** tab on the right pane. 3. Click the **Create template** button in the top-right corner. 4. Select **Project template** from the options. @@ -39,8 +35,10 @@ Templates are perfect for teams who: - Set up optional features like **States**, **Labels**, and **Work item types**. ![Configure project template](https://media.docs.plane.so/templates/configure-project-template.webp#hero) + - Enable or disable **Epics** based on project needs. - You can optionally define initial work items that will automatically create when teams start new projects, helping them get up and running faster with pre-structured tasks. + 6. Click **Create project template** to save. ## Use project templates diff --git a/docs/templates/work-item-templates.mdx b/docs/templates/work-item-templates.md similarity index 92% rename from docs/templates/work-item-templates.mdx rename to docs/templates/work-item-templates.md index 5bf496c1..78b7c24e 100644 --- a/docs/templates/work-item-templates.mdx +++ b/docs/templates/work-item-templates.md @@ -1,16 +1,11 @@ --- title: Work item templates for recurring tasks -sidebar_label: Work Item Templates -hide_title: true description: Create and use Work Item Templates to standardize recurring tasks, save setup time, and ensure consistency with predefined fields and properties. --- -import Tags from "@site/src/components/Tags"; +# Work item templates for recurring tasks -
-

Create work items faster with templates

- -
+ Work Item Templates help you standardize and streamline your workflow by providing reusable templates for common tasks. Instead of manually recreating similar work items, templates allow you to quickly apply predefined structures, saving time and ensuring consistency. @@ -25,12 +20,14 @@ Templates are perfect for teams who: 1. Navigate to [Project Settings](https://docs.plane.so/core-concepts/projects/overview#configure-project-settings). 2. Select the **Templates** tab on the right pane. - + ![Create work item template](https://media.docs.plane.so/templates/create-work-item-template.webp#hero-bl) + 3. Click the **Create template** button in the top-right corner. 4. Select **Work Item template** from the options. - + ![Add template details](https://media.docs.plane.so/templates/add-template-details.webp#hero) + 5. Fill in the template details: - Give your template a clear, descriptive name. - Add a description explaining when and how to use this template. diff --git a/docs/workflows-and-approvals/workflows.mdx b/docs/workflows-and-approvals/workflows.md similarity index 87% rename from docs/workflows-and-approvals/workflows.mdx rename to docs/workflows-and-approvals/workflows.md index 3d898c00..a25e2c97 100644 --- a/docs/workflows-and-approvals/workflows.mdx +++ b/docs/workflows-and-approvals/workflows.md @@ -1,16 +1,11 @@ --- title: Workflows to control work item state transitions -sidebar_label: Workflows -hide_title: true description: Set up Workflows to control work item transitions, require approval from specific reviewers, and ensure work follows your team's established processes. --- -import Tags from "@site/src/components/Tags"; +# Workflows to control work item state transitions -
-

Control your work item transitions

- -
+ Workflows give you control over how work items move through your process. Think of it as creating guardrails that ensure work follows your team's agreed-upon path, with the right people making decisions at each step. @@ -21,7 +16,7 @@ This means you can: - Prevent work items from moving backward in your process unexpectedly. - Control which states can receive new work items. -
+
@@ -43,16 +38,16 @@ Getting started with Workflows takes just a few minutes: 2. You'll see all your workflow states listed. Each state represents a stage in your process (like "Backlog," "Todo," "In Progress"). 3. For each state, you'll notice a toggle labeled **Allow new work items**. This controls whether team members can create new items directly in this state. Toggle it off for states that should only be reached through progression (like "Ready to Publish"). - + ![Allow new work items](https://media.docs.plane.so/workflows/allow-new-work-items.webp#hero) 4. Under the state, click **Add permitted state change** to define possible transitions. - When you click this option, a menu appears where you can select which states this work item can move to next. For example, from "Backlog," you might allow transitions to "Todo" or "Sprint Backlog". - + ![Add permitted state change](https://media.docs.plane.so/workflows/add-state-change.webp#hero) - Click **Add reviewers** to specify Members who are permitted to make this change. If you don't add any reviewers, any team member can move items to this state. - + ![Add reviewers](https://media.docs.plane.so/workflows/add-reviewers.webp#hero) 5. Add all the state transitions your team needs, building out your complete workflow. @@ -60,7 +55,7 @@ Getting started with Workflows takes just a few minutes: 6. When everything looks good, click the **Live** toggle at the top right to activate your workflow. 7. The three-dot menu in the top-right provides additional options: - + ![Additional options](https://media.docs.plane.so/workflows/additional-options.webp#hero) - **Reset workflow** Removes all your custom workflow settings @@ -72,10 +67,11 @@ Getting started with Workflows takes just a few minutes: Once your workflow is live, you'll notice some changes in how work items behave: - A special icon appears next to the state column, indicating a workflow is active. - + ![Transition active icon](https://media.docs.plane.so/workflows/transition-change-icon.webp#hero) + - Items can only be created in states where "Allow new work items" is enabled. - Members will only be able to move items to the states you've permitted. - If someone tries to make a state change they're not authorized for, they'll see a blocker message. - + ![Transition blocker](https://media.docs.plane.so/workflows/transition-blocker.webp#hero) diff --git a/docs/workspaces-and-users/add-remove-seats.mdx b/docs/workspaces-and-users/add-remove-seats.md similarity index 79% rename from docs/workspaces-and-users/add-remove-seats.mdx rename to docs/workspaces-and-users/add-remove-seats.md index fd143e9e..d6ad72ae 100644 --- a/docs/workspaces-and-users/add-remove-seats.mdx +++ b/docs/workspaces-and-users/add-remove-seats.md @@ -8,7 +8,7 @@ description: Manage paid seats in your workspace Manage the number of paid seats in your workspace to control your subscription costs. Seats determine how many Admins and Members you can have. -:::info +::: info Guests don't count as paid seats. You get 5 Guest users per paid seat automatically. ::: @@ -18,26 +18,24 @@ Add seats when you need to invite more Admins or Members than your current seat 1. Navigate to **Workspace Settings > Members**. - ![Manage seats](https://media.docs.plane.so/activate-license/manage-seats.webp#hero-tr) +![Manage seats](https://media.docs.plane.so/activate-license/manage-seats.webp#hero-tr) 2. Click **Manage Seats**. 3. Select **Add seats**. - ![Add seats](https://media.docs.plane.so/activate-license/add-paid-seats.webp#hero) -4. Enter the number of seats to add. -5. Click **Change**. -6. Complete payment in Stripe. +![Add seats](https://media.docs.plane.so/activate-license/add-paid-seats.webp#hero) 4. Enter the number of seats to add. 5. Click **Change**. 6. Complete payment in Stripe. + +::: info Billing impact -:::info[Billing impact] - New seats are charged immediately. - Future bills include the full price of all seats. -::: + ::: ## Remove unused seats Remove unused seats to reduce your subscription cost. You can only remove seats that aren't currently assigned to members. -:::tip +::: tip If you want to remove seats currently in use, remove the members first or change their role to Guest. See [Manage members](/core-concepts/workspaces/members), then remove the unused seats. ::: @@ -46,5 +44,3 @@ If you want to remove seats currently in use, remove the members first or change 3. Select **Remove unused seats**. This removes all paid seats not currently assigned to Admins or Members. - - diff --git a/docs/workspaces-and-users/billing-and-plans.mdx b/docs/workspaces-and-users/billing-and-plans.md similarity index 99% rename from docs/workspaces-and-users/billing-and-plans.mdx rename to docs/workspaces-and-users/billing-and-plans.md index d65c293d..21d0a689 100644 --- a/docs/workspaces-and-users/billing-and-plans.mdx +++ b/docs/workspaces-and-users/billing-and-plans.md @@ -4,6 +4,8 @@ toc_max_heading_level: 4 description: Learn how Plane's per-seat billing works, how to manage seats for admins and members and upgrade workspaces. --- +# How billing works + Unlike a majority of SaaS, our subscription models on Pro and higher plans are per-seat, not per-users. Learn why this model works great for you and how to manage your members versus seats. ## Per-seat model and billing @@ -58,8 +60,9 @@ We don’t offer refunds except in the most unusual circumstances. Your Plane bi Should you think you have an exceptional circumstance and deserve a refund, write to us. ## AI credits and usage + Plane AI uses a separate credit-based system for AI features. Credits measure the computational work required for AI tasks, from quick queries to bulk automations. Each plan includes monthly AI credits per seat that pool at the workspace level. -AI credits are separate from your seat-based subscription. You can run out of AI credits without affecting your paid seats, and vice versa. Learn more about [how AI credits work](/ai/plane-ai-credits) including consumption rates, rollover policies, and top-up options. \ No newline at end of file +AI credits are separate from your seat-based subscription. You can run out of AI credits without affecting your paid seats, and vice versa. Learn more about [how AI credits work](/ai/plane-ai-credits) including consumption rates, rollover policies, and top-up options. diff --git a/docs/workspaces-and-users/customize-navigation.mdx b/docs/workspaces-and-users/customize-navigation.md similarity index 96% rename from docs/workspaces-and-users/customize-navigation.mdx rename to docs/workspaces-and-users/customize-navigation.md index 32bfc9ac..ad100417 100644 --- a/docs/workspaces-and-users/customize-navigation.mdx +++ b/docs/workspaces-and-users/customize-navigation.md @@ -8,6 +8,7 @@ description: Personalize your Plane sidebar by showing or hiding sections. Custo Personalize your sidebar by choosing which items stay visible and how your project navigation is displayed. These settings are personal to you and won't affect anyone else in your workspace. ## Customize sidebar items + Control which sections appear in your sidebar to streamline your navigation and focus on what matters most to you. ![Customize personal and workspace items](https://media.docs.plane.so/workspaces/customize-personal-and-workspace-items.webp#hero) @@ -25,14 +26,14 @@ Selected items will always appear in your sidebar. Unchecked items can still be Choose how feature tabs appear within your projects: -**Accordion navigation control** +**Accordion navigation control** ![Accordion navigation style](https://media.docs.plane.so/workspaces/accordion-navigation-style.webp#hero) Feature tabs appear as nested items under each project in the sidebar and act as an accordion. When you expand one project, others automatically collapse. This works well when you focus on one project at a time and want a compact sidebar. -**Horizontal navigation bar** +**Horizontal navigation bar** ![Horizontal navigation bar](https://media.docs.plane.so/workspaces/horizontal-navigation-bar.webp#hero) @@ -46,6 +47,7 @@ To change your project navigation: 3. Choose either **Accordion navigation control** or **Horizontal navigation bar**. ## Limit sidebar projects + If you're a member of many projects, you can limit how many appear directly in your sidebar to keep it manageable. ![Limit sidebar projects](https://media.docs.plane.so/workspaces/limit-sidebar-projects.webp#hero) @@ -55,4 +57,4 @@ If you're a member of many projects, you can limit how many appear directly in y 3. Your most recently accessed projects will appear in the sidebar. 4. Access other projects through the ... More menu. -This helps keep your sidebar focused on active projects while maintaining access to everything else. \ No newline at end of file +This helps keep your sidebar focused on active projects while maintaining access to everything else. diff --git a/docs/workspaces-and-users/manage-licenses.mdx b/docs/workspaces-and-users/manage-licenses.md similarity index 98% rename from docs/workspaces-and-users/manage-licenses.mdx rename to docs/workspaces-and-users/manage-licenses.md index c6dab59d..a99472c1 100644 --- a/docs/workspaces-and-users/manage-licenses.mdx +++ b/docs/workspaces-and-users/manage-licenses.md @@ -2,28 +2,31 @@ title: Manage licenses description: Upgrade to paid plans in Plane, activate license keys on self-hosted instances, manage seats, and handle subscription changes. --- + # Manage licenses for Commercial Edition -:::warning +::: warning If you are on the self-hosted Community edition and want to upgrade to the Commercial Edition, see [Upgrade from Community](https://developers.plane.so/self-hosting/upgrade-from-community). ::: -## Activate license -Activate a paid plan license on your self-hosted Plane instance using a license key from the Prime portal. +## Activate license +Activate a paid plan license on your self-hosted Plane instance using a license key from the Prime portal. 1. Login to the [Prime portal](https://prime.plane.so/licenses) with the same email address you used to purchase one of our paid plans. -2. Go to [Manage licenses](https://prime.plane.so/licenses). Copy the value of the **License key** for the license you want to activate. +2. Go to [Manage licenses](https://prime.plane.so/licenses). Copy the value of the **License key** for the license you want to activate. ![Manage licenses](https://media.docs.plane.so/activate-license/copy-license-key.webp#hero) :::note Click the **Get more licenses** button as in the image above on the [Prime portal](https://prime.plane.so/licenses/plans) to buy more licenses. ::: -3. On the Plane app, navigate to **Workspace Settings > Billing and plans** + +3. On the Plane app, navigate to **Workspace Settings > Billing and plans** 4. Click the **Activate this Workspace** button. ![Activate workspace](https://media.docs.plane.so/activate-license/enter-license-key-selfhosted.webp#hero-tr) + 5. Paste the license key in the **Enter license key** box. 6. Click **Activate**. You will see a confirmation. 7. That's it. To check your plan at any time and find additional details, just go to the **Billing and plans** tab in **Workspace Settings**. @@ -56,8 +59,7 @@ Here’s how to delink your license key from a workspace: 2. Click **Delink license key**. This will release the license key, making it available for use on another machine or workspace. ![Delink license key](https://media.docs.plane.so/activate-license/delink-license-key.webp#hero-tl) + 3. Restart the instance using `prime-cli restart`. 4. If you’re switching machines or reinstalling the Commercial edition, see [Move Plane instance to another server](https://developers.plane.so/self-hosting/manage/migrate-plane). 5. Ensure you are connected to the internet and reactivate the new workspace using the license key you delinked earlier. - - diff --git a/docs/workspaces-and-users/permissions.md b/docs/workspaces-and-users/permissions.md new file mode 100644 index 00000000..dda39a2a --- /dev/null +++ b/docs/workspaces-and-users/permissions.md @@ -0,0 +1,2022 @@ +--- +title: Permissions matrix +description: Manage user roles and permissions in workspaces. +--- + +# Permissions matrix + +Permissions define what actions users can take within a workspace or project. + +This reference provides a comprehensive breakdown of what each role can do across workspaces and projects. Use this matrix to understand exact permission boundaries when planning your team structure or troubleshooting access issues. + +## Permission levels + +
+ Workspaces +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionAdminMemberGuest
Access Workspace settingsxx
Create Workspacexx
Update Workspacexx
Delete Workspacexx
Add userxx
Remove userxx
Change user rolexx
Manage Project statesxx
Manage Billing and plansxx
Manage Integrationsxx
Manage Importsxx
Manage Exportsxx
Manage Webhooksxx
Manage API tokensxx
Manage Worklogsxx
Home
Your workx
Inbox
Draftsx
Projectsx
View private projectsxx
View public projectsx
Join private projectsxx
Join public projectsx
Cyclesx
Views
Analyticsx
Your favouritesx
+
+ +
+ +
+ + Projects + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest
Access Project settings + + + + + x + + x +
Create Project + + + + + + + x +
Update Project + + + + + x + + x +
Archive Project + + + + + x + + x +
Delete Project + + + + + x + + x +
Add user + + + + + x + + x +
Remove user + + + + + x + + x +
Change user role + + + + + x + + x +
Enable features + + + + + x + + x +
Manage work item states + + + + + x + + x +
Manage work item labels + + + + + x + + x +
Manage Estimates + + + + + x + + x +
Manage Automations + + + + + x + + x +
Manage work item types and custom properties + + + + + x + + x +
Add Project to favorites + + + + + + + x +
Publish Project + + + + + x + + x +
Copy link + + + + + + + x +
View Archived projects + + + + + + + x +
+
+
+ +
+ + Work items + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest + Guest with
view access +
Comments
Create Work item + + + + + + + x + + x +
View Work items + + + + + + + x + + + Guests without view access can only see their own work items accepted through Intake.
Edit Work item + + + + + + + x + + x +
Duplicate Work item + + + + + + + x + + x +
Copy link + + + + + + + x + + x +
Archive Work item + + + + + + + x + + x +
Delete Work item + + + + + + + x + + x +
Edit Work item properties + + + + + + + x + + x +
View Work item activity + + + + + + + x + + +
Log work + + + + + + + x + + x +
Add Comments + + + + + + + x + + +
View Comments + + + + + + + x + + +
Add Reactions + + + + + + + x + + +
View work item types + + + + + + + + + +
Use work item types + + + + + + + x + + x +
+
+
+ +
+ + Cycles + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest
Create Cycle + + + + + + + x +
View Cycles + + + + + + + x +
View Cycle work items + + + + + + + x +
Edit Cycle + + + + + + + x +
Add work items + + + + + + + x +
Archive Cycle + + + + + + + x +
Delete Cycle + + + + + + + x +
Copy link + + + + + + + x +
Add Cycle to favorites + + + + + + + x +
View Cycle details + + + + + + + x +
Filter Cycles + + + + + + + x +
Search Cycles + + + + + + + x +
+
+
+ +
+ + Modules + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest
Create Module + + + + + + + x +
View Modules + + + + + + + x +
View Module work items + + + + + + + x +
Edit Module + + + + + + + x +
Add work items + + + + + + + x +
Archive Module + + + + + + + x +
Delete Module + + + + + + + x +
Copy link + + + + + + + x +
Add Module to favorites + + + + + + + x +
View Module details + + + + + + + x +
Add links to Module + + + + + + + x +
Sort Modules + + + + + + + x +
Filter Modules + + + + + + + x +
Search Modules + + + + + + + x +
+
+
+ +
+ + Views + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest + Guest with
view access +
Comments
Create View + + + + + + + + + +
See Views + + + + + + + x + + + Guests without view access can only see the Views they create
Edit View + + + + + + + x + + +
Add work items + + + + + + + x + + x +
Delete View + + + + + + + x + + +
Sort Views + + + + + + + x + + +
Filter Views + + + + + + + x + + +
Search Views + + + + + + + x + + +
Add View to favorites + + + + + + + x + + x +
Publish View + + + + + + + x + + x +
Copy link + + + + + + + x + + x +
+
+
+ +
+ + Pages + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest + Guest with
view access +
Create Page + + + + + + + x + + x +
View Pages + + + + + + + x + + +
Edit Page + + + + + + + x + + x +
Archive Page + + + + + + + x + + x +
Delete Page + + + + + + + x + + x +
Add Page to favorites + + + + + + + x + + x +
Publish Page + + + + + + + x + + x +
Copy link + + + + + + + x + + x +
Sort Pages + + + + + + + x + + +
Filter Pages + + + + + + + x + + +
Search Pages + + + + + + + x + + +
+
+
+ +
+ + Intake + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionWorkspace AdminProject AdminMemberGuest + Guest with
view access +
Comments
Create Intake work item + + + + + + + + + +
View Intake work items + + + + + + + + + + Guest without view access can only view the Intake work items they create
Edit Intake work item + + + + + x + + + + x + Guest without view access can only modify the Intake work items they create
Accept Intake work item + + + + + x + + x + + x +
Reject Intake work item + + + + + x + + x + + x +
Snooze Intake work item + + + + + + + x + + x + Members can't snooze work items created by other users
Mark duplicate + + + + + + + x + + x + Members can't mark duplicate Intake work items created by other users
Delete Intake work item + + + + + + + x + + x + Members can't delete Intake work items created by other users
Add attachments + + + + + + + + + + Members and Guests can only attach files to the Intake work items they create
Modify Intake work item properties + + + + + + + + + + Members and Guests can only modify Intake work item properties they create
View activity + + + + + + + x + + +
Add comments + + + + + + + x + + +
Add reactions + + + + + + + x + + +
Copy link + + + + + + + x + + +
Sort Intake work items + + + + + + + + + +
Filter Intake work items + + + + + + + + + +
+
+
+ +## See also + +- [Member roles](/workspaces-and-users/roles) +- [Manage members](/core-concepts/workspaces/members) diff --git a/docs/workspaces-and-users/permissions.mdx b/docs/workspaces-and-users/permissions.mdx deleted file mode 100644 index 2d3b1353..00000000 --- a/docs/workspaces-and-users/permissions.mdx +++ /dev/null @@ -1,2036 +0,0 @@ ---- -title: Permissions matrix -description: Manage user roles and permissions in workspaces. ---- - -Permissions define what actions users can take within a workspace or project. - -This reference provides a comprehensive breakdown of what each role can do across workspaces and projects. Use this matrix to understand exact permission boundaries when planning your team structure or troubleshooting access issues. - -## Permission levels - -
- Workspaces -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionAdminMemberGuest
Access Workspace settingsxx
Create Workspacexx
Update Workspacexx
Delete Workspacexx
Add userxx
Remove userxx
Change user rolexx
Manage Project statesxx
Manage Billing and plansxx
Manage Integrationsxx
Manage Importsxx
Manage Exportsxx
Manage Webhooksxx
Manage API tokensxx
Manage Worklogsxx
Home
Your workx
Inbox
Draftsx
Projectsx
View private projectsxx
View public projectsx
Join private projectsxx
Join public projectsx
Cyclesx
Views
Analyticsx
Your favouritesx
-
- -

- -
- -
- - Projects - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest
Access Project settings - - - - - x - - x -
Create Project - - - - - - - x -
Update Project - - - - - x - - x -
Archive Project - - - - - x - - x -
Delete Project - - - - - x - - x -
Add user - - - - - x - - x -
Remove user - - - - - x - - x -
Change user role - - - - - x - - x -
Enable features - - - - - x - - x -
Manage work item states - - - - - x - - x -
Manage work item labels - - - - - x - - x -
Manage Estimates - - - - - x - - x -
Manage Automations - - - - - x - - x -
Manage work item types and custom properties - - - - - x - - x -
Add Project to favorites - - - - - - - x -
Publish Project - - - - - x - - x -
Copy link - - - - - - - x -
View Archived projects - - - - - - - x -
-
-

-
- -
- - Work items - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest - Guest with
view access -
Comments
Create Work item - - - - - - - x - - x -
View Work items - - - - - - - x - - - Guests without view access can only see their own work items accepted through Intake.
Edit Work item - - - - - - - x - - x -
Duplicate Work item - - - - - - - x - - x -
Copy link - - - - - - - x - - x -
Archive Work item - - - - - - - x - - x -
Delete Work item - - - - - - - x - - x -
Edit Work item properties - - - - - - - x - - x -
View Work item activity - - - - - - - x - - -
Log work - - - - - - - x - - x -
Add Comments - - - - - - - x - - -
View Comments - - - - - - - x - - -
Add Reactions - - - - - - - x - - -
View work item types - - - - - - - - - -
Use work item types - - - - - - - x - - x -
-
-

-
- -
- - Cycles - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest
Create Cycle - - - - - - - x -
View Cycles - - - - - - - x -
View Cycle work items - - - - - - - x -
Edit Cycle - - - - - - - x -
Add work items - - - - - - - x -
Archive Cycle - - - - - - - x -
Delete Cycle - - - - - - - x -
Copy link - - - - - - - x -
Add Cycle to favorites - - - - - - - x -
View Cycle details - - - - - - - x -
Filter Cycles - - - - - - - x -
Search Cycles - - - - - - - x -
-
-

-
- -
- - Modules - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest
Create Module - - - - - - - x -
View Modules - - - - - - - x -
View Module work items - - - - - - - x -
Edit Module - - - - - - - x -
Add work items - - - - - - - x -
Archive Module - - - - - - - x -
Delete Module - - - - - - - x -
Copy link - - - - - - - x -
Add Module to favorites - - - - - - - x -
View Module details - - - - - - - x -
Add links to Module - - - - - - - x -
Sort Modules - - - - - - - x -
Filter Modules - - - - - - - x -
Search Modules - - - - - - - x -
-
-

-
- -
- - Views - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest - Guest with
view access -
Comments
Create View - - - - - - - - - -
See Views - - - - - - - x - - - Guests without view access can only see the Views they create
Edit View - - - - - - - x - - -
Add work items - - - - - - - x - - x -
Delete View - - - - - - - x - - -
Sort Views - - - - - - - x - - -
Filter Views - - - - - - - x - - -
Search Views - - - - - - - x - - -
Add View to favorites - - - - - - - x - - x -
Publish View - - - - - - - x - - x -
Copy link - - - - - - - x - - x -
-
-

-
- -
- - Pages - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest - Guest with
view access -
Create Page - - - - - - - x - - x -
View Pages - - - - - - - x - - -
Edit Page - - - - - - - x - - x -
Archive Page - - - - - - - x - - x -
Delete Page - - - - - - - x - - x -
Add Page to favorites - - - - - - - x - - x -
Publish Page - - - - - - - x - - x -
Copy link - - - - - - - x - - x -
Sort Pages - - - - - - - x - - -
Filter Pages - - - - - - - x - - -
Search Pages - - - - - - - x - - -
-
-

-
- -
- - Intake - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PermissionWorkspace AdminProject AdminMemberGuest - Guest with
view access -
Comments
Create Intake work item - - - - - - - - - -
View Intake work items - - - - - - - - - - Guest without view access can only view the Intake work items they create
Edit Intake work item - - - - - x - - - - x - Guest without view access can only modify the Intake work items they create
Accept Intake work item - - - - - x - - x - - x -
Reject Intake work item - - - - - x - - x - - x -
Snooze Intake work item - - - - - - - x - - x - Members can't snooze work items created by other users
Mark duplicate - - - - - - - x - - x - Members can't mark duplicate Intake work items created by other users
Delete Intake work item - - - - - - - x - - x - Members can't delete Intake work items created by other users
Add attachments - - - - - - - - - - Members and Guests can only attach files to the Intake work items they create
Modify Intake work item properties - - - - - - - - - - Members and Guests can only modify Intake work item properties they create
View activity - - - - - - - x - - -
Add comments - - - - - - - x - - -
Add reactions - - - - - - - x - - -
Copy link - - - - - - - x - - -
Sort Intake work items - - - - - - - - - -
Filter Intake work items - - - - - - - - - -
-
-

-
- -## See also -- [Member roles](/workspaces-and-users/roles) -- [Manage members](/core-concepts/workspaces/members) \ No newline at end of file diff --git a/docs/workspaces-and-users/roles.mdx b/docs/workspaces-and-users/roles.md similarity index 98% rename from docs/workspaces-and-users/roles.mdx rename to docs/workspaces-and-users/roles.md index b2a64326..9ea2ec17 100644 --- a/docs/workspaces-and-users/roles.mdx +++ b/docs/workspaces-and-users/roles.md @@ -4,42 +4,49 @@ description: Learn about workspace roles in Plane - Admin, Member, and Guest per --- # Member roles + Every user in your workspace has a role that determines their access level and permissions. Plane uses three role types - Admin, Member, and Guest - each designed for different levels of involvement and responsibility. ## Types of roles ### Admin -**Workspace governance** + +**Workspace governance** Admins control the workspace itself - settings, members, features, and access. They determine what capabilities are available to all Members. It provide complete control for workspace owners and senior stakeholders who need to manage team structure and configuration. This centralized authority prevents configuration conflicts and maintains consistent workspace policies. ### Member + **Contributor autonomy** Members can do their work - create projects, manage work items, collaborate with the team - without needing administrative overhead. They see the full workspace membership (fostering transparency) and can discover public projects (encouraging collaboration), but cannot alter workspace structure or invite others. This separation keeps Members focused on execution rather than governance. -### Guest +### Guest + **Controlled external access** Organizations frequently need to give clients, contractors, or stakeholders visibility into work without exposing the entire workspace or allowing them to be assigned tasks. Guests exist outside the workspace's core structure. They cannot see workspace members, settings, or the broader project landscape. Their access is project-specific and tightly scoped, ensuring external collaborators only interact with content relevant to them. - ## When to use each role **Choose Admin for:** + - Workspace owners - Technical leads responsible for workspace governance - People who need to manage team membership and workspace settings - Anyone responsible for enabling features, configuring integrations, or managing billing **Choose Member for:** + - Full-time team members who actively contribute to projects - Internal collaborators who should have visibility into the workspace team - Anyone who needs to create projects or access workspace features **Choose Guest for:** + - External clients who need to review specific project deliverables - Contractors contributing to particular work items via the Intake section - Stakeholders who need visibility into specific projects without editing permissions - Anyone who should remain isolated from the broader workspace structure and membership ## See also + - [Permissions matrix](/workspaces-and-users/permissions) - Complete breakdown of what each role can do - [Manage members](/core-concepts/workspaces/members) - Invite users, change roles, and remove members diff --git a/docs/workspaces-and-users/search-workspace.mdx b/docs/workspaces-and-users/search-workspace.md similarity index 95% rename from docs/workspaces-and-users/search-workspace.mdx rename to docs/workspaces-and-users/search-workspace.md index d4b63de7..786e51a1 100644 --- a/docs/workspaces-and-users/search-workspace.mdx +++ b/docs/workspaces-and-users/search-workspace.md @@ -1,6 +1,5 @@ --- title: Search your workspace -sidebar_label: Search workspace description: Find work items, projects, pages, and other content across your workspace. --- @@ -9,6 +8,7 @@ description: Find work items, projects, pages, and other content across your wor Use workspace search to quickly find work items, projects, cycles, modules, pages, and other content across your entire workspace. ## Open search + Click the search icon (🔍) in the top navigation or press `Cmd/Ctrl + K`. ![Search workspace](https://media.docs.plane.so/workspaces/search-workspace.webp#hero-tr) @@ -19,7 +19,7 @@ Type your query and results appear instantly, organized by type. Use the tabs at - **All** - Shows everything across all categories - **Projects** - Your workspace projects -- **Work items** - Tasks across projects +- **Work items** - Tasks across projects - **Cycles** - Project cycles - **Modules** - Project modules - **Views** - Saved views @@ -55,6 +55,7 @@ Search finds comments containing your keywords. ## What you can search Search looks through: + - Work item titles and descriptions - Project names and identifiers - Cycle and module names @@ -64,6 +65,7 @@ Search looks through: - Teamspace names **Search features:** + - **Real-time results** - Updates as you type - **Partial matching** - "dev" finds "development" - **Case insensitive** - Capitalization doesn't matter @@ -71,6 +73,7 @@ Search looks through: ## What you won't see Search only shows content you have permission to access: + - Private projects you're not a member of won't appear - Archived and deleted items are hidden - Work items from projects you can't access are filtered out @@ -78,4 +81,5 @@ Search only shows content you have permission to access: This keeps your search results relevant and maintains project security. ## See also -- [Power K](/core-concepts/power-k) \ No newline at end of file + +- [Power K](/core-concepts/power-k) diff --git a/docs/workspaces-and-users/upgrade-plan.mdx b/docs/workspaces-and-users/upgrade-plan.md similarity index 82% rename from docs/workspaces-and-users/upgrade-plan.mdx rename to docs/workspaces-and-users/upgrade-plan.md index 2bc51ec1..9b5398b9 100644 --- a/docs/workspaces-and-users/upgrade-plan.mdx +++ b/docs/workspaces-and-users/upgrade-plan.md @@ -1,8 +1,8 @@ --- -title: Upgrade to paid plans -sidebar_label: Upgrade plan +title: Upgrade to paid plans description: Upgrade to paid plans in Plane, activate license keys on self-hosted instances, manage seats, and handle subscription changes. --- + # Upgrade to a paid plan You can upgrade from the Free plan to a paid plan to access premium features. @@ -11,11 +11,12 @@ You can upgrade from the Free plan to a paid plan to access premium features. ![Workspace settings](https://media.docs.plane.so/workspaces/workspace-settings.webp#hero-tl) -2. Navigate to the **Billing and plans** tab. +2. Navigate to the **Billing and plans** tab. ![Billing and plans](https://media.docs.plane.so/activate-license/billing-and-plans-cloud.webp#hero-tl) + 3. Select the **Monthly** or **Yearly** tab to choose your billing cycle. 4. Click the **Upgrade** button. 5. This will redirect you to the Stripe payment page. Enter your payment info and click **Subscribe**. -6. If your transaction goes through, you will see a confirmation that your plan is now active. -7. If you're self-hosting Plane, see **[Activate license](/workspaces-and-users/manage-licenses#activate-license)** for instructions on activating your workspace with the license key. \ No newline at end of file +6. If your transaction goes through, you will see a confirmation that your plan is now active. +7. If you're self-hosting Plane, see **[Activate license](/workspaces-and-users/manage-licenses#activate-license)** for instructions on activating your workspace with the license key. diff --git a/docs/your-work.mdx b/docs/your-work.md similarity index 98% rename from docs/your-work.mdx rename to docs/your-work.md index e6331c97..edc383f9 100644 --- a/docs/your-work.mdx +++ b/docs/your-work.md @@ -1,6 +1,5 @@ --- title: Dashboard to track assigned tasks and workload -sidebar_label: Your Work description: Track assigned tasks, monitor your workload, visualize priorities, and stay on top of your personal project contributions. --- diff --git a/docusaurus-v3.js b/docusaurus-v3.js deleted file mode 100644 index 5e002bbc..00000000 --- a/docusaurus-v3.js +++ /dev/null @@ -1,75 +0,0 @@ -new Crawler({ - appId: "AXICJJC8RP", - apiKey: "23df4157dee1d9a8d435cadd6cae3f26", - rateLimit: 8, - maxDepth: 10, - startUrls: ["https://docs.plane.so/"], - sitemaps: ["https://docs.plane.so/sitemap.xml"], - ignoreCanonicalTo: true, - discoveryPatterns: ["https://docs.plane.so/**"], - actions: [ - { - indexName: "plane-docs-v3", - pathsToMatch: ["https://docs.plane.so/**"], - recordExtractor: ({ $, helpers }) => { - // priority order: deepest active sub list header -> navbar active item -> 'Documentation' - const lvl0 = - $(".menu__link.menu__link--sublist.menu__link--active, .navbar__item.navbar__link--active").last().text() || - "Documentation"; - - return helpers.docsearch({ - recordProps: { - lvl0: { - selectors: "", - defaultValue: lvl0, - }, - lvl1: ["header h1", "article h1"], - lvl2: "article h2", - lvl3: "article h3", - lvl4: "article h4", - lvl5: "article h5, article td:first-child", - lvl6: "article h6", - content: "article p, article li, article td:last-child", - }, - indexHeadings: true, - aggregateContent: true, - recordVersion: "v3", - }); - }, - }, - ], - initialIndexSettings: { - "plane-docs-v3": { - attributesForFaceting: ["type", "lang", "language", "version", "docusaurus_tag"], - attributesToRetrieve: ["hierarchy", "content", "anchor", "url", "url_without_anchor", "type"], - attributesToHighlight: ["hierarchy", "content"], - attributesToSnippet: ["content:10"], - camelCaseAttributes: ["hierarchy", "content"], - searchableAttributes: [ - "unordered(hierarchy.lvl0)", - "unordered(hierarchy.lvl1)", - "unordered(hierarchy.lvl2)", - "unordered(hierarchy.lvl3)", - "unordered(hierarchy.lvl4)", - "unordered(hierarchy.lvl5)", - "unordered(hierarchy.lvl6)", - "content", - ], - distinct: true, - attributeForDistinct: "url", - customRanking: ["desc(weight.pageRank)", "desc(weight.level)", "asc(weight.position)"], - ranking: ["words", "filters", "typo", "attribute", "proximity", "exact", "custom"], - highlightPreTag: '', - highlightPostTag: "", - minWordSizefor1Typo: 3, - minWordSizefor2Typos: 7, - allowTyposOnNumericTokens: false, - minProximity: 1, - ignorePlurals: true, - advancedSyntax: true, - attributeCriteriaComputedByMinProximity: true, - removeWordsIfNoResults: "allOptional", - separatorsToIndex: "_", - }, - }, -}); diff --git a/docusaurus.config.ts b/docusaurus.config.ts deleted file mode 100644 index 2127f677..00000000 --- a/docusaurus.config.ts +++ /dev/null @@ -1,227 +0,0 @@ -import { themes as prismThemes } from "prism-react-renderer"; -import type { Config } from "@docusaurus/types"; -import type * as Preset from "@docusaurus/preset-classic"; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -const config: Config = { - title: "Plane", - tagline: "Modern project management software", - favicon: "https://media.docs.plane.so/logo/favicon-32x32.png", - trailingSlash: false, - // Set the production url of your site here - url: "https://docs.plane.so", - // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future - future: { - v4: true, // Improve compatibility with the upcoming Docusaurus v4 - }, - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' - baseUrl: "/", - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: "makeplane", // Usually your GitHub org/user name. - projectName: "docs", // Usually your repo name. - // Broken links - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", - onBrokenAnchors: "warn", - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: "en", - locales: ["en"], - }, - - presets: [ - [ - "classic", - { - docs: { - path: "docs", - routeBasePath: "/", - sidebarPath: "./sidebars.ts", - include: ["**/*.md", "**/*.mdx"], - }, - blog: false, - theme: { - customCss: "./src/css/custom.css", - }, - sitemap: { - lastmod: "date", - changefreq: "weekly", - priority: 0.5, - ignorePatterns: ["/tags/**"], - filename: "sitemap.xml", - }, - gtag: { - trackingID: "G-G578SD4VZD", - anonymizeIP: true, - }, - } satisfies Preset.Options, - ], - ], - - scripts: [ - { - src: "https://plausible.io/js/script.js", - defer: true, - "data-domain": "docs.plane.so", - }, - { - src: "https://cdn.cr-relay.com/v1/site/b1fcbcbd-67f6-4736-940f-033731801664/signals.js", - async: true, - }, - ], - - plugins: [ - [ - "posthog-docusaurus", - { - apiKey: "phc_HskAKGRy7x0BEoWfyeHzYWWzcMmKG9DCail7ot7WQkA", - appUrl: "https://us.i.posthog.com", // optional - enableInDevelopment: false, // optional - }, - ], - [ - "@docusaurus/plugin-google-tag-manager", - { - containerId: "G-G578SD4VZD", - }, - ], - ], - - headTags: [ - { - tagName: "link", - attributes: { - rel: "preload", - href: "/fonts/Satoshi/Satoshi-Variable.ttf", - as: "font", - type: "font/ttf", - crossorigin: "anonymous", - }, - }, - { - tagName: "link", - attributes: { - rel: "preload", - href: "/fonts/IBM/IBMPlexMono-Light.ttf", - as: "font", - type: "font/ttf", - crossorigin: "anonymous", - }, - }, - { - tagName: "link", - attributes: { - rel: "preload", - href: "/fonts/IBM/IBMPlexMono-Regular.ttf", - as: "font", - type: "font/ttf", - crossorigin: "anonymous", - }, - }, - { - tagName: "link", - attributes: { - rel: "preload", - href: "/fonts/IBM/IBMPlexMono-SemiBold.ttf", - as: "font", - type: "font/ttf", - crossorigin: "anonymous", - }, - }, - { - tagName: "link", - attributes: { - rel: "preload", - href: "/fonts/IBM/IBMPlexMono-Bold.ttf", - as: "font", - type: "font/ttf", - crossorigin: "anonymous", - }, - }, - ], - - themeConfig: { - image: "https://media.docs.plane.so/logo.svg", - docs: { - sidebar: { - hideable: false, - autoCollapseCategories: false, - }, - }, - metadata: [ - { - property: "og:image", - content: "https://media.docs.plane.so/logo/og-docs.webp", - }, - { - name: "twitter:image", - content: "https://media.docs.plane.so/logo/og-docs.webp", - }, - { - name: "keywords", - content: "project management, issue tracking, sprint management, agile, scrum, create projects, track sprints", - }, - ], - colorMode: { - defaultMode: "dark", - disableSwitch: false, - respectPrefersColorScheme: false, - }, - algolia: { - appId: "AXICJJC8RP", - apiKey: "23df4157dee1d9a8d435cadd6cae3f26", - indexName: "plane-docs-v3", - }, - navbar: { - title: "", - logo: { - alt: "Plane", - src: "https://media.docs.plane.so/logo/new-logo-white.png", - srcDark: "https://media.docs.plane.so/logo/new-logo-dark.png", - }, - items: [ - { - type: "search", - position: "left", - }, - { - href: "https://discord.com/invite/A92xrEGCge", - "aria-label": "Discord", - position: "right", - className: "navbar--discord-link", - }, - { - href: "https://github.com/makeplane/plane", - "aria-label": "GitHub", - position: "right", - className: "navbar--github-link", - }, - { - href: "https://app.plane.so/sign-in", - label: "Sign in", - position: "right", - }, - ], - }, - footer: {}, - prism: { - theme: prismThemes.github, - darkTheme: prismThemes.dracula, - }, - } satisfies Preset.ThemeConfig, - - stylesheets: [ - { - href: "https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=National+Park:wght@200..800&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&family=Raleway:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap", - type: "text/css", - }, - ], -}; - -export default config; diff --git a/package.json b/package.json index 358e24cb..cd08560e 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "docs", "version": "3.0.0", "private": true, + "type": "module", "author": "Plane", "license": "MIT", "homepage": "https://plane.so", @@ -10,58 +11,26 @@ "url": "https://github.com/makeplane/docs.git" }, "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc", + "dev": "vitepress dev docs", + "build": "vitepress build docs", + "preview": "vitepress preview docs", "format": "prettier --write ." }, "dependencies": { - "@docusaurus/core": "^3.9.2", - "@docusaurus/preset-classic": "^3.9.2", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "posthog-docusaurus": "^2.0.4", - "prism-react-renderer": "^2.3.0", - "react": "^19.2.1", - "react-dom": "^19.2.1", - "react-icons": "^5.5.0" + "lucide-vue-next": "^0.474.0", + "vitepress": "^1.6.3", + "vitepress-plugin-tabs": "^0.5.0", + "vue": "^3.5.13" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.9.2", - "@docusaurus/tsconfig": "^3.9.2", - "@docusaurus/types": "^3.9.2", + "@tailwindcss/postcss": "^4.0.6", + "autoprefixer": "^10.4.20", + "postcss": "^8.5.1", "prettier": "^3.6.2", - "typescript": "~5.6.2" - }, - "pnpm": { - "overrides": { - "webpack-dev-server": "5.2.1", - "js-yaml": "3.14.2", - "qs": "6.14.1", - "lodash": "4.17.23" - } - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 3 chrome version", - "last 3 firefox version", - "last 5 safari version" - ] + "tailwindcss": "^4.0.6" }, "engines": { - "node": ">=24.0.0" + "node": ">=18.0.0" }, "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fba13a7b..3b32f3ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,102 +4,61 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - webpack-dev-server: 5.2.1 - js-yaml: 3.14.2 - qs: 6.14.1 - lodash: 4.17.23 - importers: .: dependencies: - '@docusaurus/core': - specifier: ^3.9.2 - version: 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/preset-classic': - specifier: ^3.9.2 - version: 3.9.2(@algolia/client-search@5.46.0)(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(search-insights@2.17.3)(typescript@5.6.3) - '@mdx-js/react': - specifier: ^3.0.0 - version: 3.1.1(@types/react@19.2.7)(react@19.2.1) - clsx: - specifier: ^2.0.0 - version: 2.1.1 - posthog-docusaurus: - specifier: ^2.0.4 - version: 2.0.5 - prism-react-renderer: - specifier: ^2.3.0 - version: 2.4.1(react@19.2.1) - react: - specifier: ^19.2.1 - version: 19.2.1 - react-dom: - specifier: ^19.2.1 - version: 19.2.1(react@19.2.1) - react-icons: - specifier: ^5.5.0 - version: 5.5.0(react@19.2.1) + lucide-vue-next: + specifier: ^0.474.0 + version: 0.474.0(vue@3.5.27(typescript@5.6.3)) + vitepress: + specifier: ^1.6.3 + version: 1.6.4(@algolia/client-search@5.46.0)(@types/node@24.10.2)(lightningcss@1.30.2)(nprogress@0.2.0)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.1)(typescript@5.6.3) + vitepress-plugin-tabs: + specifier: ^0.5.0 + version: 0.5.0(vitepress@1.6.4(@algolia/client-search@5.46.0)(@types/node@24.10.2)(lightningcss@1.30.2)(nprogress@0.2.0)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.1)(typescript@5.6.3))(vue@3.5.27(typescript@5.6.3)) + vue: + specifier: ^3.5.13 + version: 3.5.27(typescript@5.6.3) devDependencies: - '@docusaurus/module-type-aliases': - specifier: ^3.9.2 - version: 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/tsconfig': - specifier: ^3.9.2 - version: 3.9.2 - '@docusaurus/types': - specifier: ^3.9.2 - version: 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tailwindcss/postcss': + specifier: ^4.0.6 + version: 4.1.18 + autoprefixer: + specifier: ^10.4.20 + version: 10.4.22(postcss@8.5.6) + postcss: + specifier: ^8.5.1 + version: 8.5.6 prettier: specifier: ^3.6.2 version: 3.7.4 - typescript: - specifier: ~5.6.2 - version: 5.6.3 + tailwindcss: + specifier: ^4.0.6 + version: 4.1.18 packages: - '@ai-sdk/gateway@2.0.18': - resolution: {integrity: sha512-sDQcW+6ck2m0pTIHW6BPHD7S125WD3qNkx/B8sEzJp/hurocmJ5Cni0ybExg6sQMGo+fr/GWOwpHF1cmCdg5rQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider-utils@3.0.18': - resolution: {integrity: sha512-ypv1xXMsgGcNKUP+hglKqtdDuMg68nWHucPPAhIENrbFAI+xCHiqPVN8Zllxyv1TNZwGWUghPxJXU+Mqps0YRQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider@2.0.0': - resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} - engines: {node: '>=18'} - - '@ai-sdk/react@2.0.109': - resolution: {integrity: sha512-5qM8KuN7bv7E+g6BXkSAYLFjwIfMSTKOA1prjg1zEShJXJyLSc+Yqkd3EfGibm75b7nJAqJNShurDmR/IlQqFQ==} - engines: {node: '>=18'} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - zod: ^3.25.76 || ^4.1.8 - peerDependenciesMeta: - zod: - optional: true - '@algolia/abtesting@1.12.0': resolution: {integrity: sha512-EfW0bfxjPs+C7ANkJDw2TATntfBKsFiy7APh+KO0pQ8A6HYa5I0NjFuCGCXWfzzzLXNZta3QUl3n5Kmm6aJo9Q==} engines: {node: '>= 14.0.0'} - '@algolia/autocomplete-core@1.19.2': - resolution: {integrity: sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==} + '@algolia/autocomplete-core@1.17.7': + resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} - '@algolia/autocomplete-plugin-algolia-insights@1.19.2': - resolution: {integrity: sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==} + '@algolia/autocomplete-plugin-algolia-insights@1.17.7': + resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} peerDependencies: search-insights: '>= 1 < 3' - '@algolia/autocomplete-shared@1.19.2': - resolution: {integrity: sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==} + '@algolia/autocomplete-preset-algolia@1.17.7': + resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.17.7': + resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' @@ -132,9 +91,6 @@ packages: resolution: {integrity: sha512-22SHEEVNjZfFWkFks3P6HilkR3rS7a6GjnCIqR22Zz4HNxdfT0FG+RE7efTcFVfLUkTTMQQybvaUcwMrHXYa7Q==} engines: {node: '>= 14.0.0'} - '@algolia/events@4.0.1': - resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - '@algolia/ingestion@1.46.0': resolution: {integrity: sha512-2LT0/Z+/sFwEpZLH6V17WSZ81JX2uPjgvv5eNlxgU7rPyup4NXXfuMbtCJ+6uc4RO/LQpEJd3Li59ke3wtyAsA==} engines: {node: '>= 14.0.0'} @@ -159,10988 +115,1984 @@ packages: resolution: {integrity: sha512-xaqXyna5yBZ+r1SJ9my/DM6vfTqJg9FJgVydRJ0lnO+D5NhqGW/qaRG/iBGKr/d4fho34el6WakV7BqJvrl/HQ==} engines: {node: '>= 14.0.0'} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.28.5': - resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} - engines: {node: '>=6.9.0'} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} - '@babel/core@7.28.5': - resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.5': - resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.5': - resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@docsearch/css@3.8.2': + resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} - '@babel/helper-create-regexp-features-plugin@7.28.5': - resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@docsearch/js@3.8.2': + resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} - '@babel/helper-define-polyfill-provider@0.6.5': - resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} + '@docsearch/react@3.8.2': + resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] - '@babel/helper-member-expression-to-functions@7.28.5': - resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} - engines: {node: '>=6.9.0'} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} - engines: {node: '>=6.9.0'} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] - '@babel/helper-wrap-function@7.28.3': - resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} - engines: {node: '>=6.9.0'} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} - engines: {node: '>=6.9.0'} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} - engines: {node: '>=6.0.0'} - hasBin: true + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': - resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@iconify-json/simple-icons@1.2.68': + resolution: {integrity: sha512-bQPl1zuZlX6AnofreA1v7J+hoPncrFMppqGboe/SH54jZO37meiBUGBqNOxEpc0HKfZGxJaVVJwZd4gdMYu3hw==} - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@babel/plugin-transform-block-scoping@7.28.5': - resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} + cpu: [arm] + os: [android] - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-class-static-block@7.28.3': - resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-classes@7.28.4': - resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} + cpu: [x64] + os: [darwin] - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} + cpu: [x64] + os: [win32] + + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} + + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} + + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} + + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} + + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} + + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} + + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@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] - '@babel/plugin-transform-destructuring@7.28.5': - resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-darwin-arm64@4.1.18': + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-darwin-x64@4.1.18': + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-freebsd-x64@4.1.18': + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@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] - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@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] - '@babel/plugin-transform-explicit-resource-management@7.28.0': - resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] - '@babel/plugin-transform-exponentiation-operator@7.28.5': - resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@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] - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/oxide@4.1.18': + resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} + engines: {node: '>= 10'} - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@tailwindcss/postcss@4.1.18': + resolution: {integrity: sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==} - '@babel/plugin-transform-logical-assignment-operators@7.28.5': - resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} - '@babel/plugin-transform-modules-systemjs@7.28.5': - resolution: {integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@types/node@24.10.2': + resolution: {integrity: sha512-WOhQTZ4G8xZ1tjJTvKOpyEVSGgOTvJAfDK3FNFgELyaTpzhdgHVHeqW8V+UJvzF5BT+/B54T/1S2K6gd9c7bbA==} - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@babel/plugin-transform-object-rest-spread@7.28.4': - resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} - engines: {node: '>=6.9.0'} + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - '@babel/core': ^7.0.0-0 + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/compiler-core@3.5.27': + resolution: {integrity: sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==} - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/compiler-dom@3.5.27': + resolution: {integrity: sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==} - '@babel/plugin-transform-optional-chaining@7.28.5': - resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/compiler-sfc@3.5.27': + resolution: {integrity: sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==} - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/compiler-ssr@3.5.27': + resolution: {integrity: sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==} - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/devtools-api@7.7.9': + resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/devtools-kit@7.7.9': + resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/devtools-shared@7.7.9': + resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} - '@babel/plugin-transform-react-constant-elements@7.27.1': - resolution: {integrity: sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/reactivity@3.5.27': + resolution: {integrity: sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==} - '@babel/plugin-transform-react-display-name@7.28.0': - resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/runtime-core@3.5.27': + resolution: {integrity: sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==} - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/runtime-dom@3.5.27': + resolution: {integrity: sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==} - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} - engines: {node: '>=6.9.0'} + '@vue/server-renderer@3.5.27': + resolution: {integrity: sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==} peerDependencies: - '@babel/core': ^7.0.0-0 + vue: 3.5.27 - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vue/shared@3.5.27': + resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==} - '@babel/plugin-transform-regenerator@7.28.4': - resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vueuse/core@12.8.2': + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} - engines: {node: '>=6.9.0'} + '@vueuse/integrations@12.8.2': + resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true - '@babel/plugin-transform-runtime@7.28.5': - resolution: {integrity: sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vueuse/metadata@12.8.2': + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@vueuse/shared@12.8.2': + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + algoliasearch@5.46.0: + resolution: {integrity: sha512-7ML6fa2K93FIfifG3GMWhDEwT5qQzPTmoHKCTvhzGEwdbQ4n0yYUWZlLYT75WllTGJCJtNUI0C1ybN4BCegqvg==} + engines: {node: '>= 14.0.0'} - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} + autoprefixer@10.4.22: + resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true peerDependencies: - '@babel/core': ^7.0.0-0 + postcss: ^8.1.0 - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + baseline-browser-mapping@2.9.5: + resolution: {integrity: sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA==} + hasBin: true - '@babel/plugin-transform-typescript@7.28.5': - resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + caniuse-lite@1.0.30001760: + resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - '@babel/preset-env@7.28.5': - resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - '@babel/preset-react@7.28.5': - resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - '@babel/preset-typescript@7.28.5': - resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - '@babel/runtime-corejs3@7.28.4': - resolution: {integrity: sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==} - engines: {node: '>=6.9.0'} + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - '@babel/traverse@7.28.5': - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} - engines: {node: '>=6.9.0'} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} - engines: {node: '>=6.9.0'} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - '@csstools/cascade-layer-name-parser@2.0.5': - resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} - '@csstools/color-helpers@5.1.0': - resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} - engines: {node: '>=18'} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} - '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} - '@csstools/css-color-parser@3.1.0': - resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} - engines: {node: '>=18'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - '@csstools/media-query-list-parser@4.0.3': - resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + focus-trap@7.8.0: + resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} - '@csstools/postcss-alpha-function@1.0.1': - resolution: {integrity: sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - '@csstools/postcss-cascade-layers@5.0.2': - resolution: {integrity: sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] - '@csstools/postcss-color-function-display-p3-linear@1.0.1': - resolution: {integrity: sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - '@csstools/postcss-color-function@4.0.12': - resolution: {integrity: sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - '@csstools/postcss-color-mix-function@3.0.12': - resolution: {integrity: sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2': - resolution: {integrity: sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - '@csstools/postcss-content-alt-text@2.0.8': - resolution: {integrity: sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - '@csstools/postcss-contrast-color-function@2.0.12': - resolution: {integrity: sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==} + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.9': - resolution: {integrity: sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true - '@csstools/postcss-font-format-keywords@4.0.0': - resolution: {integrity: sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + lightningcss-android-arm64@1.30.2: + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] - '@csstools/postcss-gamut-mapping@2.0.11': - resolution: {integrity: sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + lightningcss-darwin-arm64@1.30.2: + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - '@csstools/postcss-gradients-interpolation-method@5.0.12': - resolution: {integrity: sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + lightningcss-darwin-x64@1.30.2: + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] - '@csstools/postcss-hwb-function@4.0.12': - resolution: {integrity: sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + 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'} + + lucide-vue-next@0.474.0: + resolution: {integrity: sha512-bQaSBjfJ33xiPQCxCf4JD3rcUgZFgWZzxSY8SScNa4Mcq2vWGlbvQx6icTL1UXRqsxzfoT13RXawePSmgg4iWw==} + peerDependencies: + vue: '>=3.0.1' + + 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==} - '@csstools/postcss-ic-unit@4.0.4': - resolution: {integrity: sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - '@csstools/postcss-initial@2.0.1': - resolution: {integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - '@csstools/postcss-is-pseudo-class@5.0.3': - resolution: {integrity: sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - '@csstools/postcss-light-dark-function@2.0.11': - resolution: {integrity: sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - '@csstools/postcss-logical-float-and-clear@3.0.0': - resolution: {integrity: sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - '@csstools/postcss-logical-overflow@2.0.0': - resolution: {integrity: sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - '@csstools/postcss-logical-overscroll-behavior@2.0.0': - resolution: {integrity: sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + minisearch@7.2.0: + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} - '@csstools/postcss-logical-resize@3.0.0': - resolution: {integrity: sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - '@csstools/postcss-logical-viewport-units@3.0.4': - resolution: {integrity: sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - '@csstools/postcss-media-minmax@2.0.9': - resolution: {integrity: sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5': - resolution: {integrity: sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} - '@csstools/postcss-nested-calc@4.0.0': - resolution: {integrity: sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - '@csstools/postcss-normalize-display-values@4.0.0': - resolution: {integrity: sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} - '@csstools/postcss-oklab-function@4.0.12': - resolution: {integrity: sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - '@csstools/postcss-position-area-property@1.0.0': - resolution: {integrity: sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - '@csstools/postcss-progressive-custom-properties@4.2.1': - resolution: {integrity: sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - '@csstools/postcss-random-function@2.0.1': - resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} - '@csstools/postcss-relative-color-syntax@3.0.12': - resolution: {integrity: sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + preact@10.28.2: + resolution: {integrity: sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==} - '@csstools/postcss-scope-pseudo-class@4.0.1': - resolution: {integrity: sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + engines: {node: '>=14'} + hasBin: true - '@csstools/postcss-sign-functions@1.1.4': - resolution: {integrity: sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - '@csstools/postcss-stepped-value-functions@4.0.9': - resolution: {integrity: sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} - '@csstools/postcss-system-ui-font-family@1.0.0': - resolution: {integrity: sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - '@csstools/postcss-text-decoration-shorthand@4.0.3': - resolution: {integrity: sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - '@csstools/postcss-trigonometric-functions@4.0.9': - resolution: {integrity: sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - '@csstools/postcss-unset-value@4.0.0': - resolution: {integrity: sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true - '@csstools/selector-resolve-nested@3.1.0': - resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 + search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} - '@csstools/selector-specificity@5.0.0': - resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} - '@csstools/utilities@2.0.0': - resolution: {integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - '@docsearch/core@4.3.1': - resolution: {integrity: sha512-ktVbkePE+2h9RwqCUMbWXOoebFyDOxHqImAqfs+lC8yOU+XwEW4jgvHGJK079deTeHtdhUNj0PXHSnhJINvHzQ==} - peerDependencies: - '@types/react': '>= 16.8.0 < 20.0.0' - react: '>= 16.8.0 < 20.0.0' - react-dom: '>= 16.8.0 < 20.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - - '@docsearch/css@4.3.2': - resolution: {integrity: sha512-K3Yhay9MgkBjJJ0WEL5MxnACModX9xuNt3UlQQkDEDZJZ0+aeWKtOkxHNndMRkMBnHdYvQjxkm6mdlneOtU1IQ==} - - '@docsearch/react@4.3.2': - resolution: {integrity: sha512-74SFD6WluwvgsOPqifYOviEEVwDxslxfhakTlra+JviaNcs7KK/rjsPj89kVEoQc9FUxRkAofaJnHIR7pb4TSQ==} - peerDependencies: - '@types/react': '>= 16.8.0 < 20.0.0' - react: '>= 16.8.0 < 20.0.0' - react-dom: '>= 16.8.0 < 20.0.0' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true - - '@docusaurus/babel@3.9.2': - resolution: {integrity: sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==} - engines: {node: '>=20.0'} - - '@docusaurus/bundler@3.9.2': - resolution: {integrity: sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==} - engines: {node: '>=20.0'} - peerDependencies: - '@docusaurus/faster': '*' - peerDependenciesMeta: - '@docusaurus/faster': - optional: true - - '@docusaurus/core@3.9.2': - resolution: {integrity: sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==} - engines: {node: '>=20.0'} - hasBin: true - peerDependencies: - '@mdx-js/react': ^3.0.0 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/cssnano-preset@3.9.2': - resolution: {integrity: sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==} - engines: {node: '>=20.0'} - - '@docusaurus/logger@3.9.2': - resolution: {integrity: sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==} - engines: {node: '>=20.0'} - - '@docusaurus/mdx-loader@3.9.2': - resolution: {integrity: sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/module-type-aliases@3.9.2': - resolution: {integrity: sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==} - peerDependencies: - react: '*' - react-dom: '*' - - '@docusaurus/plugin-content-blog@3.9.2': - resolution: {integrity: sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ==} - engines: {node: '>=20.0'} - peerDependencies: - '@docusaurus/plugin-content-docs': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-content-docs@3.9.2': - resolution: {integrity: sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-content-pages@3.9.2': - resolution: {integrity: sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-css-cascade-layers@3.9.2': - resolution: {integrity: sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ==} - engines: {node: '>=20.0'} - - '@docusaurus/plugin-debug@3.9.2': - resolution: {integrity: sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-google-analytics@3.9.2': - resolution: {integrity: sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-google-gtag@3.9.2': - resolution: {integrity: sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-google-tag-manager@3.9.2': - resolution: {integrity: sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-sitemap@3.9.2': - resolution: {integrity: sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/plugin-svgr@3.9.2': - resolution: {integrity: sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/preset-classic@3.9.2': - resolution: {integrity: sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/react-loadable@6.0.0': - resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} - peerDependencies: - react: '*' - - '@docusaurus/theme-classic@3.9.2': - resolution: {integrity: sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/theme-common@3.9.2': - resolution: {integrity: sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==} - engines: {node: '>=20.0'} - peerDependencies: - '@docusaurus/plugin-content-docs': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/theme-search-algolia@3.9.2': - resolution: {integrity: sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw==} - engines: {node: '>=20.0'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/theme-translations@3.9.2': - resolution: {integrity: sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA==} - engines: {node: '>=20.0'} - - '@docusaurus/tsconfig@3.9.2': - resolution: {integrity: sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ==} - - '@docusaurus/types@3.9.2': - resolution: {integrity: sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q==} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - - '@docusaurus/utils-common@3.9.2': - resolution: {integrity: sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw==} - engines: {node: '>=20.0'} - - '@docusaurus/utils-validation@3.9.2': - resolution: {integrity: sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A==} - engines: {node: '>=20.0'} - - '@docusaurus/utils@3.9.2': - resolution: {integrity: sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==} - engines: {node: '>=20.0'} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@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'} - - '@jridgewell/source-map@0.3.11': - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/buffers@1.2.1': - resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/codegen@1.0.0': - resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pack@1.21.0': - resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pointer@1.0.2': - resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/util@1.9.0': - resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - - '@mdx-js/mdx@3.1.1': - resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - - '@mdx-js/react@3.1.1': - resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} - engines: {node: '>=12'} - - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - - '@slorber/react-helmet-async@1.3.0': - resolution: {integrity: sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - '@slorber/remark-comment@1.0.0': - resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} - - '@standard-schema/spec@1.0.0': - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} - - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} - - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/webpack@8.1.0': - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/express-serve-static-core@4.19.7': - resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==} - - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - - '@types/gtag.js@0.0.12': - resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/history@4.7.11': - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - - '@types/http-proxy@1.17.17': - resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/node-forge@1.3.14': - resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@24.10.2': - resolution: {integrity: sha512-WOhQTZ4G8xZ1tjJTvKOpyEVSGgOTvJAfDK3FNFgELyaTpzhdgHVHeqW8V+UJvzF5BT+/B54T/1S2K6gd9c7bbA==} - - '@types/prismjs@1.26.5': - resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} - - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react-router-config@5.0.11': - resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} - - '@types/react-router-dom@5.3.3': - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} - - '@types/react-router@5.1.20': - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - - '@types/react@19.2.7': - resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} - - '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.35': - resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@vercel/oidc@3.0.5': - resolution: {integrity: sha512-fnYhv671l+eTTp48gB4zEsTW/YtRgRPnkI2nT7x6qw5rkI1Lq2hTmQIpHPgyThI0znLK+vX2n9XxKdXZ7BUbbw==} - engines: {node: '>= 20'} - - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-import-phases@1.0.4: - resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} - engines: {node: '>=10.13.0'} - peerDependencies: - acorn: ^8.14.0 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - - 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'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ai@5.0.108: - resolution: {integrity: sha512-Jex3Lb7V41NNpuqJHKgrwoU6BCLHdI1Pg4qb4GJH4jRIDRXUBySJErHjyN4oTCwbiYCeb/8II9EnqSRPq9EifA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - - algoliasearch-helper@3.26.1: - resolution: {integrity: sha512-CAlCxm4fYBXtvc5MamDzP6Svu8rW4z9me4DCBY1rQ2UDJ0u0flWmusQ8M3nOExZsLLRcUwUPoRAPMrhzOG3erw==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' - - algoliasearch@5.46.0: - resolution: {integrity: sha512-7ML6fa2K93FIfifG3GMWhDEwT5qQzPTmoHKCTvhzGEwdbQ4n0yYUWZlLYT75WllTGJCJtNUI0C1ybN4BCegqvg==} - engines: {node: '>= 14.0.0'} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - astring@1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} - hasBin: true - - autoprefixer@10.4.22: - resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - babel-loader@9.2.1: - resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' - - babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - - babel-plugin-polyfill-corejs2@0.4.14: - resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.13.0: - resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.5: - resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - baseline-browser-mapping@2.9.5: - resolution: {integrity: sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA==} - hasBin: true - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - body-parser@1.20.4: - resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bonjour-service@1.3.0: - resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001760: - resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} - engines: {node: 10.* || >= 12.*} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - combine-promises@1.2.0: - resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} - engines: {node: '>=10'} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} - engines: {node: '>= 0.8.0'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} - - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - - consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} - - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - copy-webpack-plugin@11.0.0: - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 - - core-js-compat@3.47.0: - resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} - - core-js-pure@3.47.0: - resolution: {integrity: sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==} - - core-js@3.47.0: - resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - - css-blank-pseudo@7.0.1: - resolution: {integrity: sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - css-declaration-sorter@7.3.0: - resolution: {integrity: sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - - css-has-pseudo@7.0.3: - resolution: {integrity: sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - css-loader@6.11.0: - resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-minimizer-webpack-plugin@5.0.1: - resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - - css-prefers-color-scheme@10.0.0: - resolution: {integrity: sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} - - cssdb@8.5.2: - resolution: {integrity: sha512-Pmoj9RmD8RIoIzA2EQWO4D4RMeDts0tgAH0VXdlNdxjuBGI3a9wMOIcUwaPNmD4r2qtIa06gqkIf7sECl+cBCg==} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-advanced@6.1.2: - resolution: {integrity: sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-preset-default@6.1.2: - resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-utils@4.0.2: - resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano@6.1.2: - resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - 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 - - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} - engines: {node: '>=18'} - - default-browser@5.4.0: - resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} - engines: {node: '>=18'} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - detect-port@1.6.1: - resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} - engines: {node: '>= 4.0.0'} - hasBin: true - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - electron-to-chromium@1.5.267: - resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - emoticon@4.1.0: - resolution: {integrity: sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} - engines: {node: '>=10.13.0'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - esast-util-from-estree@2.0.0: - resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} - - esast-util-from-js@2.0.1: - resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - - estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-scope@1.0.0: - resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} - - estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - - estree-util-value-to-estree@3.5.0: - resolution: {integrity: sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - eventsource-parser@3.0.6: - resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} - engines: {node: '>=18.0.0'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - express@4.22.1: - resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} - engines: {node: '>= 0.10.0'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - - feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-loader@6.2.0: - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} - - find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} - - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@11.3.2: - resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} - engines: {node: '>=14.14'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regex.js@1.2.0: - resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - - hast-util-to-estree@3.1.3: - resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} - - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - - hast-util-to-parse5@8.0.1: - resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@9.0.1: - resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - - html-minifier-terser@7.2.0: - resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - html-webpack-plugin@5.6.5: - resolution: {integrity: sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} - - http-proxy-middleware@2.0.9: - resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - image-size@2.0.2: - resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} - engines: {node: '>=16.x'} - hasBin: true - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - infima@0.2.0-alpha.45: - resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==} - engines: {node: '>=12'} - - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - - inline-style-parser@0.2.7: - resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} - - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipaddr.js@2.3.0: - resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} - engines: {node: '>= 10'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - - is-network-error@1.3.0: - resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} - engines: {node: '>=16'} - - is-npm@6.1.0: - resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - - isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} - - launch-editor@2.12.0: - resolution: {integrity: sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - loader-runner@4.3.1: - resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - - 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} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - - markdown-table@2.0.0: - resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} - - markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - - marked@16.4.2: - resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} - engines: {node: '>= 20'} - hasBin: true - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - mdast-util-directive@3.1.0: - resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} - - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - - mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - - mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - memfs@4.51.1: - resolution: {integrity: sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-extension-directive@3.0.2: - resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} - - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - - micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - - micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - - micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-mdx-expression@3.0.1: - resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} - - micromark-extension-mdx-jsx@3.0.2: - resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-mdx-expression@2.0.3: - resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-events-to-acorn@2.0.3: - resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - mini-css-extract-plugin@2.9.4: - resolution: {integrity: sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - node-emoji@2.2.0: - resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} - engines: {node: '>=18'} - - node-forge@1.3.3: - resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} - engines: {node: '>= 6.13.0'} - - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-url@8.1.0: - resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==} - engines: {node: '>=14.16'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - null-loader@4.0.1: - resolution: {integrity: sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} - engines: {node: '>=18'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - 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@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-retry@6.2.1: - resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} - engines: {node: '>=16.17'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - - parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} - - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - - path-to-regexp@1.9.0: - resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} - - path-to-regexp@3.3.0: - resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} - - postcss-attribute-case-insensitive@7.0.1: - resolution: {integrity: sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-calc@9.0.1: - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.2 - - postcss-clamp@4.1.0: - resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} - engines: {node: '>=7.6.0'} - peerDependencies: - postcss: ^8.4.6 - - postcss-color-functional-notation@7.0.12: - resolution: {integrity: sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-color-hex-alpha@10.0.0: - resolution: {integrity: sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-color-rebeccapurple@10.0.0: - resolution: {integrity: sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-colormin@6.1.0: - resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-convert-values@6.1.0: - resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-custom-media@11.0.6: - resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-custom-properties@14.0.6: - resolution: {integrity: sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-custom-selectors@8.0.5: - resolution: {integrity: sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-dir-pseudo-class@9.0.1: - resolution: {integrity: sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-discard-comments@6.0.2: - resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-duplicates@6.0.3: - resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-empty@6.0.3: - resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-overridden@6.0.2: - resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-unused@6.0.5: - resolution: {integrity: sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-double-position-gradients@6.0.4: - resolution: {integrity: sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-focus-visible@10.0.1: - resolution: {integrity: sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-focus-within@9.0.1: - resolution: {integrity: sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-font-variant@5.0.0: - resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} - peerDependencies: - postcss: ^8.1.0 - - postcss-gap-properties@6.0.0: - resolution: {integrity: sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-image-set-function@7.0.0: - resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-lab-function@7.0.12: - resolution: {integrity: sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-loader@7.3.4: - resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - - postcss-logical@8.1.0: - resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-merge-idents@6.0.3: - resolution: {integrity: sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-longhand@6.0.5: - resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-rules@6.1.1: - resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-font-values@6.1.0: - resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-gradients@6.0.3: - resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-params@6.1.0: - resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-selectors@6.0.4: - resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-nesting@13.0.2: - resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-normalize-charset@6.0.2: - resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-display-values@6.0.2: - resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-positions@6.0.2: - resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-repeat-style@6.0.2: - resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-string@6.0.2: - resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-timing-functions@6.0.2: - resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-unicode@6.1.0: - resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-url@6.0.2: - resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-whitespace@6.0.2: - resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-opacity-percentage@3.0.0: - resolution: {integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-ordered-values@6.0.2: - resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-overflow-shorthand@6.0.0: - resolution: {integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-page-break@3.0.4: - resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} - peerDependencies: - postcss: ^8 - - postcss-place@10.0.0: - resolution: {integrity: sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-preset-env@10.5.0: - resolution: {integrity: sha512-xgxFQPAPxeWmsgy8cR7GM1PGAL/smA5E9qU7K//D4vucS01es3M0fDujhDJn3kY8Ip7/vVYcecbe1yY+vBo3qQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-pseudo-class-any-link@10.0.1: - resolution: {integrity: sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-reduce-idents@6.0.3: - resolution: {integrity: sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-initial@6.1.0: - resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-transforms@6.0.2: - resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-replace-overflow-wrap@4.0.0: - resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} - peerDependencies: - postcss: ^8.0.3 - - postcss-selector-not@8.0.1: - resolution: {integrity: sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} - - postcss-sort-media-queries@5.2.0: - resolution: {integrity: sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.4.23 - - postcss-svgo@6.0.3: - resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} - engines: {node: ^14 || ^16 || >= 18} - peerDependencies: - postcss: ^8.4.31 - - postcss-unique-selectors@6.0.4: - resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss-zindex@6.0.2: - resolution: {integrity: sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - posthog-docusaurus@2.0.5: - resolution: {integrity: sha512-Ray65LYEJrMMqDtsBUBXunEVP/g4wtATvq/xz9rchUoLy/9mSkkFgUko/8DVtGxgiP3vivpFMgfb9HpCuDrBHg==} - engines: {node: '>=10.15.1'} - - 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==} - - pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - - prism-react-renderer@2.4.1: - resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==} - peerDependencies: - react: '>=16.0.0' - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pupa@3.3.0: - resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} - engines: {node: '>=12.20'} - - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} - engines: {node: '>=0.6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-dom@19.2.1: - resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==} - peerDependencies: - react: ^19.2.1 - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-icons@5.5.0: - resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==} - peerDependencies: - react: '*' - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-json-view-lite@2.5.0: - resolution: {integrity: sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==} - engines: {node: '>=18'} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - - react-loadable-ssr-addon-v5-slorber@1.0.1: - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' - - react-router-config@5.1.1: - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15' - react-router: '>=5' - - react-router-dom@5.3.4: - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15' - - react-router@5.3.4: - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15' - - react@19.2.1: - resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==} - engines: {node: '>=0.10.0'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - recma-build-jsx@1.0.0: - resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} - - recma-jsx@1.0.1: - resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - recma-parse@1.0.0: - resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} - - recma-stringify@1.0.0: - resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - - regenerate-unicode-properties@10.2.2: - resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regexpu-core@6.4.0: - resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} - engines: {node: '>=4'} - - registry-auth-token@5.1.0: - resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} - engines: {node: '>=14'} - - registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} - hasBin: true - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - rehype-recma@1.0.0: - resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} - - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - - remark-directive@3.0.1: - resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} - - remark-emoji@4.0.1: - resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} - - remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - - remark-mdx@3.1.1: - resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rtlcss@4.3.0: - resolution: {integrity: sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==} - engines: {node: '>=12.0.0'} - hasBin: true - - run-applescript@7.1.0: - resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} - engines: {node: '>=18'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sax@1.4.3: - resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} - - scheduler@0.27.0: - resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - - schema-dts@1.1.5: - resolution: {integrity: sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} - engines: {node: '>= 10.13.0'} - - search-insights@2.17.3: - resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - 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'} - - send@0.19.1: - resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-handler@6.1.6: - resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} - - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} - engines: {node: '>= 0.4'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - sitemap@7.1.2: - resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - - skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - sort-css-media-queries@2.2.0: - resolution: {integrity: sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==} - engines: {node: '>= 6.3.0'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - srcset@4.0.0: - resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} - engines: {node: '>=12'} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} - engines: {node: '>=12'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - style-to-js@1.1.21: - resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} - - style-to-object@1.0.14: - resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} - - stylehacks@6.1.1: - resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} - engines: {node: '>=14.0.0'} - hasBin: true - - swr@2.3.7: - resolution: {integrity: sha512-ZEquQ82QvalqTxhBVv/DlAg2mbmUjF4UgpPg9wwk4ufb9rQnZXh1iKyyKBqV6bQGu1Ie7L1QwSYO07qFIa1p+g==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} - engines: {node: '>=6'} - - terser-webpack-plugin@5.3.15: - resolution: {integrity: sha512-PGkOdpRFK+rb1TzVz+msVhw4YMRT9txLF4kRqvJhGhCM324xuR3REBSHALN+l+sAhKUmz0aotnjp5D+P83mLhQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.44.1: - resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} - engines: {node: '>=10'} - hasBin: true - - thingies@2.5.0: - resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} - engines: {node: '>=10.18'} - peerDependencies: - tslib: ^2 - - throttleit@2.1.0: - resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} - engines: {node: '>=18'} - - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tree-dump@1.1.0: - resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.1: - resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.2.0: - resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} - engines: {node: '>=4'} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - - unist-util-is@6.0.1: - resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.2: - resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - update-browserslist-db@1.2.2: - resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-loader@4.1.1: - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - - utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - webpack-bundle-analyzer@4.10.2: - resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} - engines: {node: '>= 10.13.0'} - hasBin: true - - webpack-dev-middleware@7.4.5: - resolution: {integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - - webpack-dev-server@5.2.1: - resolution: {integrity: sha512-ml/0HIj9NLpVKOMq+SuBPLHcmbG+TGIjXRHsYfZwocUBIqEvws8NnS/V9AFQ5FKP+tgn5adwVwRrTEpGL33QFQ==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-merge@6.0.1: - resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} - engines: {node: '>=18.0.0'} - - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} - engines: {node: '>=10.13.0'} - - webpack@5.103.0: - resolution: {integrity: sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpackbar@6.0.1: - resolution: {integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==} - engines: {node: '>=14.21.3'} - peerDependencies: - webpack: 3 || 4 || 5 - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} - engines: {node: '>=18'} - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yocto-queue@1.2.2: - resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} - engines: {node: '>=12.20'} - - zod@4.1.13: - resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@ai-sdk/gateway@2.0.18(zod@4.1.13)': - dependencies: - '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.18(zod@4.1.13) - '@vercel/oidc': 3.0.5 - zod: 4.1.13 - - '@ai-sdk/provider-utils@3.0.18(zod@4.1.13)': - dependencies: - '@ai-sdk/provider': 2.0.0 - '@standard-schema/spec': 1.0.0 - eventsource-parser: 3.0.6 - zod: 4.1.13 - - '@ai-sdk/provider@2.0.0': - dependencies: - json-schema: 0.4.0 - - '@ai-sdk/react@2.0.109(react@19.2.1)(zod@4.1.13)': - dependencies: - '@ai-sdk/provider-utils': 3.0.18(zod@4.1.13) - ai: 5.0.108(zod@4.1.13) - react: 19.2.1 - swr: 2.3.7(react@19.2.1) - throttleit: 2.1.0 - optionalDependencies: - zod: 4.1.13 - - '@algolia/abtesting@1.12.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3)': - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - - '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3)': - dependencies: - '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0) - search-insights: 2.17.3 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)': - dependencies: - '@algolia/client-search': 5.46.0 - algoliasearch: 5.46.0 - - '@algolia/client-abtesting@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/client-analytics@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/client-common@5.46.0': {} - - '@algolia/client-insights@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/client-personalization@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/client-query-suggestions@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/client-search@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/events@4.0.1': {} - - '@algolia/ingestion@1.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/monitoring@1.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/recommend@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - '@algolia/requester-browser-xhr@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - - '@algolia/requester-fetch@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - - '@algolia/requester-node-http@5.46.0': - dependencies: - '@algolia/client-common': 5.46.0 - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.28.5': {} - - '@babel/core@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.28.5': - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.27.3': - dependencies: - '@babel/types': 7.28.5 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.5 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.5 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.4.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3 - lodash.debounce: 4.0.8 - resolve: 1.22.11 - transitivePeerDependencies: - - supports-color - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-member-expression-to-functions@7.28.5': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.27.1': - dependencies: - '@babel/types': 7.28.5 - - '@babel/helper-plugin-utils@7.27.1': {} - - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helper-wrap-function@7.28.3': - dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 - - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/preset-env@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/compat-data': 7.28.5 - '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) - '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) - core-js-compat: 3.47.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.5 - esutils: 2.0.3 - - '@babel/preset-react@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/preset-typescript@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/runtime-corejs3@7.28.4': - dependencies: - core-js-pure: 3.47.0 - - '@babel/runtime@7.28.4': {} - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - - '@babel/traverse@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.28.5': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@colors/colors@1.5.0': - optional: true - - '@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)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - - '@csstools/color-helpers@5.1.0': {} - - '@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)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - - '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': - dependencies: - '@csstools/color-helpers': 5.1.0 - '@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/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': - dependencies: - '@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)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - - '@csstools/postcss-alpha-function@1.0.1(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.6)': - dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - - '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-color-function@4.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(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.2(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-content-alt-text@2.0.8(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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(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.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.6 - - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.6)': - dependencies: - '@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.11(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.6 - - '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.6)': - dependencies: - '@csstools/postcss-progressive-custom-properties': 4.2.1(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.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': - dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - - '@csstools/postcss-light-dark-function@2.0.11(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.2.1(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.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - '@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.6) - postcss: 8.5.6 - - '@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.6 - - '@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.6 - - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.6)': - dependencies: - '@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.6)': - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - - '@csstools/postcss-position-area-property@1.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - '@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.6 - - '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.6)': - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(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.6)': - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - - '@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.6 - - '@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.6 - - '@csstools/postcss-system-ui-font-family@1.0.0(postcss@8.5.6)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 - - '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.6)': - dependencies: - '@csstools/color-helpers': 5.1.0 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - '@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.6 - - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.1)': - dependencies: - postcss-selector-parser: 7.1.1 - - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': - dependencies: - postcss-selector-parser: 7.1.1 - - '@csstools/utilities@2.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - - '@discoveryjs/json-ext@0.5.7': {} - - '@docsearch/core@4.3.1(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - optionalDependencies: - '@types/react': 19.2.7 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - - '@docsearch/css@4.3.2': {} - - '@docsearch/react@4.3.2(@algolia/client-search@5.46.0)(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(search-insights@2.17.3)': - dependencies: - '@ai-sdk/react': 2.0.109(react@19.2.1)(zod@4.1.13) - '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3) - '@docsearch/core': 4.3.1(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docsearch/css': 4.3.2 - ai: 5.0.108(zod@4.1.13) - algoliasearch: 5.46.0 - marked: 16.4.2 - zod: 4.1.13 - optionalDependencies: - '@types/react': 19.2.7 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - search-insights: 2.17.3 - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/babel@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) - '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) - '@babel/preset-env': 7.28.5(@babel/core@7.28.5) - '@babel/preset-react': 7.28.5(@babel/core@7.28.5) - '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - '@babel/runtime': 7.28.4 - '@babel/runtime-corejs3': 7.28.4 - '@babel/traverse': 7.28.5 - '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - babel-plugin-dynamic-import-node: 2.3.3 - fs-extra: 11.3.2 - tslib: 2.8.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/bundler@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@babel/core': 7.28.5 - '@docusaurus/babel': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/cssnano-preset': 3.9.2 - '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.103.0) - clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.103.0) - css-loader: 6.11.0(webpack@5.103.0) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.103.0) - cssnano: 6.1.2(postcss@8.5.6) - file-loader: 6.2.0(webpack@5.103.0) - html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.9.4(webpack@5.103.0) - null-loader: 4.0.1(webpack@5.103.0) - postcss: 8.5.6 - postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.6.3)(webpack@5.103.0) - postcss-preset-env: 10.5.0(postcss@8.5.6) - terser-webpack-plugin: 5.3.15(webpack@5.103.0) - tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) - webpack: 5.103.0 - webpackbar: 6.0.1(webpack@5.103.0) - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - csso - - esbuild - - lightningcss - - react - - react-dom - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/babel': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/bundler': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.1) - boxen: 6.2.1 - chalk: 4.1.2 - chokidar: 3.6.0 - cli-table3: 0.6.5 - combine-promises: 1.2.0 - commander: 5.1.0 - core-js: 3.47.0 - detect-port: 1.6.1 - escape-html: 1.0.3 - eta: 2.2.0 - eval: 0.1.8 - execa: 5.1.1 - fs-extra: 11.3.2 - html-tags: 3.3.1 - html-webpack-plugin: 5.6.5(webpack@5.103.0) - leven: 3.1.0 - lodash: 4.17.23 - open: 8.4.2 - p-map: 4.0.0 - prompts: 2.4.2 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)' - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.1)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.1))(webpack@5.103.0) - react-router: 5.3.4(react@19.2.1) - react-router-config: 5.1.1(react-router@5.3.4(react@19.2.1))(react@19.2.1) - react-router-dom: 5.3.4(react@19.2.1) - semver: 7.7.3 - serve-handler: 6.1.6 - tinypool: 1.1.1 - tslib: 2.8.1 - update-notifier: 6.0.2 - webpack: 5.103.0 - webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.1(webpack@5.103.0) - webpack-merge: 6.0.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/cssnano-preset@3.9.2': - dependencies: - 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.9.2': - dependencies: - chalk: 4.1.2 - tslib: 2.8.1 - - '@docusaurus/mdx-loader@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@mdx-js/mdx': 3.1.1 - '@slorber/remark-comment': 1.0.0 - escape-html: 1.0.3 - estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.103.0) - fs-extra: 11.3.2 - image-size: 2.0.2 - mdast-util-mdx: 3.0.0 - mdast-util-to-string: 4.0.0 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - rehype-raw: 7.0.0 - remark-directive: 3.0.1 - remark-emoji: 4.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.1 - stringify-object: 3.3.0 - tslib: 2.8.1 - unified: 11.0.5 - unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) - vfile: 6.0.3 - webpack: 5.103.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/module-type-aliases@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@types/history': 4.7.11 - '@types/react': 19.2.7 - '@types/react-router-config': 5.0.11 - '@types/react-router-dom': 5.3.3 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)' - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.1)' - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - 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.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - cheerio: 1.0.0-rc.12 - feed: 4.2.2 - fs-extra: 11.3.2 - lodash: 4.17.23 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - schema-dts: 1.1.5 - srcset: 4.0.0 - tslib: 2.8.1 - unist-util-visit: 5.0.0 - utility-types: 3.11.0 - webpack: 5.103.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/module-type-aliases': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@types/react-router-config': 5.0.11 - combine-promises: 1.2.0 - fs-extra: 11.3.2 - js-yaml: 3.14.2 - lodash: 4.17.23 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - schema-dts: 1.1.5 - tslib: 2.8.1 - utility-types: 3.11.0 - webpack: 5.103.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - fs-extra: 11.3.2 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - webpack: 5.103.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - tslib: 2.8.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - react - - react-dom - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - fs-extra: 11.3.2 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-json-view-lite: 2.5.0(react@19.2.1) - tslib: 2.8.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@types/gtag.js': 0.0.12 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - fs-extra: 11.3.2 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - sitemap: 7.1.2 - tslib: 2.8.1 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/webpack': 8.1.0(typescript@5.6.3) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - webpack: 5.103.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.46.0)(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/theme-classic': 3.9.2(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.46.0)(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(search-insights@2.17.3)(typescript@5.6.3) - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/react-loadable@6.0.0(react@19.2.1)': - dependencies: - '@types/react': 19.2.7 - react: 19.2.1 - - '@docusaurus/theme-classic@3.9.2(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/module-type-aliases': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.1) - clsx: 2.1.1 - infima: 0.2.0-alpha.45 - lodash: 4.17.23 - nprogress: 0.2.0 - postcss: 8.5.6 - prism-react-renderer: 2.4.1(react@19.2.1) - prismjs: 1.30.0 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-router-dom: 5.3.4(react@19.2.1) - rtlcss: 4.3.0 - tslib: 2.8.1 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@docusaurus/faster' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - supports-color - - typescript - - uglify-js - - 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.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@docusaurus/mdx-loader': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/module-type-aliases': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@types/history': 4.7.11 - '@types/react': 19.2.7 - '@types/react-router-config': 5.0.11 - clsx: 2.1.1 - parse-numeric-range: 1.3.0 - prism-react-renderer: 2.4.1(react@19.2.1) - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.46.0)(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docsearch/react': 4.3.2(@algolia/client-search@5.46.0)(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(search-insights@2.17.3) - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/logger': 3.9.2 - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.6.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-validation': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - algoliasearch: 5.46.0 - algoliasearch-helper: 3.26.1(algoliasearch@5.46.0) - clsx: 2.1.1 - eta: 2.2.0 - fs-extra: 11.3.2 - lodash: 4.17.23 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - tslib: 2.8.1 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/faster' - - '@mdx-js/react' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - webpack-cli - - '@docusaurus/theme-translations@3.9.2': - dependencies: - fs-extra: 11.3.2 - tslib: 2.8.1 - - '@docusaurus/tsconfig@3.9.2': {} - - '@docusaurus/types@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@mdx-js/mdx': 3.1.1 - '@types/history': 4.7.11 - '@types/mdast': 4.0.4 - '@types/react': 19.2.7 - commander: 5.1.0 - joi: 17.13.3 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)' - utility-types: 3.11.0 - webpack: 5.103.0 - webpack-merge: 5.10.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/utils-common@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - tslib: 2.8.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/utils-validation@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - fs-extra: 11.3.2 - joi: 17.13.3 - js-yaml: 3.14.2 - lodash: 4.17.23 - tslib: 2.8.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - uglify-js - - webpack-cli - - '@docusaurus/utils@3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@docusaurus/utils-common': 3.9.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - escape-string-regexp: 4.0.0 - execa: 5.1.1 - file-loader: 6.2.0(webpack@5.103.0) - fs-extra: 11.3.2 - github-slugger: 1.5.0 - globby: 11.1.0 - gray-matter: 4.0.3 - jiti: 1.21.7 - js-yaml: 3.14.2 - lodash: 4.17.23 - micromatch: 4.0.8 - p-queue: 6.6.2 - prompts: 2.4.2 - resolve-pathname: 3.0.0 - tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) - utility-types: 3.11.0 - webpack: 5.103.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - uglify-js - - webpack-cli - - '@hapi/hoek@9.3.0': {} - - '@hapi/topo@5.1.0': - dependencies: - '@hapi/hoek': 9.3.0 - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 24.10.2 - '@types/yargs': 17.0.35 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/source-map@0.3.11': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': - dependencies: - tslib: 2.8.1 - - '@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)': - dependencies: - tslib: 2.8.1 - - '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': - dependencies: - tslib: 2.8.1 - - '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': - dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - hyperdyperid: 1.2.0 - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 - - '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': - dependencies: - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - tslib: 2.8.1 - - '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': - dependencies: - '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - tslib: 2.8.1 - - '@leichtgewicht/ip-codec@2.0.5': {} - - '@mdx-js/mdx@3.1.1': - dependencies: - '@types/estree': 1.0.8 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 - acorn: 8.15.0 - collapse-white-space: 2.1.0 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - estree-util-scope: 1.0.0 - estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 - markdown-extensions: 2.0.0 - recma-build-jsx: 1.0.0 - recma-jsx: 1.0.1(acorn@8.15.0) - recma-stringify: 1.0.0 - rehype-recma: 1.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - source-map: 0.7.6 - unified: 11.0.5 - unist-util-position-from-estree: 2.0.0 - unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.2.7 - react: 19.2.1 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@opentelemetry/api@1.9.0': {} - - '@pnpm/config.env-replace@1.1.0': {} - - '@pnpm/network.ca-file@1.0.2': - dependencies: - graceful-fs: 4.2.10 - - '@pnpm/npm-conf@2.3.1': - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - - '@polka/url@1.0.0-next.29': {} - - '@sideway/address@4.1.5': - dependencies: - '@hapi/hoek': 9.3.0 - - '@sideway/formula@3.0.1': {} - - '@sideway/pinpoint@2.0.0': {} - - '@sinclair/typebox@0.27.8': {} - - '@sindresorhus/is@4.6.0': {} - - '@sindresorhus/is@5.6.0': {} - - '@slorber/react-helmet-async@1.3.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@babel/runtime': 7.28.4 - invariant: 2.2.4 - prop-types: 15.8.1 - react: 19.2.1 - react-dom: 19.2.1(react@19.2.1) - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - - '@slorber/remark-comment@1.0.0': - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - - '@standard-schema/spec@1.0.0': {} - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - - '@svgr/babel-preset@8.1.0(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.28.5) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.28.5) - - '@svgr/core@8.1.0(typescript@5.6.3)': - dependencies: - '@babel/core': 7.28.5 - '@svgr/babel-preset': 8.1.0(@babel/core@7.28.5) - camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.6.3) - snake-case: 3.0.4 - transitivePeerDependencies: - - supports-color - - typescript - - '@svgr/hast-util-to-babel-ast@8.0.0': - dependencies: - '@babel/types': 7.28.5 - entities: 4.5.0 - - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))': - dependencies: - '@babel/core': 7.28.5 - '@svgr/babel-preset': 8.1.0(@babel/core@7.28.5) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/hast-util-to-babel-ast': 8.0.0 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color - - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))(typescript@5.6.3)': - dependencies: - '@svgr/core': 8.1.0(typescript@5.6.3) - cosmiconfig: 8.3.6(typescript@5.6.3) - deepmerge: 4.3.1 - svgo: 3.3.2 - transitivePeerDependencies: - - typescript - - '@svgr/webpack@8.1.0(typescript@5.6.3)': - dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.28.5) - '@babel/preset-env': 7.28.5(@babel/core@7.28.5) - '@babel/preset-react': 7.28.5(@babel/core@7.28.5) - '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))(typescript@5.6.3) - transitivePeerDependencies: - - supports-color - - typescript - - '@szmarczak/http-timer@5.0.1': - dependencies: - defer-to-connect: 2.0.1 - - '@trysound/sax@0.2.0': {} - - '@types/body-parser@1.19.6': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 24.10.2 - - '@types/bonjour@3.5.13': - dependencies: - '@types/node': 24.10.2 - - '@types/connect-history-api-fallback@1.5.4': - dependencies: - '@types/express-serve-static-core': 4.19.7 - '@types/node': 24.10.2 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 24.10.2 - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.8 - - '@types/estree@1.0.8': {} - - '@types/express-serve-static-core@4.19.7': - dependencies: - '@types/node': 24.10.2 - '@types/qs': 6.14.0 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - - '@types/express@4.17.25': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.7 - '@types/qs': 6.14.0 - '@types/serve-static': 1.15.10 - - '@types/gtag.js@0.0.12': {} - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/history@4.7.11': {} - - '@types/html-minifier-terser@6.1.0': {} - - '@types/http-cache-semantics@4.0.4': {} - - '@types/http-errors@2.0.5': {} - - '@types/http-proxy@1.17.17': - dependencies: - '@types/node': 24.10.2 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/json-schema@7.0.15': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/mdx@2.0.13': {} - - '@types/mime@1.3.5': {} - - '@types/ms@2.1.0': {} - - '@types/node-forge@1.3.14': - dependencies: - '@types/node': 24.10.2 - - '@types/node@17.0.45': {} - - '@types/node@24.10.2': - dependencies: - undici-types: 7.16.0 - - '@types/prismjs@1.26.5': {} - - '@types/qs@6.14.0': {} - - '@types/range-parser@1.2.7': {} - - '@types/react-router-config@5.0.11': - dependencies: - '@types/history': 4.7.11 - '@types/react': 19.2.7 - '@types/react-router': 5.1.20 - - '@types/react-router-dom@5.3.3': - dependencies: - '@types/history': 4.7.11 - '@types/react': 19.2.7 - '@types/react-router': 5.1.20 - - '@types/react-router@5.1.20': - dependencies: - '@types/history': 4.7.11 - '@types/react': 19.2.7 - - '@types/react@19.2.7': - dependencies: - csstype: 3.2.3 - - '@types/retry@0.12.2': {} - - '@types/sax@1.2.7': - dependencies: - '@types/node': 17.0.45 - - '@types/send@0.17.6': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 24.10.2 - - '@types/send@1.2.1': - dependencies: - '@types/node': 24.10.2 - - '@types/serve-index@1.9.4': - dependencies: - '@types/express': 4.17.25 - - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 24.10.2 - '@types/send': 0.17.6 - - '@types/sockjs@0.3.36': - dependencies: - '@types/node': 24.10.2 - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@types/ws@8.18.1': - dependencies: - '@types/node': 24.10.2 - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.35': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@ungap/structured-clone@1.3.0': {} - - '@vercel/oidc@3.0.5': {} - - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-import-phases@1.0.4(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn-walk@8.3.4: - dependencies: - acorn: 8.15.0 - - acorn@8.15.0: {} - - address@1.2.2: {} - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - - ai@5.0.108(zod@4.1.13): - dependencies: - '@ai-sdk/gateway': 2.0.18(zod@4.1.13) - '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.18(zod@4.1.13) - '@opentelemetry/api': 1.9.0 - zod: 4.1.13 - - ajv-formats@2.1.1(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 - - ajv@6.12.6: - 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 - fast-uri: 3.1.0 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - algoliasearch-helper@3.26.1(algoliasearch@5.46.0): - dependencies: - '@algolia/events': 4.0.1 - algoliasearch: 5.46.0 - - algoliasearch@5.46.0: - dependencies: - '@algolia/abtesting': 1.12.0 - '@algolia/client-abtesting': 5.46.0 - '@algolia/client-analytics': 5.46.0 - '@algolia/client-common': 5.46.0 - '@algolia/client-insights': 5.46.0 - '@algolia/client-personalization': 5.46.0 - '@algolia/client-query-suggestions': 5.46.0 - '@algolia/client-search': 5.46.0 - '@algolia/ingestion': 1.46.0 - '@algolia/monitoring': 1.46.0 - '@algolia/recommend': 5.46.0 - '@algolia/requester-browser-xhr': 5.46.0 - '@algolia/requester-fetch': 5.46.0 - '@algolia/requester-node-http': 5.46.0 - - ansi-align@3.0.1: - dependencies: - string-width: 4.2.3 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-html-community@0.0.8: {} - - ansi-regex@5.0.1: {} - - ansi-regex@6.2.2: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.3: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - arg@5.0.2: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - array-flatten@1.1.1: {} - - array-union@2.1.0: {} - - astring@1.9.0: {} - - autoprefixer@10.4.22(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001760 - fraction.js: 5.3.4 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.103.0): - dependencies: - '@babel/core': 7.28.5 - find-cache-dir: 4.0.0 - schema-utils: 4.3.3 - webpack: 5.103.0 - - babel-plugin-dynamic-import-node@2.3.3: - dependencies: - object.assign: 4.1.7 - - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): - dependencies: - '@babel/compat-data': 7.28.5 - '@babel/core': 7.28.5 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) - core-js-compat: 3.47.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - bail@2.0.2: {} - - balanced-match@1.0.2: {} - - baseline-browser-mapping@2.9.5: {} - - batch@0.6.1: {} - - big.js@5.2.2: {} - - binary-extensions@2.3.0: {} - - body-parser@1.20.4: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.14.1 - raw-body: 2.5.3 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - bonjour-service@1.3.0: - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - - boolbase@1.0.0: {} - - boxen@6.2.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - - boxen@7.1.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.6.2 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.28.1: - dependencies: - baseline-browser-mapping: 2.9.5 - caniuse-lite: 1.0.30001760 - electron-to-chromium: 1.5.267 - node-releases: 2.0.27 - update-browserslist-db: 1.2.2(browserslist@4.28.1) - - buffer-from@1.1.2: {} - - bundle-name@4.1.0: - dependencies: - run-applescript: 7.1.0 - - bytes@3.0.0: {} - - bytes@3.1.2: {} - - cacheable-lookup@7.0.0: {} - - cacheable-request@10.2.14: - dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.2.0 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.1.0 - responselike: 3.0.0 - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsites@3.1.0: {} - - camel-case@4.1.2: - dependencies: - pascal-case: 3.1.2 - tslib: 2.8.1 - - camelcase@6.3.0: {} - - camelcase@7.0.1: {} - - caniuse-api@3.0.0: - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001760 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - - caniuse-lite@1.0.30001760: {} - - ccount@2.0.1: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.6.2: {} - - char-regex@1.0.2: {} - - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - character-entities@2.0.2: {} - - character-reference-invalid@2.0.1: {} - - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.2.2 - css-what: 6.2.2 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - - cheerio@1.0.0-rc.12: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.2.2 - htmlparser2: 8.0.2 - parse5: 7.3.0 - parse5-htmlparser2-tree-adapter: 7.1.0 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chrome-trace-event@1.0.4: {} - - ci-info@3.9.0: {} - - clean-css@5.3.3: - dependencies: - source-map: 0.6.1 - - clean-stack@2.2.0: {} - - cli-boxes@3.0.0: {} - - cli-table3@0.6.5: - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clsx@2.1.1: {} - - collapse-white-space@2.1.0: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colord@2.9.3: {} - - colorette@2.0.20: {} - - combine-promises@1.2.0: {} - - comma-separated-tokens@2.0.3: {} - - commander@10.0.1: {} - - commander@2.20.3: {} - - commander@5.1.0: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - common-path-prefix@3.0.0: {} - - compressible@2.0.18: - dependencies: - mime-db: 1.54.0 - - compression@1.8.1: - dependencies: - bytes: 3.1.2 - compressible: 2.0.18 - debug: 2.6.9 - negotiator: 0.6.4 - on-headers: 1.1.0 - safe-buffer: 5.2.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - concat-map@0.0.1: {} - - config-chain@1.1.13: - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - - configstore@6.0.0: - dependencies: - dot-prop: 6.0.1 - graceful-fs: 4.2.11 - unique-string: 3.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 5.1.0 - - connect-history-api-fallback@2.0.0: {} - - consola@3.4.2: {} - - content-disposition@0.5.2: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - - convert-source-map@2.0.0: {} - - cookie-signature@1.0.7: {} - - cookie@0.7.2: {} - - copy-webpack-plugin@11.0.0(webpack@5.103.0): - dependencies: - fast-glob: 3.3.3 - glob-parent: 6.0.2 - globby: 13.2.2 - normalize-path: 3.0.0 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - webpack: 5.103.0 - - core-js-compat@3.47.0: - dependencies: - browserslist: 4.28.1 - - core-js-pure@3.47.0: {} - - core-js@3.47.0: {} - - core-util-is@1.0.3: {} - - cosmiconfig@8.3.6(typescript@5.6.3): - dependencies: - import-fresh: 3.3.1 - js-yaml: 3.14.2 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.6.3 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crypto-random-string@4.0.0: - dependencies: - type-fest: 1.4.0 - - css-blank-pseudo@7.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - - css-declaration-sorter@7.3.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - css-has-pseudo@7.0.3(postcss@8.5.6): - dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - postcss-value-parser: 4.2.0 - - css-loader@6.11.0(webpack@5.103.0): - dependencies: - 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.3 - optionalDependencies: - webpack: 5.103.0 - - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.103.0): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - cssnano: 6.1.2(postcss@8.5.6) - jest-worker: 29.7.0 - postcss: 8.5.6 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - webpack: 5.103.0 - optionalDependencies: - clean-css: 5.3.3 - - css-prefers-color-scheme@10.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-select@5.2.2: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - - css-what@6.2.2: {} - - cssdb@8.5.2: {} - - cssesc@3.0.0: {} - - cssnano-preset-advanced@6.1.2(postcss@8.5.6): - dependencies: - autoprefixer: 10.4.22(postcss@8.5.6) - browserslist: 4.28.1 - 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.6): - dependencies: - browserslist: 4.28.1 - css-declaration-sorter: 7.3.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.6 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - - csstype@3.2.3: {} - - debounce@1.2.1: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - decode-named-character-reference@1.2.0: - dependencies: - character-entities: 2.0.2 - - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - - deep-extend@0.6.0: {} - - deepmerge@4.3.1: {} - - default-browser-id@5.0.1: {} - - default-browser@5.4.0: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.1 - - defer-to-connect@2.0.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-lazy-prop@2.0.0: {} - - define-lazy-prop@3.0.0: {} - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - depd@1.1.2: {} - - depd@2.0.0: {} - - dequal@2.0.3: {} - - destroy@1.2.0: {} - - detect-node@2.1.0: {} - - detect-port@1.6.1: - dependencies: - address: 1.2.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - dns-packet@5.6.1: - dependencies: - '@leichtgewicht/ip-codec': 2.0.5 - - dom-converter@0.2.0: - dependencies: - utila: 0.4.0 - - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - - dot-prop@6.0.1: - dependencies: - is-obj: 2.0.0 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - duplexer@0.1.2: {} - - eastasianwidth@0.2.0: {} - - ee-first@1.1.1: {} - - electron-to-chromium@1.5.267: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - emojilib@2.4.0: {} - - emojis-list@3.0.0: {} - - emoticon@4.1.0: {} - - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - - enhanced-resolve@5.18.3: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.0 - - entities@2.2.0: {} - - entities@4.5.0: {} - - entities@6.0.1: {} - - error-ex@1.3.4: - dependencies: - is-arrayish: 0.2.1 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-module-lexer@1.7.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - esast-util-from-estree@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - unist-util-position-from-estree: 2.0.0 - - esast-util-from-js@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - acorn: 8.15.0 - esast-util-from-estree: 2.0.0 - vfile-message: 4.0.3 - - escalade@3.2.0: {} - - escape-goat@4.0.0: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - esprima@4.0.1: {} - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-util-attach-comments@3.0.0: - dependencies: - '@types/estree': 1.0.8 - - estree-util-build-jsx@3.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - estree-walker: 3.0.3 - - estree-util-is-identifier-name@3.0.0: {} - - estree-util-scope@1.0.0: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - - estree-util-to-js@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - astring: 1.9.0 - source-map: 0.7.6 - - estree-util-value-to-estree@3.5.0: - dependencies: - '@types/estree': 1.0.8 - - estree-util-visit@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.3 - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - esutils@2.0.3: {} - - eta@2.2.0: {} - - etag@1.8.1: {} - - eval@0.1.8: - dependencies: - '@types/node': 24.10.2 - require-like: 0.1.2 - - eventemitter3@4.0.7: {} - - events@3.3.0: {} - - eventsource-parser@3.0.6: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - express@4.22.1: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.4 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.2 - fresh: 0.5.2 - http-errors: 2.0.1 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.14.1 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.1 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - - extend@3.0.2: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-uri@3.1.0: {} - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fault@2.0.1: - dependencies: - format: 0.2.2 - - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - - feed@4.2.2: - dependencies: - xml-js: 1.6.11 - - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - file-loader@6.2.0(webpack@5.103.0): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.103.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - finalhandler@1.3.2: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - find-cache-dir@4.0.0: - dependencies: - common-path-prefix: 3.0.0 - pkg-dir: 7.0.0 - - find-up@6.3.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - - flat@5.0.2: {} - - follow-redirects@1.15.11: {} - - form-data-encoder@2.1.4: {} - - format@0.2.2: {} - - forwarded@0.2.0: {} - - fraction.js@5.3.4: {} - - fresh@0.5.2: {} - - fs-extra@11.3.2: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - gensync@1.0.0-beta.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-own-enumerable-property-symbols@3.0.2: {} - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-stream@6.0.1: {} - - github-slugger@1.5.0: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regex.js@1.2.0(tslib@2.8.1): - dependencies: - tslib: 2.8.1 - - glob-to-regexp@0.4.1: {} - - global-dirs@3.0.1: - dependencies: - ini: 2.0.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - globby@13.2.2: - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 - - gopd@1.2.0: {} - - got@12.6.1: - dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.1 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - - graceful-fs@4.2.10: {} - - graceful-fs@4.2.11: {} - - gray-matter@4.0.3: - dependencies: - js-yaml: 3.14.2 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - - gzip-size@6.0.0: - dependencies: - duplexer: 0.1.2 - - handle-thing@2.0.1: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-symbols@1.1.0: {} - - has-yarn@3.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hast-util-from-parse5@8.0.3: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - hastscript: 9.0.1 - property-information: 7.1.0 - vfile: 6.0.3 - vfile-location: 5.0.3 - web-namespaces: 2.0.1 - - hast-util-parse-selector@4.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-raw@9.1.0: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 - hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.1 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - parse5: 7.3.0 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-to-estree@3.1.3: - dependencies: - '@types/estree': 1.0.8 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-attach-comments: 3.0.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - style-to-js: 1.1.21 - unist-util-position: 5.0.0 - zwitch: 2.0.4 - transitivePeerDependencies: - - supports-color - - hast-util-to-jsx-runtime@2.3.6: - dependencies: - '@types/estree': 1.0.8 - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - style-to-js: 1.1.21 - unist-util-position: 5.0.0 - vfile-message: 4.0.3 - transitivePeerDependencies: - - supports-color - - hast-util-to-parse5@8.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hastscript@9.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - - he@1.2.0: {} - - history@4.10.1: - dependencies: - '@babel/runtime': 7.28.4 - loose-envify: 1.4.0 - resolve-pathname: 3.0.0 - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - value-equal: 1.0.1 - - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - - html-escaper@2.0.2: {} - - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.44.1 - - html-minifier-terser@7.2.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 10.0.1 - entities: 4.5.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.44.1 - - html-tags@3.3.1: {} - - html-void-elements@3.0.0: {} - - html-webpack-plugin@5.6.5(webpack@5.103.0): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.23 - pretty-error: 4.0.0 - tapable: 2.3.0 - optionalDependencies: - webpack: 5.103.0 - - htmlparser2@6.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - - htmlparser2@8.0.2: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - - http-cache-semantics@4.2.0: {} - - http-deceiver@1.2.7: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - http-errors@2.0.1: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 - - http-parser-js@0.5.10: {} - - http-proxy-middleware@2.0.9(@types/express@4.17.25): - dependencies: - '@types/http-proxy': 1.17.17 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.8 - optionalDependencies: - '@types/express': 4.17.25 - transitivePeerDependencies: - - debug - - http-proxy@1.18.1: - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.11 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - - http2-wrapper@2.2.1: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - - human-signals@2.1.0: {} - - hyperdyperid@1.2.0: {} - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - icss-utils@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - ignore@5.3.2: {} - - image-size@2.0.2: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - infima@0.2.0-alpha.45: {} - - inherits@2.0.3: {} - - inherits@2.0.4: {} - - ini@1.3.8: {} - - ini@2.0.0: {} - - inline-style-parser@0.2.7: {} - - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - - ipaddr.js@1.9.1: {} - - ipaddr.js@2.3.0: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-arrayish@0.2.1: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-decimal@2.0.1: {} - - is-docker@2.2.1: {} - - is-docker@3.0.0: {} - - is-extendable@0.1.1: {} - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-hexadecimal@2.0.1: {} - - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - - is-installed-globally@0.4.0: - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - - is-network-error@1.3.0: {} - - is-npm@6.1.0: {} - - is-number@7.0.0: {} - - is-obj@1.0.1: {} - - is-obj@2.0.0: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@3.0.0: {} - - is-plain-obj@4.1.0: {} - - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - - is-regexp@1.0.0: {} - - is-stream@2.0.1: {} - - is-typedarray@1.0.0: {} - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - is-yarn-global@0.4.1: {} - - isarray@0.0.1: {} - - isarray@1.0.0: {} - - isexe@2.0.0: {} - - isobject@3.0.1: {} - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 24.10.2 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-worker@27.5.1: - dependencies: - '@types/node': 24.10.2 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@29.7.0: - dependencies: - '@types/node': 24.10.2 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jiti@1.21.7: {} - - joi@17.13.3: - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - - js-tokens@4.0.0: {} - - js-yaml@3.14.2: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-schema@0.4.0: {} - - json5@2.2.3: {} - - jsonfile@6.2.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kind-of@6.0.3: {} - - kleur@3.0.3: {} - - latest-version@7.0.0: - dependencies: - package-json: 8.1.1 - - launch-editor@2.12.0: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.3 - - leven@3.1.0: {} - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - loader-runner@4.3.1: {} - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - - lodash.debounce@4.0.8: {} - - lodash.memoize@4.1.2: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.23: {} - - longest-streak@3.1.0: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lower-case@2.0.2: - dependencies: - tslib: 2.8.1 - - lowercase-keys@3.0.0: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - markdown-extensions@2.0.0: {} - - markdown-table@2.0.0: - dependencies: - repeat-string: 1.6.1 - - markdown-table@3.0.4: {} - - marked@16.4.2: {} - - math-intrinsics@1.1.0: {} - - mdast-util-directive@3.1.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-visit-parents: 6.0.2 - transitivePeerDependencies: - - supports-color - - mdast-util-find-and-replace@3.0.2: - dependencies: - '@types/mdast': 4.0.4 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.1 - unist-util-visit-parents: 6.0.2 - - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-frontmatter@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-extension-frontmatter: 2.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-autolink-literal@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 - micromark-util-character: 2.1.1 - - mdast-util-gfm-footnote@2.1.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-util-normalize-identifier: 2.0.1 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-strikethrough@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-table@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-task-list-item@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm@3.1.0: - dependencies: - mdast-util-from-markdown: 2.0.2 - mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-expression@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@3.2.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.3 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx@3.0.0: - dependencies: - mdast-util-from-markdown: 2.0.2 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.1 - - mdast-util-to-hast@13.2.1: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.1 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - - media-typer@0.3.0: {} - - memfs@4.51.1: - dependencies: - '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 - - merge-descriptors@1.0.3: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - methods@1.1.2: {} - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-directive@3.0.2: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - parse-entities: 4.0.2 - - micromark-extension-frontmatter@2.0.0: - dependencies: - fault: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-autolink-literal@2.1.0: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-footnote@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-strikethrough@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-table@2.1.1: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-tagfilter@2.0.0: - dependencies: - micromark-util-types: 2.0.2 - - micromark-extension-gfm-task-list-item@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm@3.0.0: - dependencies: - micromark-extension-gfm-autolink-literal: 2.1.0 - micromark-extension-gfm-footnote: 2.1.0 - micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-mdx-expression@3.0.1: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-mdx-jsx@3.0.2: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - - micromark-extension-mdx-md@2.0.0: - dependencies: - micromark-util-types: 2.0.2 - - micromark-extension-mdxjs-esm@3.0.0: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 - - micromark-extension-mdxjs@3.0.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - micromark-extension-mdx-expression: 3.0.1 - micromark-extension-mdx-jsx: 3.0.2 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs-esm: 3.0.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-mdx-expression@2.0.3: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 - - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.2.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-events-to-acorn@2.0.3: - dependencies: - '@types/estree': 1.0.8 - '@types/unist': 3.0.3 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@1.1.0: {} - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@1.1.0: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.3 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.33.0: {} - - mime-db@1.52.0: {} - - mime-db@1.54.0: {} - - mime-types@2.1.18: - dependencies: - mime-db: 1.33.0 - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime-types@3.0.2: - dependencies: - mime-db: 1.54.0 - - mime@1.6.0: {} - - mimic-fn@2.1.0: {} - - mimic-response@3.1.0: {} - - mimic-response@4.0.0: {} - - mini-css-extract-plugin@2.9.4(webpack@5.103.0): - dependencies: - schema-utils: 4.3.3 - tapable: 2.3.0 - webpack: 5.103.0 - - minimalistic-assert@1.0.1: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - minimist@1.2.8: {} - - mrmime@2.0.1: {} - - ms@2.0.0: {} - - ms@2.1.3: {} - - multicast-dns@7.2.5: - dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 - - nanoid@3.3.11: {} - - negotiator@0.6.3: {} - - negotiator@0.6.4: {} - - neo-async@2.6.2: {} - - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.8.1 - - node-emoji@2.2.0: - dependencies: - '@sindresorhus/is': 4.6.0 - char-regex: 1.0.2 - emojilib: 2.4.0 - skin-tone: 2.0.0 - - node-forge@1.3.3: {} - - node-releases@2.0.27: {} - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - normalize-url@8.1.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - nprogress@0.2.0: {} - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - null-loader@4.0.1(webpack@5.103.0): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.103.0 - - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - obuf@1.1.2: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - on-headers@1.1.0: {} - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - open@10.2.0: - dependencies: - default-browser: 5.4.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - wsl-utils: 0.1.0 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - opener@1.5.2: {} - - p-cancelable@3.0.0: {} - - p-finally@1.0.0: {} - - p-limit@4.0.0: - dependencies: - yocto-queue: 1.2.2 - - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - - p-queue@6.6.2: - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - - p-retry@6.2.1: - dependencies: - '@types/retry': 0.12.2 - is-network-error: 1.3.0 - retry: 0.13.1 - - p-timeout@3.2.0: - dependencies: - p-finally: 1.0.0 - - package-json@8.1.1: - dependencies: - got: 12.6.1 - registry-auth-token: 5.1.0 - registry-url: 6.0.1 - semver: 7.7.3 - - param-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-entities@4.0.2: - dependencies: - '@types/unist': 2.0.11 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.27.1 - error-ex: 1.3.4 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-numeric-range@1.3.0: {} - - parse5-htmlparser2-tree-adapter@7.1.0: - dependencies: - domhandler: 5.0.3 - parse5: 7.3.0 - - parse5@7.3.0: - dependencies: - entities: 6.0.1 - - parseurl@1.3.3: {} - - pascal-case@3.1.2: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - - path-exists@5.0.0: {} - - path-is-inside@1.0.2: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-to-regexp@0.1.12: {} + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} - path-to-regexp@1.9.0: - dependencies: - isarray: 0.0.1 + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - path-to-regexp@3.3.0: {} + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} - path-type@4.0.0: {} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - picocolors@1.1.1: {} + superjson@2.2.6: + resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} + engines: {node: '>=16'} - picomatch@2.3.1: {} + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} - pkg-dir@7.0.0: - dependencies: - find-up: 6.3.0 + tailwindcss@4.1.18: + resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} - postcss-calc@9.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true - postcss-clamp@4.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - postcss-color-functional-notation@7.0.12(postcss@8.5.6): - dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true - postcss-color-hex-alpha@10.0.0(postcss@8.5.6): - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - postcss-color-rebeccapurple@10.0.0(postcss@8.5.6): - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} - postcss-colormin@6.1.0(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - postcss-convert-values@6.1.0(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - 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.6 + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - 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.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - 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.6 - postcss-selector-parser: 7.1.1 + update-browserslist-db@1.2.2: + resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' - postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - postcss-discard-comments@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - postcss-discard-duplicates@6.0.3(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true - postcss-discard-empty@6.0.3(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + vitepress-plugin-tabs@0.5.0: + resolution: {integrity: sha512-SIhFWwGsUkTByfc2b279ray/E0Jt8vDTsM1LiHxmCOBAEMmvzIBZSuYYT1DpdDTiS3SuJieBheJkYnwCq/yD9A==} + peerDependencies: + vitepress: ^1.0.0-rc.27 + vue: ^3.3.8 - postcss-discard-overridden@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + vitepress@1.6.4: + resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true - postcss-discard-unused@6.0.5(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + vue@3.5.27: + resolution: {integrity: sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - postcss-double-position-gradients@6.0.4(postcss@8.5.6): - dependencies: - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - postcss-focus-visible@10.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 +snapshots: - postcss-focus-within@9.0.1(postcss@8.5.6): + '@algolia/abtesting@1.12.0': dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-font-variant@5.0.0(postcss@8.5.6): + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3)': dependencies: - postcss: 8.5.6 + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights - postcss-gap-properties@6.0.0(postcss@8.5.6): + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3)': dependencies: - postcss: 8.5.6 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0) + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch - postcss-image-set-function@7.0.0(postcss@8.5.6): + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0) + '@algolia/client-search': 5.46.0 + algoliasearch: 5.46.0 - postcss-lab-function@7.0.12(postcss@8.5.6): + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)': dependencies: - '@csstools/css-color-parser': 3.1.0(@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.2.1(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@algolia/client-search': 5.46.0 + algoliasearch: 5.46.0 - postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.6.3)(webpack@5.103.0): + '@algolia/client-abtesting@5.46.0': dependencies: - cosmiconfig: 8.3.6(typescript@5.6.3) - jiti: 1.21.7 - postcss: 8.5.6 - semver: 7.7.3 - webpack: 5.103.0 - transitivePeerDependencies: - - typescript + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-logical@8.1.0(postcss@8.5.6): + '@algolia/client-analytics@5.46.0': dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-merge-idents@6.0.3(postcss@8.5.6): - dependencies: - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/client-common@5.46.0': {} - postcss-merge-longhand@6.0.5(postcss@8.5.6): + '@algolia/client-insights@5.46.0': dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.5.6) + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-merge-rules@6.1.1(postcss@8.5.6): + '@algolia/client-personalization@5.46.0': dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-minify-font-values@6.1.0(postcss@8.5.6): + '@algolia/client-query-suggestions@5.46.0': dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-minify-gradients@6.0.3(postcss@8.5.6): + '@algolia/client-search@5.46.0': dependencies: - colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-minify-params@6.1.0(postcss@8.5.6): + '@algolia/ingestion@1.46.0': dependencies: - browserslist: 4.28.1 - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-minify-selectors@6.0.4(postcss@8.5.6): + '@algolia/monitoring@1.46.0': dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + '@algolia/recommend@5.46.0': dependencies: - postcss: 8.5.6 + '@algolia/client-common': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + '@algolia/requester-browser-xhr@5.46.0': dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - postcss-value-parser: 4.2.0 + '@algolia/client-common': 5.46.0 - postcss-modules-scope@3.2.1(postcss@8.5.6): + '@algolia/requester-fetch@5.46.0': dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + '@algolia/client-common': 5.46.0 - postcss-modules-values@4.0.0(postcss@8.5.6): + '@algolia/requester-node-http@5.46.0': dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + '@algolia/client-common': 5.46.0 - postcss-nesting@13.0.2(postcss@8.5.6): - dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.1) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + '@alloc/quick-lru@5.2.0': {} - postcss-normalize-charset@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + '@babel/helper-string-parser@7.27.1': {} - postcss-normalize-display-values@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@babel/helper-validator-identifier@7.28.5': {} - postcss-normalize-positions@6.0.2(postcss@8.5.6): + '@babel/parser@7.28.5': dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@babel/types': 7.28.5 - postcss-normalize-repeat-style@6.0.2(postcss@8.5.6): + '@babel/types@7.28.5': dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 - postcss-normalize-string@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@docsearch/css@3.8.2': {} - postcss-normalize-timing-functions@6.0.2(postcss@8.5.6): + '@docsearch/js@3.8.2(@algolia/client-search@5.46.0)(search-insights@2.17.3)': dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@docsearch/react': 3.8.2(@algolia/client-search@5.46.0)(search-insights@2.17.3) + preact: 10.28.2 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights - postcss-normalize-unicode@6.1.0(postcss@8.5.6): + '@docsearch/react@3.8.2(@algolia/client-search@5.46.0)(search-insights@2.17.3)': dependencies: - browserslist: 4.28.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.46.0)(algoliasearch@5.46.0) + '@docsearch/css': 3.8.2 + algoliasearch: 5.46.0 + optionalDependencies: + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' - postcss-normalize-url@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/aix-ppc64@0.21.5': + optional: true - postcss-normalize-whitespace@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/android-arm64@0.21.5': + optional: true - postcss-opacity-percentage@3.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + '@esbuild/android-arm@0.21.5': + optional: true - postcss-ordered-values@6.0.2(postcss@8.5.6): - dependencies: - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/android-x64@0.21.5': + optional: true - postcss-overflow-shorthand@6.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/darwin-arm64@0.21.5': + optional: true - postcss-page-break@3.0.4(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + '@esbuild/darwin-x64@0.21.5': + optional: true - postcss-place@10.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/freebsd-arm64@0.21.5': + optional: true - postcss-preset-env@10.5.0(postcss@8.5.6): - dependencies: - '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.6) - '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.6) - '@csstools/postcss-color-function': 4.0.12(postcss@8.5.6) - '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.6) - '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.6) - '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.6) - '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.6) - '@csstools/postcss-contrast-color-function': 2.0.12(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.11(postcss@8.5.6) - '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.6) - '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.6) - '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.6) - '@csstools/postcss-initial': 2.0.1(postcss@8.5.6) - '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.6) - '@csstools/postcss-light-dark-function': 2.0.11(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.12(postcss@8.5.6) - '@csstools/postcss-position-area-property': 1.0.0(postcss@8.5.6) - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) - '@csstools/postcss-random-function': 2.0.1(postcss@8.5.6) - '@csstools/postcss-relative-color-syntax': 3.0.12(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-system-ui-font-family': 1.0.0(postcss@8.5.6) - '@csstools/postcss-text-decoration-shorthand': 4.0.3(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.22(postcss@8.5.6) - browserslist: 4.28.1 - css-blank-pseudo: 7.0.1(postcss@8.5.6) - css-has-pseudo: 7.0.3(postcss@8.5.6) - css-prefers-color-scheme: 10.0.0(postcss@8.5.6) - cssdb: 8.5.2 - 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.12(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.4(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.12(postcss@8.5.6) - postcss-logical: 8.1.0(postcss@8.5.6) - postcss-nesting: 13.0.2(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.1 + '@esbuild/freebsd-x64@0.21.5': + optional: true - postcss-reduce-idents@6.0.3(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/linux-arm64@0.21.5': + optional: true - postcss-reduce-initial@6.1.0(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - postcss: 8.5.6 + '@esbuild/linux-arm@0.21.5': + optional: true - postcss-reduce-transforms@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 + '@esbuild/linux-ia32@0.21.5': + optional: true - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + '@esbuild/linux-loong64@0.21.5': + optional: true - postcss-selector-not@8.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + '@esbuild/linux-mips64el@0.21.5': + optional: true - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 + '@esbuild/linux-ppc64@0.21.5': + optional: true - postcss-selector-parser@7.1.1: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 + '@esbuild/linux-riscv64@0.21.5': + optional: true - postcss-sort-media-queries@5.2.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - sort-css-media-queries: 2.2.0 + '@esbuild/linux-s390x@0.21.5': + optional: true - postcss-svgo@6.0.3(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 + '@esbuild/linux-x64@0.21.5': + optional: true - postcss-unique-selectors@6.0.4(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + '@esbuild/netbsd-x64@0.21.5': + optional: true - postcss-value-parser@4.2.0: {} + '@esbuild/openbsd-x64@0.21.5': + optional: true - postcss-zindex@6.0.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + '@esbuild/sunos-x64@0.21.5': + optional: true - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 + '@esbuild/win32-arm64@0.21.5': + optional: true - posthog-docusaurus@2.0.5: {} + '@esbuild/win32-ia32@0.21.5': + optional: true - prettier@3.7.4: {} + '@esbuild/win32-x64@0.21.5': + optional: true - pretty-error@4.0.0: + '@iconify-json/simple-icons@1.2.68': dependencies: - lodash: 4.17.23 - renderkid: 3.0.0 + '@iconify/types': 2.0.0 - pretty-time@1.1.0: {} + '@iconify/types@2.0.0': {} - prism-react-renderer@2.4.1(react@19.2.1): + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@types/prismjs': 1.26.5 - clsx: 2.1.1 - react: 19.2.1 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - prismjs@1.30.0: {} + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - process-nextick-args@2.0.1: {} + '@jridgewell/resolve-uri@3.1.2': {} - prompts@2.4.2: + '@jridgewell/source-map@0.3.11': dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + optional: true - prop-types@15.8.1: + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - property-information@7.1.0: {} + '@rollup/rollup-android-arm-eabi@4.57.1': + optional: true - proto-list@1.2.4: {} + '@rollup/rollup-android-arm64@4.57.1': + optional: true - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 + '@rollup/rollup-darwin-arm64@4.57.1': + optional: true - punycode@2.3.1: {} + '@rollup/rollup-darwin-x64@4.57.1': + optional: true - pupa@3.3.0: - dependencies: - escape-goat: 4.0.0 + '@rollup/rollup-freebsd-arm64@4.57.1': + optional: true - qs@6.14.1: - dependencies: - side-channel: 1.1.0 + '@rollup/rollup-freebsd-x64@4.57.1': + optional: true - queue-microtask@1.2.3: {} + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + optional: true - quick-lru@5.1.1: {} + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + optional: true - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 + '@rollup/rollup-linux-arm64-gnu@4.57.1': + optional: true - range-parser@1.2.0: {} + '@rollup/rollup-linux-arm64-musl@4.57.1': + optional: true - range-parser@1.2.1: {} + '@rollup/rollup-linux-loong64-gnu@4.57.1': + optional: true - raw-body@2.5.3: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 + '@rollup/rollup-linux-loong64-musl@4.57.1': + optional: true - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + optional: true - react-dom@19.2.1(react@19.2.1): - dependencies: - react: 19.2.1 - scheduler: 0.27.0 + '@rollup/rollup-linux-ppc64-musl@4.57.1': + optional: true - react-fast-compare@3.2.2: {} + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + optional: true - react-icons@5.5.0(react@19.2.1): - dependencies: - react: 19.2.1 + '@rollup/rollup-linux-riscv64-musl@4.57.1': + optional: true - react-is@16.13.1: {} + '@rollup/rollup-linux-s390x-gnu@4.57.1': + optional: true - react-json-view-lite@2.5.0(react@19.2.1): - dependencies: - react: 19.2.1 + '@rollup/rollup-linux-x64-gnu@4.57.1': + optional: true - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.1))(webpack@5.103.0): - dependencies: - '@babel/runtime': 7.28.4 - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.1)' - webpack: 5.103.0 + '@rollup/rollup-linux-x64-musl@4.57.1': + optional: true - react-router-config@5.1.1(react-router@5.3.4(react@19.2.1))(react@19.2.1): - dependencies: - '@babel/runtime': 7.28.4 - react: 19.2.1 - react-router: 5.3.4(react@19.2.1) + '@rollup/rollup-openbsd-x64@4.57.1': + optional: true - react-router-dom@5.3.4(react@19.2.1): - dependencies: - '@babel/runtime': 7.28.4 - history: 4.10.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 19.2.1 - react-router: 5.3.4(react@19.2.1) - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - - react-router@5.3.4(react@19.2.1): - dependencies: - '@babel/runtime': 7.28.4 - history: 4.10.1 - hoist-non-react-statics: 3.3.2 - loose-envify: 1.4.0 - path-to-regexp: 1.9.0 - prop-types: 15.8.1 - react: 19.2.1 - react-is: 16.13.1 - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - - react@19.2.1: {} - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 + '@rollup/rollup-openharmony-arm64@4.57.1': + optional: true - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 + '@rollup/rollup-win32-arm64-msvc@4.57.1': + optional: true - recma-build-jsx@1.0.0: - dependencies: - '@types/estree': 1.0.8 - estree-util-build-jsx: 3.0.1 - vfile: 6.0.3 + '@rollup/rollup-win32-ia32-msvc@4.57.1': + optional: true - recma-jsx@1.0.1(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - 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 - unified: 11.0.5 + '@rollup/rollup-win32-x64-gnu@4.57.1': + optional: true - recma-parse@1.0.0: - dependencies: - '@types/estree': 1.0.8 - esast-util-from-js: 2.0.1 - unified: 11.0.5 - vfile: 6.0.3 + '@rollup/rollup-win32-x64-msvc@4.57.1': + optional: true - recma-stringify@1.0.0: + '@shikijs/core@2.5.0': dependencies: - '@types/estree': 1.0.8 - estree-util-to-js: 2.0.0 - unified: 11.0.5 - vfile: 6.0.3 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 - regenerate-unicode-properties@10.2.2: + '@shikijs/engine-javascript@2.5.0': dependencies: - regenerate: 1.4.2 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 - regenerate@1.4.2: {} - - regexpu-core@6.4.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.2 - regjsgen: 0.8.0 - regjsparser: 0.13.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.1 - - registry-auth-token@5.1.0: + '@shikijs/engine-oniguruma@2.5.0': dependencies: - '@pnpm/npm-conf': 2.3.1 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 - registry-url@6.0.1: + '@shikijs/langs@2.5.0': dependencies: - rc: 1.2.8 + '@shikijs/types': 2.5.0 - regjsgen@0.8.0: {} - - regjsparser@0.13.0: + '@shikijs/themes@2.5.0': dependencies: - jsesc: 3.1.0 + '@shikijs/types': 2.5.0 - rehype-raw@7.0.0: + '@shikijs/transformers@2.5.0': dependencies: - '@types/hast': 3.0.4 - hast-util-raw: 9.1.0 - vfile: 6.0.3 + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 - rehype-recma@1.0.0: + '@shikijs/types@2.5.0': dependencies: - '@types/estree': 1.0.8 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - hast-util-to-estree: 3.1.3 - transitivePeerDependencies: - - supports-color - - relateurl@0.2.7: {} - remark-directive@3.0.1: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-directive: 3.1.0 - micromark-extension-directive: 3.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color + '@shikijs/vscode-textmate@10.0.2': {} - remark-emoji@4.0.1: + '@tailwindcss/node@4.1.18': dependencies: - '@types/mdast': 4.0.4 - emoticon: 4.1.0 - mdast-util-find-and-replace: 3.0.2 - node-emoji: 2.2.0 - unified: 11.0.5 + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.6.1 + lightningcss: 1.30.2 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.1.18 - remark-frontmatter@5.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-frontmatter: 2.0.1 - micromark-extension-frontmatter: 2.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color + '@tailwindcss/oxide-android-arm64@4.1.18': + optional: true - remark-gfm@4.0.1: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 - micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color + '@tailwindcss/oxide-darwin-arm64@4.1.18': + optional: true - remark-mdx@3.1.1: - dependencies: - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - transitivePeerDependencies: - - supports-color + '@tailwindcss/oxide-darwin-x64@4.1.18': + optional: true - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color + '@tailwindcss/oxide-freebsd-x64@4.1.18': + optional: true - remark-rehype@11.1.2: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.1 - unified: 11.0.5 - vfile: 6.0.3 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + optional: true - remark-stringify@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.2 - unified: 11.0.5 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + optional: true - renderkid@3.0.0: - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.23 - strip-ansi: 6.0.1 + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + optional: true - repeat-string@1.6.1: {} + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + optional: true - require-from-string@2.0.2: {} + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + optional: true - require-like@0.1.2: {} + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + optional: true - requires-port@1.0.0: {} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + optional: true - resolve-alpn@1.2.1: {} + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + optional: true - resolve-from@4.0.0: {} + '@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 - resolve-pathname@3.0.0: {} + '@types/estree@1.0.8': {} - resolve@1.22.11: + '@types/hast@3.0.4': dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + '@types/unist': 3.0.3 + + '@types/linkify-it@5.0.0': {} - responselike@3.0.0: + '@types/markdown-it@14.1.2': dependencies: - lowercase-keys: 3.0.0 + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 - retry@0.13.1: {} + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 - reusify@1.1.0: {} + '@types/mdurl@2.0.0': {} - rtlcss@4.3.0: + '@types/node@24.10.2': dependencies: - escalade: 3.2.0 - picocolors: 1.1.1 - postcss: 8.5.6 - strip-json-comments: 3.1.1 + undici-types: 7.16.0 + optional: true - run-applescript@7.1.0: {} + '@types/unist@3.0.3': {} - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 + '@types/web-bluetooth@0.0.21': {} - safe-buffer@5.1.2: {} + '@ungap/structured-clone@1.3.0': {} - safe-buffer@5.2.1: {} + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@24.10.2)(lightningcss@1.30.2)(terser@5.44.1))(vue@3.5.27(typescript@5.6.3))': + dependencies: + vite: 5.4.21(@types/node@24.10.2)(lightningcss@1.30.2)(terser@5.44.1) + vue: 3.5.27(typescript@5.6.3) - safer-buffer@2.1.2: {} + '@vue/compiler-core@3.5.27': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.27 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 - sax@1.4.3: {} + '@vue/compiler-dom@3.5.27': + dependencies: + '@vue/compiler-core': 3.5.27 + '@vue/shared': 3.5.27 - scheduler@0.27.0: {} + '@vue/compiler-sfc@3.5.27': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.27 + '@vue/compiler-dom': 3.5.27 + '@vue/compiler-ssr': 3.5.27 + '@vue/shared': 3.5.27 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 - schema-dts@1.1.5: {} + '@vue/compiler-ssr@3.5.27': + dependencies: + '@vue/compiler-dom': 3.5.27 + '@vue/shared': 3.5.27 - schema-utils@3.3.0: + '@vue/devtools-api@7.7.9': dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + '@vue/devtools-kit': 7.7.9 - schema-utils@4.3.3: + '@vue/devtools-kit@7.7.9': dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + '@vue/devtools-shared': 7.7.9 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.6 - search-insights@2.17.3: {} + '@vue/devtools-shared@7.7.9': + dependencies: + rfdc: 1.4.1 - section-matter@1.0.0: + '@vue/reactivity@3.5.27': dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 + '@vue/shared': 3.5.27 - select-hose@2.0.0: {} + '@vue/runtime-core@3.5.27': + dependencies: + '@vue/reactivity': 3.5.27 + '@vue/shared': 3.5.27 - selfsigned@2.4.1: + '@vue/runtime-dom@3.5.27': dependencies: - '@types/node-forge': 1.3.14 - node-forge: 1.3.3 + '@vue/reactivity': 3.5.27 + '@vue/runtime-core': 3.5.27 + '@vue/shared': 3.5.27 + csstype: 3.2.3 - semver-diff@4.0.0: + '@vue/server-renderer@3.5.27(vue@3.5.27(typescript@5.6.3))': dependencies: - semver: 7.7.3 + '@vue/compiler-ssr': 3.5.27 + '@vue/shared': 3.5.27 + vue: 3.5.27(typescript@5.6.3) - semver@6.3.1: {} + '@vue/shared@3.5.27': {} - semver@7.7.3: {} + '@vueuse/core@12.8.2(typescript@5.6.3)': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 12.8.2 + '@vueuse/shared': 12.8.2(typescript@5.6.3) + vue: 3.5.27(typescript@5.6.3) + transitivePeerDependencies: + - typescript - send@0.19.0: + '@vueuse/integrations@12.8.2(focus-trap@7.8.0)(nprogress@0.2.0)(typescript@5.6.3)': dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 + '@vueuse/core': 12.8.2(typescript@5.6.3) + '@vueuse/shared': 12.8.2(typescript@5.6.3) + vue: 3.5.27(typescript@5.6.3) + optionalDependencies: + focus-trap: 7.8.0 + nprogress: 0.2.0 transitivePeerDependencies: - - supports-color + - typescript - send@0.19.1: + '@vueuse/metadata@12.8.2': {} + + '@vueuse/shared@12.8.2(typescript@5.6.3)': dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 + vue: 3.5.27(typescript@5.6.3) transitivePeerDependencies: - - supports-color + - typescript - serialize-javascript@6.0.2: + acorn@8.15.0: + optional: true + + algoliasearch@5.46.0: dependencies: - randombytes: 2.1.0 + '@algolia/abtesting': 1.12.0 + '@algolia/client-abtesting': 5.46.0 + '@algolia/client-analytics': 5.46.0 + '@algolia/client-common': 5.46.0 + '@algolia/client-insights': 5.46.0 + '@algolia/client-personalization': 5.46.0 + '@algolia/client-query-suggestions': 5.46.0 + '@algolia/client-search': 5.46.0 + '@algolia/ingestion': 1.46.0 + '@algolia/monitoring': 1.46.0 + '@algolia/recommend': 5.46.0 + '@algolia/requester-browser-xhr': 5.46.0 + '@algolia/requester-fetch': 5.46.0 + '@algolia/requester-node-http': 5.46.0 - serve-handler@6.1.6: + autoprefixer@10.4.22(postcss@8.5.6): dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 3.3.0 - range-parser: 1.2.0 - - serve-index@1.9.1: + browserslist: 4.28.1 + caniuse-lite: 1.0.30001760 + fraction.js: 5.3.4 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + baseline-browser-mapping@2.9.5: {} + + birpc@2.9.0: {} + + browserslist@4.28.1: dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color + baseline-browser-mapping: 2.9.5 + caniuse-lite: 1.0.30001760 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.2(browserslist@4.28.1) + + buffer-from@1.1.2: + optional: true - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color + caniuse-lite@1.0.30001760: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 + ccount@2.0.1: {} - setprototypeof@1.1.0: {} + character-entities-html4@2.1.0: {} - setprototypeof@1.2.0: {} + character-entities-legacy@3.0.0: {} - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 + comma-separated-tokens@2.0.3: {} - shallowequal@1.1.0: {} + commander@2.20.3: + optional: true - shebang-command@2.0.0: + copy-anything@4.0.5: dependencies: - shebang-regex: 3.0.0 + is-what: 5.5.0 - shebang-regex@3.0.0: {} + csstype@3.2.3: {} - shell-quote@1.8.3: {} + dequal@2.0.3: {} - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 + detect-libc@2.1.2: {} - side-channel-map@1.0.1: + devlop@1.1.0: dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 + dequal: 2.0.3 - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 + electron-to-chromium@1.5.267: {} - side-channel@1.1.0: + emoji-regex-xs@1.0.0: {} + + enhanced-resolve@5.18.3: dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 + graceful-fs: 4.2.11 + tapable: 2.3.0 - signal-exit@3.0.7: {} + entities@7.0.1: {} - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 - sisteransi@1.0.5: {} + escalade@3.2.0: {} - sitemap@7.1.2: - dependencies: - '@types/node': 17.0.45 - '@types/sax': 1.2.7 - arg: 5.0.2 - sax: 1.4.3 + estree-walker@2.0.2: {} - skin-tone@2.0.0: + focus-trap@7.8.0: dependencies: - unicode-emoji-modifier-base: 1.0.0 + tabbable: 6.4.0 + + fraction.js@5.3.4: {} - slash@3.0.0: {} + fsevents@2.3.3: + optional: true - slash@4.0.0: {} + graceful-fs@4.2.11: {} - snake-case@3.0.4: + hast-util-to-html@9.0.5: dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 - sockjs@0.3.24: + hast-util-whitespace@3.0.0: dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 + '@types/hast': 3.0.4 - sort-css-media-queries@2.2.0: {} + hookable@5.5.3: {} - source-map-js@1.2.1: {} + html-void-elements@3.0.0: {} - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 + is-what@5.5.0: {} - source-map@0.6.1: {} + jiti@2.6.1: {} - source-map@0.7.6: {} + lightningcss-android-arm64@1.30.2: + optional: true - space-separated-tokens@2.0.2: {} + lightningcss-darwin-arm64@1.30.2: + optional: true - spdy-transport@3.0.0: - dependencies: - debug: 4.4.3 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color + lightningcss-darwin-x64@1.30.2: + optional: true - spdy@4.0.2: - dependencies: - debug: 4.4.3 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color + lightningcss-freebsd-x64@1.30.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true - sprintf-js@1.0.3: {} + lightningcss-linux-arm64-gnu@1.30.2: + optional: true - srcset@4.0.0: {} + lightningcss-linux-arm64-musl@1.30.2: + optional: true - statuses@1.5.0: {} + lightningcss-linux-x64-gnu@1.30.2: + optional: true - statuses@2.0.1: {} + lightningcss-linux-x64-musl@1.30.2: + optional: true - statuses@2.0.2: {} + lightningcss-win32-arm64-msvc@1.30.2: + optional: true - std-env@3.10.0: {} + lightningcss-win32-x64-msvc@1.30.2: + optional: true - string-width@4.2.3: + lightningcss@1.30.2: dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 + 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 - string-width@5.1.2: + lucide-vue-next@0.474.0(vue@3.5.27(typescript@5.6.3)): dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.2 + vue: 3.5.27(typescript@5.6.3) - string_decoder@1.1.1: + magic-string@0.30.21: dependencies: - safe-buffer: 5.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 + mark.js@8.11.1: {} - stringify-entities@4.0.4: + mdast-util-to-hast@13.2.1: dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 - stringify-object@3.3.0: + micromark-util-character@2.1.1: dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 + micromark-util-encode@2.0.1: {} - strip-ansi@7.1.2: + micromark-util-sanitize-uri@2.0.1: dependencies: - ansi-regex: 6.2.2 + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 - strip-bom-string@1.0.0: {} + micromark-util-symbol@2.0.1: {} - strip-final-newline@2.0.0: {} + micromark-util-types@2.0.2: {} - strip-json-comments@2.0.1: {} + minisearch@7.2.0: {} - strip-json-comments@3.1.1: {} + mitt@3.0.1: {} - style-to-js@1.1.21: - dependencies: - style-to-object: 1.0.14 + nanoid@3.3.11: {} - style-to-object@1.0.14: - dependencies: - inline-style-parser: 0.2.7 + node-releases@2.0.27: {} - stylehacks@6.1.1(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + normalize-range@0.1.2: {} - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 + nprogress@0.2.0: + optional: true - supports-color@8.1.1: + oniguruma-to-es@3.1.1: dependencies: - has-flag: 4.0.0 + emoji-regex-xs: 1.0.0 + regex: 6.1.0 + regex-recursion: 6.0.2 - supports-preserve-symlinks-flag@1.0.0: {} + perfect-debounce@1.0.0: {} - svg-parser@2.0.4: {} + picocolors@1.1.1: {} - svgo@3.3.2: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.2.2 - css-tree: 2.3.1 - css-what: 6.2.2 - csso: 5.0.5 - picocolors: 1.1.1 + postcss-value-parser@4.2.0: {} - swr@2.3.7(react@19.2.1): + postcss@8.5.6: dependencies: - dequal: 2.0.3 - react: 19.2.1 - use-sync-external-store: 1.6.0(react@19.2.1) + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 - tapable@2.3.0: {} + preact@10.28.2: {} - terser-webpack-plugin@5.3.15(webpack@5.103.0): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.103.0 + prettier@3.7.4: {} - terser@5.44.1: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 + property-information@7.1.0: {} - thingies@2.5.0(tslib@2.8.1): + regex-recursion@6.0.2: dependencies: - tslib: 2.8.1 - - throttleit@2.1.0: {} - - thunky@1.1.0: {} + regex-utilities: 2.3.0 - tiny-invariant@1.3.3: {} + regex-utilities@2.3.0: {} - tiny-warning@1.0.3: {} + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 - tinypool@1.1.1: {} + rfdc@1.4.1: {} - to-regex-range@5.0.1: + rollup@4.57.1: dependencies: - is-number: 7.0.0 - - toidentifier@1.0.1: {} + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 + fsevents: 2.3.3 - totalist@3.0.1: {} + search-insights@2.17.3: {} - tree-dump@1.1.0(tslib@2.8.1): + shiki@2.5.0: dependencies: - tslib: 2.8.1 - - trim-lines@3.0.1: {} + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 - trough@2.2.0: {} + source-map-js@1.2.1: {} - tslib@2.8.1: {} + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + optional: true - type-fest@0.21.3: {} + source-map@0.6.1: + optional: true - type-fest@1.4.0: {} + space-separated-tokens@2.0.2: {} - type-fest@2.19.0: {} + speakingurl@14.0.1: {} - type-is@1.6.18: + stringify-entities@4.0.4: dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 - typedarray-to-buffer@3.1.5: + superjson@2.2.6: dependencies: - is-typedarray: 1.0.0 - - typescript@5.6.3: {} + copy-anything: 4.0.5 - undici-types@7.16.0: {} + tabbable@6.4.0: {} - unicode-canonical-property-names-ecmascript@2.0.1: {} + tailwindcss@4.1.18: {} - unicode-emoji-modifier-base@1.0.0: {} + tapable@2.3.0: {} - unicode-match-property-ecmascript@2.0.0: + terser@5.44.1: dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.2.0 - - unicode-match-property-value-ecmascript@2.2.1: {} + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + optional: true - unicode-property-aliases-ecmascript@2.2.0: {} + trim-lines@3.0.1: {} - unified@11.0.5: - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 + typescript@5.6.3: + optional: true - unique-string@3.0.0: - dependencies: - crypto-random-string: 4.0.0 + undici-types@7.16.0: + optional: true unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 - unist-util-position-from-estree@2.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -11160,69 +2112,12 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - universalify@2.0.1: {} - - unpipe@1.0.0: {} - update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 - update-notifier@6.0.2: - dependencies: - boxen: 7.1.1 - chalk: 5.6.2 - configstore: 6.0.0 - has-yarn: 3.0.0 - import-lazy: 4.0.0 - is-ci: 3.0.1 - is-installed-globally: 0.4.0 - is-npm: 6.1.0 - is-yarn-global: 0.4.1 - latest-version: 7.0.0 - pupa: 3.3.0 - semver: 7.7.3 - semver-diff: 4.0.0 - xdg-basedir: 5.1.0 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - url-loader@4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0): - dependencies: - loader-utils: 2.0.4 - mime-types: 2.1.35 - schema-utils: 3.3.0 - webpack: 5.103.0 - optionalDependencies: - file-loader: 6.2.0(webpack@5.103.0) - - use-sync-external-store@1.6.0(react@19.2.1): - dependencies: - react: 19.2.1 - - util-deprecate@1.0.2: {} - - utila@0.4.0: {} - - utility-types@3.11.0: {} - - utils-merge@1.0.1: {} - - uuid@8.3.2: {} - - value-equal@1.0.1: {} - - vary@1.1.2: {} - - vfile-location@5.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile: 6.0.3 - vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 @@ -11233,197 +2128,79 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - watchpack@2.4.4: + vite@5.4.21(@types/node@24.10.2)(lightningcss@1.30.2)(terser@5.44.1): dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - - web-namespaces@2.0.1: {} - - webpack-bundle-analyzer@4.10.2: - dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.15.0 - acorn-walk: 8.3.4 - commander: 7.2.0 - debounce: 1.2.1 - escape-string-regexp: 4.0.0 - gzip-size: 6.0.0 - html-escaper: 2.0.2 - opener: 1.5.2 - picocolors: 1.1.1 - sirv: 2.0.4 - ws: 7.5.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - webpack-dev-middleware@7.4.5(webpack@5.103.0): - dependencies: - colorette: 2.0.20 - memfs: 4.51.1 - mime-types: 3.0.2 - on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.3.3 + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.57.1 optionalDependencies: - webpack: 5.103.0 + '@types/node': 24.10.2 + fsevents: 2.3.3 + lightningcss: 1.30.2 + terser: 5.44.1 - webpack-dev-server@5.2.1(webpack@5.103.0): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.7 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 - ansi-html-community: 0.0.8 - bonjour-service: 1.3.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.8.1 - connect-history-api-fallback: 2.0.0 - express: 4.22.1 - graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25) - ipaddr.js: 2.3.0 - launch-editor: 2.12.0 - open: 10.2.0 - p-retry: 6.2.1 - schema-utils: 4.3.3 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.103.0) - ws: 8.18.3 + vitepress-plugin-tabs@0.5.0(vitepress@1.6.4(@algolia/client-search@5.46.0)(@types/node@24.10.2)(lightningcss@1.30.2)(nprogress@0.2.0)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.1)(typescript@5.6.3))(vue@3.5.27(typescript@5.6.3)): + dependencies: + vitepress: 1.6.4(@algolia/client-search@5.46.0)(@types/node@24.10.2)(lightningcss@1.30.2)(nprogress@0.2.0)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.1)(typescript@5.6.3) + vue: 3.5.27(typescript@5.6.3) + + vitepress@1.6.4(@algolia/client-search@5.46.0)(@types/node@24.10.2)(lightningcss@1.30.2)(nprogress@0.2.0)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.1)(typescript@5.6.3): + dependencies: + '@docsearch/css': 3.8.2 + '@docsearch/js': 3.8.2(@algolia/client-search@5.46.0)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.68 + '@shikijs/core': 2.5.0 + '@shikijs/transformers': 2.5.0 + '@shikijs/types': 2.5.0 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@24.10.2)(lightningcss@1.30.2)(terser@5.44.1))(vue@3.5.27(typescript@5.6.3)) + '@vue/devtools-api': 7.7.9 + '@vue/shared': 3.5.27 + '@vueuse/core': 12.8.2(typescript@5.6.3) + '@vueuse/integrations': 12.8.2(focus-trap@7.8.0)(nprogress@0.2.0)(typescript@5.6.3) + focus-trap: 7.8.0 + mark.js: 8.11.1 + minisearch: 7.2.0 + shiki: 2.5.0 + vite: 5.4.21(@types/node@24.10.2)(lightningcss@1.30.2)(terser@5.44.1) + vue: 3.5.27(typescript@5.6.3) optionalDependencies: - webpack: 5.103.0 - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack-merge@5.10.0: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-merge@6.0.1: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-sources@3.3.3: {} - - webpack@5.103.0: - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.15(webpack@5.103.0) - watchpack: 2.4.4 - webpack-sources: 3.3.3 + postcss: 8.5.6 transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpackbar@6.0.1(webpack@5.103.0): - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - consola: 3.4.2 - figures: 3.2.0 - markdown-table: 2.0.0 - pretty-time: 1.1.0 - std-env: 3.10.0 - webpack: 5.103.0 - wrap-ansi: 7.0.0 - - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.10 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - widest-line@4.0.1: - dependencies: - string-width: 5.1.2 - - wildcard@2.0.1: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.1.2 - - write-file-atomic@3.0.3: - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - - ws@7.5.10: {} - - ws@8.18.3: {} - - wsl-utils@0.1.0: - dependencies: - is-wsl: 3.1.0 - - xdg-basedir@5.1.0: {} + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - sass-embedded + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie - xml-js@1.6.11: + vue@3.5.27(typescript@5.6.3): dependencies: - sax: 1.4.3 - - yallist@3.1.1: {} - - yocto-queue@1.2.2: {} - - zod@4.1.13: {} + '@vue/compiler-dom': 3.5.27 + '@vue/compiler-sfc': 3.5.27 + '@vue/runtime-dom': 3.5.27 + '@vue/server-renderer': 3.5.27(vue@3.5.27(typescript@5.6.3)) + '@vue/shared': 3.5.27 + optionalDependencies: + typescript: 5.6.3 zwitch@2.0.4: {} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..fe8801dc --- /dev/null +++ b/postcss.config.js @@ -0,0 +1 @@ +export default { plugins: { "@tailwindcss/postcss": {}, autoprefixer: {} } }; diff --git a/sidebars.ts b/sidebars.ts deleted file mode 100644 index ade9696d..00000000 --- a/sidebars.ts +++ /dev/null @@ -1,357 +0,0 @@ -import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; - -const sidebars: SidebarsConfig = { - tutorialSidebar: [ - { - type: "category", - collapsed: false, - label: "Get started", - items: [ - "introduction/home", - "introduction/quickstart", - "introduction/core-concepts", - { - type: "category", - label: "Tutorials", - link: { type: "doc", id: "introduction/tutorials/overview" }, - items: [ - "introduction/tutorials/create-workspace", - "introduction/tutorials/invite-members", - "introduction/tutorials/create-project", - "introduction/tutorials/create-work-items", - "introduction/tutorials/collaborate-on-work-items", - "introduction/tutorials/organize-and-view-work", - "introduction/tutorials/plan-and-create-cycles", - "introduction/tutorials/create-pages", - ], - }, - { - type: "link", - label: "Download Plane", - href: "https://plane.so/download", - }, - { - type: "link", - label: "Self-host Plane", - href: "https://developers.plane.so/self-hosting/overview", - } - ], - }, - { - type: "category", - collapsed: false, - label: "Workspace management", - items: [ - { - type: "category", - label: "Workspaces", - items: [ - "core-concepts/workspaces/overview", - "workspaces-and-users/search-workspace", - "core-concepts/account/overview", - "core-concepts/power-k", - "workspaces-and-users/customize-navigation" - ], - }, - - { - type: "category", - label: "Members", - items: [ - "core-concepts/workspaces/members", - "workspaces-and-users/roles", - "workspaces-and-users/permissions", - ], - }, - { - type: "category", - label: "Authentication", - items: [ - "authentication/sso", - { - type: 'link', - label: 'Self-hosted authentication', - href: 'https://developers.plane.so/self-hosting/govern/authentication', - }, - ], - }, - { - type: "category", - label: "Billing and plans", - items: [ - "workspaces-and-users/upgrade-plan", - "workspaces-and-users/manage-licenses", - "workspaces-and-users/add-remove-seats", - "workspaces-and-users/billing-and-plans", - ], - }, - "core-concepts/account/settings", - ], - }, - { - type: "category", - collapsed: false, - label: "Project management", - items: [ - { - type: "category", - label: "Projects", - items: [ - "core-concepts/projects/overview", - "core-concepts/projects/manage-project-members", - "core-concepts/deploy" - ], - }, - "core-concepts/projects/project-states", - "core-concepts/issues/states", - "core-concepts/projects/project-overview", - "templates/project-templates", - - ], - }, - { - type: "category", - collapsed: false, - label: "Work item management", - items: [ - { - type: "category", - label: "Work Items", - items: [ - "core-concepts/issues/overview", - "core-concepts/issues/properties", - "core-concepts/drafts", - ], - }, - - "core-concepts/issues/issue-types", - "templates/work-item-templates", - "core-concepts/projects/recurring-work-items", - ], - }, - { - type: "category", - collapsed: false, - label: "Planning and organization", - items: [ - "core-concepts/issues/labels", - "core-concepts/cycles", - "core-concepts/modules", - "core-concepts/issues/epics", - "core-concepts/issues/timeline-dependency", - "core-concepts/projects/initiatives", - "core-concepts/workspaces/teamspaces", - "core-concepts/projects/milestones", - "core-concepts/stickies", - ], - }, - - { - type: "category", - collapsed: false, - label: "Views and layouts", - items: [ - "core-concepts/issues/layouts", - "core-concepts/issues/visualise_filter", - "core-concepts/issues/display-options", - "core-concepts/views", - "your-work", - ], - }, - { - type: "category", - collapsed: false, - label: "Knowledge management", - items: [ - { - type: "category", - label: "Pages", - items: [ - "core-concepts/pages/overview", - "core-concepts/pages/editor-blocks", - ], - }, - "core-concepts/pages/wiki", - "core-concepts/pages/nested-pages", - "templates/page-templates", - ], - }, - { - type: "category", - collapsed: false, - label: "Advanced management", - items: [ - "core-concepts/issues/estimates", - "core-concepts/issues/bulk-ops", - "core-concepts/issues/time-tracking", - "workflows-and-approvals/workflows", - "automations/custom-automations", - ], - }, - { - type: "category", - collapsed: false, - label: "Collaboration and communication", - items: [ - "communication-and-collaboration/project-updates", - "communication-and-collaboration/comments-and-activity", - "core-concepts/pages/inline-comments", - "core-concepts/inbox", - ], - }, - { - type: "category", - collapsed: false, - label: "Intake and customers", - items: [ - "intake/overview", - "core-concepts/intake", - "intake/intake-forms", - "intake/intake-email", - "customers", - ], - }, - { - type: "category", - collapsed: false, - label: "Analytics and reporting", - items: [ - "core-concepts/analytics", - "dashboards", - ], - }, - { - type: "category", - collapsed: false, - label: "Integrations", - items: [ - { - type: "category", - label: "Native integrations", - collapsed: false, - link: { type: "doc", id: "integrations/about" }, - items: [ - "integrations/draw-io", - "integrations/github", - "integrations/gitlab", - "integrations/sentry", - "integrations/slack", - ], - }, - { - type: "category", - label: "Custom integrations", - items: [ - { - type: "link", - label: "Build a Plane app", - href: "https://developers.plane.so/dev-tools/build-plane-app", - }, - { - type: "link", - label: "API reference", - href: "https://developers.plane.so/api-reference/introduction", - }, - { - type: "link", - label: "Webhooks", - href: "https://developers.plane.so/dev-tools/intro-webhooks", - }, - ], - }, - ], - }, - - { - type: "category", - collapsed: false, - label: "Import and export", - items: [ - { - type: "category", - collapsed: false, - label: "Import", - link: { type: "doc", id: "importers/overview"}, - items: [ - "importers/asana", - "importers/confluence", - "importers/clickup", - "importers/csv", - "importers/jira", - "importers/linear", - "importers/notion", - ], - }, - "core-concepts/export", - ], - }, - - { - type: "category", - collapsed: false, - label: "AI", - items: [ - "ai/pi-chat", - "ai/plane-ai-credits", - { - type: "link", - label: "MCP Server", - href: "https://developers.plane.so/dev-tools/mcp-server", - } - ], - }, - { - type: "category", - collapsed: false, - label: "Devices", - items: ["devices/mobile"], - }, - { - type: "category", - collapsed: false, - label: "Support and resources", - items: [ - "support/get-help", - "support/keyboard-shortcuts", - { - type: "category", - label: "Resources", - items: [ - { - type: "link", - label: "Developer docs", - href: "https://developers.plane.so", - }, - { - type: "link", - label: "Blog", - href: "https://plane.so/blog", - }, - { - type: "link", - label: "Templates library", - href: "https://plane.so/templates", - }, - { - type: "link", - label: "Integrations marketplace", - href: "https://plane.so/marketplace/integrations", - }, - ], - }, - { - type: "link", - label: "Changelog", - href: "https://plane.so/changelog", - }, - { - type: "link", - label: "System status", - href: "https://status.plane.so/", - }, - ], - }, - ], -}; - -export default sidebars; diff --git a/src/components/Card.tsx b/src/components/Card.tsx deleted file mode 100644 index dc5126db..00000000 --- a/src/components/Card.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import * as Icons from "react-icons/fa"; - -export const Card = ({ icon, svg, title, children, href }) => { - const IconComponent = Icons[icon]; - - // Wrapping the card content with an tag if href is provided - const CardContent = ( - <> -
- {svg ? svg : IconComponent ? : null} -
-

{title}

-

{children}

- - ); - - return href ? ( -
- {CardContent} - - ) : ( - CardContent - ); -}; diff --git a/src/components/CardGroup.tsx b/src/components/CardGroup.tsx deleted file mode 100644 index c40cf811..00000000 --- a/src/components/CardGroup.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; - -export const CardGroup = ({ cols, children }) => { - return ( -
- {React.Children.map(children, (child, index) => ( -
- {child} -
- ))} -
- ); -}; diff --git a/src/components/Tags.tsx b/src/components/Tags.tsx deleted file mode 100644 index a8eaffaa..00000000 --- a/src/components/Tags.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; - -function Tags({ tags }) { - return ( -
- {tags.map((tag, index) => - tag && tag.name ? ( - - {tag.link ? ( - - {tag.name} - - ) : ( - {tag.name} - )} - - ) : null - )} -
- ); -} - -export default Tags; diff --git a/src/components/index.ts b/src/components/index.ts deleted file mode 100644 index 216ca05b..00000000 --- a/src/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./Card"; -export * from "./CardGroup"; -export * from "./Tags"; diff --git a/src/css/custom.css b/src/css/custom.css deleted file mode 100644 index c2a058cb..00000000 --- a/src/css/custom.css +++ /dev/null @@ -1,1035 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #006399; - --ifm-color-primary-dark: #1b47c2; /* Darker shade */ - --ifm-color-primary-darker: #1941b1; /* Even darker */ - --ifm-color-primary-darkest: #153693; /* Darkest */ - --ifm-color-primary-light: #2257ed; /* Lighter shade */ - --ifm-color-primary-lighter: #3e6ef0; /* Even lighter */ - --ifm-color-primary-lightest: #557ef2; /* Lightest */ - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme="dark"] { - --ifm-color-primary: #2690C9; - --ifm-color-primary-dark: #1b47c2; /* Darker shade */ - --ifm-color-primary-darker: #1941b1; /* Even darker */ - --ifm-color-primary-darkest: #153693; /* Darkest */ - --ifm-color-primary-light: #2257ed; /* Lighter shade */ - --ifm-color-primary-lighter: #3e6ef0; /* Even lighter */ - --ifm-color-primary-lightest: #557ef2; /* Lightest */ - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} - -.navbar__logo img { - width: 120px; - height: auto; -} -@media (max-width: 996px) { - .navbar__inner { - align-items: center !important; - display: flex !important; - } - .navbar__logo { - display: flex; - align-items: center; - height: 48px; /* or the height of your navbar */ - } - .navbar__logo img { - height: auto; /* adjust as needed for your logo */ - width: 100px; - } -} - -@media (min-width: 1536px) { - body, - .navbar { - display: flex; - flex-direction: row; - justify-content: center; - align-items: start; - } -} - -[data-theme="light"] body, -[data-theme="light"] .navbar { - background-color: rgb(250 250 250); -} - -[data-theme="dark"] .navbar { - background-color: #1b1b1d; -} - -.menu__list li:last-of-type { - -webkit-padding-after: 1.5rem; - padding-block-end: 0.5rem; -} - -.theme-doc-sidebar-item-category-level-1 > .menu__list-item-collapsible > .menu__link--sublist { - margin-bottom: 6px; - font-size: 14px !important; - font-weight: 600; - line-height: 20px; - color: #213547; -} - -[data-theme="dark"] .theme-doc-sidebar-item-category-level-1 > .menu__list-item-collapsible > .menu__link--sublist { - color: rgb(255, 255, 255, 0.87); -} - -[data-theme="dark"] .menu__link { - color: rgb(235, 235, 235, 0.6); - font-size: 13px; - font-weight: 500; - align-items: center; - display: flex; - letter-spacing: -0.01em; - line-height: 16px; - transition: opacity 0.2s ease-out; -} - -.menu__link { - font-size: 13px; - font-weight: 500; - align-items: center; - display: flex; - letter-spacing: -0.01em; - line-height: 16px; - transition: opacity 0.2s ease-out; - color: rgba(60, 60, 60, 0.7); -} -.menu__link--active:not(.menu__link--sublist) { - font-weight: 600; - transition: color 0.25s; - color: #006399; - font-size: 13px; - border-left-style: solid; - border-left-width: 4px; - padding-left: 8px !important; -} - -[data-theme="dark"] .menu__link--active:not(.menu__link--sublist) { - color: #2690C9; -} - -[data-theme="dark"] .breadcrumbs__item--active .breadcrumbs__link { - color: #2690C9; -} - -[data-theme="dark"] a{ - color: #2690C9; -} - -.menu__link--active:is(.theme-doc-sidebar-item-category-level-2 > .menu__list-item-collapsible > .menu__link--sublist) { - font-weight: 600; - transition: color 0.25s; - color: #006399; - font-size: 13px; - border-left-style: solid; - border-left-width: 4px; - padding-left: 8px !important; -} - -[data-theme="dark"] - .theme-doc-sidebar-item-category-level-2:has(> ul.menu__list > li > a.menu__link--active) - > .menu__list-item-collapsible - > a.menu__link { - border-left-style: none; - border-left-width: 0px; - color: rgb(235, 235, 235, 0.6); - font-size: 13px; - font-weight: 500; - align-items: center; - display: flex; - letter-spacing: -0.01em; - line-height: 16px; - transition: opacity 0.2s ease-out; - padding: 6px 12px !important; -} - -.theme-doc-sidebar-item-category-level-2:has(> ul.menu__list > li > a.menu__link--active) - > .menu__list-item-collapsible - > a.menu__link { - border-left-style: none; - border-left-width: 0px; - color: rgba(60, 60, 60, 0.7); - font-size: 13px; - font-weight: 500; - align-items: center; - display: flex; - letter-spacing: -0.01em; - line-height: 16px; - transition: opacity 0.2s ease-out; - padding: 6px 12px !important; -} - -[data-theme="dark"] .menu__link:not(.menu__link--active):hover { - color: rgb(255, 255, 255); - font-size: 13px; - font-weight: 600; - transition: color 0.5s; -} - -[data-theme="dark"] - .theme-doc-sidebar-item-category-level-2:has(> ul.menu__list > li > a.menu__link--active) - > .menu__list-item-collapsible - > a.menu__link:hover { - color: rgb(255, 255, 255); - font-size: 13px; - font-weight: 600; - transition: color 0.5s; -} - -.theme-doc-sidebar-item-category-level-2:has(> ul.menu__list > li > a.menu__link--active) - > .menu__list-item-collapsible - > a.menu__link:hover { - color: #213447; - font-size: 13px; - font-weight: 600; - transition: color 0.5s; -} - -.menu__link:not(.menu__link--active):hover { - color: #213447; - font-size: 13px; - font-weight: 600; - transition: color 0.5s; -} - -.theme-doc-sidebar-container { - margin-right: 2rem; -} - -.theme-doc-sidebar-menu .menu__list-item .menu__caret:before, -.theme-doc-sidebar-menu .menu__list-item .menu__link--sublist:after { - background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDEwIDggNmwtNCA0IiBzdHJva2U9IiMxQjI3MzgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=) - 50% no-repeat; - height: 1.5rem; - min-height: 29.5px; - min-width: 1.5rem; - width: 1.5rem; - background-size: 12px 12px; -} - -.theme-doc-sidebar-item-category-level-1 - > .menu__list-item-collapsible - > .menu__link--sublist.theme-doc-sidebar-menu - .menu__list-item - .menu__caret:before, -.theme-doc-sidebar-menu .menu__list-item .menu__link--sublist:after { - background: none; - height: 1.5rem; - min-height: 29.5px; - min-width: 1.5rem; - width: 1.5rem; -} - -.theme-doc-sidebar-item-category-level-3 - > .menu__list-item-collapsible - > .menu__link--sublist.theme-doc-sidebar-menu - .menu__list-item - .menu__caret:before, -.theme-doc-sidebar-menu .menu__list-item .menu__link--sublist:after { - background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDEwIDggNmwtNCA0IiBzdHJva2U9IiMxQjI3MzgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=) - 50% no-repeat; - height: 1.5rem; - min-height: 29.5px; - min-width: 1.5rem; - width: 1.5rem; - margin-right: -5px; - background-size: 12px 12px; -} - -/* -.theme-doc-sidebar-item-category-level-2>.menu__list-item-collapsible>.menu__link--sublist { - margin-bottom: -6px; - margin-top: -6px; -} - -.theme-doc-sidebar-item-category-level-3>.menu__list-item-collapsible>.menu__link--sublist { - margin-bottom: -6px; - margin-top: -6px; -} - -.theme-doc-sidebar-item-category-level-4>.menu__list-item-collapsible>.menu__link--sublist { - margin-bottom: -6px; - margin-top: -6px; -} -*/ - -.menu__caret { - padding: 0em 0.375em 0em 0.75em !important; -} - -[class^="sidebar_"] { - -webkit-padding-before: 1rem; - overflow-y: auto; - padding-block-start: 1rem; - position: static; - padding-inline-end: 0.5em; - padding-inline-start: 0.5em; -} - -[class^="sidebar_"] > .menu { - -webkit-padding-after: 2rem; - overflow-x: initial; - padding: 0; - padding-block-end: 2rem; -} - -.menu__list { - display: block !important; - margin: 0; - transition: height 0.35s cubic-bezier(0.36, 0.66, 0.04, 1) 25ms !important; - will-change: auto !important; -} - -h1 { - font-size: 2rem; - line-height: 120%; -} -h2 { - font-size: 1.5rem; - line-height: 140%; -} -h3 { - font-size: 1.25rem; - line-height: 140%; -} - -h4{ - line-height: 140%; -} - -h5{ - line-height: 140%; -} - -h6{ - line-height: 140%; -} - - -#__docusaurus > nav > div.navbar__inner > div.navbar__items.navbar__items--right > a:nth-child(3) { - background-color: #006399; - border-radius: 8px; - color: #f3f5f7; - font-size: 0.75rem; - font-weight: 500; - margin-left: 0.5rem; - margin-right: 0.5rem; - padding: 0.375rem 1rem 0.375rem 1rem; - text-transform: capitalize; - white-space: nowrap; - line-height: 1.25rem; -} - -[data-theme="dark"] #__docusaurus > nav > div.navbar__inner > div.navbar__items.navbar__items--right > a:nth-child(3) { - background-color: #2690C9; -} - -#__docusaurus > nav > div.navbar__inner > div.navbar__items.navbar__items--right > a > svg { - display: none; -} - -.navbar--github-link { - width: 32px; - height: 32px; - padding: 6px; - margin-right: 20px; - margin-left: 6px; - border-radius: 50%; - transition: background var(--ifm-transition-fast); -} - -.navbar--github-link:hover { - background: var(--ifm-color-emphasis-200); -} - -.navbar--github-link:before { - content: ""; - height: 100%; - display: block; - background: url("data:image/svg+xml,%3Csvg fill='%23474e52' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") - no-repeat; -} - -html[data-theme="dark"] .navbar--github-link:before { - background: url("data:image/svg+xml,%3Csvg fill='%239da5aa' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") - no-repeat; -} - -.navbar--discord-link { - width: 32px; - height: 32px; - padding: 6px; - margin-right: 6px; - margin-left: 6px; - border-radius: 50%; - transition: background var(--ifm-transition-fast); -} - -.navbar--discord-link:hover { - background: var(--ifm-color-emphasis-200); -} - -.navbar--discord-link:before { - content: ""; - height: 100%; - display: block; - background: url("data:image/svg+xml,%3Csvg fill='%23474e52' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3Ediscord%3C/title%3E%3Cpath d='M20.992 20.163c-1.511-0.099-2.699-1.349-2.699-2.877 0-0.051 0.001-0.102 0.004-0.153l-0 0.007c-0.003-0.048-0.005-0.104-0.005-0.161 0-1.525 1.19-2.771 2.692-2.862l0.008-0c1.509 0.082 2.701 1.325 2.701 2.847 0 0.062-0.002 0.123-0.006 0.184l0-0.008c0.003 0.050 0.005 0.109 0.005 0.168 0 1.523-1.191 2.768-2.693 2.854l-0.008 0zM11.026 20.163c-1.511-0.099-2.699-1.349-2.699-2.877 0-0.051 0.001-0.102 0.004-0.153l-0 0.007c-0.003-0.048-0.005-0.104-0.005-0.161 0-1.525 1.19-2.771 2.692-2.862l0.008-0c1.509 0.082 2.701 1.325 2.701 2.847 0 0.062-0.002 0.123-0.006 0.184l0-0.008c0.003 0.048 0.005 0.104 0.005 0.161 0 1.525-1.19 2.771-2.692 2.862l-0.008 0zM26.393 6.465c-1.763-0.832-3.811-1.49-5.955-1.871l-0.149-0.022c-0.005-0.001-0.011-0.002-0.017-0.002-0.035 0-0.065 0.019-0.081 0.047l-0 0c-0.234 0.411-0.488 0.924-0.717 1.45l-0.043 0.111c-1.030-0.165-2.218-0.259-3.428-0.259s-2.398 0.094-3.557 0.275l0.129-0.017c-0.27-0.63-0.528-1.142-0.813-1.638l0.041 0.077c-0.017-0.029-0.048-0.047-0.083-0.047-0.005 0-0.011 0-0.016 0.001l0.001-0c-2.293 0.403-4.342 1.060-6.256 1.957l0.151-0.064c-0.017 0.007-0.031 0.019-0.040 0.034l-0 0c-2.854 4.041-4.562 9.069-4.562 14.496 0 0.907 0.048 1.802 0.141 2.684l-0.009-0.11c0.003 0.029 0.018 0.053 0.039 0.070l0 0c2.14 1.601 4.628 2.891 7.313 3.738l0.176 0.048c0.008 0.003 0.018 0.004 0.028 0.004 0.032 0 0.060-0.015 0.077-0.038l0-0c0.535-0.72 1.044-1.536 1.485-2.392l0.047-0.1c0.006-0.012 0.010-0.027 0.010-0.043 0-0.041-0.026-0.075-0.062-0.089l-0.001-0c-0.912-0.352-1.683-0.727-2.417-1.157l0.077 0.042c-0.029-0.017-0.048-0.048-0.048-0.083 0-0.031 0.015-0.059 0.038-0.076l0-0c0.157-0.118 0.315-0.24 0.465-0.364 0.016-0.013 0.037-0.021 0.059-0.021 0.014 0 0.027 0.003 0.038 0.008l-0.001-0c2.208 1.061 4.8 1.681 7.536 1.681s5.329-0.62 7.643-1.727l-0.107 0.046c0.012-0.006 0.025-0.009 0.040-0.009 0.022 0 0.043 0.008 0.059 0.021l-0-0c0.15 0.124 0.307 0.248 0.466 0.365 0.023 0.018 0.038 0.046 0.038 0.077 0 0.035-0.019 0.065-0.046 0.082l-0 0c-0.661 0.395-1.432 0.769-2.235 1.078l-0.105 0.036c-0.036 0.014-0.062 0.049-0.062 0.089 0 0.016 0.004 0.031 0.011 0.044l-0-0.001c0.501 0.96 1.009 1.775 1.571 2.548l-0.040-0.057c0.017 0.024 0.046 0.040 0.077 0.040 0.010 0 0.020-0.002 0.029-0.004l-0.001 0c2.865-0.892 5.358-2.182 7.566-3.832l-0.065 0.047c0.022-0.016 0.036-0.041 0.039-0.069l0-0c0.087-0.784 0.136-1.694 0.136-2.615 0-5.415-1.712-10.43-4.623-14.534l0.052 0.078c-0.008-0.016-0.022-0.029-0.038-0.036l-0-0z'%3E%3C/path%3E%3C/svg%3E"); -} - -html[data-theme="dark"] .navbar--discord-link:before { - background: url("data:image/svg+xml,%3Csvg fill='%239da5aa' viewBox='0 -28.5 256 256' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' preserveAspectRatio='xMidYMid'%3E%3Cg%3E%3Cpath d='M216.856339 16.5966031 C200.285002 8.84328665 182.566144 3.2084988 164.041564 0 C161.766523 4.11318106 159.108624 9.64549908 157.276099 14.0464379 C137.583995 11.0849896 118.072967 11.0849896 98.7430163 14.0464379 C96.9108417 9.64549908 94.1925838 4.11318106 91.8971895 0 C73.3526068 3.2084988 55.6133949 8.86399117 39.0420583 16.6376612 C5.61752293 67.146514 -3.4433191 116.400813 1.08711069 164.955721 C23.2560196 181.510915 44.7403634 191.567697 65.8621325 198.148576 C71.0772151 190.971126 75.7283628 183.341335 79.7352139 175.300261 C72.104019 172.400575 64.7949724 168.822202 57.8887866 164.667963 C59.7209612 163.310589 61.5131304 161.891452 63.2445898 160.431257 C105.36741 180.133187 151.134928 180.133187 192.754523 160.431257 C194.506336 161.891452 196.298154 163.310589 198.110326 164.667963 C191.183787 168.842556 183.854737 172.420929 176.223542 175.320965 C180.230393 183.341335 184.861538 190.991831 190.096624 198.16893 C211.238746 191.588051 232.743023 181.531619 254.911949 164.955721 C260.227747 108.668201 245.831087 59.8662432 216.856339 16.5966031 Z M85.4738752 135.09489 C72.8290281 135.09489 62.4592217 123.290155 62.4592217 108.914901 C62.4592217 94.5396472 72.607595 82.7145587 85.4738752 82.7145587 C98.3405064 82.7145587 108.709962 94.5189427 108.488529 108.914901 C108.508531 123.290155 98.3405064 135.09489 85.4738752 135.09489 Z M170.525237 135.09489 C157.88039 135.09489 147.510584 123.290155 147.510584 108.914901 C147.510584 94.5396472 157.658606 82.7145587 170.525237 82.7145587 C183.391518 82.7145587 193.761324 94.5189427 193.539891 108.914901 C193.539891 123.290155 183.391518 135.09489 170.525237 135.09489 Z' fill-rule='nonzero'%3E%3C/path%3E%3C/g%3E%3C/svg%3E"); -} - -.tag-wrapper { - display: flex; - align-items: center; - gap: 8px; -} - -.tags { - display: flex; - flex-wrap: nowrap; - gap: 8px; - align-items: center; - position: relative; - top: -10px !important; -} - -/* Media query for smaller screens */ -@media (max-width: 768px) { - .tags { - flex-direction: row; - align-items: flex-start; - white-space: nowrap; - } -} - -.pro { - color: #1a1a1a; - border-radius: 4px; - border: 1px solid #ea992466; - background: linear-gradient(167.44deg, #fdc742 0%, #fed464 67.25%, #fcfcfc 98.9%); - padding: 0 15px 0 15px; -} - -html[data-theme="dark"] .pro { - color: #fff; - border-radius: 4px; - border: 1px solid #ea992466; - background: linear-gradient( - 167.44deg, - rgba(234, 153, 36, 0.7) 0%, - rgba(33, 33, 33, 0.4) 49.45%, - rgba(255, 224, 133, 0.32) 98.9% - ); - padding: 0 15px 0 15px; -} - -.enterprise { - color: #1a1a1a; - border-radius: 4px; - border: 1px solid #7c3aed66; - background: linear-gradient( - 167.44deg, - #a78bfa 0%, - #c4b5fd 67.25%, - #fcfcfc 98.9% - ); - padding: 0 15px 0 15px; -} - -html[data-theme="dark"] .enterprise { - color: #fff; - border-radius: 4px; - border: 1px solid #7c3aed66; - background: linear-gradient( - 167.44deg, - rgba(124, 58, 237, 0.7) 0%, - rgba(33, 33, 33, 0.4) 49.45%, - rgba(196, 181, 253, 0.32) 98.9% - ); - padding: 0 15px 0 15px; -} - -.card-group { - display: grid; - gap: 16px; - grid-template-columns: repeat(var(--cols), 1fr); -} - -@media (max-width: 640px) { - .card-group { - grid-template-columns: 1fr; - } -} - -.card { - border-radius: 8px; - padding: 15px; - display: flex; - flex-direction: column; - align-items: flex-start; - border: 1px solid #9b9b9b; -} - -.card:hover { - border: 1px solid #006399; -} - -.card-icon { - border-radius: 8px; - display: inline-flex; - justify-content: center; - align-items: center; - margin-bottom: 15px; - color: #006399; -} - -.icon-style { - color: #006399; -} - -[data-theme="dark"] .icon-style, [data-theme="dark"] .card-icon { - color: #2690C9; -} - - -.card-title { - color: var(--ifm-heading-color) !important; - font-size: 18px; - font-weight: 600; - margin-bottom: 10px; -} - -.card-description { - font-size: 14px; - color: #213547 !important; -} - -.card-link { - text-decoration: none; - color: inherit; - display: block; - width: 100%; - height: 100%; -} - -.card-link:hover { - text-decoration: none; - color: inherit; -} - -[data-theme="dark"] .card-title, [data-theme="dark"] .card-description { - color: #fff !important; -} - -html { - color: #213547; - font-family: var(--ifm-font-family-base); -} - -body { - font-family: var(--ifm-font-family-base); - letter-spacing: 0.02em; -} - -.navbar { - font-family: var(--ifm-font-family-base); -} - -.navbar__title { - font-family: var(--ifm-font-family-base); -} - -.menu__link { - font-family: var(--ifm-font-family-base); - font-variation-settings: 'wght' 600; -} - -.markdown { - font-family: var(--ifm-font-family-base); -} - -* { - font-family: var(--ifm-font-family-base); -} - -.theme-doc-markdown { - font-family: var(--ifm-font-family-base); -} - -code { - color: #213547; - font-family: var(--ifm-font-family-monospace); -} - -pre { - font-family: var(--ifm-font-family-monospace); -} - -pre code { - font-family: var(--ifm-font-family-monospace); -} - -/* Inline code */ -.markdown code { - font-family: var(--ifm-font-family-monospace); -} - -/* Code blocks in different contexts */ -.prism-code { - font-family: var(--ifm-font-family-monospace); -} - -.codeBlockContainer_node_modules-\@docusaurus-theme-classic-lib-theme-CodeBlock-Container-styles-module { - font-family: var(--ifm-font-family-monospace); -} - -code, kbd, pre, samp { - font-family: var(--ifm-font-family-monospace) !important; -} - -strong { - color: rgb(18 27 46); -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: var(--ifm-heading-font-family); - color: rgb(18 27 46); -} - -[data-theme="dark"] h1, -[data-theme="dark"] h2, -[data-theme="dark"] h3, -[data-theme="dark"] h4, -[data-theme="dark"] h5, -[data-theme="dark"] h6 { - font-family: var(--ifm-heading-font-family); - color: rgb(224 228 236); -} - -html[data-theme="dark"] { - color: rgb(255, 255, 255, 0.87); -} - -[data-theme="dark"] blockquote { - color: rgb(255, 255, 255, 0.87); -} - -[data-theme="dark"] code { - color: rgb(237 240 246); -} - -[data-theme="dark"] strong { - color: rgb(243 246 251); -} - -[data-theme="dark"] .table-of-contents__link { - color: rgb(235, 235, 235, 0.6); -} - -.table-of-contents__link { - color: rgba(60, 60, 60, 0.7); -} - -@media (min-width: 768px) { - .navbarSearchContainer_node_modules-\@docusaurus-theme-classic-lib-theme-Navbar-Search-styles-module { - margin-left: auto !important; - margin-right: auto !important; - } - - .navbarSearchContainer_bxl4 { - margin-left: auto !important; - margin-right: auto !important; - } - - .DocSearch-Button { - width: 400px; - } -} - -.DocSearch-Button { - border-radius: 0.5em !important; - border-color: rgb(158 158 158 / 20%) !important; - border-width: 1px !important; - border-style: solid !important; - background-color: #fafafa !important; -} - -[data-theme="dark"] .DocSearch-Button { - border-radius: 0.5em !important; - border-color: rgb(158 158 158 / 20%) !important; - border-width: 1px !important; - border-style: solid !important; - background-color: #1b1b1d !important; -} - -.DocSearch-Search-Icon { - width: 14px; - height: 14px; -} - -.DocSearch-Button-Container { - gap: 0.25rem; -} - -.DocSearch-Button-Placeholder { - font-size: 0.85rem !important; -} - -.navbar { - border-bottom: 1px solid rgb(112 112 112 / 5%); - box-shadow: none; -} - -[data-theme="dark"] .navbar { - border-bottom: 1px solid rgb(206 206 206 / 6%); - box-shadow: none; -} - -.lightToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module { - color: #505050; -} - -.navbar--fixed-top { - padding-left: 2rem; - padding-right: 2rem; - margin-left: 0; - margin-right: 0; -} - -.mainWrapper_node_modules-\@docusaurus-theme-classic-lib-theme-Layout-styles-module { - padding-left: 1rem; - padding-right: 1rem; -} - -@media (min-width: 997px) { - .docSidebarContainer_YfHR { - border-right: 1px solid rgb(112 112 112 / 9%) !important; - } -} - -.table-of-contents__left-border { - border-left: 1px solid rgb(112 112 112 / 5%) !important; -} - -.lightToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module, -.darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module { - width: 20px; - height: 20px; -} - -.table { - font-size: 1rem; - line-height: 1.25; - font-weight: 400; - --tw-numeric-spacing: tabular-nums; - width: 100%; - font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) - var(--tw-numeric-fraction); -} - -[data-theme="dark"] table tr:nth-child(2n) { - background-color: rgb(27 27 29); -} - -table tr:nth-child(2n) { - background-color: rgb(250 250 250); -} - -table thead tr { - border-bottom: none; -} - -.mobile-img-container { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - flex-wrap: wrap; -} -.mobile-img-box { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - max-width: 25rem; - min-width: 15rem; - text-align: center; - margin: 10px; -} -/* -img[src*="#center"] { - display: block; - border-radius: 0.75rem; - float: none; - margin: 10px 0 10px 0; - border-color: rgb(224 228 236); - border-style: solid; - box-sizing: border-box; - border-width: 0px; - padding: 0.5rem; - background-color: rgb(226 226 226); -} - -[data-theme="dark"] img[src*="#center"] { - display: block; - border-radius: 0.75rem; - float: none; - margin: 10px 0 10px 0; - border-color: rgb(224 228 236); - border-style: solid; - box-sizing: border-box; - border-width: 0px; - padding: 0.5rem; - background-color: rgb(32 43 61); -}*/ - -.markdown p:has(> img[src$="#hero"]), -article p:has(> img[src$="#hero"]) { - max-width: 841px; - padding: 36px 56px 0px 56px; - background: #F1F3F3; - border-radius: 12px; - box-sizing: border-box; - overflow: hidden; -} - -.markdown img[src$="#hero"], -article img[src$="#hero"] { - width: 100%; - height: auto; - display: block; - margin: 0; - border-radius: 8px 8px 0px 0px; - border-width: 1px 1px 0px 1px; - border-style: solid; - border-color: #EAEBEB; - object-fit: cover; - box-shadow: - 0px 2px 4px -1px rgba(41, 47, 61, 0.04), - 0px 4px 6px -1px rgba(41, 47, 61, 0.05); -} - -.markdown p:has(> img[src$="#hero-tl"]), -article p:has(> img[src$="#hero-tl"]) { - max-width: 841px; - padding: 36px 0px 0px 56px; - background: #F1F3F3; - border-radius: 12px; - box-sizing: border-box; - overflow: hidden; -} - -.markdown img[src$="#hero-tl"], -article img[src$="#hero-tl"] { - width: 100%; - height: auto; - display: block; - margin: 0; - border-radius: 8px 0px 0px 0px; - border-width: 1px 0px 0px 1px; - border-style: solid; - border-color: #EAEBEB; - object-fit: cover; - box-shadow: - 0px 2px 4px -1px rgba(41, 47, 61, 0.04), - 0px 4px 6px -1px rgba(41, 47, 61, 0.05); -} - -.markdown p:has(> img[src$="#hero-tr"]), -article p:has(> img[src$="#hero-tr"]) { - max-width: 841px; - padding: 36px 56px 0px 0px; - background: #F1F3F3; - border-radius: 12px; - box-sizing: border-box; - overflow: hidden; -} - -.markdown img[src$="#hero-tr"], -article img[src$="#hero-tr"] { - width: 100%; - height: auto; - display: block; - margin: 0; - border-radius: 0px 8px 0px 0px; - border-width: 1px 1px 0px 0px; - border-style: solid; - border-color: #EAEBEB; - object-fit: cover; - box-shadow: - 0px 2px 4px -1px rgba(41, 47, 61, 0.04), - 0px 4px 6px -1px rgba(41, 47, 61, 0.05); -} - -.markdown p:has(> img[src$="#hero-bl"]), -article p:has(> img[src$="#hero-bl"]) { - max-width: 841px; - padding: 0px 0px 36px 56px; - background: #F1F3F3; - border-radius: 12px; - box-sizing: border-box; - overflow: hidden; -} - -.markdown img[src$="#hero-bl"], -article img[src$="#hero-bl"] { - width: 100%; - height: auto; - display: block; - margin: 0; - border-radius: 0px 0px 0px 8px; - border-width: 0px 0px 1px 1px; - border-style: solid; - border-color: #EAEBEB; - object-fit: cover; - box-shadow: - 0px 2px 4px -1px rgba(41, 47, 61, 0.04), - 0px 4px 6px -1px rgba(41, 47, 61, 0.05); -} - -.markdown p:has(> img[src$="#hero-br"]), -article p:has(> img[src$="#hero-br"]) { - max-width: 841px; - padding: 0px 56px 36px 0px; - background: #F1F3F3; - border-radius: 12px; - box-sizing: border-box; - overflow: hidden; -} - -.markdown img[src$="#hero-br"], -article img[src$="#hero-br"] { - width: 100%; - height: auto; - display: block; - margin: 0; - border-radius: 0px 0px 8px 0px; - border-width: 0px 1px 1px 0px; - border-style: solid; - border-color: #EAEBEB; - object-fit: cover; - box-shadow: - 0px 2px 4px -1px rgba(41, 47, 61, 0.04), - 0px 4px 6px -1px rgba(41, 47, 61, 0.05); -} - - -.business { - color: #111111; - border-radius: 4px; - border: 1px solid #d6d7d9; - background: linear-gradient(167.44deg, #c2c8e4 0%, #bfc4df 67.25%, #fcfcfc 98.9%); - padding: 0 15px 0 15px; -} - -html[data-theme="dark"] .business { - color: #f5f5f5; - border-radius: 4px; - border: 1px solid #646c90; - background: linear-gradient(164.95deg, #414669 0%, rgba(56, 60, 78, 0.12) 53.4%, rgba(172, 211, 255, 0.16) 100%); - padding: 0 15px 0 15px; -} - -[data-theme="dark"] .themedComponent--dark_xIcU, -[data-theme="light"] .themedComponent--light_NVdE, -html:not([data-theme]) .themedComponent--light_NVdE { - width: 100px !important; -} - -p, -table, -.menu__link { - font-family: var(--ifm-font-family-base); -} - -.menu__caret:hover { - background: none; -} - -[data-theme="dark"] .clean-btn { - color: rgb(159 160 160); -} - -@media (min-width: 1455px) { - body, - .navbar { - width: 100%; - min-width: 87.8vw; - margin: 0; - box-sizing: border-box; - } -} - - @font-face { - font-family: 'Satoshi'; - src: url('/fonts/Satoshi/Satoshi-Variable.ttf') format('truetype'); - font-weight: 400 680; - font-style: normal italic; - font-display: swap; - } - - @font-face { - font-family: 'IBM Mono'; - src: url('/fonts/IBM/IBMPlexMono-Light.ttf') format('truetype'); - font-weight: 300; - font-style: normal; - font-display: swap; - } - - @font-face { - font-family: 'IBM Mono'; - src: url('/fonts/IBM/IBMPlexMono-Regular.ttf') format('truetype'); - font-weight: 400; - font-style: normal; - font-display: swap; -} - -@font-face { - font-family: 'IBM Mono'; - src: url('/fonts/IBM/IBMPlexMono-SemiBold.ttf') format('truetype'); - font-weight: 500; - font-style: normal; - font-display: swap; -} - -@font-face { - font-family: 'IBM Mono'; - src: url('/fonts/IBM/IBMPlexMono-Bold.ttf') format('truetype'); - font-weight: 600; - font-style: normal; - font-display: swap; -} - - :root { - --ifm-font-family-base: 'Satoshi'; - --ifm-heading-font-family: 'Satoshi'; - --ifm-font-family-monospace: 'IBM Mono'; - --font-weight-light: 400; - --font-weight-regular: 480; - --font-weight-medium: 560; - --font-weight-semibold: 640; - --font-weight-bold: 680; - } - - .theme-doc-sidebar-item-category-level-2 > .menu__list-item-collapsible > .menu__link--sublist-caret{ - height: 28px; - } diff --git a/static/.nojekyll b/static/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 920d7a65..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@docusaurus/tsconfig", - "compilerOptions": { - "baseUrl": "." - }, - "exclude": [".docusaurus", "build"] -}