Template: Active equipment needing maintenance
+
Tell users when conditions create impossible or contradictory queries.
-
-
- - Status cannot be both Active AND Inactive. Refine filter.
- - This combination will return no results. Refine filter.
-
-
-
+
+
+ - Status cannot be both Active AND Inactive. Refine filter.
+ - This combination will return no results. Refine filter.
+
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/menu-functions-and-ui-labels/ui-terminology.md b/docs/guidelines/language/menu-functions-and-ui-labels/ui-terminology.md
index b13494eb9..2ae21dba2 100644
--- a/docs/guidelines/language/menu-functions-and-ui-labels/ui-terminology.md
+++ b/docs/guidelines/language/menu-functions-and-ui-labels/ui-terminology.md
@@ -15,35 +15,35 @@ description: 'Using well-defined terms help users understand actions, navigate s
Always consider the difference between user actions within a desktop environment (based on mouse or keyboard usage) and mobile devices based on touch gestures.
-
-
- - click (desktop)
- - tap (mobile device)
- - select (when not sure if desktop or mobile)
-
-
+
+
+ - click (desktop)
+ - tap (mobile device)
+ - select (when not sure if desktop or mobile)
+
+
Use clear and precise terms that leave no room for misunderstandings.
-
-
- - delete (if you want to erase data, e.g. a file)
- - remove (if you want to take data away, e.g. permissions)
-
-
+
+
+ - delete (if you want to erase data, e.g. a file)
+ - remove (if you want to take data away, e.g. permissions)
+
+
Use “select” for multi-platform applications where the input method varies (tap, click, etc.).
-
-
- - Select the checkbox to enable notifications.
- - Select and hold the Shift key to select multiple items.
-
-
+
+
+ - Select the checkbox to enable notifications.
+ - Select and hold the Shift key to select multiple items.
+
+
## Mouse terminology
@@ -59,16 +59,16 @@ This section provides clear definitions for the most frequently used mouse-relat
- middle-click (scroll wheel)
### Movement-based actions
@@ -79,16 +79,16 @@ This section provides clear definitions for the most frequently used mouse-relat
- scroll
## Touchscreen terminology
@@ -126,40 +126,40 @@ As touchscreen interfaces rely on direct finger interaction, this section covers
Use "press" when referring to the physical action of pressing a key.
-
-
- - Press Enter to confirm
- - Press Spacebar to play or pause
-
-
-
-
- - Hit Enter
- - Strike Enter
- - Depress Enter
-
-
+
+
+ - Press Enter to confirm
+ - Press Spacebar to play or pause
+
+
+
+
+ - Hit Enter
+ - Strike Enter
+ - Depress Enter
+
+
Capitalize special keys and directions.
-
-
- - Enter / Tab / Shift / Ctrl / Alt
- - Up Arrow / Down Arrow / Left Arrow / Right Arrow
-
-
+
+
+ - Enter / Tab / Shift / Ctrl / Alt
+ - Up Arrow / Down Arrow / Left Arrow / Right Arrow
+
+
Use "type" when asking users to enter text.
-
-
- - Type admin in the username field.
-
-
+
+
+ - Type admin in the username field.
+
+
## UI element terminology
@@ -167,38 +167,38 @@ Use "type" when asking users to enter text.
Use standardized and consistent terminology to describe UI components and input elements.
-
-
-
- - box
- - option box
- - selection box
- - tick box
-
-
+
+
+
+ - box
+ - option box
+ - selection box
+ - tick box
+
+
Avoid mixing terms within the same products and portfolios.
-
-
- - To enable automatic updates, select the checkbox to activate Auto update.
- - Click this image
- - The link opens in a new window.
-
-
-
-
- - To enable automatic updates, select the box to activate Auto update.
- - Click this picture
- - The link opens in a new browser.
-
-
+
+
+ - To enable automatic updates, select the checkbox to activate Auto update.
+ - Click this image
+ - The link opens in a new window.
+
+
+
+
+ - To enable automatic updates, select the box to activate Auto update.
+ - Click this picture
+ - The link opens in a new browser.
+
+
## UI interaction terminology
diff --git a/docs/guidelines/language/menu-functions-and-ui-labels/user-management.md b/docs/guidelines/language/menu-functions-and-ui-labels/user-management.md
index 92568a536..9baa8e385 100644
--- a/docs/guidelines/language/menu-functions-and-ui-labels/user-management.md
+++ b/docs/guidelines/language/menu-functions-and-ui-labels/user-management.md
@@ -29,182 +29,182 @@ Use “permissions” instead of “right” and “privilege” as these are be
Write user roles in short, clear and descriptive terms and give users access to role descriptions.
Use role names consistently within workflows and across the whole product.
-
-
- - Device administrator / Device administrator / Device administrator
-
-
-
-
- - Device Admin / Asset Admins / Administrator / Device Manager / Officer for devices
-
-
+
+
+ - Device administrator / Device administrator / Device administrator
+
+
+
+
+ - Device Admin / Asset Admins / Administrator / Device Manager / Officer for devices
+
+
Focus on personas instead of generic and unclear titles when creating roles for your product.
-
-
- - Line operator
- - Plant operator
- - Service engineer
-
-
-
-
- - Technician
- - Team lead
- - Expert user
-
-
+
+
+ - Line operator
+ - Plant operator
+ - Service engineer
+
+
+
+
+ - Technician
+ - Team lead
+ - Expert user
+
+
Avoid mixing location with function when creating roles for your product.
-
-
-
- - External user
- - Local user
- - International user
-
-
+
+
+
+ - External user
+ - Local user
+ - International user
+
+
Avoid creating vague user roles without a clear persona or scope that can be misunderstood.
-
-
- - Production report creator
- - Quality report reviewer
- - Batch approver (review and release)
-
-
-
-
- - Read-only user
- - Write-only user
-
-
+
+
+ - Production report creator
+ - Quality report reviewer
+ - Batch approver (review and release)
+
+
+
+
+ - Read-only user
+ - Write-only user
+
+
Use “read only” as a specific role permission, not a unique role name.
-
-
- - External consultant (read-only)
-
-
-
+
+
+ - External consultant (read-only)
+
+
+
Avoid easily misunderstood permissions such as “view”, be specific about what users can do.
-
-
- - record / log / configure / override
- - adjust / review / modify / correct
- - monitor / review / inspect
- - track / display / observe
-
-
-
-
- - write
- - edit
- - read-only
- - view
-
-
+
+
+ - record / log / configure / override
+ - adjust / review / modify / correct
+ - monitor / review / inspect
+ - track / display / observe
+
+
+
+
+ - write
+ - edit
+ - read-only
+ - view
+
+
Use sentence case for all user roles.
Avoid jargon or internal terms, instead use language everyone understands.
Keep role names short, preferably not more than three words.
-
-
- - Safety incident investigator
- - Shift handover reporter
-
-
-
-
- - Gateway and portal maintenance manager for Plant 3 and 5 (read-only permissions)
-
-
+
+
+ - Safety incident investigator
+ - Shift handover reporter
+
+
+
+
+ - Gateway and portal maintenance manager for Plant 3 and 5 (read-only permissions)
+
+
Avoid using functions or features as roles or permissions, instead focus on persona and tasks.
-
-
- - Shift supervisor – Production floor
-
-
-
+
+
+ - Shift supervisor – Production floor
+
+
+
## Identity and access
@@ -244,122 +244,122 @@ Many user management words often appear together in familiar, expected combinati
Avoid using “deny” and “disapprove” with “user” as opposites to “approve”.
-
-
- - Reject access request
-
-
-
-
- - Admin denied user
- - Disapprove user
-
-
+
+
+ - Reject access request
+
+
+
+
+ - Admin denied user
+ - Disapprove user
+
+
Avoid using “deauthenticate” as the opposite of authenticate.
-
-
- - Log out
- - End session
-
-
-
-
- - Deauthenticate
- - Click to deauthenticate
-
-
+
+
+ - Log out
+ - End session
+
+
+
+
+ - Deauthenticate
+ - Click to deauthenticate
+
+
Avoid using “grant” with “permissions” in casual UI contexts as this has become outdated.
-
-
- - Assign permissions to user
- - Give user access to reports
-
-
-
-
- - Grant permissions to user
-
-
+
+
+ - Assign permissions to user
+ - Give user access to reports
+
+
+
+
+ - Grant permissions to user
+
+
Avoid using “read” for viewing UI elements like profiles, permissions and roles.
-
-
- - View user profile
- - View role details
-
-
-
-
- - Read user profile
- - Read permissions
-
-
+
+
+ - View user profile
+ - View role details
+
+
+
+
+ - Read user profile
+ - Read permissions
+
+
Avoid using “write” for editing or modifying UI elements.
-
-
- - Edit permissions
- - Modify settings
-
-
-
-
- - Write permissions
- - Write role details
- - Write to database
-
-
+
+
+ - Edit permissions
+ - Modify settings
+
+
+
+
+ - Write permissions
+ - Write role details
+ - Write to database
+
+
Avoid using “delete” for simple removals; use “delete” only for permanent erasure.
-
-
- - Unassign
- - Remove user from team
- - Remove role from user
- - Delete user account (permanent)
- - Delete file (permanent)
-
-
-
-
- - Delete user from team
- - Delete role from user
-
-
+
+
+ - Unassign
+ - Remove user from team
+ - Remove role from user
+ - Delete user account (permanent)
+ - Delete file (permanent)
+
+
+
+
+ - Delete user from team
+ - Delete role from user
+
+
Avoid using “revoke” with people and users as direct objects.
-
-
- - Revoke all permissions
- - Revoke API key
-
-
-
-
- - Revoke user
- - Revoke the employee
-
-
+
+
+ - Revoke all permissions
+ - Revoke API key
+
+
+
+
+ - Revoke user
+ - Revoke the employee
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/menu-functions-and-ui-labels/whats-new-announcements.md b/docs/guidelines/language/menu-functions-and-ui-labels/whats-new-announcements.md
index 600f3ff3d..bc014f23a 100644
--- a/docs/guidelines/language/menu-functions-and-ui-labels/whats-new-announcements.md
+++ b/docs/guidelines/language/menu-functions-and-ui-labels/whats-new-announcements.md
@@ -23,127 +23,127 @@ We follow this three-step approach when creating our updates. They explain what
Use the wording “What’s new…” for the heading without a question mark (?) or period.
-
-
- - What’s new in October
- - What’s new in Version 3.2
- - What’s new this month
-
-
-
-
- - What’s new this month?
-
-
+
+
+ - What’s new in October
+ - What’s new in Version 3.2
+ - What’s new this month
+
+
+
+
+ - What’s new this month?
+
+
Use a contraction in the heading, i.e. “What’s” not “What is”.
-
-
- - What’s new in October
-
-
-
-
- - What is new in October
-
-
+
+
+ - What’s new in October
+
+
+
+
+ - What is new in October
+
+
Use paragraphs or bullet points to present or highlight one point at a time instead of italics or bold.
-
-
- - What’s new in the dashboard
+
+
+ - What’s new in the dashboard
• Edit with new filter options.
• Set up zones to itemize your assets.
-
-
-
-
- - What’s new in the dashboard. Now includes customizable widgets, allowing you to tailor your view to your specific needs, new ways to edit your dashboards by moving or adjusting filters to help you with your day, and zones for dashboards such as by plant or groups to itemize your assets more easily.
-
-
+
+
+
+
+ - What’s new in the dashboard. Now includes customizable widgets, allowing you to tailor your view to your specific needs, new ways to edit your dashboards by moving or adjusting filters to help you with your day, and zones for dashboards such as by plant or groups to itemize your assets more easily.
+
+
Use a personal and engaging tone without being too informal (avoid emojis or slang).
-
-
- - With this new version we bring you new features and improvements to enhance your experience.
-
-
-
-
- - Yo fam, we’ve been grinding to drop some lit upgrades to level up your vibe! 🚀✨
-
-
+
+
+ - With this new version we bring you new features and improvements to enhance your experience.
+
+
+
+
+ - Yo fam, we’ve been grinding to drop some lit upgrades to level up your vibe! 🚀✨
+
+
Provide a clear way for users to dismiss announcements without confusion.
-
-
- - Close
- - Skip
- - Skip and don’t show again
-
-
-
-
- - Confirm
- - Proceed
- - Continue
-
-
+
+
+ - Close
+ - Skip
+ - Skip and don’t show again
+
+
+
+
+ - Confirm
+ - Proceed
+ - Continue
+
+
Provide a clear way for users to postpone announcements.
-
-
- - Not now
- - Remind me at next login
-
-
-
+
+
+ - Not now
+ - Remind me at next login
+
+
+
Avoid technical, negative or wordy dismiss actions.
-
-
- - Terminate dialog
- - No, I don’t want to improve my workflow
- - I confirm I understand this announcement and wish to close this notification
-
-
+
+
+ - Terminate dialog
+ - No, I don’t want to improve my workflow
+ - I confirm I understand this announcement and wish to close this notification
+
+
## Dos and Don’ts
-
-
- - Do allow users to close, postpone or choose to not see the content again
-
-
-
-
- - Don’t add so much content that users need to scroll, instead use pages or split news
- - Don’t embed critical text in images as it’s hard to translate and read
- - Don’t add time-critical actions only in announcements as they are too easy to close
-
-
+
+
+ - Do allow users to close, postpone or choose to not see the content again
+
+
+
+
+ - Don’t add so much content that users need to scroll, instead use pages or split news
+ - Don’t embed critical text in images as it’s hard to translate and read
+ - Don’t add time-critical actions only in announcements as they are too easy to close
+
+
diff --git a/docs/guidelines/language/messaging/empty-state-messages.mdx b/docs/guidelines/language/messaging/empty-state-messages.mdx
index 251f2b043..0c9df9705 100644
--- a/docs/guidelines/language/messaging/empty-state-messages.mdx
+++ b/docs/guidelines/language/messaging/empty-state-messages.mdx
@@ -53,33 +53,33 @@ Use clear action verbs to show users how to fill the empty state.
Use neutral framing of the empty state and avoid making it seem like a user failure.
-
+
-
-
- - You haven’t added any of your users
-
-
+
+
+ - You haven’t added any of your users
+
+
Avoid “yet” or other expectation-related terms in headings.
-
-
- - Heading: No users added
-
-
+
+
+ - Heading: No users added
+
+
-
-
- - Heading: No users added yet
-
-
+
+
+ - Heading: No users added yet
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/messaging/error-messages.mdx b/docs/guidelines/language/messaging/error-messages.mdx
index d8650119d..4a428e156 100644
--- a/docs/guidelines/language/messaging/error-messages.mdx
+++ b/docs/guidelines/language/messaging/error-messages.mdx
@@ -28,205 +28,205 @@ Although not every error message in a product requires all three steps, aim for
Use the template when the error stops users moving forward.
-
-
- - Heading: No data received
+
+
+ - Heading: No data received
Description: Unable to receive data as sensor is inactive.
Instructions: Check sensor / Open sensor management
-
-
+
+
Avoid generic error messages or codes, instead provide specific data, value and solutions.
-
-
- - Failed to export data due to a connection error.
-
-
-
-
- - Something happened.
- - An error occurred.
- - Error 172.00046ERR
-
-
+
+
+ - Failed to export data due to a connection error.
+
+
+
+
+ - Something happened.
+ - An error occurred.
+ - Error 172.00046ERR
+
+
Give clear reasons for input validation errors to ease user frustration.
-
-
- - Value out of range. Enter a number between 1 and 100.
- - Number between 1 and 100 required.
-
-
-
+
+
+ - Value out of range. Enter a number between 1 and 100.
+ - Number between 1 and 100 required.
+
+
+
Avoid repeating your message in both the title and description.
-
-
- - Bad request: Sorry, we could not process the request. Please check and try again.
-
-
-
-
- - Bad request. Sorry, bad request.
-
-
+
+
+ - Bad request: Sorry, we could not process the request. Please check and try again.
+
+
+
+
+ - Bad request. Sorry, bad request.
+
+
Avoid blaming the user with “you” and “your” and use passive voice as an exception.
-
-
- - Device could not be deleted.
- - Failed to delete device.
-
-
-
-
- - You have failed to delete the device.
-
-
+
+
+ - Device could not be deleted.
+ - Failed to delete device.
+
+
+
+
+ - You have failed to delete the device.
+
+
Provide specific and clear solutions to avoid making assumptions about user knowledge.
-
-
- - Unsupported file type. Upload supported file types: .pdf and .docx.
-
-
-
-
-
- - Unsupported file type. Upload the supported and correct file type.
-
-
+
+
+ - Unsupported file type. Upload supported file types: .pdf and .docx.
+
+
+
+
+
+ - Unsupported file type. Upload the supported and correct file type.
+
+
If the error is our responsibility and fault, use authentic and transparent apologies.
-
-
- - We’ve moved this page. Please check the changelog for the new location.
-
-
-
-
-
- - Sorry you entered the wrong address.
-
-
+
+
+ - We’ve moved this page. Please check the changelog for the new location.
+
+
+
+
+
+ - Sorry you entered the wrong address.
+
+
Use “please” only for extra or unexpected user actions that correct system-caused disruptions.
-
-
- - Heading: Page Not Found
+
+
+ - Heading: Page Not Found
Description: We could not find what you were looking for.
Instruction: Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
-
-
+
+
Show urgency with wording, e.g. “immediately” if there are consequences from ignoring the error.
-
-
- - Update your software version immediately to avoid losing data.
-
-
+
+
+ - Update your software version immediately to avoid losing data.
+
+
Use positive framing and avoid negative and alarming words like “wrong” and “catastrophic”.
-
-
- - Value out of range. Enter a number between 1 and 100.
-
-
-
-
+
+
+ - Value out of range. Enter a number between 1 and 100.
+
+
+
+
Use softening words, e.g. unfortunately and avoid negative contractions (“do not” instead of “don’t”).
-
-
- - Unfortunately, you cannot open this page.
-
-
-
-
- - You don't have access.
- - You can't open this page.
-
-
+
+
+ - Unfortunately, you cannot open this page.
+
+
+
+
+ - You don't have access.
+ - You can't open this page.
+
+
Be honest and transparent when you cannot explain the error or how to move the user forward.
-
-
- - Something went wrong and we couldn't complete your request. Try again later.
-
-
-
-
-
- - Operation stopped for unknown reason.
-
-
+
+
+ - Something went wrong and we couldn't complete your request. Try again later.
+
+
+
+
+
+ - Operation stopped for unknown reason.
+
+
Avoid generic wording telling users to contact their admin or support as this is unhelpful.
-
-
- - Open the chat window and paste the error into the input field for support.
- - Send error log to administrator.
-
-
-
-
- - Contact admin to solve this issue.
-
-
+
+
+ - Open the chat window and paste the error into the input field for support.
+ - Send error log to administrator.
+
+
+
+
+ - Contact admin to solve this issue.
+
+
Avoid overpromising solutions to errors unless the team is working on the problem.
-
-
- - Our team is working overtime to fix this for you and it will be fixed by morning.
-
-
+
+
+ - Our team is working overtime to fix this for you and it will be fixed by morning.
+
+
diff --git a/docs/guidelines/language/messaging/error-pages.md b/docs/guidelines/language/messaging/error-pages.md
index 4b6bbe6b1..e38f9491d 100644
--- a/docs/guidelines/language/messaging/error-pages.md
+++ b/docs/guidelines/language/messaging/error-pages.md
@@ -28,77 +28,77 @@ We follow these templates when creating our main error pages. Although some of t
Use the official code and definition so users can search for code terms and information themselves.
Use language suitable for all target users, including non-native English speakers.
-
-
- - This page is not available right now. Try again later.
-
-
-
-
- - An unforeseen server-side condition prevented the fruitful processing of your request. This indicates an issue within our infrastructure, not a client-side input error.
-
-
+
+
+ - This page is not available right now. Try again later.
+
+
+
+
+ - An unforeseen server-side condition prevented the fruitful processing of your request. This indicates an issue within our infrastructure, not a client-side input error.
+
+
Avoid jokes, memes, emojis or casual wording in error pages for industrial applications.
-
-
-
- - Hold on! VIP access only! 🎩✨
-
-
+
+
+
+ - Hold on! VIP access only! 🎩✨
+
+
Use sentence casing within the description with minimal punctuation and formatting.
-
-
- - There is an error on this page. Try again later.
-
-
-
-
- - There is an ERROR on this **page**! Try again later.
-
-
+
+
+ - There is an error on this page. Try again later.
+
+
+
+
+ - There is an ERROR on this **page**! Try again later.
+
+
## Dos and Don’ts
-
-
- - Do give users a way out so the error page is not a dead end with only “Try again.” or “Try again later.”
- - Do adapt your recommended actions depending on your use case and what is technically possible
-
-
-
-
- - Don’t say your team is working on a solution to the error unless this is true
-
-
+
+
+ - Do give users a way out so the error page is not a dead end with only “Try again.” or “Try again later.”
+ - Do adapt your recommended actions depending on your use case and what is technically possible
+
+
+
+
+ - Don’t say your team is working on a solution to the error unless this is true
+
+
## Related
diff --git a/docs/guidelines/language/messaging/infotips.mdx b/docs/guidelines/language/messaging/infotips.mdx
index c5083947c..c9b73df96 100644
--- a/docs/guidelines/language/messaging/infotips.mdx
+++ b/docs/guidelines/language/messaging/infotips.mdx
@@ -16,98 +16,98 @@ description: 'Infotips are short, context-sensitive messages that appear near us
Use sentence case and end with a period (similar to tooltips).
-
-
- - View the current status of the production line.
-
-
-
-
- - VIEW CURRENT STATUS OF PRODUCTION LINE
-
-
+
+
+ - View the current status of the production line.
+
+
+
+
+ - VIEW CURRENT STATUS OF PRODUCTION LINE
+
+
Use infotips to support users with guidance and contextual information.
-
-
- - Maximum allowable hydraulic pressure (bar).
- - Current motor load in percentage.
- - Enables automatic system recalibration.
- - Unique identifier for the production batch.
-
-
+
+
+ - Maximum allowable hydraulic pressure (bar).
+ - Current motor load in percentage.
+ - Enables automatic system recalibration.
+ - Unique identifier for the production batch.
+
+
Use infotips to help users understand complex terminology.
-
-
- - SCADA System
+
+
+ - SCADA System
Supervisory Control and Data Acquisition: A system that monitors and controls industrial processes locally or at remote locations.
- - PLC cycle time
+ - PLC cycle time
This indicates the time (in milliseconds) it takes for the Programmable Logic Controller to execute one full scan of its program logic.
-
-
+
+
Use infotips to help users understand complex features and workflows.
-
-
- - Set thresholds
+
+
+ - Set thresholds
Set project thresholds here. Adjust the value to trigger alerts when the temperature exceeds a specified limit (e.g. 80°C).
- - PID controller tuning
+ - PID controller tuning
Adjust these parameters (Proportional, Integral, Derivative) to optimize the system's response to errors and achieve stable control.
- - Schedule maintenance
+ - Schedule maintenance
This workflow guides you through planning and assigning preventive maintenance tasks. First, select the asset, then define the task type, and finally set the recurrence schedule.
-
-
+
+
Use paragraphs to split complex information and use bullet points or lists for clarity.
-
-
- - Power meter monitoring
+
+
+ - Power meter monitoring
Area: Production floor
Present consumption: 120 kW
Peak: 150 kW
Button: Open meter list
-
-
+
+
Use imperative verbs (commands) for instructions and guidance.
-
-
- - Assign a unique identifier to each physical asset for tracking, maintenance scheduling, and inventory management.
- - Define and manage sequences of operations and ingredient quantities for automated production processes.
-
-
+
+
+ - Assign a unique identifier to each physical asset for tracking, maintenance scheduling, and inventory management.
+ - Define and manage sequences of operations and ingredient quantities for automated production processes.
+
+
Avoid personal pronouns (you, we, our, etc.).
-
-
- - Select a device from the network to begin configuration.
-
-
-
-
-
- - Select one of your devices to begin configuring your factory assets.
-
-
+
+
+ - Select a device from the network to begin configuration.
+
+
+
+
+
+ - Select one of your devices to begin configuring your factory assets.
+
+
diff --git a/docs/guidelines/language/messaging/messages-overview.md b/docs/guidelines/language/messaging/messages-overview.md
index 90be8d968..baa9f1b88 100644
--- a/docs/guidelines/language/messaging/messages-overview.md
+++ b/docs/guidelines/language/messaging/messages-overview.md
@@ -30,148 +30,148 @@ First define your use case and message type from the list below, then use this o
Use sentence casing for all message descriptions (except toast messages) and add full stops.
-
-
- - Create zones from your dashboard.
- - You have no new notifications.
-
-
-
-
- - Add regions from your dashboard
-
-
+
+
+ - Create zones from your dashboard.
+ - You have no new notifications.
+
+
+
+
+ - Add regions from your dashboard
+
+
Avoid overcommunicating by only adding relevant, beneficial information to your messages.
-
-
- - We received your error report and will process it within 24 to 48 hours.
-
-
-
-
- - The support team has received your bug report but they only work from 9–5 CEST time at the moment and there is a skeleton crew working over the summer.
-
-
+
+
+ - We received your error report and will process it within 24 to 48 hours.
+
+
+
+
+ - The support team has received your bug report but they only work from 9–5 CEST time at the moment and there is a skeleton crew working over the summer.
+
+
Provide specifics, e.g. objects, values, reasons and solutions, instead of generic messaging.
-
-
- - Failed to upload file due to connection error.
-
-
-
-
- - Something happened.
- - An error occurred.
-
-
+
+
+ - Failed to upload file due to connection error.
+
+
+
+
+ - Something happened.
+ - An error occurred.
+
+
Use urgent wording to signal serious and irreversible consequences from ignoring messages.
-
-
- - Immediate software update required to save data securely.
- - Update software now to save data.
- - Contact support by 14:00 CET to avoid shutdown.
- - Urgent: Order spare part replacement by August 31st for valve 532/a.
-
-
+
+
+ - Immediate software update required to save data securely.
+ - Update software now to save data.
+ - Contact support by 14:00 CET to avoid shutdown.
+ - Urgent: Order spare part replacement by August 31st for valve 532/a.
+
+
Use the same key words in your messaging, but do not repeat headings and descriptions.
-
-
- - **Heading:** Bad request
+
+
+ - **Heading:** Bad request
**Description:** We could not process your request. Check and try again.
-
-
-
-
- - **Heading:** Bad request
+
+
+
+
+ - **Heading:** Bad request
**Description:** Bad request.
-
-
+
+
Use the same grammar patterns across all your messaging within your product.
-
-
- - No assets added. / No dashboards created. / No data downloaded.
-
-
-
-
- - No assets added. / You haven’t added any assets. / You have no assets yet.
-
-
+
+
+ - No assets added. / No dashboards created. / No data downloaded.
+
+
+
+
+ - No assets added. / You haven’t added any assets. / You have no assets yet.
+
+
Avoid asking patronizing “Are you sure…?” questions to your expert users.
-
-
- - Deleting this file removes all dependencies.
-
-
-
-
- - Are you sure you want to delete this file?
-
-
+
+
+ - Deleting this file removes all dependencies.
+
+
+
+
+ - Are you sure you want to delete this file?
+
+
Use action labels that match the action of the message without mixing verbs or using synonyms.
-
-
- - Close
- - Save
- - Continue
- - Delete
-
-
-
+
+
+ - Close
+ - Save
+ - Continue
+ - Delete
+
+
+
Allow users to go back to change actions and avoid “OK” which is often understood as “Yes”.
-
-
- - Heading: Unsaved changes
+
+
+ - Heading: Unsaved changes
Description: You are about to leave the page. Unsaved changes will be lost.
Button: Exit without saving
Button: Go back
-
-
-
-
- - Description: Are you sure you want to cancel?
+
+
+
+
+ - Description: Are you sure you want to cancel?
Button: OK
Button: Cancel
Button: Yes
-
-
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/messaging/non-critical-information-messages.mdx b/docs/guidelines/language/messaging/non-critical-information-messages.mdx
index 42e3f1a83..3d2aace5b 100644
--- a/docs/guidelines/language/messaging/non-critical-information-messages.mdx
+++ b/docs/guidelines/language/messaging/non-critical-information-messages.mdx
@@ -16,124 +16,124 @@ description: Non-critical information messages come from the system and keep use
Keep messages short and concise.
-
-
- - Pump 3 cycle complete 14:32.
-
-
-
-
- - The operational sequence of Pump 3, located within Zone 2B, activated at 07:34 by admin 049 has completed its cycle (timestamp 14:32).
-
-
+
+
+ - Pump 3 cycle complete 14:32.
+
+
+
+
+ - The operational sequence of Pump 3, located within Zone 2B, activated at 07:34 by admin 049 has completed its cycle (timestamp 14:32).
+
+
Use a professional, informative tone for routine updates and only include relevant information.
-
-
- - System backup completed at 21:00.
-
-
+
+
+ - System backup completed at 21:00.
+
+
-
-
- - Don’t worry! We’ll make sure your backup is complete before your morning coffee on Friday!
-
-
+
+
+ - Don’t worry! We’ll make sure your backup is complete before your morning coffee on Friday!
+
+
Use clear timestamps for context, clarity, prioritization and record keeping.
-
-
- - Motor overload detected at 14:01:15
- - Emergency stop activated at 21:03:27
-
-
-
-
- - Notification list:
+
+
+ - Motor overload detected at 14:01:15
+ - Emergency stop activated at 21:03:27
+
+
+
+
+ - Notification list:
Motor 3 overheating
Valve 7 malfunction
- - System shutdown initiated 10 minutes ago.
- - Lubrication check due for press machine 2 in 3 days.
-
-
+ - System shutdown initiated 10 minutes ago.
+ - Lubrication check due for press machine 2 in 3 days.
+
+
Avoid urgency wording as these types of notifications are typically not as critical as warnings.
-
-
- - System backup complete.
- - System backup completed at 15:00.
-
-
-
-
- - System backup done! Open and check now!
-
-
+
+
+ - System backup complete.
+ - System backup completed at 15:00.
+
+
+
+
+ - System backup done! Open and check now!
+
+
Avoid adding user actions when possible as these notifications should not impact the user workflow.
-
-
- - Sensors calibrated. No further action required.
-
-
-
-
- - Sensors calibrated. Click to check sensors (live link), calibration settings (live link) or manage your sensors (live link).
-
-
+
+
+ - Sensors calibrated. No further action required.
+
+
+
+
+ - Sensors calibrated. Click to check sensors (live link), calibration settings (live link) or manage your sensors (live link).
+
+
Use sentence casing to align with our UX writing guidelines.
-
-
- - System will be updated within three hours.
- - Scheduled maintenance for Line 4 starts at 14:00.
-
-
+
+
+ - System will be updated within three hours.
+ - Scheduled maintenance for Line 4 starts at 14:00.
+
+
Use minimal punctuation to keep notifications easy to read and without clutter or cognitive overload.
-
-
- - System update on line 4 starts at 14:00.
-
-
-
-
- - Notification: System update! Line: 4 / Starts: 14:00.
-
-
+
+
+ - System update on line 4 starts at 14:00.
+
+
+
+
+ - Notification: System update! Line: 4 / Starts: 14:00.
+
+
Use industrial icons only when absolutely necessary and avoid emojis.
-
-
- - Line 3 shift schedule changed. See what's new.
-
-
-
-
- - 🔄 Line 3 shift schedule updated. 👉 See what’s new.
-
-
+
+
+ - Line 3 shift schedule changed. See what's new.
+
+
+
+
+ - 🔄 Line 3 shift schedule updated. 👉 See what’s new.
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/messaging/progress-updates.mdx b/docs/guidelines/language/messaging/progress-updates.mdx
index e7e7dc29e..4f92b71e3 100644
--- a/docs/guidelines/language/messaging/progress-updates.mdx
+++ b/docs/guidelines/language/messaging/progress-updates.mdx
@@ -15,179 +15,179 @@ description: While some companies use humorous text like "Chopping the onions…
Use sentence case to align with our UX writing guidelines.
Use the present simple progressive (continuous, -ing) verb form to indicate ongoing actions.
-
-
- - Loading…
- - Downloading…
- - Charging…
- - Saving…
- - Searching…
-
-
-
-
- - Been loading…
- - To be loading…
- - Will be loading…
-
-
+
+
+ - Loading…
+ - Downloading…
+ - Charging…
+ - Saving…
+ - Searching…
+
+
+
+
+ - Been loading…
+ - To be loading…
+ - Will be loading…
+
+
Use verbs before nouns to focus on the action and make messages easier to scan.
Use horizontal ellipses (…) after the verb without a space instead of adding three full stops (unicode U+2026, Mac Option+/Windows ALT+0133).
-
-
-
- - Loading …
- - Processing⋰
-
-
+
+
+
+ - Loading …
+ - Processing⋰
+
+
Use ellipses for text with numbers or the object to show a running process.
-
-
- - Uploading 5 items…
- - Uploading items…
- - Processing request…
- - Saving settings…
- - Saving changes…
-
-
-
+
+
+ - Uploading 5 items…
+ - Uploading items…
+ - Processing request…
+ - Saving settings…
+ - Saving changes…
+
+
+
Avoid ellipses to show time remaining and approximate or unknown times as they're status indicators, not actions.
-
-
- - 5 minutes remaining
- - About 33 minutes remaining
-
-
-
-
- - 5 minutes remaining…
- - About 33 minutes remaining…
-
-
+
+
+ - 5 minutes remaining
+ - About 33 minutes remaining
+
+
+
+
+ - 5 minutes remaining…
+ - About 33 minutes remaining…
+
+
Change verb form without ellipses when possible in buttons with loading spinners to avoid visual clutter.
-
-
- - Download → Downloading → Downloaded
-
-
-
-
- - Download → Downloading… → Downloaded
-
-
+
+
+ - Download → Downloading → Downloaded
+
+
+
+
+ - Download → Downloading… → Downloaded
+
+
Use the correct verb form without using ellipses to show background processes.
-
-
-
- - Download → Downloading → Downloaded
-
-
-
-
- - Download → Downloading… → Downloaded
-
-
+
+
+
+ - Download → Downloading → Downloaded
+
+
+
+
+ - Download → Downloading… → Downloaded
+
+
Use specific and definitive text to make users aware of what is happening and how long the process takes.
-
-
-
- - Please wait.
- - Thank you for waiting.
- - Just a moment.
-
-
+
+
+
+ - Please wait.
+ - Thank you for waiting.
+ - Just a moment.
+
+
Use informative text and actions when multiple processes are happening at the same time.
-
-
-
- - Thank you for waiting.
- - Just a moment.
-
-
+
+
+
+ - Thank you for waiting.
+ - Just a moment.
+
+
Use transitional text to manage user expectations and reduce frustration for lengthy processes.
-
-
- - Processing your request. This usually takes about 1–2 minutes.
- - This step takes a bit longer than usual.
- - We’re preparing your dashboard. Once it’s ready, you’ll be able to customize your view.
-
-
+
+
+ - Processing your request. This usually takes about 1–2 minutes.
+ - This step takes a bit longer than usual.
+ - We’re preparing your dashboard. Once it’s ready, you’ll be able to customize your view.
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/messaging/warning-messages.mdx b/docs/guidelines/language/messaging/warning-messages.mdx
index 5c3b91383..f49aee081 100644
--- a/docs/guidelines/language/messaging/warning-messages.mdx
+++ b/docs/guidelines/language/messaging/warning-messages.mdx
@@ -25,145 +25,145 @@ We follow this three-step approach when creating our warning messages. This ensu
Use warning messages only when an action or awareness is genuinely needed.
-
-
- - Temperature readings from Zone 3 approaching 30°. Check cooling system and ensure all windows and doors are closed.
-
-
+
+
+ - Temperature readings from Zone 3 approaching 30°. Check cooling system and ensure all windows and doors are closed.
+
+
Use clear, understandable titles and avoid generic warning messages.
-
-
- - Temperature approaching 30°
-
-
-
+
+
+ - Temperature approaching 30°
+
+
+
Provide specific and clear consequences and solutions.
-
-
- - Heading: Leave without saving
+
+
+ - Heading: Leave without saving
Description: You’re about to leave this page. Unsaved changes will be lost. Go back to save changes or exit without saving.
Button: Leave without saving
Button: Go back
-
-
-
-
- - Do you want to leave the page?
+
+
+
+
+ - Do you want to leave the page?
Button: Continue
Button: OK
Button: Cancel
-
-
+
+
Avoid using words like "may", "might" or "possibly will" when explaining problems.
-
-
- - Your changes will be lost if not saved.
-
-
-
-
- - Your changes might be lost if not saved.
-
-
+
+
+ - Your changes will be lost if not saved.
+
+
+
+
+ - Your changes might be lost if not saved.
+
+
Include links to help pages or troubleshooting steps to avoid the consequences when possible.
-
-
- - Heading: Login attempt from unknown device
+
+
+ - Heading: Login attempt from unknown device
Description: Review access settings or security guidelines to prevent unauthorized access.
Button: Open guidelines
Button: Open access settings
-
-
+
+
-
-
- - Heading: Unauthorized access attempt on Control Panel A
+
+
+ - Heading: Unauthorized access attempt on Control Panel A
Description: Review access logs and verify user credentials.
Button: Open access logs
-
-
+
+
Avoid repeating your message in both the heading and description.
-
-
- - Heading: Pressure in Tank B approaching limit
+
+
+ - Heading: Pressure in Tank B approaching limit
Description: Initiate release protocol to avoid exceeding threshold.
-
-
-
-
- - Heading: Pressure in Tank B approaching limit
+
+
+
+
+ - Heading: Pressure in Tank B approaching limit
Description: Pressure in Tank B approaching limit so initiate release protocol.
-
-
+
+
Avoid asking "Are you sure?" as this is vague, has no context, consequences and causes hesitation.
-
-
- - This action will delete all sensor data from the last 24 hours. Do you want to proceed and delete?
-
-
-
-
- - Are you sure you want to delete?
-
-
+
+
+ - This action will delete all sensor data from the last 24 hours. Do you want to proceed and delete?
+
+
+
+
+ - Are you sure you want to delete?
+
+
Use clear, urgent wording for irreversible actions.
-
-
- - Heading: Reset device
+
+
+ - Heading: Reset device
Description: A reset restores the device to its factory settings, deleting all applications and user data. This action cannot be undone.
Button: Reset
Button: Cancel
-
-
-
-
- - Press reset to proceed.
-
-
+
+
+
+
+ - Press reset to proceed.
+
+
Avoid using all uppercase text as it can be difficult to read and may seem like we’re shouting.
-
-
- - WARNING!! FAILURE! IMMEDIATE ACTION REQUIRED!!
-
-
+
+
+ - WARNING!! FAILURE! IMMEDIATE ACTION REQUIRED!!
+
+
## Dos and Don’ts
diff --git a/docs/guidelines/language/operational-emails/general-information-and-administrative-emails/usage.mdx b/docs/guidelines/language/operational-emails/general-information-and-administrative-emails/usage.mdx
index f36695de8..561c2d4cb 100644
--- a/docs/guidelines/language/operational-emails/general-information-and-administrative-emails/usage.mdx
+++ b/docs/guidelines/language/operational-emails/general-information-and-administrative-emails/usage.mdx
@@ -16,14 +16,14 @@ Use these rules alongside the [General rules](../overview-operational-emails/usa
Use a subject line that accurately reflects the email's content and purpose.
-
-
- - [App name] | New Terms of Use
- - [App name] | Changes to your data options
- - [App name] | Join our user testing
- - [App name] | Tell us about your app experience
-
-
+
+
+ - [App name] | New Terms of Use
+ - [App name] | Changes to your data options
+ - [App name] | Join our user testing
+ - [App name] | Tell us about your app experience
+
+
## Body text
@@ -33,51 +33,51 @@ Use a subject line that accurately reflects the email's content and purpose.
Be specific when asking for confirmation or agreement.
-
-
- - You have until January 31, 2026 to confirm the new Terms of Use.
-
-
-
-
- - Reading this email means you agree to our new Terms of Use.
-
-
+
+
+ - You have until January 31, 2026 to confirm the new Terms of Use.
+
+
+
+
+ - Reading this email means you agree to our new Terms of Use.
+
+
Include all relevant details of the agreement, order or change for the customer's records.
-
-
- - Your order for 5 "SINAMICS G120 Drives" (Order #QuantumShift Platform-2025-12345) has been received and processed. Estimated delivery: January 15, 2026.
-
-
+
+
+ - Your order for 5 "SINAMICS G120 Drives" (Order #QuantumShift Platform-2025-12345) has been received and processed. Estimated delivery: January 15, 2026.
+
+
Avoid ambiguous phrasing that could lead to misunderstandings.
-
-
- - Your support contract for "Automation System S7-1500" has been renewed for one year, effective January 1, 2026.
-
-
-
-
- - We've extended your S7-1500 support.
-
-
+
+
+ - Your support contract for "Automation System S7-1500" has been renewed for one year, effective January 1, 2026.
+
+
+
+
+ - We've extended your S7-1500 support.
+
+
Include a method for the customer to review, modify or cancel the agreement or action if applicable.
-
-
- - You can review your subscription details or manage your preferences at any time through your [App name] account dashboard: [link to dashboard].
-
-
+
+
+ - You can review your subscription details or manage your preferences at any time through your [App name] account dashboard: [link to dashboard].
+
+
### Feedback and surveys
@@ -85,36 +85,36 @@ Include a method for the customer to review, modify or cancel the agreement or a
Use clear and polite invitations that explain the purpose of the survey.
-
-
- - We value your opinion and would appreciate feedback on your recent interaction with our support team.
-
-
+
+
+ - We value your opinion and would appreciate feedback on your recent interaction with our support team.
+
+
Include an estimate of the time required to complete the survey.
-
-
- - This short survey will take approximately 5 minutes to complete.
-
-
+
+
+ - This short survey will take approximately 5 minutes to complete.
+
+
Include direct and secure links or buttons to make participation easier.
-
-
- - Share your thoughts via this secure link: [Link to survey].
-
-
-
-
- - Go to our website to find the survey.
-
-
+
+
+ - Share your thoughts via this secure link: [Link to survey].
+
+
+
+
+ - Go to our website to find the survey.
+
+
### Communication and contact
@@ -122,22 +122,22 @@ Include direct and secure links or buttons to make participation easier.
Include specific reference numbers or identifiers to help users track issues.
-
-
- - When contacting support, reference ticket ID: [App name]-2026-54321.
-
-
+
+
+ - When contacting support, reference ticket ID: [App name]-2026-54321.
+
+
Avoid hiding (or making it difficult) to find options for managing communication preferences or unsubscribing.
-
-
- - Manage your email preferences here: [link to preference center].
- - Unsubscribe from emails here.
-
-
+
+
+ - Manage your email preferences here: [link to preference center].
+ - Unsubscribe from emails here.
+
+
## Related
diff --git a/docs/guidelines/language/operational-emails/operative-alarms-and-events/usage.mdx b/docs/guidelines/language/operational-emails/operative-alarms-and-events/usage.mdx
index 553e891e5..902ef418a 100644
--- a/docs/guidelines/language/operational-emails/operative-alarms-and-events/usage.mdx
+++ b/docs/guidelines/language/operational-emails/operative-alarms-and-events/usage.mdx
@@ -16,29 +16,29 @@ Use these rules alongside the [General rules](../overview-operational-emails/usa
State reason and criticality of the email directly in the subject line.
-
-
- - [App name] | Failure detected in Plant A
- - [App name] | Critical risk of cyberattack
- - [App name] | Threshold change for asset TG_1234
-
-
+
+
+ - [App name] | Failure detected in Plant A
+ - [App name] | Critical risk of cyberattack
+ - [App name] | Threshold change for asset TG_1234
+
+
Use language that reflects the urgency of the email and mentions if actions are required.
-
-
- - [App name] | Immediate action required | Security vulnerability fix
- - [App name] | No action required | New events detected
-
-
-
-
- - [App name] | Security issue
-
-
+
+
+ - [App name] | Immediate action required | Security vulnerability fix
+ - [App name] | No action required | New events detected
+
+
+
+
+ - [App name] | Security issue
+
+
## Body text
@@ -46,74 +46,74 @@ Use language that reflects the urgency of the email and mentions if actions are
Be as specific as possible and tell users exactly what happened (what, when, how).
-
-
- - Critical alarm immediate attention required: Power supply failure detected in Plant A.
+
+
+ - Critical alarm immediate attention required: Power supply failure detected in Plant A.
• Power supply failure detected in Plant A.
• Event details: Overload detected on Transformer T-102 at 14:35 (UTC+2).
• Location: Nuremberg facility 32/A.
-
-
+
+
Explain consequences and solutions about the event whenever possible.
-
-
- - What you should do
- - Immediate: Reduce the load on T-102 by redistributing power to backup transformers.
- - Short-term: Inspect the transformer for signs of damage or wear.
- - Monitor: Check the load distribution system to identify why the overload occurred.
- - Follow-up: Schedule a maintenance review to prevent future overloads.
-
-
+
+
+ - What you should do
+ - Immediate: Reduce the load on T-102 by redistributing power to backup transformers.
+ - Short-term: Inspect the transformer for signs of damage or wear.
+ - Monitor: Check the load distribution system to identify why the overload occurred.
+ - Follow-up: Schedule a maintenance review to prevent future overloads.
+
+
Avoid vague timing or unclear instructions.
Use clear, action-oriented instructions for users, avoiding words like may, should or recommend.
-
-
- - Switch to backup power and confirm system status in the portal.
-
-
-
-
- - You should switch to backup power when possible.
- - You may want to switch to an alternative power supply.
-
-
+
+
+ - Switch to backup power and confirm system status in the portal.
+
+
+
+
+ - You should switch to backup power when possible.
+ - You may want to switch to an alternative power supply.
+
+
Explain if and how users can resolve issues or act with links, buttons, and suggestions.
-
-
- - No action required. The vulnerabilities have been located and logged. [Open Log files] for more details.
-
-
-
-
- - We found 1000 vulnerabilities! This means your plant is in danger!
-
-
+
+
+ - No action required. The vulnerabilities have been located and logged. [Open Log files] for more details.
+
+
+
+
+ - We found 1000 vulnerabilities! This means your plant is in danger!
+
+
## Related
diff --git a/docs/guidelines/language/operational-emails/overview-operational-emails/usage.mdx b/docs/guidelines/language/operational-emails/overview-operational-emails/usage.mdx
index be595a7c7..8e1d30244 100644
--- a/docs/guidelines/language/operational-emails/overview-operational-emails/usage.mdx
+++ b/docs/guidelines/language/operational-emails/overview-operational-emails/usage.mdx
@@ -18,106 +18,106 @@ All placeholders are shown with square brackets, e.g. [placeholder]. We have use
Keep emails short, add relevant information and avoid complex and lengthy sentences.
-
-
- - Renew your license before December 31, 2026.
-
-
-
-
- - It is recommended by us that you renew your license before December 31 avoiding a possible delay in service.
-
-
+
+
+ - Renew your license before December 31, 2026.
+
+
+
+
+ - It is recommended by us that you renew your license before December 31 avoiding a possible delay in service.
+
+
Use past tense for completed events.
-
-
- - Payment was processed Tuesday, November 11, 2025.
-
-
-
-
- - Payment is processing Tuesday, November 11, 2025.
-
-
+
+
+ - Payment was processed Tuesday, November 11, 2025.
+
+
+
+
+ - Payment is processing Tuesday, November 11, 2025.
+
+
Use future tense for upcoming actions or scheduled events.
-
-
- - We will deploy firmware Version 5.3 on November 22.
-
-
-
-
- - We deploy firmware Version 5.3 on November 22.
-
-
+
+
+ - We will deploy firmware Version 5.3 on November 22.
+
+
+
+
+ - We deploy firmware Version 5.3 on November 22.
+
+
Use the present perfect passive tense (have been / done) for system-generated confirmations or assignments.
-
-
- - You have been assigned the role of "Energy Analyst".
-
-
-
-
- - The system assigned you the role of "Energy Analyst".
-
-
+
+
+ - You have been assigned the role of "Energy Analyst".
+
+
+
+
+ - The system assigned you the role of "Energy Analyst".
+
+
Use the past active tense when someone manually assigns a task or role.
-
-
- - John Smith assigned the following task to you:
-
-
-
-
- - You have been assigned the following task by John Smith.
-
-
+
+
+ - John Smith assigned the following task to you:
+
+
+
+
+ - You have been assigned the following task by John Smith.
+
+
Use sentence case in your emails (capitalize only the first word of a sentence or heading and any proper nouns).
Use typographic double quotation marks for opening quotes " (Unicode U+201C) and for closing quotes " (Unicode U+201D) instead of single marks for consistency.
-
-
- - You have been assigned the role of "Energy Analyst".
-
-
-
-
- - You have been assigned the role of 'Energy Analyst'.
-
-
+
+
+ - You have been assigned the role of "Energy Analyst".
+
+
+
+
+ - You have been assigned the role of 'Energy Analyst'.
+
+
## Subject lines
@@ -125,63 +125,63 @@ Use typographic double quotation marks for opening quotes " (Unicode U+201C) and
Start the subject line with the application name. Use pipe separators to clearly structure the subject line, and separate the product name, action and topic.
-
-
- - [App name] | Version 2.0 available
-
-
-
-
- - New Version 2.0 available
- - [App name]: Version 2.0 available
-
-
+
+
+ - [App name] | Version 2.0 available
+
+
+
+
+ - New Version 2.0 available
+ - [App name]: Version 2.0 available
+
+
Include purpose and theme, avoiding generic or vague subject lines.
-
-
- - [App name] | Scheduled maintenance November 10, 2026, at 11:00
-
-
-
-
- - [App name] | Maintenance soon
-
-
+
+
+ - [App name] | Scheduled maintenance November 10, 2026, at 11:00
+
+
+
+
+ - [App name] | Maintenance soon
+
+
Use language that reflects the urgency of the email and mention if action is required.
-
-
- - [App name] | Immediate action required | Security vulnerability fix
- - [App name] | No action required | New events detected
-
-
-
-
- - [App name] | Security issues
-
-
+
+
+ - [App name] | Immediate action required | Security vulnerability fix
+ - [App name] | No action required | New events detected
+
+
+
+
+ - [App name] | Security issues
+
+
Keep the subject line as short as possible. Additional information should be provided in the body text.
-
-
- - [App name] | Immediate action required | Update
-
-
-
-
- - [App name] | Immediate action required | Update from old Version 2.4 to new Version 2.5 due to security issues
-
-
+
+
+ - [App name] | Immediate action required | Update
+
+
+
+
+ - [App name] | Immediate action required | Update from old Version 2.4 to new Version 2.5 due to security issues
+
+
## Body text
@@ -189,59 +189,59 @@ Keep the subject line as short as possible. Additional information should be pro
Start with a polite salutation using "Dear" followed by a comma (American English). Do not use gendered titles or gendered forms of address. Use the recipient's name if available. If no name is available, use a neutral greeting. For German translations, Siemens AG employees and partners can follow the [German Brand Guide](https://brandville.siemens.com/en/design-elements/language/inklusive-und-gendergerechte-sprache) for inclusive language.
-
-
- - Dear [App name] user,
- - Dear John Schmidt,
-
-
-
+
+
+ - Dear [App name] user,
+ - Dear John Schmidt,
+
+
+
Repeat key words from the subject line in the body text.
-
-
- - Subject line: [App name] | Version 2.0 available
+
+
+ - Subject line: [App name] | Version 2.0 available
Body text: We've released Version 2.0 of [App name].
- - Subject line: [App name] | One-time PIN for verification
+ - Subject line: [App name] | One-time PIN for verification
Body text: You requested a one-time PIN to verify your identity.
-
-
+
+
Use clear headings for users to easily scan body text for important information (omit the question mark).
-
-
- - Heading: What happened
- - Heading: What's happening
- - Heading: What you need to do
-
-
+
+
+ - Heading: What happened
+ - Heading: What's happening
+ - Heading: What you need to do
+
+
Include a professional and polite closing with a descriptive signature.
-
-
- - Kind regards,
+
+
+ - Kind regards,
Your [App name] team
-
-
-
+
+
+ - Best wishes,
Your friendly [App name] team
-
-
+
+
### Time-related information
@@ -249,27 +249,27 @@ Include a professional and polite closing with a descriptive signature.
Include specific times, dates and time zones whenever relevant.
-
-
- - The update will start automatically on November 10 between 02:00–04:00 CET (UTC+1).
-
-
-
-
- - The update will be next week.
-
-
+
+
+ - The update will start automatically on November 10 between 02:00–04:00 CET (UTC+1).
+
+
+
+
+ - The update will be next week.
+
+
Include duration and instructions when applicable.
-
-
- - The registration link is valid for 24 hours.
- - The PIN is valid for 15 minutes from the time you received this email.
-
-
+
+
+ - The registration link is valid for 24 hours.
+ - The PIN is valid for 15 minutes from the time you received this email.
+
+
### Actions and links
@@ -277,69 +277,69 @@ Include duration and instructions when applicable.
Include a clear message when users don't have to do anything.
-
-
- - What you need to do
+
+
+ - What you need to do
You don't need to do anything. We'll inform you when the data migration is complete.
-
-
+
+
Provide a clear call-to-action when user actions are needed.
-
-
- - What you need to do
+
+
+ - What you need to do
Restart your system after the update to ensure all changes take effect.
-
-
+
+
Add minimal links, actions, or buttons in each email (we recommend one per email).
-
-
- - [Open App name] event list
-
-
+
+
+ - [Open App name] event list
+
+
If possible, provide call-to-actions in buttons instead of links.
-
-
- - Button: Open dashboard
-
-
+
+
+ - Button: Open dashboard
+
+
Use inline text links for additional information.
-
-
- - For additional information, see [webpage].
-
-
+
+
+ - For additional information, see [webpage].
+
+
Use a full, live link when buttons are not possible in the email (see [External links and resources](../../menu-functions-and-ui-labels/external-links-and-resources.md)).
-
-
- - Open your dashboard
- - [App name].com/dashboard
-
-
-
-
- - {'https://example.com/'}[App name]
-
-
+
+
+ - Open your dashboard
+ - [App name].com/dashboard
+
+
+
+
+ - {'https://example.com/'}[App name]
+
+
### Responding options
@@ -347,22 +347,22 @@ Use a full, live link when buttons are not possible in the email (see [External
Include options for users to respond to or get support when possible.
-
-
- - If you have questions or need support, contact us at [email address].
-
-
+
+
+ - If you have questions or need support, contact us at [email address].
+
+
Clearly state when an email is automated and cannot be replied to.
-
-
- - This email is automated: Do not reply.
- - This is an automated email. Do not reply.
-
-
+
+
+ - This email is automated: Do not reply.
+ - This is an automated email. Do not reply.
+
+
### Disclaimer and footer
@@ -375,31 +375,31 @@ Check the correct legal text with your legal team and include a legal disclaimer
Highlight important information but avoid excessive and mixed text formatting.
-
-
- - Review the attached maintenance report for details.
-
-
-
-
- - Review the attached **Maintenance Report** for details.
-
-
+
+
+ - Review the attached maintenance report for details.
+
+
+
+
+ - Review the attached **Maintenance Report** for details.
+
+
Do not use emojis.
-
-
- - Welcome to [App name] – your energy management platform
-
-
-
-
- - We love you for joining us!!!! Welcome to the team ❤️ ❤️
-
-
+
+
+ - Welcome to [App name] – your energy management platform
+
+
+
+
+ - We love you for joining us!!!! Welcome to the team ❤️ ❤️
+
+
## Related
diff --git a/docs/guidelines/language/operational-emails/reports-and-data-provisioning-emails/usage.mdx b/docs/guidelines/language/operational-emails/reports-and-data-provisioning-emails/usage.mdx
index b4081ac98..0a4244f41 100644
--- a/docs/guidelines/language/operational-emails/reports-and-data-provisioning-emails/usage.mdx
+++ b/docs/guidelines/language/operational-emails/reports-and-data-provisioning-emails/usage.mdx
@@ -16,13 +16,13 @@ Use these rules alongside the [General rules](../overview-operational-emails/usa
Use precise and descriptive subject lines that immediately convey the email's purpose.
-
-
- - [App name] | Production efficiency report October 2025 available
- - [App name] | Test report available
- - [App name] | CSV import complete
-
-
+
+
+ - [App name] | Production efficiency report October 2025 available
+ - [App name] | Test report available
+ - [App name] | CSV import complete
+
+
## Body text
@@ -30,59 +30,59 @@ Use precise and descriptive subject lines that immediately convey the email's pu
Use the full name of the report, dataset or data type being imported or migrated.
-
-
- - The monthly "Q3 2025 energy consumption optimization report" is now available.
- - The import of your "Product inventory CSV" is complete.
-
-
-
-
- - Your report is ready.
-
-
+
+
+ - The monthly "Q3 2025 energy consumption optimization report" is now available.
+ - The import of your "Product inventory CSV" is complete.
+
+
+
+
+ - Your report is ready.
+
+
Include a brief summary or key highlights from the report, especially if it's a regular deliverable.
-
-
- - This month's "Performance overview" highlights a 5% improvement in uptime for production line 2 due to recent sensor recalibration.
-
-
+
+
+ - This month's "Performance overview" highlights a 5% improvement in uptime for production line 2 due to recent sensor recalibration.
+
+
Include the reporting period or relevant dates for the data covered in the report.
-
-
- - The "Asset utilization report" for November 1–15, 2025 has been generated and is ready for your review.
-
-
+
+
+ - The "Asset utilization report" for November 1–15, 2025 has been generated and is ready for your review.
+
+
Include direct links to the report or data, minimizing steps for the user.
-
-
- - Your "Predictive maintenance analytics report" is available.
Button: [Open report]
- - The migrated "historical maintenance logs" are now fully accessible within Maintenance history.
Button: [Open Maintenance history]
-
-
+
+
+ - Your "Predictive maintenance analytics report" is available.
Button: [Open report]
+ - The migrated "historical maintenance logs" are now fully accessible within Maintenance history.
Button: [Open Maintenance history]
+
+
Use "you" and "your" for information or actions that are recipient-specific. Use neutral wording for shared or generally available information.
-
-
- - The monthly "Energy consumption report" is now available.
- - Your requested "Product inventory CSV" has been imported and is available to download.
-
-
+
+
+ - The monthly "Energy consumption report" is now available.
+ - Your requested "Product inventory CSV" has been imported and is available to download.
+
+
## Related
diff --git a/docs/guidelines/language/operational-emails/system-and-product-lifecycle-emails/usage.mdx b/docs/guidelines/language/operational-emails/system-and-product-lifecycle-emails/usage.mdx
index a06b5ace6..7e5c51c53 100644
--- a/docs/guidelines/language/operational-emails/system-and-product-lifecycle-emails/usage.mdx
+++ b/docs/guidelines/language/operational-emails/system-and-product-lifecycle-emails/usage.mdx
@@ -16,14 +16,14 @@ Use these rules alongside the [General rules](../overview-operational-emails/usa
Include system or product lifecycle events, such as upcoming updates, directly in the subject line.
-
-
- - [App name] | Version 2.0 available
- - [App name] | End-of-life announcement for "legacy control panel model X-200"
- - [App name] | Test Version 2.1 available for staging environment
- - [App name] | Scheduled maintenance September 24, 2026, 01:00–13:00
-
-
+
+
+ - [App name] | Version 2.0 available
+ - [App name] | End-of-life announcement for "legacy control panel model X-200"
+ - [App name] | Test Version 2.1 available for staging environment
+ - [App name] | Scheduled maintenance September 24, 2026, 01:00–13:00
+
+
## Body text
@@ -33,32 +33,32 @@ Include system or product lifecycle events, such as upcoming updates, directly i
Include the new version number and release date.
-
-
- - Version 2.1.0 will be available November 10.
-
-
+
+
+ - Version 2.1.0 will be available November 10.
+
+
Add a summary of key changes or improvements.
-
-
- - This release includes enhanced firewall rules and improved logging.
-
-
+
+
+ - This release includes enhanced firewall rules and improved logging.
+
+
Include installation or update instructions with clear links, buttons or next steps.
-
-
- - Download the update via the [App name] portal and restart your system.
+
+
+ - Download the update via the [App name] portal and restart your system.
Button: Open
-
-
+
+
### End-of-life announcements
@@ -66,22 +66,22 @@ Include installation or update instructions with clear links, buttons or next st
Include upgrade paths, migration guides and support options for product transitions.
-
-
- - Our dedicated support team is available to assist you with your migration to the "Smart factory OS". Contact us at [email address] or visit our [Migration portal].
-
-
+
+
+ - Our dedicated support team is available to assist you with your migration to the "Smart factory OS". Contact us at [email address] or visit our [Migration portal].
+
+
Use absolute terms when describing the end of a product status or availability.
-
-
- - Industrial Gateway V7.2 will no longer receive security updates after June 30, 2026.
- - Be advised that support for "control panel X-200" will officially end on December 31, 2026. Migrate to "control panel Z-200" for continued support and enhanced features.
-
-
+
+
+ - Industrial Gateway V7.2 will no longer receive security updates after June 30, 2026.
+ - Be advised that support for "control panel X-200" will officially end on December 31, 2026. Migrate to "control panel Z-200" for continued support and enhanced features.
+
+
### Release approvals
@@ -89,21 +89,21 @@ Use absolute terms when describing the end of a product status or availability.
Include a clear request for approval.
-
-
- - Review and approve release V2.1.0 by November 10, 2026.
-
-
+
+
+ - Review and approve release V2.1.0 by November 10, 2026.
+
+
Use links or attachments for release notes.
-
-
- - See attached release documentation for full details.
-
-
+
+
+ - See attached release documentation for full details.
+
+
### Staging and test releases
@@ -111,22 +111,22 @@ Use links or attachments for release notes.
Include the test environment details.
-
-
- - The staging release is now available at [web address].
-
-
+
+
+ - The staging release is now available at [web address].
+
+
Use instructions for feedback or reporting issues.
-
-
- - Report any anomalies via the quality portal.
- - Send your feedback to [email address] by September 22, 2026.
-
-
+
+
+ - Report any anomalies via the quality portal.
+ - Send your feedback to [email address] by September 22, 2026.
+
+
### Maintenance announcements
@@ -134,22 +134,22 @@ Use instructions for feedback or reporting issues.
Include the maintenance window and impact.
-
-
- - Scheduled maintenance will occur on Nov 15, 02:00–04:00. Temporary downtime expected.
-
-
+
+
+ - Scheduled maintenance will occur on Nov 15, 02:00–04:00. Temporary downtime expected.
+
+
Use instructions for preparation or follow-up.
-
-
- - Ensure backups are completed before the maintenance window.
+
+
+ - Ensure backups are completed before the maintenance window.
Button: Open Drive manager
-
-
+
+
## Related
diff --git a/docs/guidelines/language/operational-emails/user-and-access-management-emails/examples.mdx b/docs/guidelines/language/operational-emails/user-and-access-management-emails/examples.mdx
index 2d671eb0e..0418d7564 100644
--- a/docs/guidelines/language/operational-emails/user-and-access-management-emails/examples.mdx
+++ b/docs/guidelines/language/operational-emails/user-and-access-management-emails/examples.mdx
@@ -66,7 +66,7 @@ Your [App name] team
**Body**
Dear [App name] user,
-A new device has been registered to your account [{'user@example.com'}]
+A new device has been registered to your account \[user@example.com\]
Device name: Laptop123
Device ID: ABCDEFGHI
Operating system: Windows
@@ -84,4 +84,3 @@ Your [App name] team
[Company disclaimer]
[Company legal footer]
-
diff --git a/docs/guidelines/language/operational-emails/user-and-access-management-emails/usage.mdx b/docs/guidelines/language/operational-emails/user-and-access-management-emails/usage.mdx
index 9cf2148c4..1e4b7caef 100644
--- a/docs/guidelines/language/operational-emails/user-and-access-management-emails/usage.mdx
+++ b/docs/guidelines/language/operational-emails/user-and-access-management-emails/usage.mdx
@@ -16,14 +16,14 @@ Use these rules alongside the [General rules](../overview-operational-emails/usa
State the clear purpose or topic of the email.
-
-
- - [App name] | Welcome to [App name]
- - [App name] | Log in from new device
- - [App name] | Notification of role change
- - [App name] | One-time PIN for verification
-
-
+
+
+ - [App name] | Welcome to [App name]
+ - [App name] | Log in from new device
+ - [App name] | Notification of role change
+ - [App name] | One-time PIN for verification
+
+
## Body text
@@ -31,77 +31,77 @@ State the clear purpose or topic of the email.
Start with a clear sentence describing the topic of the email.
-
-
- - Thank you for choosing [App name].
- - Your account has been successfully created.
- - You requested a one-time PIN to verify your identity.
- - A new device has been registered to this account: [{'user@example.com'}]
-
-
+
+
+ - Thank you for choosing [App name].
+ - Your account has been successfully created.
+ - You requested a one-time PIN to verify your identity.
+ - A new device has been registered to this account: [{'user@example.com'}]
+
+
Provide users with additional information or a summary.
-
-
- - What you need to do
+
+
+ - What you need to do
• Open [App name]
• Start configuring your dashboard
• Explore key features: Real-time energy monitoring, load optimization and predictive analytics
Button: Open
-
-
+
+
-
-
- - The information below relates to your newly registered device
+
+
+ - The information below relates to your newly registered device
• Device name: Laptop123
• Device ID: ABCDEFGHI
• Operating system: Windows
• Date: November 11, 2026, 14:32
-
-
+
+
Provide users with clear next steps or instructions.
-
-
- - You are just a few steps away from starting your [App name] journey. To get started, register for an [App name] ID using your email address and create a strong, secure password.
-
-
+
+
+ - You are just a few steps away from starting your [App name] journey. To get started, register for an [App name] ID using your email address and create a strong, secure password.
+
+
Never include sensitive information such as passwords directly in the email.
-
-
- - To set your password securely, visit the [App name] account portal.
-
-
-
-
- - Here is your default password: 12345 – change it here!
-
-
+
+
+ - To set your password securely, visit the [App name] account portal.
+
+
+
+
+ - Here is your default password: 12345 – change it here!
+
+
Mention both previous and new states when access or role settings are changed.
-
-
- - There have been changes to your role for [App name]
+
+
+ - There have been changes to your role for [App name]
New role: Administrator
Previous role: Operator
-
-
+
+
## Related
diff --git a/docs/guidelines/language/operational-emails/workflow-and-task-management-emails/usage.mdx b/docs/guidelines/language/operational-emails/workflow-and-task-management-emails/usage.mdx
index 8b62b57cd..9f9e0854a 100644
--- a/docs/guidelines/language/operational-emails/workflow-and-task-management-emails/usage.mdx
+++ b/docs/guidelines/language/operational-emails/workflow-and-task-management-emails/usage.mdx
@@ -16,27 +16,27 @@ Use these rules alongside the [General rules](../overview-operational-emails/usa
State the clear purpose or topic of the email with a descriptive title for context.
-
-
- - [App name] | Task #234 created | Spare part maintenance
- - [App name] | Task #659 assigned to you | Log file management
- - [App name] | Task #012 completed | Turbine overhaul
- - [App name] | Maintenance scheduled for Nov 11, 2026, 10:00
-
-
+
+
+ - [App name] | Task #234 created | Spare part maintenance
+ - [App name] | Task #659 assigned to you | Log file management
+ - [App name] | Task #012 completed | Turbine overhaul
+ - [App name] | Maintenance scheduled for Nov 11, 2026, 10:00
+
+
State any time urgency, criticality or workflow impact within the subject line.
-
-
- - [App name] | Immediate action required | Firmware update
- - [App name] | Task #134 | Review due Nov 11, 2026, 14:30
- - [App name] | Task #879 | Approval requested
- - [App name] | Task #987 | Overdue
-
-
+
+
+ - [App name] | Immediate action required | Firmware update
+ - [App name] | Task #134 | Review due Nov 11, 2026, 14:30
+ - [App name] | Task #879 | Approval requested
+ - [App name] | Task #987 | Overdue
+
+
## Body text
@@ -44,55 +44,55 @@ State any time urgency, criticality or workflow impact within the subject line.
Use clear and unambiguous headings to tell users what needs to be managed.
-
-
- - Task assigned
- - Approval required
- - Task overdue
- - Review required
-
-
-
+
+
+ - Task assigned
+ - Approval required
+ - Task overdue
+ - Review required
+
+
+
Include bullet points to enhance readability and highlight key information.
-
-
- - New task assigned
+
+
+ - New task assigned
• Task ID: 462
• Task description: Spare part replacement for sensor 672_A
• Assigned by: Operator
• Assigned: February 10, 2026
• Due: February 15, 2026
-
-
+
+
Avoid vague statements about impact or required actions.
-
-
- - This update will require a restart and cause 5 minutes of downtime for [Asset name].
- - Software update
+
+
+ - This update will require a restart and cause 5 minutes of downtime for [Asset name].
+ - Software update
• Software: Update to Version 4.3.6
• Date: November 10, 2025
• Time: 01:00–01:05 (UTC+2)
• Impact: Brief downtime (approx. 5 minutes)
-
-
-
-
- - This update might require a restart.
-
-
+
+
+
+
+ - This update might require a restart.
+
+
## Task management and progress
@@ -100,22 +100,22 @@ Avoid vague statements about impact or required actions.
Include specific and quantifiable progress updates whenever possible.
-
-
- - Software patch deployment for SCADA system is 75% complete.
- - Maintenance for [production line] is currently underway, estimated completion in 2 hours (10:00 UTC+2).
-
-
+
+
+ - Software patch deployment for SCADA system is 75% complete.
+ - Maintenance for [production line] is currently underway, estimated completion in 2 hours (10:00 UTC+2).
+
+
Include expected completion times or clear next steps.
-
-
- - Expected completion by November 10, 2025, 22:00 (UTC+2). You will receive a notification once the system is fully operational.
-
-
+
+
+ - Expected completion by November 10, 2025, 22:00 (UTC+2). You will receive a notification once the system is fully operational.
+
+
## Status updates
@@ -123,24 +123,24 @@ Include expected completion times or clear next steps.
Use clear indicators (operational, degraded, offline, standby) and state the impact immediately.
-
-
- - Status update | Remote monitoring system | Degraded performance
- - Status update | Conveyor belt system | Offline
- - Status update | Backup generator | Standby
-
-
+
+
+ - Status update | Remote monitoring system | Degraded performance
+ - Status update | Conveyor belt system | Offline
+ - Status update | Backup generator | Standby
+
+
Avoid sending repetitive updates or leaving long gaps without communication during critical incidents. Only mention the previous status when it adds useful information.
-
-
- - Ticket #274 status changed from "active" to "closed".
- - We will provide an update every 2 hours until resolution, or sooner if the status changes significantly. Our next update is scheduled for 14:00 (UTC+2).
-
-
+
+
+ - Ticket #274 status changed from "active" to "closed".
+ - We will provide an update every 2 hours until resolution, or sooner if the status changes significantly. Our next update is scheduled for 14:00 (UTC+2).
+
+
## Related
diff --git a/docs/guidelines/language/punctuation.md b/docs/guidelines/language/punctuation.md
index d13778b8d..cb5868d03 100644
--- a/docs/guidelines/language/punctuation.md
+++ b/docs/guidelines/language/punctuation.md
@@ -46,7 +46,7 @@ Always consider whether necessary
`'` Single quotation mark for possession: Customer’s role (single), customers’ roles (plural)
- No quotation mark or brackets for plurals: PDFs
+ No quotation mark or brackets for plurals: PDFs
@@ -86,36 +86,36 @@ Always consider whether necessary
- Numbers: Use No. as an abbreviation for number, no spacing between abbreviated No. and number: No.8
-
-
- - 11am
- - Monday, January 12, 2021
- - €999.50
- - €2.5 million
- - $400,456.50
- - £320
- - 30 mm
- - 10 oz
- - 10-40%
- - No.7
- - Number 7
-
-
-
-
- - 11 a.m.
- - Monday, 12 January 2021
- - €999,50
- - €2,5 million
- - $400.456,50
- - 320£
- - 30 mms
- - 10 oz.
- - 10–40%
- - #7
- - Num 7
-
-
+
+
+ - 11am
+ - Monday, January 12, 2021
+ - €999.50
+ - €2.5 million
+ - $400,456.50
+ - £320
+ - 30 mm
+ - 10 oz
+ - 10-40%
+ - No.7
+ - Number 7
+
+
+
+
+ - 11 a.m.
+ - Monday, 12 January 2021
+ - €999,50
+ - €2,5 million
+ - $400.456,50
+ - 320£
+ - 30 mms
+ - 10 oz.
+ - 10–40%
+ - #7
+ - Num 7
+
+
## Spacing
@@ -131,22 +131,22 @@ Always consider whether necessary
- Add a space before unit of measurement
-
-
- - 50%
- - 11am
- - Tuesday: no data
- - Browse…
-
-
-
-
- - 50 %
- - 11 am
- - Tuesday: no data
- - Browse …
-
-
+
+
+ - 50%
+ - 11am
+ - Tuesday: no data
+ - Browse…
+
+
+
+
+ - 50 %
+ - 11 am
+ - Tuesday: no data
+ - Browse …
+
+
## Lists
@@ -163,19 +163,19 @@ Always consider whether necessary
-
-
- - Write comments
- - Respond to comments
- - Approve work orders
-
-
-
-
-
- - Write comments
- - Respond to comments
- - Approve work orders by adding your fingerprint to your user management section in your smartphone.
-
-
+
+
+ - Write comments
+ - Respond to comments
+ - Approve work orders
+
+
+
+
+
+ - Write comments
+ - Respond to comments
+ - Approve work orders by adding your fingerprint to your user management section in your smartphone.
+
+
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 000000000..272c4b55e
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,24 @@
+import * as mdx from 'eslint-plugin-mdx';
+import markupIndent from './scripts/eslint-rules/markup-indent.mjs';
+
+export default [
+ {
+ ignores: ['docs/autogenerated/**'],
+ },
+ {
+ ...mdx.flat,
+ files: ['**/*.{md,mdx}'],
+ plugins: {
+ ...mdx.flat.plugins,
+ local: {
+ rules: {
+ 'markup-indent': markupIndent,
+ },
+ },
+ },
+ rules: {
+ ...mdx.flat.rules,
+ 'local/markup-indent': 'error',
+ },
+ },
+];
diff --git a/package.json b/package.json
index 9151248a5..691078ed0 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"start.docs": "docusaurus start",
"build.docs": "docusaurus build",
"prepare.docs": "tsx --tsconfig ./tsconfig.node.json ./scripts/prepare-markdown.ts",
+ "lint:markdown": "eslint \"docs/**/*.{md,mdx}\"",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
@@ -53,6 +54,8 @@
"clsx": "^2.1.0",
"docusaurus-plugin-llms": "^0.3.0",
"docusaurus-plugin-sass": "^0.2.5",
+ "eslint": "^10.7.0",
+ "eslint-plugin-mdx": "^3.8.1",
"fs-extra": "^11.3.0",
"glob": "^11.0.3",
"mustache": "^4.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7d7ccd1c4..9cf8b5fa4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,13 +13,13 @@ importers:
dependencies:
'@docusaurus/core':
specifier: 3.7.0
- version: 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ version: 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/plugin-client-redirects':
specifier: ^3.7.0
- version: 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ version: 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/preset-classic':
specifier: 3.7.0
- version: 3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)
+ version: 3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)
'@mdx-js/react':
specifier: ^3.0.0
version: 3.1.0(@types/react@18.3.22)(react@18.3.1)
@@ -53,16 +53,16 @@ importers:
devDependencies:
'@cmfcmf/docusaurus-search-local':
specifier: ^1.2.0
- version: 1.2.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(search-insights@2.17.3)
+ version: 1.2.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(search-insights@2.17.3)
'@docusaurus/module-type-aliases':
specifier: 3.7.0
- version: 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@docusaurus/tsconfig':
specifier: 3.7.0
version: 3.7.0
'@docusaurus/types':
specifier: 3.7.0
- version: 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@dotenvx/dotenvx':
specifier: ^1.52.0
version: 1.52.0
@@ -101,10 +101,16 @@ importers:
version: 2.1.1
docusaurus-plugin-llms:
specifier: ^0.3.0
- version: 0.3.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))
+ version: 0.3.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))
docusaurus-plugin-sass:
specifier: ^0.2.5
- version: 0.2.6(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(sass@1.87.0)(webpack@5.99.8)
+ version: 0.2.6(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(sass@1.87.0)(webpack@5.99.8)
+ eslint:
+ specifier: ^10.7.0
+ version: 10.7.0(jiti@1.21.7)
+ eslint-plugin-mdx:
+ specifier: ^3.8.1
+ version: 3.8.1(eslint@10.7.0(jiti@1.21.7))
fs-extra:
specifier: ^11.3.0
version: 11.3.0
@@ -1492,6 +1498,36 @@ packages:
cpu: [x64]
os: [win32]
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.23.5':
+ resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/config-helpers@0.6.0':
+ resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/core@1.2.1':
+ resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/object-schema@3.0.5':
+ resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/plugin-kit@0.7.2':
+ resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
'@floating-ui/core@1.7.0':
resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==}
@@ -1507,6 +1543,26 @@ packages:
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+ '@humanfs/core@0.19.2':
+ resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.8':
+ resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/types@0.15.0':
+ resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
'@isaacs/balanced-match@4.0.1':
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
engines: {node: 20 || >=22}
@@ -1593,6 +1649,30 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@npmcli/config@8.3.4':
+ resolution: {integrity: sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@npmcli/git@5.0.8':
+ resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@npmcli/map-workspaces@3.0.6':
+ resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ '@npmcli/name-from-folder@2.0.0':
+ resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ '@npmcli/package-json@5.2.1':
+ resolution: {integrity: sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@npmcli/promise-spawn@7.0.2':
+ resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
'@octokit/app@15.1.6':
resolution: {integrity: sha512-WELCamoCJo9SN0lf3SWZccf68CF0sBNPQuLYmZ/n87p5qvBJDe9aBtr5dHkh7T9nxWZ608pizwsUbypSzZAiUw==}
engines: {node: '>= 18'}
@@ -1844,6 +1924,10 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
+ '@pkgr/core@0.3.6':
+ resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
'@pnpm/config.env-replace@1.1.0':
resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
engines: {node: '>=12.22.0'}
@@ -2064,6 +2148,9 @@ packages:
'@types/bonjour@3.5.13':
resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
+ '@types/concat-stream@2.0.3':
+ resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==}
+
'@types/connect-history-api-fallback@1.5.4':
resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
@@ -2079,12 +2166,18 @@ packages:
'@types/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+ '@types/esrecurse@4.3.1':
+ resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
+
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
'@types/estree@1.0.7':
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
'@types/express-serve-static-core@4.19.6':
resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
@@ -2118,6 +2211,9 @@ packages:
'@types/http-proxy@1.17.16':
resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==}
+ '@types/is-empty@1.2.3':
+ resolution: {integrity: sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==}
+
'@types/istanbul-lib-coverage@2.0.6':
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@@ -2202,6 +2298,9 @@ packages:
'@types/sockjs@0.3.36':
resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
+ '@types/supports-color@8.1.3':
+ resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==}
+
'@types/tar@6.1.13':
resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==}
@@ -2274,6 +2373,10 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+ abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -2292,6 +2395,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ acorn@8.17.0:
+ resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
address@1.2.2:
resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
engines: {node: '>= 10.0.0'}
@@ -2325,6 +2433,9 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@6.15.0:
+ resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
+
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
@@ -2446,6 +2557,10 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
batch@0.6.1:
resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
@@ -2489,6 +2604,10 @@ packages:
brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ brace-expansion@5.0.7:
+ resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==}
+ engines: {node: 18 || 20 || >=22}
+
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
@@ -2608,6 +2727,10 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
+ ci-info@4.4.0:
+ resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
+ engines: {node: '>=8'}
+
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -2711,6 +2834,10 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ concat-stream@2.0.0:
+ resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
+ engines: {'0': node >= 6.0}
+
config-chain@1.1.13:
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
@@ -2944,6 +3071,9 @@ packages:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@@ -3137,6 +3267,9 @@ packages:
resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==}
engines: {node: '>=0.12'}
+ err-code@2.0.3:
+ resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
+
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
@@ -3193,15 +3326,61 @@ packages:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
+ eslint-mdx@3.8.1:
+ resolution: {integrity: sha512-hnsqWwMOHqUANwxWEGt8XbwABPEr5sTOolAzqyUDFdlERpqjFE/icylb+mJl60VICL+kLbbvXWbnFLWZdTqJ2g==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ eslint: '>=8.0.0'
+ remark-lint-file-extension: '*'
+ peerDependenciesMeta:
+ remark-lint-file-extension:
+ optional: true
+
+ eslint-plugin-mdx@3.8.1:
+ resolution: {integrity: sha512-4OLgotfBxUDc1f6ihXSagT/1+JCCUABA/2r6Kzl6gqFftg4dCV0wBfdwFo6X6UO/FzTHr3g6mVt+6prRXffc/Q==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ eslint: '>=8.0.0'
+
eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
+ eslint-scope@9.1.2:
+ resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@5.0.1:
+ resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ eslint@10.7.0:
+ resolution: {integrity: sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@11.2.0:
+ resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
@@ -3292,6 +3471,9 @@ packages:
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
@@ -3326,6 +3508,10 @@ packages:
resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
engines: {node: '>=8'}
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
file-loader@6.2.0:
resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
engines: {node: '>= 10.13.0'}
@@ -3360,10 +3546,17 @@ packages:
resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
flat@5.0.2:
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
hasBin: true
+ flatted@3.4.2:
+ resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+
follow-redirects@1.15.9:
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
engines: {node: '>=4.0'}
@@ -3605,6 +3798,10 @@ packages:
hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+ hosted-git-info@7.0.2:
+ resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
hpack.js@2.1.6:
resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
@@ -3722,6 +3919,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@6.0.2:
+ resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==}
+ engines: {node: '>= 4'}
+
image-size@1.2.1:
resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==}
engines: {node: '>=16.x'}
@@ -3741,6 +3942,9 @@ packages:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
engines: {node: '>=8'}
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
+
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@@ -3770,6 +3974,10 @@ packages:
resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
engines: {node: '>=10'}
+ ini@4.1.3:
+ resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
@@ -3817,6 +4025,9 @@ packages:
engines: {node: '>=8'}
hasBin: true
+ is-empty@1.2.0:
+ resolution: {integrity: sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==}
+
is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: '>=0.10.0'}
@@ -3969,12 +4180,19 @@ packages:
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ json-parse-even-better-errors@3.0.2:
+ resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
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-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -4005,6 +4223,10 @@ packages:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
@@ -4012,6 +4234,13 @@ packages:
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ lines-and-columns@2.0.4:
+ resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ load-plugin@6.0.3:
+ resolution: {integrity: sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==}
+
loader-runner@4.3.0:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
@@ -4355,6 +4584,10 @@ packages:
resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
engines: {node: 20 || >=22}
+ minimatch@10.2.5:
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
+ engines: {node: 18 || 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -4411,6 +4644,9 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
@@ -4448,6 +4684,15 @@ packages:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ nopt@7.2.1:
+ resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
+
+ normalize-package-data@6.0.2:
+ resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
@@ -4460,6 +4705,22 @@ packages:
resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
engines: {node: '>=14.16'}
+ npm-install-checks@6.3.0:
+ resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-normalize-package-bin@3.0.1:
+ resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-package-arg@11.0.3:
+ resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ npm-pick-manifest@9.1.0:
+ resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
@@ -4530,6 +4791,10 @@ packages:
resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
hasBin: true
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
p-cancelable@3.0.0:
resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
engines: {node: '>=12.20'}
@@ -4591,6 +4856,10 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parse-json@7.1.1:
+ resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==}
+ engines: {node: '>=16'}
+
parse-numeric-range@1.3.0:
resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
@@ -5108,6 +5377,10 @@ packages:
preact@10.26.6:
resolution: {integrity: sha512-5SRRBinwpwkaD+OqlBDeITlRgvd8I8QlxHJw9AxSdMNV6O+LodN9nUyYGpSF7sadHjs6RzeFShMexC6DbtWr9g==}
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
pretty-error@4.0.0:
resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
@@ -5124,9 +5397,25 @@ packages:
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
engines: {node: '>=6'}
+ proc-log@4.2.0:
+ resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ promise-inflight@1.0.1:
+ resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
+ peerDependencies:
+ bluebird: '*'
+ peerDependenciesMeta:
+ bluebird:
+ optional: true
+
+ promise-retry@2.0.1:
+ resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
+ engines: {node: '>=10'}
+
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -5264,6 +5553,10 @@ packages:
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+ read-package-json-fast@3.0.2:
+ resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
@@ -5402,6 +5695,10 @@ packages:
resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
engines: {node: '>=14.16'}
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@@ -5635,6 +5932,18 @@ packages:
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-license-ids@3.0.23:
+ resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==}
+
spdy-transport@3.0.0:
resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
@@ -5668,6 +5977,10 @@ packages:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
+ string-width@6.1.0:
+ resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==}
+ engines: {node: '>=16'}
+
string-width@7.2.0:
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
engines: {node: '>=18'}
@@ -5734,6 +6047,10 @@ packages:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
+ supports-color@9.4.0:
+ resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==}
+ engines: {node: '>=12'}
+
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -5746,6 +6063,10 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
+ synckit@0.11.13:
+ resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
tailwindcss@3.4.17:
resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
engines: {node: '>=14.0.0'}
@@ -5840,6 +6161,10 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
@@ -5852,6 +6177,10 @@ packages:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
+ type-fest@3.13.1:
+ resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
+ engines: {node: '>=14.16'}
+
type-is@1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
@@ -5859,6 +6188,9 @@ packages:
typedarray-to-buffer@3.1.5:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+ typedarray@0.0.6:
+ resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
+
typescript@5.8.3:
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
engines: {node: '>=14.17'}
@@ -5887,6 +6219,9 @@ packages:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
+ unified-engine@11.2.2:
+ resolution: {integrity: sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg==}
+
unified@11.0.5:
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
@@ -5894,6 +6229,9 @@ packages:
resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
engines: {node: '>=12'}
+ unist-util-inspect@8.1.0:
+ resolution: {integrity: sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==}
+
unist-util-is@6.0.0:
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
@@ -5967,6 +6305,13 @@ packages:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+ validate-npm-package-name@5.0.1:
+ resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
value-equal@1.0.1:
resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
@@ -5980,9 +6325,21 @@ packages:
vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+ vfile-reporter@8.1.1:
+ resolution: {integrity: sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==}
+
+ vfile-sort@4.0.0:
+ resolution: {integrity: sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==}
+
+ vfile-statistics@3.0.0:
+ resolution: {integrity: sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==}
+
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+ walk-up-path@3.0.1:
+ resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==}
+
watchpack@2.4.2:
resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==}
engines: {node: '>=10.13.0'}
@@ -6078,6 +6435,10 @@ packages:
wildcard@2.0.1:
resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
@@ -7142,12 +7503,12 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@cmfcmf/docusaurus-search-local@1.2.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(search-insights@2.17.3)':
+ '@cmfcmf/docusaurus-search-local@1.2.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(search-insights@2.17.3)':
dependencies:
'@algolia/autocomplete-js': 1.19.1(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.3)
'@algolia/autocomplete-theme-classic': 1.19.1
'@algolia/client-search': 4.24.0
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
algoliasearch: 4.24.0
cheerio: 1.0.0-rc.12
clsx: 1.2.1
@@ -7430,7 +7791,7 @@ snapshots:
transitivePeerDependencies:
- '@algolia/client-search'
- '@docusaurus/babel@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/babel@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/core': 7.27.1
'@babel/generator': 7.27.1
@@ -7443,7 +7804,7 @@ snapshots:
'@babel/runtime-corejs3': 7.27.1
'@babel/traverse': 7.27.1
'@docusaurus/logger': 3.7.0
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
babel-plugin-dynamic-import-node: 2.3.3
fs-extra: 11.3.0
tslib: 2.8.1
@@ -7457,14 +7818,14 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/bundler@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/bundler@3.7.0(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
'@babel/core': 7.27.1
- '@docusaurus/babel': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/babel': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@docusaurus/cssnano-preset': 3.7.0
'@docusaurus/logger': 3.7.0
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.99.8)
clean-css: 5.3.3
copy-webpack-plugin: 11.0.0(webpack@5.99.8)
@@ -7478,7 +7839,7 @@ snapshots:
postcss: 8.5.3
postcss-loader: 7.3.4(postcss@8.5.3)(typescript@5.8.3)(webpack@5.99.8)
postcss-preset-env: 10.1.6(postcss@8.5.3)
- react-dev-utils: 12.0.1(typescript@5.8.3)(webpack@5.99.8)
+ react-dev-utils: 12.0.1(eslint@10.7.0(jiti@1.21.7))(typescript@5.8.3)(webpack@5.99.8)
terser-webpack-plugin: 5.3.14(webpack@5.99.8)
tslib: 2.8.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.99.8))(webpack@5.99.8)
@@ -7502,15 +7863,15 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/babel': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/bundler': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/babel': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/bundler': 3.7.0(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/mdx-loader': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mdx-js/react': 3.1.0(@types/react@18.3.22)(react@18.3.1)
boxen: 6.2.1
chalk: 4.1.2
@@ -7532,7 +7893,7 @@ snapshots:
p-map: 4.0.0
prompts: 2.4.2
react: 18.3.1
- react-dev-utils: 12.0.1(typescript@5.8.3)(webpack@5.99.8)
+ react-dev-utils: 12.0.1(eslint@10.7.0(jiti@1.21.7))(typescript@5.8.3)(webpack@5.99.8)
react-dom: 18.3.1(react@18.3.1)
react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)'
react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
@@ -7581,12 +7942,12 @@ snapshots:
chalk: 4.1.2
tslib: 2.8.1
- '@docusaurus/mdx-loader@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/mdx-loader@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@docusaurus/logger': 3.7.0
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@mdx-js/mdx': 3.1.0(acorn@8.14.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mdx-js/mdx': 3.1.0(acorn@8.17.0)
'@slorber/remark-comment': 1.0.0
escape-html: 1.0.3
estree-util-value-to-estree: 3.4.0
@@ -7617,9 +7978,9 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/module-type-aliases@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/module-type-aliases@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/history': 4.7.11
'@types/react': 18.3.22
'@types/react-router-config': 5.0.11
@@ -7636,13 +7997,13 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/plugin-client-redirects@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-client-redirects@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
eta: 2.2.0
fs-extra: 11.3.0
lodash: 4.17.21
@@ -7670,17 +8031,17 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-content-blog@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-content-blog@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/mdx-loader': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
cheerio: 1.0.0-rc.12
feed: 4.2.2
fs-extra: 11.3.0
@@ -7714,17 +8075,17 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/mdx-loader': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/module-type-aliases': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/react-router-config': 5.0.11
combine-promises: 1.2.0
fs-extra: 11.3.0
@@ -7756,13 +8117,13 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-content-pages@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-content-pages@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/mdx-loader': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
fs-extra: 11.3.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -7789,11 +8150,11 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-debug@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-debug@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
fs-extra: 11.3.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -7820,11 +8181,11 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-google-analytics@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-google-analytics@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
tslib: 2.8.1
@@ -7849,11 +8210,11 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-google-gtag@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-google-gtag@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/gtag.js': 0.0.12
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -7879,11 +8240,11 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-google-tag-manager@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-google-tag-manager@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
tslib: 2.8.1
@@ -7908,14 +8269,14 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-sitemap@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-sitemap@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
fs-extra: 11.3.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -7942,12 +8303,12 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/plugin-svgr@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/plugin-svgr@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@svgr/core': 8.1.0(typescript@5.8.3)
'@svgr/webpack': 8.1.0(typescript@5.8.3)
react: 18.3.1
@@ -7975,22 +8336,22 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/preset-classic@3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)':
- dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-content-blog': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-content-pages': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-debug': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-google-analytics': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-google-gtag': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-google-tag-manager': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-sitemap': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-svgr': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/theme-classic': 3.7.0(@types/react@18.3.22)(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/theme-search-algolia': 3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/preset-classic@3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)':
+ dependencies:
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-content-blog': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-content-pages': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-debug': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-google-analytics': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-google-gtag': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-google-tag-manager': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-sitemap': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-svgr': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/theme-classic': 3.7.0(@types/react@18.3.22)(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/theme-search-algolia': 3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
@@ -8022,21 +8383,21 @@ snapshots:
'@types/react': 18.3.22
react: 18.3.1
- '@docusaurus/theme-classic@3.7.0(@types/react@18.3.22)(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
+ '@docusaurus/theme-classic@3.7.0(@types/react@18.3.22)(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)':
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/plugin-content-blog': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/plugin-content-pages': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/mdx-loader': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/module-type-aliases': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/plugin-content-blog': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/plugin-content-pages': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@docusaurus/theme-translations': 3.7.0
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mdx-js/react': 3.1.0(@types/react@18.3.22)(react@18.3.1)
clsx: 2.1.1
copy-text-to-clipboard: 3.2.0
@@ -8073,13 +8434,13 @@ snapshots:
- vue-template-compiler
- webpack-cli
- '@docusaurus/theme-common@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/theme-common@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/mdx-loader': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/module-type-aliases': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/history': 4.7.11
'@types/react': 18.3.22
'@types/react-router-config': 5.0.11
@@ -8098,16 +8459,16 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/theme-search-algolia@3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)':
+ '@docusaurus/theme-search-algolia@3.7.0(@algolia/client-search@5.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(@types/react@18.3.22)(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.8.3)':
dependencies:
'@docsearch/react': 3.9.0(@algolia/client-search@5.24.0)(@types/react@18.3.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@docusaurus/logger': 3.7.0
- '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
- '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@docusaurus/theme-translations': 3.7.0
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-validation': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
algoliasearch: 5.24.0
algoliasearch-helper: 3.25.0(algoliasearch@5.24.0)
clsx: 2.1.1
@@ -8149,9 +8510,9 @@ snapshots:
'@docusaurus/tsconfig@3.7.0': {}
- '@docusaurus/types@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/types@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@mdx-js/mdx': 3.1.0(acorn@8.14.1)
+ '@mdx-js/mdx': 3.1.0(acorn@8.17.0)
'@types/history': 4.7.11
'@types/react': 18.3.22
commander: 5.1.0
@@ -8170,9 +8531,9 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils-common@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/utils-common@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
tslib: 2.8.1
transitivePeerDependencies:
- '@swc/core'
@@ -8184,11 +8545,11 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils-validation@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/utils-validation@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@docusaurus/logger': 3.7.0
- '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
fs-extra: 11.3.0
joi: 17.13.3
js-yaml: 4.1.0
@@ -8204,11 +8565,11 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils@3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@docusaurus/utils@3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@docusaurus/logger': 3.7.0
- '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/types': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@docusaurus/utils-common': 3.7.0(acorn@8.17.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
escape-string-regexp: 4.0.0
file-loader: 6.2.0(webpack@5.99.8)
fs-extra: 11.3.0
@@ -8329,6 +8690,36 @@ snapshots:
'@esbuild/win32-x64@0.25.4':
optional: true
+ '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@1.21.7))':
+ dependencies:
+ eslint: 10.7.0(jiti@1.21.7)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/config-array@0.23.5':
+ dependencies:
+ '@eslint/object-schema': 3.0.5
+ debug: 4.4.0
+ minimatch: 10.2.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.6.0':
+ dependencies:
+ '@eslint/core': 1.2.1
+
+ '@eslint/core@1.2.1':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/object-schema@3.0.5': {}
+
+ '@eslint/plugin-kit@0.7.2':
+ dependencies:
+ '@eslint/core': 1.2.1
+ levn: 0.4.1
+
'@floating-ui/core@1.7.0':
dependencies:
'@floating-ui/utils': 0.2.9
@@ -8346,6 +8737,22 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
+ '@humanfs/core@0.19.2':
+ dependencies:
+ '@humanfs/types': 0.15.0
+
+ '@humanfs/node@0.16.8':
+ dependencies:
+ '@humanfs/core': 0.19.2
+ '@humanfs/types': 0.15.0
+ '@humanwhocodes/retry': 0.4.3
+
+ '@humanfs/types@0.15.0': {}
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
+
'@isaacs/balanced-match@4.0.1': {}
'@isaacs/brace-expansion@5.0.0':
@@ -8406,7 +8813,7 @@ snapshots:
dependencies:
'@types/react': 18.3.22
- '@mdx-js/mdx@3.1.0(acorn@8.14.1)':
+ '@mdx-js/mdx@3.1.0(acorn@8.17.0)':
dependencies:
'@types/estree': 1.0.7
'@types/estree-jsx': 1.0.5
@@ -8420,7 +8827,7 @@ snapshots:
hast-util-to-jsx-runtime: 2.3.6
markdown-extensions: 2.0.0
recma-build-jsx: 1.0.0
- recma-jsx: 1.0.0(acorn@8.14.1)
+ recma-jsx: 1.0.0(acorn@8.17.0)
recma-stringify: 1.0.0
rehype-recma: 1.0.0
remark-mdx: 3.1.0
@@ -8462,6 +8869,58 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
+ '@npmcli/config@8.3.4':
+ dependencies:
+ '@npmcli/map-workspaces': 3.0.6
+ '@npmcli/package-json': 5.2.1
+ ci-info: 4.4.0
+ ini: 4.1.3
+ nopt: 7.2.1
+ proc-log: 4.2.0
+ semver: 7.7.1
+ walk-up-path: 3.0.1
+ transitivePeerDependencies:
+ - bluebird
+
+ '@npmcli/git@5.0.8':
+ dependencies:
+ '@npmcli/promise-spawn': 7.0.2
+ ini: 4.1.3
+ lru-cache: 10.4.3
+ npm-pick-manifest: 9.1.0
+ proc-log: 4.2.0
+ promise-inflight: 1.0.1
+ promise-retry: 2.0.1
+ semver: 7.7.1
+ which: 4.0.0
+ transitivePeerDependencies:
+ - bluebird
+
+ '@npmcli/map-workspaces@3.0.6':
+ dependencies:
+ '@npmcli/name-from-folder': 2.0.0
+ glob: 10.4.5
+ minimatch: 9.0.5
+ read-package-json-fast: 3.0.2
+
+ '@npmcli/name-from-folder@2.0.0': {}
+
+ '@npmcli/package-json@5.2.1':
+ dependencies:
+ '@npmcli/git': 5.0.8
+ glob: 10.4.5
+ hosted-git-info: 7.0.2
+ json-parse-even-better-errors: 3.0.2
+ normalize-package-data: 6.0.2
+ proc-log: 4.2.0
+ semver: 7.7.1
+ transitivePeerDependencies:
+ - bluebird
+
+ '@npmcli/promise-spawn@7.0.2':
+ dependencies:
+ which: 4.0.0
+
'@octokit/app@15.1.6':
dependencies:
'@octokit/auth-app': 7.2.1
@@ -8735,6 +9194,8 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
+ '@pkgr/core@0.3.6': {}
+
'@pnpm/config.env-replace@1.1.0': {}
'@pnpm/network.ca-file@1.0.2':
@@ -8970,6 +9431,10 @@ snapshots:
dependencies:
'@types/node': 22.15.21
+ '@types/concat-stream@2.0.3':
+ dependencies:
+ '@types/node': 22.15.21
+
'@types/connect-history-api-fallback@1.5.4':
dependencies:
'@types/express-serve-static-core': 5.0.6
@@ -8993,12 +9458,16 @@ snapshots:
'@types/estree': 1.0.7
'@types/json-schema': 7.0.15
+ '@types/esrecurse@4.3.1': {}
+
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.7
'@types/estree@1.0.7': {}
+ '@types/estree@1.0.9': {}
+
'@types/express-serve-static-core@4.19.6':
dependencies:
'@types/node': 22.15.21
@@ -9043,6 +9512,8 @@ snapshots:
dependencies:
'@types/node': 22.15.21
+ '@types/is-empty@1.2.3': {}
+
'@types/istanbul-lib-coverage@2.0.6': {}
'@types/istanbul-lib-report@3.0.3':
@@ -9138,6 +9609,8 @@ snapshots:
dependencies:
'@types/node': 22.15.21
+ '@types/supports-color@8.1.3': {}
+
'@types/tar@6.1.13':
dependencies:
'@types/node': 22.15.21
@@ -9239,6 +9712,8 @@ snapshots:
'@xtuc/long@4.2.2': {}
+ abbrev@2.0.0: {}
+
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
@@ -9248,12 +9723,18 @@ snapshots:
dependencies:
acorn: 8.14.1
+ acorn-jsx@5.3.2(acorn@8.17.0):
+ dependencies:
+ acorn: 8.17.0
+
acorn-walk@8.3.4:
dependencies:
acorn: 8.14.1
acorn@8.14.1: {}
+ acorn@8.17.0: {}
+
address@1.2.2: {}
adm-zip@0.5.16: {}
@@ -9283,6 +9764,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@6.15.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
@@ -9433,6 +9921,8 @@ snapshots:
balanced-match@1.0.2: {}
+ balanced-match@4.0.4: {}
+
batch@0.6.1: {}
before-after-hook@3.0.2: {}
@@ -9500,6 +9990,10 @@ snapshots:
dependencies:
balanced-match: 1.0.2
+ brace-expansion@5.0.7:
+ dependencies:
+ balanced-match: 4.0.4
+
braces@3.0.3:
dependencies:
fill-range: 7.1.1
@@ -9628,6 +10122,8 @@ snapshots:
ci-info@3.9.0: {}
+ ci-info@4.4.0: {}
+
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
@@ -9714,6 +10210,13 @@ snapshots:
concat-map@0.0.1: {}
+ concat-stream@2.0.0:
+ dependencies:
+ buffer-from: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ typedarray: 0.0.6
+
config-chain@1.1.13:
dependencies:
ini: 1.3.8
@@ -9954,6 +10457,8 @@ snapshots:
deep-extend@0.6.0: {}
+ deep-is@0.1.4: {}
+
deepmerge@4.3.1: {}
default-gateway@6.0.3:
@@ -10032,16 +10537,16 @@ snapshots:
dependencies:
'@leichtgewicht/ip-codec': 2.0.5
- docusaurus-plugin-llms@0.3.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)):
+ docusaurus-plugin-llms@0.3.0(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)):
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
gray-matter: 4.0.3
minimatch: 9.0.5
yaml: 2.8.2
- docusaurus-plugin-sass@0.2.6(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(sass@1.87.0)(webpack@5.99.8):
+ docusaurus-plugin-sass@0.2.6(@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(sass@1.87.0)(webpack@5.99.8):
dependencies:
- '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.14.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
+ '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@18.3.22)(react@18.3.1))(acorn@8.17.0)(eslint@10.7.0(jiti@1.21.7))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
sass: 1.87.0
sass-loader: 16.0.5(sass@1.87.0)(webpack@5.99.8)
transitivePeerDependencies:
@@ -10147,6 +10652,8 @@ snapshots:
entities@6.0.0: {}
+ err-code@2.0.3: {}
+
error-ex@1.3.2:
dependencies:
is-arrayish: 0.2.1
@@ -10222,13 +10729,108 @@ snapshots:
escape-string-regexp@5.0.0: {}
+ eslint-mdx@3.8.1(eslint@10.7.0(jiti@1.21.7)):
+ dependencies:
+ acorn: 8.17.0
+ acorn-jsx: 5.3.2(acorn@8.17.0)
+ eslint: 10.7.0(jiti@1.21.7)
+ espree: 11.2.0
+ estree-util-visit: 2.0.0
+ remark-mdx: 3.1.0
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ synckit: 0.11.13
+ unified: 11.0.5
+ unified-engine: 11.2.2
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - bluebird
+ - supports-color
+
+ eslint-plugin-mdx@3.8.1(eslint@10.7.0(jiti@1.21.7)):
+ dependencies:
+ eslint: 10.7.0(jiti@1.21.7)
+ eslint-mdx: 3.8.1(eslint@10.7.0(jiti@1.21.7))
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-mdx: 3.0.0
+ micromark-extension-mdxjs: 3.0.0
+ remark-mdx: 3.1.0
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ synckit: 0.11.13
+ unified: 11.0.5
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - bluebird
+ - remark-lint-file-extension
+ - supports-color
+
eslint-scope@5.1.1:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
+ eslint-scope@9.1.2:
+ dependencies:
+ '@types/esrecurse': 4.3.1
+ '@types/estree': 1.0.9
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@5.0.1: {}
+
+ eslint@10.7.0(jiti@1.21.7):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@1.21.7))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.23.5
+ '@eslint/config-helpers': 0.6.0
+ '@eslint/core': 1.2.1
+ '@eslint/plugin-kit': 0.7.2
+ '@humanfs/node': 0.16.8
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.7
+ ajv: 6.15.0
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 9.1.2
+ eslint-visitor-keys: 5.0.1
+ espree: 11.2.0
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ minimatch: 10.2.5
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 1.21.7
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@11.2.0:
+ dependencies:
+ acorn: 8.17.0
+ acorn-jsx: 5.3.2(acorn@8.17.0)
+ eslint-visitor-keys: 5.0.1
+
esprima@4.0.1: {}
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+
esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
@@ -10359,6 +10961,8 @@ snapshots:
fast-json-stable-stringify@2.1.0: {}
+ fast-levenshtein@2.0.6: {}
+
fast-uri@3.0.6: {}
fastq@1.19.1:
@@ -10390,6 +10994,10 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
file-loader@6.2.0(webpack@5.99.8):
dependencies:
loader-utils: 2.0.4
@@ -10433,8 +11041,15 @@ snapshots:
locate-path: 7.2.0
path-exists: 5.0.0
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.4.2
+ keyv: 4.5.4
+
flat@5.0.2: {}
+ flatted@3.4.2: {}
+
follow-redirects@1.15.9: {}
foreground-child@3.3.1:
@@ -10442,7 +11057,7 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
- fork-ts-checker-webpack-plugin@6.5.3(typescript@5.8.3)(webpack@5.99.8):
+ fork-ts-checker-webpack-plugin@6.5.3(eslint@10.7.0(jiti@1.21.7))(typescript@5.8.3)(webpack@5.99.8):
dependencies:
'@babel/code-frame': 7.27.1
'@types/json-schema': 7.0.15
@@ -10459,6 +11074,8 @@ snapshots:
tapable: 1.1.3
typescript: 5.8.3
webpack: 5.99.8
+ optionalDependencies:
+ eslint: 10.7.0(jiti@1.21.7)
form-data-encoder@2.1.4: {}
@@ -10768,6 +11385,10 @@ snapshots:
dependencies:
react-is: 16.13.1
+ hosted-git-info@7.0.2:
+ dependencies:
+ lru-cache: 10.4.3
+
hpack.js@2.1.6:
dependencies:
inherits: 2.0.4
@@ -10911,6 +11532,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@6.0.2: {}
+
image-size@1.2.1:
dependencies:
queue: 6.0.2
@@ -10926,6 +11549,8 @@ snapshots:
import-lazy@4.0.0: {}
+ import-meta-resolve@4.2.0: {}
+
imurmurhash@0.1.4: {}
indent-string@4.0.0: {}
@@ -10945,6 +11570,8 @@ snapshots:
ini@2.0.0: {}
+ ini@4.1.3: {}
+
inline-style-parser@0.2.4: {}
interpret@1.4.0: {}
@@ -10982,6 +11609,8 @@ snapshots:
is-docker@2.2.1: {}
+ is-empty@1.2.0: {}
+
is-extendable@0.1.1: {}
is-extglob@2.1.1: {}
@@ -11104,10 +11733,14 @@ snapshots:
json-parse-even-better-errors@2.3.1: {}
+ json-parse-even-better-errors@3.0.2: {}
+
json-schema-traverse@0.4.1: {}
json-schema-traverse@1.0.0: {}
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
json5@2.2.3: {}
jsonfile@6.1.0:
@@ -11135,10 +11768,24 @@ snapshots:
leven@3.1.0: {}
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
+ lines-and-columns@2.0.4: {}
+
+ load-plugin@6.0.3:
+ dependencies:
+ '@npmcli/config': 8.3.4
+ import-meta-resolve: 4.2.0
+ transitivePeerDependencies:
+ - bluebird
+
loader-runner@4.3.0: {}
loader-utils@2.0.4:
@@ -11746,6 +12393,10 @@ snapshots:
dependencies:
'@isaacs/brace-expansion': 5.0.0
+ minimatch@10.2.5:
+ dependencies:
+ brace-expansion: 5.0.7
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
@@ -11789,6 +12440,8 @@ snapshots:
nanoid@3.3.11: {}
+ natural-compare@1.4.0: {}
+
negotiator@0.6.3: {}
negotiator@0.6.4: {}
@@ -11822,12 +12475,42 @@ snapshots:
node-releases@2.0.19: {}
+ nopt@7.2.1:
+ dependencies:
+ abbrev: 2.0.0
+
+ normalize-package-data@6.0.2:
+ dependencies:
+ hosted-git-info: 7.0.2
+ semver: 7.7.1
+ validate-npm-package-license: 3.0.4
+
normalize-path@3.0.0: {}
normalize-range@0.1.2: {}
normalize-url@8.0.1: {}
+ npm-install-checks@6.3.0:
+ dependencies:
+ semver: 7.7.1
+
+ npm-normalize-package-bin@3.0.1: {}
+
+ npm-package-arg@11.0.3:
+ dependencies:
+ hosted-git-info: 7.0.2
+ proc-log: 4.2.0
+ semver: 7.7.1
+ validate-npm-package-name: 5.0.1
+
+ npm-pick-manifest@9.1.0:
+ dependencies:
+ npm-install-checks: 6.3.0
+ npm-normalize-package-bin: 3.0.1
+ npm-package-arg: 11.0.3
+ semver: 7.7.1
+
npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
@@ -11901,6 +12584,15 @@ snapshots:
opener@1.5.2: {}
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
p-cancelable@3.0.0: {}
p-limit@2.3.0:
@@ -11973,6 +12665,14 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parse-json@7.1.1:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 3.0.2
+ lines-and-columns: 2.0.4
+ type-fest: 3.13.1
+
parse-numeric-range@1.3.0: {}
parse5-htmlparser2-tree-adapter@7.1.0:
@@ -12504,6 +13204,8 @@ snapshots:
preact@10.26.6: {}
+ prelude-ls@1.2.1: {}
+
pretty-error@4.0.0:
dependencies:
lodash: 4.17.21
@@ -12519,8 +13221,17 @@ snapshots:
prismjs@1.30.0: {}
+ proc-log@4.2.0: {}
+
process-nextick-args@2.0.1: {}
+ promise-inflight@1.0.1: {}
+
+ promise-retry@2.0.1:
+ dependencies:
+ err-code: 2.0.3
+ retry: 0.12.0
+
prompts@2.4.2:
dependencies:
kleur: 3.0.3
@@ -12585,7 +13296,7 @@ snapshots:
minimist: 1.2.8
strip-json-comments: 2.0.1
- react-dev-utils@12.0.1(typescript@5.8.3)(webpack@5.99.8):
+ react-dev-utils@12.0.1(eslint@10.7.0(jiti@1.21.7))(typescript@5.8.3)(webpack@5.99.8):
dependencies:
'@babel/code-frame': 7.27.1
address: 1.2.2
@@ -12596,7 +13307,7 @@ snapshots:
escape-string-regexp: 4.0.0
filesize: 8.0.7
find-up: 5.0.0
- fork-ts-checker-webpack-plugin: 6.5.3(typescript@5.8.3)(webpack@5.99.8)
+ fork-ts-checker-webpack-plugin: 6.5.3(eslint@10.7.0(jiti@1.21.7))(typescript@5.8.3)(webpack@5.99.8)
global-modules: 2.0.0
globby: 11.1.0
gzip-size: 6.0.0
@@ -12703,6 +13414,11 @@ snapshots:
dependencies:
pify: 2.3.0
+ read-package-json-fast@3.0.2:
+ dependencies:
+ json-parse-even-better-errors: 3.0.2
+ npm-normalize-package-bin: 3.0.1
+
readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
@@ -12737,9 +13453,9 @@ snapshots:
estree-util-build-jsx: 3.0.1
vfile: 6.0.3
- recma-jsx@1.0.0(acorn@8.14.1):
+ recma-jsx@1.0.0(acorn@8.17.0):
dependencies:
- acorn-jsx: 5.3.2(acorn@8.14.1)
+ acorn-jsx: 5.3.2(acorn@8.17.0)
estree-util-to-js: 2.0.0
recma-parse: 1.0.0
recma-stringify: 1.0.0
@@ -12911,6 +13627,8 @@ snapshots:
dependencies:
lowercase-keys: 3.0.0
+ retry@0.12.0: {}
+
retry@0.13.1: {}
reusify@1.1.0: {}
@@ -13170,6 +13888,20 @@ snapshots:
space-separated-tokens@2.0.2: {}
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.23
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.23
+
+ spdx-license-ids@3.0.23: {}
+
spdy-transport@3.0.0:
dependencies:
debug: 4.4.0
@@ -13213,6 +13945,12 @@ snapshots:
emoji-regex: 9.2.2
strip-ansi: 7.1.0
+ string-width@6.1.0:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 10.4.0
+ strip-ansi: 7.1.0
+
string-width@7.2.0:
dependencies:
emoji-regex: 10.4.0
@@ -13286,6 +14024,8 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-color@9.4.0: {}
+
supports-preserve-symlinks-flag@1.0.0: {}
svg-parser@2.0.4: {}
@@ -13300,6 +14040,10 @@ snapshots:
csso: 5.0.5
picocolors: 1.1.1
+ synckit@0.11.13:
+ dependencies:
+ '@pkgr/core': 0.3.6
+
tailwindcss@3.4.17:
dependencies:
'@alloc/quick-lru': 5.2.0
@@ -13402,12 +14146,18 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
type-fest@0.21.3: {}
type-fest@1.4.0: {}
type-fest@2.19.0: {}
+ type-fest@3.13.1: {}
+
type-is@1.6.18:
dependencies:
media-typer: 0.3.0
@@ -13417,6 +14167,8 @@ snapshots:
dependencies:
is-typedarray: 1.0.0
+ typedarray@0.0.6: {}
+
typescript@5.8.3: {}
undici-types@6.21.0: {}
@@ -13434,6 +14186,33 @@ snapshots:
unicode-property-aliases-ecmascript@2.1.0: {}
+ unified-engine@11.2.2:
+ dependencies:
+ '@types/concat-stream': 2.0.3
+ '@types/debug': 4.1.12
+ '@types/is-empty': 1.2.3
+ '@types/node': 22.15.21
+ '@types/unist': 3.0.3
+ concat-stream: 2.0.0
+ debug: 4.4.0
+ extend: 3.0.2
+ glob: 10.4.5
+ ignore: 6.0.2
+ is-empty: 1.2.0
+ is-plain-obj: 4.1.0
+ load-plugin: 6.0.3
+ parse-json: 7.1.1
+ trough: 2.2.0
+ unist-util-inspect: 8.1.0
+ vfile: 6.0.3
+ vfile-message: 4.0.2
+ vfile-reporter: 8.1.1
+ vfile-statistics: 3.0.0
+ yaml: 2.8.2
+ transitivePeerDependencies:
+ - bluebird
+ - supports-color
+
unified@11.0.5:
dependencies:
'@types/unist': 3.0.3
@@ -13448,6 +14227,10 @@ snapshots:
dependencies:
crypto-random-string: 4.0.0
+ unist-util-inspect@8.1.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
unist-util-is@6.0.0:
dependencies:
'@types/unist': 3.0.3
@@ -13529,6 +14312,13 @@ snapshots:
uuid@8.3.2: {}
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ validate-npm-package-name@5.0.1: {}
+
value-equal@1.0.1: {}
vary@1.1.2: {}
@@ -13543,11 +14333,34 @@ snapshots:
'@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
+ vfile-reporter@8.1.1:
+ dependencies:
+ '@types/supports-color': 8.1.3
+ string-width: 6.1.0
+ supports-color: 9.4.0
+ unist-util-stringify-position: 4.0.0
+ vfile: 6.0.3
+ vfile-message: 4.0.2
+ vfile-sort: 4.0.0
+ vfile-statistics: 3.0.0
+
+ vfile-sort@4.0.0:
+ dependencies:
+ vfile: 6.0.3
+ vfile-message: 4.0.2
+
+ vfile-statistics@3.0.0:
+ dependencies:
+ vfile: 6.0.3
+ vfile-message: 4.0.2
+
vfile@6.0.3:
dependencies:
'@types/unist': 3.0.3
vfile-message: 4.0.2
+ walk-up-path@3.0.1: {}
+
watchpack@2.4.2:
dependencies:
glob-to-regexp: 0.4.1
@@ -13711,6 +14524,8 @@ snapshots:
wildcard@2.0.1: {}
+ word-wrap@1.2.5: {}
+
wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
diff --git a/scripts/eslint-rules/markup-indent.mjs b/scripts/eslint-rules/markup-indent.mjs
new file mode 100644
index 000000000..d4ec346f5
--- /dev/null
+++ b/scripts/eslint-rules/markup-indent.mjs
@@ -0,0 +1,433 @@
+const INDENT_SIZE = 2;
+const TAG_NAME_PATTERN = /^[A-Za-z][\w.:-]*/;
+const MARKDOWN_CONTAINER_PATTERN =
+ /^(?:[ \t]*>[ \t]*)*(?:[ \t]*(?:[-+*]|\d+[.)])[ \t]+)?[ \t]*$/;
+const MARKDOWN_MARKER_PATTERN = /(?:>|(?:^|[ \t])(?:[-+*]|\d+[.)])(?=[ \t]))/;
+const RAW_TEXT_ELEMENTS = new Set(['script', 'style']);
+const VOID_ELEMENTS = new Set([
+ 'area',
+ 'base',
+ 'br',
+ 'col',
+ 'embed',
+ 'hr',
+ 'img',
+ 'input',
+ 'link',
+ 'meta',
+ 'param',
+ 'source',
+ 'track',
+ 'wbr',
+]);
+
+function createIndentFix(sourceCode, line, actual, expected) {
+ return (fixer) => {
+ const start = sourceCode.getIndexFromLoc({ line, column: 0 });
+ return fixer.replaceTextRange(
+ [start, start + actual],
+ ' '.repeat(expected)
+ );
+ };
+}
+
+function findTagEnd(content, start, state) {
+ for (let index = start; index < content.length; index += 1) {
+ const character = content[index];
+
+ if (state.quote) {
+ if (character === '\\') {
+ index += 1;
+ } else if (character === state.quote) {
+ state.quote = undefined;
+ }
+ continue;
+ }
+
+ if (character === '"' || character === "'" || character === '`') {
+ state.quote = character;
+ } else if (character === '{') {
+ state.braceDepth += 1;
+ } else if (character === '}') {
+ state.braceDepth = Math.max(0, state.braceDepth - 1);
+ } else if (character === '>' && state.braceDepth === 0) {
+ return index;
+ }
+ }
+
+ return -1;
+}
+
+function findNextTagStart(content, start) {
+ let index = content.indexOf('<', start);
+
+ while (index !== -1) {
+ const nameStart = content[index + 1] === '/' ? index + 2 : index + 1;
+ const name = content.slice(nameStart).match(TAG_NAME_PATTERN)?.[0];
+ const boundary = name && content[nameStart + name.length];
+
+ if (name && (!boundary || /[\s/>]/.test(boundary))) {
+ return index;
+ }
+
+ index = content.indexOf('<', index + 1);
+ }
+
+ return -1;
+}
+
+function getLinePosition(content, tagColumn) {
+ const prefix = content.slice(0, tagColumn);
+ const block = MARKDOWN_CONTAINER_PATTERN.test(prefix);
+
+ return {
+ block,
+ fixable: block && !MARKDOWN_MARKER_PATTERN.test(prefix),
+ hasMarkdownMarker: MARKDOWN_MARKER_PATTERN.test(prefix),
+ };
+}
+
+function isSelfClosing(content, tagEnd) {
+ return content.slice(0, tagEnd).trimEnd().endsWith('/');
+}
+
+export default {
+ meta: {
+ type: 'layout',
+ docs: {
+ description: 'Enforce indentation for block HTML and JSX markup',
+ },
+ fixable: 'whitespace',
+ schema: [],
+ messages: {
+ indentation:
+ 'Expected indentation of {{expected}} spaces but found {{actual}}.',
+ markupAfterComment: 'Move markup after a comment to a new line.',
+ unclosedTag: 'Tag <{{tag}}> is not closed before its parent.',
+ unexpectedClosingTag:
+ 'Closing tag {{tag}}> has no matching opening tag.',
+ },
+ },
+ create(context) {
+ const sourceCode = context.sourceCode;
+
+ function reportIndentation(line, actual, expected, fixable) {
+ if (actual === expected) {
+ return;
+ }
+
+ context.report({
+ loc: {
+ start: { line, column: actual },
+ end: { line, column: actual + 1 },
+ },
+ messageId: 'indentation',
+ data: { actual, expected },
+ fix: fixable
+ ? createIndentFix(sourceCode, line, actual, expected)
+ : undefined,
+ });
+ }
+
+ function reportUnclosedTag(element) {
+ context.report({
+ loc: {
+ start: { line: element.line, column: element.column },
+ end: {
+ line: element.line,
+ column: element.column + element.tag.length + 1,
+ },
+ },
+ messageId: 'unclosedTag',
+ data: { tag: element.tag },
+ });
+ }
+
+ return {
+ 'Program:exit'() {
+ const elements = [];
+ let fence;
+ let inHtmlComment = false;
+ let inJsxComment = false;
+ let pendingElement;
+
+ function pushElement(element, content, tagEnd) {
+ if (!element.void && !isSelfClosing(content, tagEnd)) {
+ elements.push(element);
+ }
+ }
+
+ function closeElement(tag, line, column, position) {
+ const matchingIndex = elements.findLastIndex(
+ (element) => element.tag === tag
+ );
+
+ if (matchingIndex === -1) {
+ if (VOID_ELEMENTS.has(tag)) {
+ return;
+ }
+
+ context.report({
+ loc: {
+ start: { line, column },
+ end: { line, column: column + tag.length + 3 },
+ },
+ messageId: 'unexpectedClosingTag',
+ data: { tag },
+ });
+ return;
+ }
+
+ if (matchingIndex !== elements.length - 1) {
+ elements
+ .slice(matchingIndex + 1)
+ .forEach((element) => reportUnclosedTag(element));
+ elements.length = matchingIndex;
+ return;
+ }
+
+ const element = elements.pop();
+
+ if (position.block) {
+ reportIndentation(
+ line,
+ column,
+ element.indentation,
+ position.fixable
+ );
+ }
+ }
+
+ function getPreviousNonEmptyLine(line) {
+ for (let index = line - 2; index >= 0; index -= 1) {
+ const previousLine = sourceCode.lines[index];
+
+ if (previousLine.trim() !== '') {
+ return previousLine;
+ }
+ }
+
+ return undefined;
+ }
+
+ function processContent(content, line, start = 0, allowBlock = true) {
+ let cursor = start;
+ let canBeBlock = allowBlock;
+ let markupAfterComment = false;
+
+ while (cursor < content.length) {
+ const rawElement = elements.at(-1);
+
+ if (rawElement && RAW_TEXT_ELEMENTS.has(rawElement.tag)) {
+ const closingPattern = new RegExp(
+ `${rawElement.tag}\\s*>`,
+ 'i'
+ );
+ const closingMatch = closingPattern.exec(content.slice(cursor));
+
+ if (!closingMatch) {
+ return;
+ }
+
+ const column = cursor + closingMatch.index;
+ const linePosition = getLinePosition(content, column);
+ closeElement(rawElement.tag, line, column, {
+ ...linePosition,
+ block: canBeBlock && linePosition.block,
+ });
+ cursor = column + closingMatch[0].length;
+ canBeBlock = false;
+ continue;
+ }
+
+ if (inHtmlComment || inJsxComment) {
+ const closingMarker = inHtmlComment ? '-->' : '*/}';
+ const closingIndex = content.indexOf(closingMarker, cursor);
+
+ if (closingIndex === -1) {
+ return;
+ }
+
+ inHtmlComment = false;
+ inJsxComment = false;
+ cursor = closingIndex + closingMarker.length;
+ markupAfterComment = true;
+ continue;
+ }
+
+ const htmlCommentIndex = content.indexOf('