From 6d0a6166d526d81bb624c995c6f1433692eb9c1a Mon Sep 17 00:00:00 2001 From: cxxxxxn Date: Thu, 16 Jul 2026 18:09:41 +0800 Subject: [PATCH 1/6] docs: add public project and contribution guidance --- .github/ISSUE_TEMPLATE/bug_report.yml | 90 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ CONTRIBUTING.md | 23 ++++++ RAI_README.md | 105 ++++++++++++++++++++++++++ README.md | 79 +++++++++++++------ SECURITY.md | 2 +- SUPPORT.md | 30 ++++---- assets/huabu-logo.svg | 15 ++++ demo.js | 11 --- 9 files changed, 309 insertions(+), 51 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 CONTRIBUTING.md create mode 100644 RAI_README.md create mode 100644 assets/huabu-logo.svg delete mode 100644 demo.js diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..e9397ad1e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,90 @@ +name: Bug report +description: Report a reproducible problem or unexpected behavior in Huabu +title: '[Bug]: ' +body: + - type: markdown + attributes: + value: | + Thanks for helping improve Huabu. Please search existing issues before submitting a new report. + + Do not include API keys, access tokens, private documents, personal information, or other sensitive data. + + - type: checkboxes + id: existing-issues + attributes: + label: Existing issues + options: + - label: I searched the existing issues and did not find a report of the same problem. + required: true + + - type: textarea + id: what-happened + attributes: + label: What happened? + description: Describe the behavior you observed, including any error message. + placeholder: Tell us what went wrong. + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: What did you expect? + description: Describe what you were trying to do and what you expected Huabu to do instead. + placeholder: Tell us what should have happened. + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: List the shortest sequence of steps that triggers the problem. + placeholder: | + 1. Open Huabu and ... + 2. Select ... + 3. Observe ... + validations: + required: true + + - type: dropdown + id: frequency + attributes: + label: How often does it happen? + options: + - Every time + - Sometimes + - Only once + - Not sure + validations: + required: true + + - type: textarea + id: system-information + attributes: + label: System information + description: In the desktop app, choose Help → Troubleshooting → Copy System Information, then paste the result here. + render: shell + validations: + required: true + + - type: textarea + id: ai-details + attributes: + label: AI-related details + description: Complete this only if the problem involves an AI response or edit. + placeholder: Include the interaction mode, agent, provider and model, selected context, relevant output, and whether proposed changes were applied. Never include an API key. + + - type: textarea + id: screenshots-and-logs + attributes: + label: Screenshots and logs + description: Drag screenshots, recordings, or the relevant part of server.log here after removing sensitive information. + + - type: checkboxes + id: sensitive-information + attributes: + label: Sensitive information + options: + - label: I reviewed this report and its attachments and removed sensitive information. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..fabf850db --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Huabu Handbook + url: https://microsoft.github.io/Huabu/docs/ + about: Read the user handbook before reporting a usage question. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..02e6376c5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,23 @@ +# Contributing to Huabu + +Thank you for your interest in Huabu. + +## Current contribution scope + +The current contribution scope focuses on bug reports, documentation feedback, and research feedback submitted through the [Huabu issue tracker](https://github.com/microsoft/Huabu/issues). + +Before opening an issue, search existing issues, use the latest available release, and follow the guidance in [SUPPORT.md](SUPPORT.md). Do not include API keys, access tokens, private documents, personal information, or other sensitive data in public issues, logs, or screenshots. + +Security vulnerabilities must not be reported through public GitHub issues. Follow [SECURITY.md](SECURITY.md) to report them privately. + +## Contributor License Agreement + +Most contributions require agreement to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use the contribution. For details, visit [Contributor License Agreements](https://cla.opensource.microsoft.com). When a pull request is submitted, a CLA bot will determine whether the agreement is required and provide instructions. + +## Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md), review the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/), or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with additional questions or comments. + +## License + +By contributing to this repository, you agree that your contributions will be licensed under the [MIT License](LICENSE), unless explicitly stated otherwise. diff --git a/RAI_README.md b/RAI_README.md new file mode 100644 index 000000000..c8da1de86 --- /dev/null +++ b/RAI_README.md @@ -0,0 +1,105 @@ +# Microsoft Responsible AI Transparency Documentation for Research - Huabu + +## Overview + +Huabu is a canvas-based interaction framework for human–AI collaboration. It provides a shared two-dimensional workspace where humans and AI agents co-work on the same materials — documents, web pages, notes, and AI conversations — arranged as persistent, spatially organized nodes. + +Huabu is designed around three principles: externalizing thinking, so that the intermediate structure of work becomes visible and manipulable; sharing a cognitive space with AI, so that agents can follow broader intent rather than only the latest instruction; and supporting natural interaction — handwriting, touch, and speech alongside typing — so that users can stay in flow while ideas are still forming. + +### WHAT CAN Huabu do + +Huabu was developed to support the early, exploratory stages of complex work — where the central challenge is deciding what to do, rather than executing well-formed instruction. On the canvas, users can externalize ideas, notes, references, and AI outputs as persistent nodes; arrange them spatially to reflect relationships, priorities, and uncertainty; and let AI agents observe the evolving workspace to help organize materials, synthesize across nodes, identify what remains unresolved, and hand off mature ideas to downstream execution agents. + + + +### INTENDED USES + +Huabu is best suited for open-ended, exploratory knowledge work — including research, planning, ideation, and early-stage design — where intent is still forming and benefits from being externalized and discussed in a shared visual space rather than a linear chat thread. + +Huabu is being shared with the research community to facilitate reproduction of our results and foster further research in this area. + +Huabu is intended to be used by domain experts who are independently capable of evaluating the quality of outputs before acting on them. + +### OUT-OF-SCOPE USES + +Huabu is not well suited for tasks that require a single authoritative answer, time-critical decision making, or workflows where the AI’s outputs would be acted on without human review. It is also not suited for users who lack the domain expertise needed to evaluate AI-generated content on the canvas, since responsibility for assessing quality and correctness rests with the user. + +We do not recommend using Huabu in commercial or real-world applications without further testing and development. It is being released for research purposes. + +Huabu was not designed or evaluated for all possible downstream purposes. Developers should consider its inherent limitations as they select use cases, and evaluate and mitigate for accuracy, safety, and fairness concerns specific to each intended downstream use. + +Without further testing and development, Huabu should not be used in sensitive domains where inaccurate outputs could suggest actions that lead to injury or negatively impact an individual's legal, financial, or life opportunities. + +We do not recommend using Huabu in the context of high-risk decision making (e.g. in law enforcement, legal, finance, or healthcare). + +## HOW TO GET STARTED + +To begin using Huabu, download the latest installer for your operating system from the [GitHub Releases page](https://github.com/microsoft/Huabu/releases), then run the installer and launch the application. See the repository README for instructions on connecting a base LLM/MLLM and configuring example workflows. + +## Evaluation + +Huabu was evaluated on its ability to support exploratory knowledge work scenarios — including research synthesis, planning, and ideation — through internal dogfooding and qualitative studies with researchers. + + + +### EVALUATION METHODS + +We used used qualitative observation, task walk-throughs, and structured user feedback from internal dogfooding sessions to measure Huabu’s performance. + +We compared the performance of Huabu against the linear chat baseline that is the dominant paradigm today using participant-reported feedback across research, planning, and ideation scenarios. + +The model used for evaluation was GPT 5.5. For more on this specific model, please see [Introducing GPT-5.5 | OpenAI](https://openai.com/index/introducing-gpt-5-5/). + +Results may vary if Huabu is used with a different model based on its unique design, configuration and training. + +### EVALUATION RESULTS + +At a high level, we found that Huabu performed well in helping users externalize and organize early-stage thinking, reduced the cognitive load of holding intermediate ideas in working memory, and made it easier for AI agents to act on the broader context of a task rather than only the latest message. + +## LIMITATIONS + +Huabu was developed for research and experimental purposes. Further testing and validation are needed before considering its application in commercial or real-world scenarios. It does not control any downstream agents, and users are responsible for configuring them safely. + +Huabu was designed and tested using the English language. Performance in other languages may vary and should be assessed by someone who is both an expert in the expected outputs and a native speaker of that language. + +Outputs generated by AI may include factual errors, fabrication, or speculation. Users are responsible for assessing the accuracy of generated content. All decisions leveraging outputs of the system should be made with human oversight and not be based solely on system outputs. + +Huabu inherits any biases, errors, or omissions produced by the model you choose to use with it. Developers are advised to choose an appropriate MLLM carefully, depending on the intended use case. + +There has not been a systematic effort to ensure that systems using Huabu are protected from security vulnerabilities such as indirect prompt injection attacks. Any systems using it should take proactive measures to harden their systems as appropriate. + +## BEST PRACTICES + +Better performance can be achieved by curating canvas content carefully, keeping nodes concise and well-labeled, and grouping related materials spatially so that the AI agent can interpret structure from the layout. Reviewing AI suggestions before acting on them — particularly before handing canvas content off to downstream execution agents — is strongly recommended. + +We strongly encourage users to use LLMs/MLLMs that support robust Responsible AI mitigations, such as Azure Open AI (AOAI) services. Such services continually update their safety and RAI mitigations with the latest industry standards for responsible use. For more on AOAI’s best practices when employing foundations models for scripts and applications: + +- [What is Azure AI Content Safety?](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/overview) +- [Overview of Responsible AI practices for Azure OpenAI models](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/overview) +- [Azure OpenAI Transparency Note](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/transparency-note) +- [OpenAI’s Usage policies](https://openai.com/policies/usage-policies) +- [Azure OpenAI’s Code of Conduct](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/code-of-conduct) + +Users are responsible for sourcing their datasets legally and ethically. This could include securing appropriate rights, ensuring consent for use of audio/images, and/or the anonymization of data prior to use in research. + +Users are reminded to be mindful of data privacy concerns and are encouraged to review the privacy policies associated with any models and data storage solutions interfacing with Huabu. + +It is the user’s responsibility to ensure that the use of Huabu complies with relevant data protection regulations and organizational guidelines. + +Developers should follow transparency best practices and inform end-users they are interacting with an AI system. + +## LICENSE + +MIT License + +Nothing disclosed here, including the Out of Scope Uses section, should be interpreted as or deemed a restriction or modification to the license the code is released under. + +## TRADEMARKS + +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. + +## CONTACT + +This research was conducted by members of [Microsoft Research](https://www.microsoft.com/en-us/research/). We welcome feedback and collaboration from our audience. If you have suggestions, questions, or observe unexpected/offensive behavior in our technology, please contact us at nanchen@microsoft.com. + +If the team receives reports of undesired behavior or identifies issues independently, we will update this repository with appropriate mitigations. diff --git a/README.md b/README.md index ffd0cdd5c..dc6e0535e 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,68 @@ -# Project +

+ Huabu logo + Huabu +

-> This repo has been populated by an initial template to help get you started. Please -> make sure to update the content to build a great experience for community-building. +

Where you and your agents think together.

-As the maintainer of this project, please make a few updates: +

+ User Handbook · + Download · + Feedback +

-- Improving this README.MD file to provide a great experience -- Updating SUPPORT.MD with content about this project's support experience -- Understanding the security reporting process in SECURITY.MD -- Remove this section from the README +Huabu is a spatial workspace for thinking with AI. It keeps ideas and AI work persistent, visible, and connected, so collaboration can continue across sessions instead of disappearing into isolated chat threads. -## Contributing +## Core Features + +- **Bring scattered information together** — drag ideas, notes, documents, and outputs from different chat sessions and sources into one Space, so everything relevant stays visible and connected. +- **Organize your thinking with AI** — work with AI to arrange information, uncover relationships, and clarify ideas while reviewing and controlling every proposed change. +- **Let your agents work with richer context** — bring your own agents into a Space, where they can understand not only the materials you provide, but also how those materials relate to one another—helping them better grasp your intent and do more relevant work. + + > Source code will be released in a future update. + +## Download and Install + +This initial release distributes packaged desktop applications through [GitHub Releases](https://github.com/microsoft/Huabu/releases/latest). + +1. Download the latest package for your platform from the Releases page. +2. On macOS, open the `.dmg`; on Windows, run the `.exe` installer. +3. Launch Huabu and choose a local folder as your **Home**. + +The current desktop packages target macOS on Apple silicon and Windows on x64. Available packages may vary by release; consult the release notes before installing. + +## Quick Start + +Follow the [Huabu User Handbook](https://microsoft.github.io/Huabu/docs/) for setup instructions, model configuration, core concepts, and guidance on creating and working in your first Space. The handbook is the canonical source for product usage instructions. + +Huabu does not provide an LLM service as part of the application. Use of a model or external capability may require a separate account, credentials, subscription, or usage charges from its provider. -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit [Contributor License Agreements](https://cla.opensource.microsoft.com). +## Data, Credentials, and Connected Services -When you submit a pull request, a CLA bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. +Huabu stores Spaces and their materials in the Home folder selected by the user. Credentials saved in the packaged desktop application are encrypted at rest using operating-system-protected storage. + +Huabu does not send telemetry, crash reports, diagnostic logs, or usage data to Microsoft. + +When an AI feature is used, the configured model provider or connected service may receive the prompt and relevant Space content needed to fulfill the request. External agents may also read or modify files within the working directory configured for them. Review the terms, privacy practices, data-handling controls, and permissions of every provider or agent before connecting it, and do not provide sensitive material unless its use is authorized. + +## Research Status and Responsible Use + +Huabu is released for research and experimental use. AI-generated output may be inaccurate, incomplete, biased, or unsafe, and Huabu has not been evaluated for every language, model, or downstream scenario. Do not use it for high-risk or time-critical decisions, or in workflows where output is acted upon without qualified human review. + +For the complete intended-use statement, evaluation summary, limitations, and responsible-use guidance, read [RAI_README.md](RAI_README.md). + +## Support and Feedback + +Community support is available on a best-effort basis through the [Huabu issue tracker](https://github.com/microsoft/Huabu/issues). See [SUPPORT.md](SUPPORT.md) for support guidance. Report security vulnerabilities privately by following [SECURITY.md](SECURITY.md). + +## Contributing -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +We welcome bug reports, documentation feedback, and research feedback. See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidance and Contributor License Agreement requirements. This project follows the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). ## Trademarks -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft -trademarks or logos is subject to and must follow -[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general). -Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. -Any use of third-party trademarks or logos are subject to those third-party's policies. +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third parties' policies. +## License +The materials included directly in this repository are licensed under the [MIT License](LICENSE), except where otherwise noted. The packaged Huabu application distributed through GitHub Releases is provided under the license terms included with that release. diff --git a/SECURITY.md b/SECURITY.md index e751608fc..656f79188 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -11,4 +11,4 @@ For security reporting information, locations, contact information, and policies please review the latest guidance for Microsoft repositories at [https://aka.ms/SECURITY.md](https://aka.ms/SECURITY.md). - \ No newline at end of file + diff --git a/SUPPORT.md b/SUPPORT.md index eaf439aec..b93ce8636 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -1,25 +1,23 @@ -# TODO: The maintainer of this repo has not yet edited this file +# Support -**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project? +## How to get help -- **No CSS support:** Fill out this template with information about how to file issues and get help. -- **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps. -- **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide. +Community support is available through the [Huabu GitHub issue tracker](https://github.com/microsoft/Huabu/issues) on a best-effort basis. -*Then remove this first heading from this SUPPORT.MD file before publishing your repo.* +Before opening an issue: -# Support +1. Update Huabu to the latest available version and confirm that the problem still occurs. +2. Search [existing issues](https://github.com/microsoft/Huabu/issues) to avoid duplicates. +3. Follow the [Report an Issue guide](https://microsoft.github.io/Huabu/docs/reference/issues) to collect reproduction steps, system information, and relevant screenshots or logs. + +If an existing issue describes the same problem, add any new details there instead of opening a duplicate. Otherwise, [create a new issue](https://github.com/microsoft/Huabu/issues/new/choose). -## How to file issues and get help +Never include API keys, access tokens, private documents, personal information, or other sensitive data in a public issue. Review and redact screenshots and logs before uploading them. -This project uses GitHub Issues to track bugs and feature requests. Please search the existing -issues before filing new issues to avoid duplicates. For new issues, file your bug or -feature request as a new Issue. +## Security issues -For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE -FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER -CHANNEL. WHERE WILL YOU HELP PEOPLE?**. +Do not report security vulnerabilities through public GitHub issues. Follow the instructions in [SECURITY.md](SECURITY.md) instead. -## Microsoft Support Policy +## Microsoft Support Policy -Support for this **PROJECT or PRODUCT** is limited to the resources listed above. +Support for Huabu is limited to the community resources listed above. diff --git a/assets/huabu-logo.svg b/assets/huabu-logo.svg new file mode 100644 index 000000000..786a92514 --- /dev/null +++ b/assets/huabu-logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/demo.js b/demo.js deleted file mode 100644 index 882292050..000000000 --- a/demo.js +++ /dev/null @@ -1,11 +0,0 @@ -const express = require("express"); - -const app = express(); - -app.get("/ping", (req, res) => { - const host = req.query.host; - // 仅做字符串响应,不执行任何命令 - res.send(`You requested ping for: ${host}`); -}); - -app.listen(3000); \ No newline at end of file From 65ba6de058b3fb3c4a1e80edd8b473f59ccab289 Mon Sep 17 00:00:00 2001 From: cxxxxxn Date: Thu, 16 Jul 2026 18:09:58 +0800 Subject: [PATCH 2/6] ci: add repository quality and source header checks --- .github/workflows/check-source-headers.yml | 20 ++++ .github/workflows/ci.yml | 43 ++++++++ scripts/check-headers.mjs | 111 +++++++++++++++++++++ 3 files changed, 174 insertions(+) create mode 100644 .github/workflows/check-source-headers.yml create mode 100644 .github/workflows/ci.yml create mode 100644 scripts/check-headers.mjs diff --git a/.github/workflows/check-source-headers.yml b/.github/workflows/check-source-headers.yml new file mode 100644 index 000000000..43c24cfe6 --- /dev/null +++ b/.github/workflows/check-source-headers.yml @@ -0,0 +1,20 @@ +name: Check source headers + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +jobs: + check-source-headers: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check source headers + run: node scripts/check-headers.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..f7a1799d4 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,43 @@ +name: CI + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + quality: + name: Lint / Format / Typecheck / Test / Build / Headers + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.34.3 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + cache-dependency-path: pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + + - name: Run quality checks + run: pnpm check + env: + DOCS_BASE_PATH: /Huabu/ + DOCS_CANONICAL_ORIGIN: https://microsoft.github.io diff --git a/scripts/check-headers.mjs b/scripts/check-headers.mjs new file mode 100644 index 000000000..1271a4796 --- /dev/null +++ b/scripts/check-headers.mjs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { execFileSync } from 'node:child_process'; +import { existsSync, readFileSync } from 'node:fs'; +import { extname, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const repoRoot = resolve(fileURLToPath(new URL('..', import.meta.url))); +const headerLines = [ + 'Copyright (c) Microsoft Corporation.', + 'Licensed under the MIT license.', +]; + +const commentStyleBySuffix = new Map([ + ['.c', 'slash'], + ['.cc', 'slash'], + ['.cpp', 'slash'], + ['.cs', 'slash'], + ['.cts', 'slash'], + ['.cxx', 'slash'], + ['.h', 'slash'], + ['.hpp', 'slash'], + ['.java', 'slash'], + ['.js', 'slash'], + ['.jsx', 'slash'], + ['.mjs', 'slash'], + ['.mts', 'slash'], + ['.ts', 'slash'], + ['.tsx', 'slash'], + ['.py', 'hash'], + ['.pyi', 'hash'], + ['.pyw', 'hash'], + ['.ps1', 'hash'], + ['.sh', 'hash'], + ['.css', 'block'], + ['.html', 'html'], + ['.less', 'block'], + ['.scss', 'block'], + ['.svelte', 'html'], + ['.vue', 'html'], +]); + +function expectedHeader(style) { + if (style === 'hash') { + return headerLines.map((line) => `# ${line}`); + } + if (style === 'block') { + return ['/*', ...headerLines.map((line) => ` * ${line}`), ' */']; + } + if (style === 'html') { + return ['']; + } + return headerLines.map((line) => `// ${line}`); +} + +const trackedPaths = execFileSync('git', ['ls-files', '-z'], { + cwd: repoRoot, + encoding: 'utf8', +}) + .split('\0') + .filter(Boolean) + .filter((path) => commentStyleBySuffix.has(extname(path).toLowerCase())) + .sort(); + +const failures = []; + +for (const trackedPath of trackedPaths) { + const absolutePath = resolve(repoRoot, trackedPath); + if (!existsSync(absolutePath)) { + continue; + } + + const suffix = extname(trackedPath).toLowerCase(); + const expected = expectedHeader(commentStyleBySuffix.get(suffix)); + let contents; + try { + contents = readFileSync(absolutePath, 'utf8').replace(/^\uFEFF/, ''); + } catch (error) { + failures.push( + `${trackedPath}: unable to read tracked source file (${error.code ?? 'unknown error'})`, + ); + continue; + } + const lines = contents.split(/\r?\n/); + const start = lines[0]?.startsWith('#!') ? 1 : 0; + + if (!expected.every((line, index) => lines[start + index] === line)) { + failures.push( + `${trackedPath}: expected lines ${start + 1}-${start + expected.length} to be ${expected.join(' / ')}`, + ); + continue; + } + + const blankLineIndex = start + expected.length; + if (lines.length > blankLineIndex && lines[blankLineIndex] !== '') { + failures.push( + `${trackedPath}: expected a blank line after the license header`, + ); + } +} + +if (failures.length > 0) { + console.error('Source header check failed:'); + for (const failure of failures) { + console.error(` - ${failure}`); + } + process.exitCode = 1; +} else { + console.log('All tracked source files have the required license header.'); +} From 4629c4025a0b99f014888e69847b48297d608a0d Mon Sep 17 00:00:00 2001 From: cxxxxxn Date: Thu, 16 Jul 2026 18:10:15 +0800 Subject: [PATCH 3/6] feat(docs): add public Huabu handbook --- .github/workflows/deploy-docs.yml | 66 + .gitignore | 5 + .prettierignore | 4 + .prettierrc.json | 9 + apps/docs/.npmrc | 1 + apps/docs/README.md | 77 + apps/docs/index.html | 19 + apps/docs/package.json | 38 + apps/docs/postcss.config.js | 8 + .../public/docs/quick-start/add-content.png | Bin 0 -> 31867 bytes .../public/docs/quick-start/configure-llm.png | Bin 0 -> 188494 bytes .../public/docs/quick-start/create-canvas.png | Bin 0 -> 32819 bytes .../quick-create-arrows-full.png | Bin 0 -> 44298 bytes apps/docs/public/favicon.png | Bin 0 -> 8406 bytes apps/docs/public/favicon.svg | 11 + apps/docs/scripts/prerender.mjs | 53 + apps/docs/scripts/validate-build.mjs | 133 + apps/docs/src/DocsApp.tsx | 51 + apps/docs/src/DocsLayout.tsx | 119 + apps/docs/src/NotFound.tsx | 24 + apps/docs/src/basePath.test.ts | 42 + apps/docs/src/basePath.ts | 29 + apps/docs/src/components/Callout.tsx | 59 + apps/docs/src/components/Card.tsx | 143 + apps/docs/src/components/Code.tsx | 67 + apps/docs/src/components/Heading.tsx | 102 + apps/docs/src/components/Image.tsx | 39 + apps/docs/src/components/Link.tsx | 60 + apps/docs/src/components/PageLayout.tsx | 54 + apps/docs/src/components/Search.tsx | 185 + apps/docs/src/components/Shortcut.tsx | 70 + apps/docs/src/components/Table.tsx | 55 + apps/docs/src/components/Toc.tsx | 49 + apps/docs/src/components/cn.ts | 14 + apps/docs/src/components/index.ts | 22 + apps/docs/src/config/nodeIcons.ts | 42 + apps/docs/src/config/shortcuts.test.ts | 40 + apps/docs/src/config/shortcuts.ts | 106 + apps/docs/src/entry-server.tsx | 47 + apps/docs/src/index.css | 177 + apps/docs/src/main.tsx | 24 + apps/docs/src/navigation.test.ts | 107 + apps/docs/src/navigation.ts | 171 + apps/docs/src/normalizeBasePath.ts | 7 + apps/docs/src/sections/QuickStart.tsx | 192 + apps/docs/src/sections/ai/ExternalAgents.tsx | 308 + apps/docs/src/sections/ai/MemoryAndSkills.tsx | 148 + .../src/sections/ai/ModelsAndCapabilities.tsx | 122 + apps/docs/src/sections/ai/WorkWithAI.tsx | 195 + .../src/sections/reference/IssueReporting.tsx | 161 + .../docs/src/sections/reference/Shortcuts.tsx | 165 + .../docs/src/sections/space/DataAndBackup.tsx | 135 + apps/docs/src/sections/space/WorkInASpace.tsx | 378 + apps/docs/src/setting.png | Bin 0 -> 188494 bytes apps/docs/src/vite-env.d.ts | 16 + apps/docs/tsconfig.json | 23 + apps/docs/tsconfig.node.json | 20 + apps/docs/vite.config.ts | 41 + apps/docs/vitest.config.ts | 19 + eslint.config.mjs | 108 + package.json | 28 + pnpm-lock.yaml | 6202 +++++++++++++++++ pnpm-workspace.yaml | 3 + 63 files changed, 10593 insertions(+) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 apps/docs/.npmrc create mode 100644 apps/docs/README.md create mode 100644 apps/docs/index.html create mode 100644 apps/docs/package.json create mode 100644 apps/docs/postcss.config.js create mode 100644 apps/docs/public/docs/quick-start/add-content.png create mode 100644 apps/docs/public/docs/quick-start/configure-llm.png create mode 100644 apps/docs/public/docs/quick-start/create-canvas.png create mode 100644 apps/docs/public/docs/work-in-a-space/quick-create-arrows-full.png create mode 100644 apps/docs/public/favicon.png create mode 100644 apps/docs/public/favicon.svg create mode 100644 apps/docs/scripts/prerender.mjs create mode 100644 apps/docs/scripts/validate-build.mjs create mode 100644 apps/docs/src/DocsApp.tsx create mode 100644 apps/docs/src/DocsLayout.tsx create mode 100644 apps/docs/src/NotFound.tsx create mode 100644 apps/docs/src/basePath.test.ts create mode 100644 apps/docs/src/basePath.ts create mode 100644 apps/docs/src/components/Callout.tsx create mode 100644 apps/docs/src/components/Card.tsx create mode 100644 apps/docs/src/components/Code.tsx create mode 100644 apps/docs/src/components/Heading.tsx create mode 100644 apps/docs/src/components/Image.tsx create mode 100644 apps/docs/src/components/Link.tsx create mode 100644 apps/docs/src/components/PageLayout.tsx create mode 100644 apps/docs/src/components/Search.tsx create mode 100644 apps/docs/src/components/Shortcut.tsx create mode 100644 apps/docs/src/components/Table.tsx create mode 100644 apps/docs/src/components/Toc.tsx create mode 100644 apps/docs/src/components/cn.ts create mode 100644 apps/docs/src/components/index.ts create mode 100644 apps/docs/src/config/nodeIcons.ts create mode 100644 apps/docs/src/config/shortcuts.test.ts create mode 100644 apps/docs/src/config/shortcuts.ts create mode 100644 apps/docs/src/entry-server.tsx create mode 100644 apps/docs/src/index.css create mode 100644 apps/docs/src/main.tsx create mode 100644 apps/docs/src/navigation.test.ts create mode 100644 apps/docs/src/navigation.ts create mode 100644 apps/docs/src/normalizeBasePath.ts create mode 100644 apps/docs/src/sections/QuickStart.tsx create mode 100644 apps/docs/src/sections/ai/ExternalAgents.tsx create mode 100644 apps/docs/src/sections/ai/MemoryAndSkills.tsx create mode 100644 apps/docs/src/sections/ai/ModelsAndCapabilities.tsx create mode 100644 apps/docs/src/sections/ai/WorkWithAI.tsx create mode 100644 apps/docs/src/sections/reference/IssueReporting.tsx create mode 100644 apps/docs/src/sections/reference/Shortcuts.tsx create mode 100644 apps/docs/src/sections/space/DataAndBackup.tsx create mode 100644 apps/docs/src/sections/space/WorkInASpace.tsx create mode 100644 apps/docs/src/setting.png create mode 100644 apps/docs/src/vite-env.d.ts create mode 100644 apps/docs/tsconfig.json create mode 100644 apps/docs/tsconfig.node.json create mode 100644 apps/docs/vite.config.ts create mode 100644 apps/docs/vitest.config.ts create mode 100644 eslint.config.mjs create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 000000000..1bb2ab772 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,66 @@ +name: Deploy user handbook + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - 'apps/docs/**' + - '.github/workflows/deploy-docs.yml' + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out Huabu + uses: actions/checkout@v4 + + - name: Set up pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.34.3 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + cache-dependency-path: pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + + - name: Build handbook + run: pnpm --filter @huabu/docs build + env: + DOCS_BASE_PATH: /Huabu/ + DOCS_CANONICAL_ORIGIN: https://microsoft.github.io + + - name: Configure GitHub Pages + uses: actions/configure-pages@v5 + + - name: Upload handbook artifact + uses: actions/upload-pages-artifact@v3 + with: + path: apps/docs/dist + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index d5a18deed..aa0b14d44 100644 --- a/.gitignore +++ b/.gitignore @@ -315,6 +315,11 @@ FakesAssemblies/ .ntvs_analysis.dat node_modules/ +# Huabu handbook build output +apps/docs/.ssr/ +apps/docs/dist/ +apps/docs/tsconfig.node.tsbuildinfo + # Visual Studio 6 build log *.plg diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..4c6ba3818 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +**/dist/ +**/node_modules/ +**/.ssr/ +**/*.tsbuildinfo diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000..8beea539b --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "tabWidth": 2, + "useTabs": false, + "endOfLine": "lf", + "arrowParens": "always", + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/apps/docs/.npmrc b/apps/docs/.npmrc new file mode 100644 index 000000000..538f0f031 --- /dev/null +++ b/apps/docs/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmjs.org/ diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 000000000..0b759be42 --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1,77 @@ +# Huabu User Handbook + +This package contains the source for the public Huabu User Handbook at [https://microsoft.github.io/Huabu/docs/](https://microsoft.github.io/Huabu/docs/). It is an independent Vite application maintained directly in the Huabu repository. + +## Requirements + +- Node.js 22 +- pnpm 10.34.3 + +## Install dependencies + +From the repository root, run: + +```sh +pnpm install +``` + +## Local development + +Start the Vite development server: + +```sh +pnpm dev +``` + +The development server defaults to `http://localhost:43127`. Set `DOCS_PORT` to use another port. Search is unavailable in development because Pagefind indexes are generated during the production build. + +To preview the complete generated site, including search: + +```sh +pnpm build +pnpm preview +``` + +The preview server defaults to `http://localhost:43128`. + +## Quality checks + +Run the complete repository quality gate from the repository root before opening a pull request: + +```sh +pnpm check +``` + +The root command runs these checks across every workspace package in order: + +- `pnpm lint` — applies the repository ESLint rules to all supported source files. +- `pnpm format:check` — verifies repository-wide Prettier formatting without modifying files. +- `pnpm typecheck` — runs each workspace package's type checker when present. +- `pnpm test` — runs each workspace package's test suite when present. +- `pnpm build` — builds each workspace package when present; for this package it also prerenders, indexes, and validates the deployable static artifact. +- `node scripts/check-headers.mjs` — verifies Microsoft MIT headers across tracked source files. + +To apply safe automatic lint and formatting fixes: + +```sh +pnpm lint:fix +pnpm format +``` + +Review automatic changes before committing them. + +## Tests + +Run all tests once: + +```sh +pnpm test +``` + +Run tests in watch mode while developing: + +```sh +pnpm test:watch +``` + +Tests use Vitest with Happy DOM. Add or update tests when changing routing, navigation, base-path behavior, or documentation data with executable invariants. diff --git a/apps/docs/index.html b/apps/docs/index.html new file mode 100644 index 000000000..97403eb91 --- /dev/null +++ b/apps/docs/index.html @@ -0,0 +1,19 @@ + + + + + + + + + + Huabu Handbook + + +
+ + + diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 000000000..298b00ff5 --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,38 @@ +{ + "name": "@huabu/docs", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --host 0.0.0.0", + "build": "pnpm run typecheck && vite build && vite build --ssr src/entry-server.tsx --outDir .ssr && node scripts/prerender.mjs && pagefind --site dist && node scripts/validate-build.mjs", + "preview": "vite preview --host 0.0.0.0", + "test": "vitest run", + "test:watch": "vitest", + "typecheck": "tsc --noEmit && tsc -p tsconfig.node.json --noEmit" + }, + "dependencies": { + "@pagefind/default-ui": "^1.4.0", + "clsx": "^2.1.1", + "lucide-react": "^0.577.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router": "^7.13.1", + "react-router-dom": "^7.13.1", + "tailwind-merge": "^3.5.0" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.18", + "@types/node": "^22.15.0", + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@vitejs/plugin-react": "^4.3.4", + "happy-dom": "^15.11.7", + "pagefind": "^1.4.0", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.18", + "typescript": "^5.9.3", + "vite": "^6.0.0", + "vitest": "^4.0.18" + } +} diff --git a/apps/docs/postcss.config.js b/apps/docs/postcss.config.js new file mode 100644 index 000000000..6a3193b0c --- /dev/null +++ b/apps/docs/postcss.config.js @@ -0,0 +1,8 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +export default { + plugins: { + '@tailwindcss/postcss': {}, + }, +}; diff --git a/apps/docs/public/docs/quick-start/add-content.png b/apps/docs/public/docs/quick-start/add-content.png new file mode 100644 index 0000000000000000000000000000000000000000..3799276648b0d8b60caf952132cfb2f36b704500 GIT binary patch literal 31867 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/docs/quick-start/configure-llm.png b/apps/docs/public/docs/quick-start/configure-llm.png new file mode 100644 index 0000000000000000000000000000000000000000..ebacd74648d149ade5e07cd6b874afb34b228e27 GIT binary patch literal 188494 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"W$jRW#bmKtd7 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 i@wx>SMrZ1^@E_FCBme%p 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

51xlW9-1Z=lOCz9nZwz!kW5 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

cX^R#oDDIg-L{wCD`iW7m^78}OEkiZ# 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 Z-2L5s`;rG8%9(KJYUyj<-fDB={{Rg9cw+zn literal 0 HcmV?d00001 diff --git a/apps/docs/public/docs/quick-start/create-canvas.png b/apps/docs/public/docs/quick-start/create-canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..d11d969a8a7224dc4673447add2310ed6cbea060 GIT binary patch literal 32819 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 SZD?jQ&z`z)vRKdd=KlcPm3K-2 literal 0 HcmV?d00001 diff --git a/apps/docs/public/docs/work-in-a-space/quick-create-arrows-full.png b/apps/docs/public/docs/work-in-a-space/quick-create-arrows-full.png new file mode 100644 index 0000000000000000000000000000000000000000..49cdd2ff4543f4c6c72df5bf5ae470527cc8f22f GIT binary patch literal 44298 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 QjMf8CmRFZ6l`#$aAGa{^-T(jq literal 0 HcmV?d00001 diff --git a/apps/docs/public/favicon.svg b/apps/docs/public/favicon.svg new file mode 100644 index 000000000..9162bab3d --- /dev/null +++ b/apps/docs/public/favicon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/docs/scripts/prerender.mjs b/apps/docs/scripts/prerender.mjs new file mode 100644 index 000000000..2a938c81b --- /dev/null +++ b/apps/docs/scripts/prerender.mjs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { rm, mkdir, readFile, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath, pathToFileURL } from 'node:url'; + +const appRoot = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + '..', +); +const distDir = path.join(appRoot, 'dist'); +const ssrDir = path.join(appRoot, '.ssr'); +const serverEntry = path.join(ssrDir, 'entry-server.js'); +const template = await readFile(path.join(distDir, 'index.html'), 'utf8'); +const { docsBasePath, renderRoute, routeManifest } = await import( + `${pathToFileURL(serverEntry).href}?build=${Date.now()}` +); +const canonicalOrigin = process.env.DOCS_CANONICAL_ORIGIN?.replace(/\/$/, ''); + +function escapeAttribute(value) { + return value + .replaceAll('&', '&') + .replaceAll('"', '"') + .replaceAll('<', '<') + .replaceAll('>', '>'); +} + +for (const route of routeManifest) { + const markup = await renderRoute(route.path); + const canonical = canonicalOrigin + ? `` + : ''; + const html = template + .replace( + /.*?<\/title>/s, + `<title>${escapeAttribute(route.title)} · Huabu Handbook`, + ) + .replace( + //s, + ``, + ) + .replace('', ` ${canonical}\n `) + .replace('

', `
${markup}
`); + const routeDir = path.join(distDir, ...route.path.split('/').filter(Boolean)); + await mkdir(routeDir, { recursive: true }); + await writeFile(path.join(routeDir, 'index.html'), html); +} + +const redirectTarget = `${docsBasePath}docs/`; +const redirectHtml = `\n\n \n \n \n \n Huabu Handbook\n \n \n

Open the Huabu Handbook

\n \n\n`; +await writeFile(path.join(distDir, 'index.html'), redirectHtml); +await rm(ssrDir, { recursive: true, force: true }); diff --git a/apps/docs/scripts/validate-build.mjs b/apps/docs/scripts/validate-build.mjs new file mode 100644 index 000000000..ac2b21094 --- /dev/null +++ b/apps/docs/scripts/validate-build.mjs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { access, readdir, readFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const appRoot = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + '..', +); +const distDir = path.join(appRoot, 'dist'); +const source = await readFile( + path.join(appRoot, 'src', 'navigation.ts'), + 'utf8', +); +const routes = [...source.matchAll(/to: '(\/docs[^']*)'/g)].map( + (match) => match[1], +); +const uniqueRoutes = [...new Set(routes)]; +const failures = []; +const baseSegments = (process.env.DOCS_BASE_PATH ?? '/') + .split('/') + .filter(Boolean); +const basePath = + baseSegments.length === 0 ? '/' : `/${baseSegments.join('/')}/`; + +async function exists(file) { + try { + await access(file); + return true; + } catch { + return false; + } +} + +async function validateLocalReference(reference, sourceFile) { + if ( + reference.startsWith('#') || + reference.startsWith('mailto:') || + reference.startsWith('data:') || + reference.startsWith('javascript:') + ) { + return; + } + + const url = new URL(reference, 'https://handbook.invalid'); + if (url.origin !== 'https://handbook.invalid') return; + + let pathname = decodeURIComponent(url.pathname); + if (basePath !== '/') { + if (!pathname.startsWith(basePath)) { + failures.push( + `Reference escapes DOCS_BASE_PATH in ${sourceFile}: ${reference}`, + ); + return; + } + pathname = `/${pathname.slice(basePath.length)}`; + } + + const relativePath = pathname.replace(/^\//, ''); + const target = pathname.endsWith('/') + ? path.join(distDir, relativePath, 'index.html') + : path.join(distDir, relativePath); + if (!(await exists(target))) { + failures.push(`Missing local reference in ${sourceFile}: ${reference}`); + } +} + +for (const route of uniqueRoutes) { + const htmlPath = path.join( + distDir, + ...route.split('/').filter(Boolean), + 'index.html', + ); + if (!(await exists(htmlPath))) { + failures.push(`Missing prerendered route: ${route}`); + continue; + } + const html = await readFile(htmlPath, 'utf8'); + if (!html.includes(']/.test(html)) failures.push(`Missing H1: ${route}`); + if (html.includes('data-docs-loading')) + failures.push(`Suspense fallback was prerendered: ${route}`); + if (!/[^<]+ · Huabu Handbook<\/title>/.test(html)) + failures.push(`Missing route title: ${route}`); + if (!html.includes('<script type="module"')) + failures.push(`Missing hydration entry: ${route}`); + if (/localhost|[A-Z]:\\|VITE_/.test(html)) + failures.push(`Forbidden build value in: ${route}`); + + const references = [ + ...html.matchAll(/<(?:a|link)\b[^>]*\bhref="([^"]+)"/g), + ...html.matchAll(/<(?:img|script)\b[^>]*\bsrc="([^"]+)"/g), + ].map((match) => match[1]); + for (const reference of references) { + await validateLocalReference(reference, route); + } +} + +const root = await readFile(path.join(distDir, 'index.html'), 'utf8'); +if (!root.includes('http-equiv="refresh"') || !root.includes('docs/')) + failures.push('Missing root handbook redirect'); +const pagefindDir = path.join(distDir, 'pagefind'); +if (!(await exists(path.join(pagefindDir, 'pagefind-ui.js')))) + failures.push('Missing Pagefind UI runtime'); +if (!(await exists(path.join(pagefindDir, 'pagefind.js')))) + failures.push('Missing Pagefind search runtime'); +if ((await readdir(pagefindDir).catch(() => [])).length < 3) + failures.push('Pagefind index is incomplete'); + +const htmlFiles = []; +async function collectHtml(directory) { + for (const entry of await readdir(directory, { withFileTypes: true })) { + const target = path.join(directory, entry.name); + if (entry.isDirectory()) await collectHtml(target); + else if (entry.name === 'index.html') htmlFiles.push(target); + } +} +await collectHtml(path.join(distDir, 'docs')); +if (htmlFiles.length !== uniqueRoutes.length) + failures.push( + `Expected ${uniqueRoutes.length} route pages, found ${htmlFiles.length}`, + ); + +if (failures.length > 0) { + console.error(failures.join('\n')); + process.exit(1); +} +console.log( + `Validated ${uniqueRoutes.length} prerendered handbook routes and Pagefind output.`, +); diff --git a/apps/docs/src/DocsApp.tsx b/apps/docs/src/DocsApp.tsx new file mode 100644 index 000000000..70ed882fb --- /dev/null +++ b/apps/docs/src/DocsApp.tsx @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Suspense, useEffect } from 'react'; +import { Navigate, Route, Routes, useLocation } from 'react-router-dom'; + +import { DocsLayout } from './DocsLayout'; +import { allRoutes } from './navigation'; +import { NotFound } from './NotFound'; + +export function DocsApp() { + return ( + <DocsLayout> + <RouteTitle /> + <Suspense fallback={<DocsFallback />}> + <Routes> + <Route path="/" element={<Navigate to="/docs" replace />} /> + {allRoutes.map(({ to, Component }) => ( + <Route key={to} path={to} element={<Component />} /> + ))} + <Route path="*" element={<NotFound />} /> + </Routes> + </Suspense> + </DocsLayout> + ); +} + +function RouteTitle() { + const { pathname } = useLocation(); + + useEffect(() => { + const route = allRoutes.find((candidate) => candidate.to === pathname); + document.title = route + ? `${route.label} · Huabu Handbook` + : 'Huabu Handbook'; + }, [pathname]); + + return null; +} + +function DocsFallback() { + return ( + <div + data-docs-loading + className="flex items-center gap-3 px-8 py-12 text-sm text-gray-500" + > + <span className="inline-block h-4 w-4 animate-spin rounded-full border-2 border-gray-300 border-t-transparent" /> + Loading… + </div> + ); +} diff --git a/apps/docs/src/DocsLayout.tsx b/apps/docs/src/DocsLayout.tsx new file mode 100644 index 000000000..b3d6fdd5f --- /dev/null +++ b/apps/docs/src/DocsLayout.tsx @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Link, NavLink } from 'react-router-dom'; + +import { withBasePath } from './basePath'; +import { cn } from './components/cn'; +import { Search } from './components/Search'; +import { groups, pinnedItems, type DocsItem } from './navigation'; + +import type { CSSProperties, ReactNode } from 'react'; + +/** + * Shell for every page on the standalone handbook site. + * + * Layout: + * - Floating sidebar pinned to the viewport on the left (logo + + * pinned shortcuts always visible; groups scroll below). + * - Main content area on the right owns the article content. + * + * Horizontal spacing (kept consistent across every section page): + * - Sidebar occupies `left-4 + w-60` = 256px from the viewport's + * left edge to its right edge. + * - `--docs-gutter` (= 1/5 of the space remaining after the sidebar) + * is applied as both the left padding (sidebar → content) and the + * right padding (toc → viewport edge). + * - Content-to-TOC gap is `4vw` (set inside `PageLayout`). + * + * The module has no product-application dependency. + */ +export function DocsLayout({ children }: { children: ReactNode }) { + return ( + <div + className="relative h-full w-full overflow-y-auto bg-white" + style={ + { + // Single source of truth for the side gutters. Tweak here + // and both PageLayout's padding and the TOC offset move + // together. + '--docs-sidebar-right-edge': '256px', + '--docs-gutter': + 'calc((100vw - var(--docs-sidebar-right-edge)) / 10)', + } as CSSProperties + } + > + <DocsSidebar /> + <main + className="min-h-full" + style={{ + paddingLeft: + 'calc(var(--docs-sidebar-right-edge) + var(--docs-gutter))', + paddingRight: 'var(--docs-gutter)', + }} + > + {children} + </main> + </div> + ); +} + +const sidebarLinkClass = ({ isActive }: { isActive: boolean }) => + cn( + 'block rounded-md px-3 py-1.5 text-[13.5px] transition-colors', + isActive + ? 'bg-gray-100 font-medium text-gray-900' + : 'text-gray-600 hover:bg-gray-50 hover:text-gray-900', + ); + +function DocsSidebar() { + return ( + <aside className="fixed top-4 bottom-4 left-4 z-20 flex w-60 flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-[0_2px_12px_rgba(0,0,0,0.04)]"> + {/* Pinned header: logo + brand + the two universal entry points + (Overview / Quick Start). Stays put when the lower list + scrolls. */} + <div className="shrink-0 border-b border-gray-100 px-4 pt-4 pb-3"> + <Link + to="/docs" + className="mb-3 flex items-center gap-2 text-[15px] font-semibold text-gray-900" + > + <img src={withBasePath('favicon.svg')} alt="" className="h-5 w-5" /> + <span>Huabu Handbook</span> + </Link> + <Search /> + <ul className="space-y-0.5"> + {pinnedItems.map((item) => ( + <li key={item.to}> + <NavLink to={item.to} end className={sidebarLinkClass}> + {item.label} + </NavLink> + </li> + ))} + </ul> + </div> + + {/* Scrollable group list: flat (no collapse), each group has a + bold title above its items. */} + <nav className="min-h-0 flex-1 overflow-y-auto px-4 py-4"> + <ul className="space-y-5"> + {groups.map((group) => ( + <li key={group.label}> + <div className="mb-1.5 px-3 text-[13px] font-semibold tracking-wide text-gray-700 uppercase"> + {group.label} + </div> + <ul className="space-y-0.5"> + {group.items.map((item: DocsItem) => ( + <li key={item.to}> + <NavLink to={item.to} end className={sidebarLinkClass}> + {item.label} + </NavLink> + </li> + ))} + </ul> + </li> + ))} + </ul> + </nav> + </aside> + ); +} diff --git a/apps/docs/src/NotFound.tsx b/apps/docs/src/NotFound.tsx new file mode 100644 index 000000000..e642c42a2 --- /dev/null +++ b/apps/docs/src/NotFound.tsx @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Link } from 'react-router-dom'; + +export function NotFound() { + return ( + <article + data-pagefind-ignore + className="mx-auto max-w-2xl px-8 py-24 text-center" + > + <h1 className="text-3xl font-semibold text-gray-900">Page not found</h1> + <p className="mt-4 text-gray-600"> + The requested handbook page does not exist. + </p> + <Link + className="mt-6 inline-block font-medium text-gray-900 underline" + to="/docs" + > + Return to the handbook overview + </Link> + </article> + ); +} diff --git a/apps/docs/src/basePath.test.ts b/apps/docs/src/basePath.test.ts new file mode 100644 index 000000000..705412d21 --- /dev/null +++ b/apps/docs/src/basePath.test.ts @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { describe, expect, it } from 'vitest'; + +import { resolveWithBasePath } from './basePath'; +import { normalizeBasePath } from './normalizeBasePath'; + +describe('normalizeBasePath', () => { + it.each([ + [undefined, '/'], + ['', '/'], + ['/', '/'], + ['ExampleProject', '/ExampleProject/'], + ['/ExampleProject/', '/ExampleProject/'], + ])('normalizes %s', (input, expected) => { + expect(normalizeBasePath(input)).toBe(expected); + }); +}); + +describe('resolveWithBasePath', () => { + it('prefixes a root-relative path with the configured base', () => { + expect(resolveWithBasePath('/ExampleProject/', '/docs/quickstart')).toBe( + '/ExampleProject/docs/quickstart', + ); + }); + + it('does not prefix an already resolved path again', () => { + expect( + resolveWithBasePath( + '/ExampleProject/', + '/ExampleProject/docs/quickstart', + ), + ).toBe('/ExampleProject/docs/quickstart'); + }); + + it('keeps root deployments root-relative', () => { + expect(resolveWithBasePath('/', 'docs/quickstart')).toBe( + '/docs/quickstart', + ); + }); +}); diff --git a/apps/docs/src/basePath.ts b/apps/docs/src/basePath.ts new file mode 100644 index 000000000..7f697f998 --- /dev/null +++ b/apps/docs/src/basePath.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +export const docsBasePath = import.meta.env.BASE_URL; + +export const routerBasename = + docsBasePath === '/' ? '/' : docsBasePath.replace(/\/$/, ''); + +export function resolveWithBasePath( + basePath: string, + pathname: string, +): string { + const normalizedPathname = `/${pathname.replace(/^\/+/, '')}`; + if (basePath === '/') return normalizedPathname; + + const baseWithoutTrailingSlash = basePath.replace(/\/$/, ''); + if ( + normalizedPathname === baseWithoutTrailingSlash || + normalizedPathname.startsWith(basePath) + ) { + return normalizedPathname; + } + + return `${baseWithoutTrailingSlash}${normalizedPathname}`; +} + +export function withBasePath(pathname: string): string { + return resolveWithBasePath(docsBasePath, pathname); +} diff --git a/apps/docs/src/components/Callout.tsx b/apps/docs/src/components/Callout.tsx new file mode 100644 index 000000000..cb4497d40 --- /dev/null +++ b/apps/docs/src/components/Callout.tsx @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Long-format callout strip — used for tips, warnings and asides + * inside the body of a section. Spans the full content width. + */ + +import { AlertTriangle, Info, Lightbulb } from 'lucide-react'; + +import { cn } from './cn'; + +import type { ReactNode } from 'react'; + +type CalloutTone = 'info' | 'tip' | 'warning'; + +const toneStyles: Record<CalloutTone, { wrapper: string; icon: typeof Info }> = + { + info: { + wrapper: 'border-blue-200 bg-blue-50/60 text-blue-900', + icon: Info, + }, + tip: { + wrapper: 'border-emerald-200 bg-emerald-50/60 text-emerald-900', + icon: Lightbulb, + }, + warning: { + wrapper: 'border-amber-200 bg-amber-50/60 text-amber-900', + icon: AlertTriangle, + }, + }; + +export function Callout({ + tone = 'info', + title, + children, +}: { + tone?: CalloutTone; + title?: string; + children: ReactNode; +}) { + const { wrapper, icon: Icon } = toneStyles[tone]; + return ( + <div + className={cn( + 'flex items-start gap-3 rounded-xl border px-4 py-3 text-[14px] leading-relaxed', + wrapper, + )} + > + <Icon className="mt-0.5 h-4 w-4 shrink-0 opacity-80" /> + <div className="min-w-0 flex-1"> + {title && ( + <div className="mb-0.5 text-[13px] font-semibold">{title}</div> + )} + <div>{children}</div> + </div> + </div> + ); +} diff --git a/apps/docs/src/components/Card.tsx b/apps/docs/src/components/Card.tsx new file mode 100644 index 000000000..899009208 --- /dev/null +++ b/apps/docs/src/components/Card.tsx @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Navigation card — a one-third-width hover card used on hub pages + * (e.g. Overview) to surface key sections. + * + * Render a `<CardGrid>` and place 1–3 `<NavCard>`s inside per row. + */ + +import { ArrowUpRight } from 'lucide-react'; +import { useRef } from 'react'; +import { Link } from 'react-router-dom'; + +import { withBasePath } from '../basePath'; +import { cn } from './cn'; + +import type { LucideIcon } from 'lucide-react'; +import type { MouseEvent, ReactNode } from 'react'; + +export function CardGrid({ children }: { children: ReactNode }) { + return ( + <div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3"> + {children} + </div> + ); +} + +type NavCardProps = { + to: string; + icon?: LucideIcon; + title: string; + description?: ReactNode; + /** Optional small label like "Core" / "Reference". */ + eyebrow?: string; + /** Optional banner image rendered above the text. */ + image?: string; + /** Alt text for `image`. Falls back to `title`. */ + imageAlt?: string; + className?: string; +}; + +/** + * A clickable card with a subtle hover lift. Designed to occupy + * 1/3 of the content row inside a `<CardGrid>`. + */ +export function NavCard({ + to, + icon: Icon, + title, + description, + eyebrow, + image, + imageAlt, + className, +}: NavCardProps) { + const isInternal = to.startsWith('/') && !to.startsWith('//'); + const bannerRef = useRef<HTMLDivElement | null>(null); + + const handleMove = (event: MouseEvent<HTMLDivElement>) => { + const el = bannerRef.current; + if (!el) return; + const rect = el.getBoundingClientRect(); + const x = ((event.clientX - rect.left) / rect.width) * 100; + const y = ((event.clientY - rect.top) / rect.height) * 100; + el.style.setProperty('--mx', `${x}%`); + el.style.setProperty('--my', `${y}%`); + }; + + const banner = ( + <div + ref={bannerRef} + onMouseMove={handleMove} + className="relative aspect-[16/9] w-full overflow-hidden bg-gradient-to-br from-gray-50 to-gray-100" + style={{ '--mx': '50%', '--my': '50%' } as React.CSSProperties} + > + {image ? ( + <img + src={image.startsWith('/') ? withBasePath(image) : image} + alt={imageAlt ?? title} + className="h-full w-full object-cover transition-transform duration-500 ease-out group-hover:scale-105" + /> + ) : ( + Icon && ( + <div className="relative z-10 flex h-full w-full items-center justify-center text-gray-400 transition-transform duration-500 ease-out group-hover:scale-105"> + <Icon className="h-10 w-10" strokeWidth={1.25} /> + </div> + ) + )} + {/* Soft blue/purple wash that fills the whole banner on hover. + The two cursor-driven CSS vars (--mx/--my) only shift the + colour balance slightly so the wash feels alive without + becoming a tight spotlight. */} + <div + aria-hidden + className="pointer-events-none absolute inset-0 opacity-0 blur-2xl transition-opacity duration-500 ease-out group-hover:opacity-100" + style={{ + background: + 'radial-gradient(120% 120% at var(--mx) var(--my), rgba(176, 200, 255, 0.45), rgba(208, 188, 255, 0.3) 55%, rgba(230, 215, 255, 0.18) 100%)', + }} + /> + </div> + ); + + const inner = ( + <> + {banner} + <div className="p-4"> + <div className="flex items-start justify-between gap-2"> + {eyebrow && ( + <span className="text-[10.5px] font-medium tracking-wide text-gray-500 uppercase"> + {eyebrow} + </span> + )} + <ArrowUpRight className="ml-auto h-4 w-4 text-gray-400 transition-transform duration-300 ease-out group-hover:translate-x-0.5 group-hover:-translate-y-0.5 group-hover:text-gray-700" /> + </div> + <div className="mt-1.5 text-[14px] font-semibold text-gray-900"> + {title} + </div> + {description && ( + <div className="mt-1 line-clamp-2 text-[12.5px] leading-relaxed text-gray-600"> + {description} + </div> + )} + </div> + </> + ); + + const classes = cn( + 'group relative block overflow-hidden rounded-2xl border border-gray-200 bg-white transition-all duration-300 ease-out hover:-translate-y-0.5 hover:border-gray-300 hover:shadow-md', + className, + ); + + return isInternal ? ( + <Link to={to} className={classes}> + {inner} + </Link> + ) : ( + <a href={to} target="_blank" rel="noopener noreferrer" className={classes}> + {inner} + </a> + ); +} diff --git a/apps/docs/src/components/Code.tsx b/apps/docs/src/components/Code.tsx new file mode 100644 index 000000000..fb1eba433 --- /dev/null +++ b/apps/docs/src/components/Code.tsx @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Inline `<Code>` for short identifiers, and block `<CodeBlock>` for + * snippets. Both are stylistic only — no syntax highlighting — which + * keeps the docs module dependency-free. + */ + +import { cn } from './cn'; + +import type { ReactNode } from 'react'; + +export function Code({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( + <code + className={cn( + 'rounded border border-gray-200 bg-gray-50 px-1.5 py-0.5 font-mono text-[0.85em] text-gray-800', + className, + )} + > + {children} + </code> + ); +} + +export function CodeBlock({ + children, + language, + className, +}: { + children: ReactNode; + language?: string; + className?: string; +}) { + return ( + <div + className={cn( + 'group relative overflow-hidden rounded-lg border border-gray-200 bg-gray-50', + className, + )} + > + {language && ( + <div className="border-b border-gray-200 bg-white px-4 py-1.5 font-mono text-[11px] tracking-wide text-gray-500 uppercase"> + {language} + </div> + )} + <pre className="overflow-x-auto px-4 py-3 font-mono text-[13px] leading-relaxed text-gray-800"> + <code>{children}</code> + </pre> + </div> + ); +} + +export function Kbd({ children }: { children: ReactNode }) { + return ( + <kbd className="inline-flex h-5 min-w-5 items-center justify-center rounded border border-gray-300 bg-white px-1.5 font-mono text-[11px] text-gray-700 shadow-[0_1px_0_rgba(0,0,0,0.04)]"> + {children} + </kbd> + ); +} diff --git a/apps/docs/src/components/Heading.tsx b/apps/docs/src/components/Heading.tsx new file mode 100644 index 000000000..fa6f59a67 --- /dev/null +++ b/apps/docs/src/components/Heading.tsx @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Typography primitives. + * + * Every heading auto-generates an `id` from its text so the + * right-side table-of-contents links resolve via plain `#anchor` + * navigation — no extra wiring required at the call site. + */ + +import { cn } from './cn'; + +import type { ReactNode } from 'react'; + +export function slugify(text: string): string { + return text + .toLowerCase() + .trim() + .replace(/[^\w\s-]/g, '') + .replace(/\s+/g, '-') + .replace(/-+/g, '-') + .replace(/^-|-$/g, ''); +} + +function headingId(children: ReactNode): string | undefined { + return typeof children === 'string' ? slugify(children) : undefined; +} + +export function H1({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( + <h1 + id={headingId(children)} + className={cn( + 'text-3xl font-semibold tracking-tight text-gray-900', + className, + )} + > + {children} + </h1> + ); +} + +export function H2({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( + <h2 + id={headingId(children)} + className={cn( + 'mt-10 scroll-mt-8 text-xl font-semibold text-gray-900', + className, + )} + > + {children} + </h2> + ); +} + +export function H3({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( + <h3 + id={headingId(children)} + className={cn( + 'mt-6 scroll-mt-8 text-base font-semibold text-gray-900', + className, + )} + > + {children} + </h3> + ); +} + +export function P({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( + <p className={cn('text-[15px] leading-relaxed text-gray-700', className)}> + {children} + </p> + ); +} diff --git a/apps/docs/src/components/Image.tsx b/apps/docs/src/components/Image.tsx new file mode 100644 index 000000000..d9f794d49 --- /dev/null +++ b/apps/docs/src/components/Image.tsx @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Image / GIF embed with optional caption. + * + * Accepts the same `src` types as a plain `<img>` (URL string or a + * bundler-imported asset) and wraps the result in a soft, bordered + * frame so screenshots feel intentional rather than dropped in. + */ + +import { cn } from './cn'; +import { withBasePath } from '../basePath'; + +type DocImageProps = { + src: string; + alt: string; + caption?: string; + className?: string; +}; + +export function DocImage({ src, alt, caption, className }: DocImageProps) { + const resolvedSrc = src.startsWith('/') ? withBasePath(src) : src; + return ( + <figure + className={cn( + 'overflow-hidden rounded-xl border border-gray-200 bg-white', + className, + )} + > + <img src={resolvedSrc} alt={alt} className="block h-auto w-full" /> + {caption && ( + <figcaption className="border-t border-gray-200 bg-gray-50 px-4 py-2 text-[12px] text-gray-600"> + {caption} + </figcaption> + )} + </figure> + ); +} diff --git a/apps/docs/src/components/Link.tsx b/apps/docs/src/components/Link.tsx new file mode 100644 index 000000000..89f77e9f0 --- /dev/null +++ b/apps/docs/src/components/Link.tsx @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Styled link. + * + * - Internal links (starting with `/`) use react-router's `Link` so + * they don't trigger a full page reload. + * - Same-page anchors (starting with `#`) use a regular anchor. + * - External links open in a new tab with `rel="noopener"`. + */ + +import { Link as RouterLink } from 'react-router-dom'; + +import { cn } from './cn'; + +import type { AnchorHTMLAttributes, ReactNode } from 'react'; + +type DocLinkProps = { + href: string; + children: ReactNode; + className?: string; +} & Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'children'>; + +export function DocLink({ href, children, className, ...rest }: DocLinkProps) { + const isInternal = href.startsWith('/') && !href.startsWith('//'); + const isSamePageAnchor = href.startsWith('#'); + const classes = cn( + 'font-medium text-gray-900 underline decoration-gray-400 underline-offset-2 transition-colors hover:decoration-gray-900', + className, + ); + + if (isInternal) { + return ( + <RouterLink to={href} className={classes}> + {children} + </RouterLink> + ); + } + + if (isSamePageAnchor) { + return ( + <a href={href} className={classes} {...rest}> + {children} + </a> + ); + } + + return ( + <a + href={href} + target="_blank" + rel="noopener noreferrer" + className={classes} + {...rest} + > + {children} + </a> + ); +} diff --git a/apps/docs/src/components/PageLayout.tsx b/apps/docs/src/components/PageLayout.tsx new file mode 100644 index 000000000..36bf5b075 --- /dev/null +++ b/apps/docs/src/components/PageLayout.tsx @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Per-section page chrome. + * + * Handles the three pieces every page needs: + * - The page title block (with optional description). + * - The main scrollable content column. + * - An optional right-side table of contents that sticks while + * scrolling. + */ + +import { H1, P } from './Heading'; +import { Toc, type TocEntry } from './Toc'; + +import type { ReactNode } from 'react'; + +type PageLayoutProps = { + title: string; + description?: ReactNode; + /** Right-side anchor list. Omit to render full-width. */ + toc?: TocEntry[]; + children: ReactNode; +}; + +export function PageLayout({ + title, + description, + toc, + children, +}: PageLayoutProps) { + return ( + // Horizontal padding comes from `DocsLayout`'s gutter variables + // so every page lines up identically against the sidebar and + // viewport edge. The gap between the content column and the + // sticky TOC is fixed at 4vw per the docs spacing spec. + <div className="flex gap-x-[4vw] py-12"> + <article data-pagefind-body className="min-w-0 flex-1 space-y-6"> + <header className="space-y-3"> + <H1>{title}</H1> + {description && <P className="text-base">{description}</P>} + </header> + <div className="space-y-5">{children}</div> + </article> + + {toc && toc.length > 0 && ( + <aside className="sticky top-12 hidden h-fit w-56 shrink-0 self-start rounded-xl bg-gray-50 p-4 lg:block"> + <Toc entries={toc} /> + </aside> + )} + </div> + ); +} diff --git a/apps/docs/src/components/Search.tsx b/apps/docs/src/components/Search.tsx new file mode 100644 index 000000000..c75d5e2c7 --- /dev/null +++ b/apps/docs/src/components/Search.tsx @@ -0,0 +1,185 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Search as SearchIcon } from 'lucide-react'; +import { useCallback, useEffect, useId, useRef, useState } from 'react'; +import { createPortal } from 'react-dom'; + +import { withBasePath } from '../basePath'; +import { Kbd } from './Code'; +import { Shortcut } from './Shortcut'; + +import type { KeyboardEvent as ReactKeyboardEvent } from 'react'; + +export function Search() { + const id = useId().replace(/:/g, ''); + const triggerRef = useRef<HTMLButtonElement>(null); + const closeRef = useRef<HTMLButtonElement>(null); + const hasBeenOpen = useRef(false); + const isInitializing = useRef(false); + const isReady = useRef(false); + const [hasOpened, setHasOpened] = useState(false); + const [isOpen, setIsOpen] = useState(false); + const [error, setError] = useState<string | null>(null); + + const focusSearchInput = useCallback(() => { + document + .querySelector<HTMLInputElement>(`#${id} .pagefind-ui__search-input`) + ?.focus(); + }, [id]); + + const initialize = useCallback(async () => { + if (import.meta.env.DEV || isInitializing.current) return; + if (isReady.current) { + focusSearchInput(); + return; + } + isInitializing.current = true; + try { + const { PagefindUI } = await import('@pagefind/default-ui'); + new PagefindUI({ + element: `#${id}`, + bundlePath: withBasePath('pagefind/'), + baseUrl: withBasePath(''), + showSubResults: true, + pageSize: 10, + }); + isReady.current = true; + focusSearchInput(); + } catch { + setError('Search could not be loaded. Please try again.'); + } finally { + isInitializing.current = false; + } + }, [focusSearchInput, id]); + + const openSearch = useCallback(() => { + setHasOpened(true); + setIsOpen(true); + }, []); + + const closeSearch = useCallback(() => { + setIsOpen(false); + }, []); + + useEffect(() => { + if (!isOpen) return; + + hasBeenOpen.current = true; + const previousOverflow = document.body.style.overflow; + document.body.style.overflow = 'hidden'; + closeRef.current?.focus(); + void initialize(); + + return () => { + document.body.style.overflow = previousOverflow; + }; + }, [initialize, isOpen]); + + useEffect(() => { + if (isOpen || !hasBeenOpen.current) return; + triggerRef.current?.focus(); + }, [isOpen]); + + useEffect(() => { + const handleShortcut = (event: KeyboardEvent) => { + if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === 'k') { + event.preventDefault(); + openSearch(); + } else if (event.key === 'Escape' && isOpen) { + event.preventDefault(); + closeSearch(); + } + }; + + document.addEventListener('keydown', handleShortcut); + return () => document.removeEventListener('keydown', handleShortcut); + }, [closeSearch, isOpen, openSearch]); + + const trapFocus = (event: ReactKeyboardEvent<HTMLDivElement>) => { + if (event.key !== 'Tab') return; + const focusable = Array.from( + event.currentTarget.querySelectorAll<HTMLElement>( + 'button:not([disabled]), input:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])', + ), + ).filter((element) => !element.hidden); + if (focusable.length === 0) return; + + const first = focusable[0]; + const last = focusable[focusable.length - 1]; + if (event.shiftKey && document.activeElement === first) { + event.preventDefault(); + last?.focus(); + } else if (!event.shiftKey && document.activeElement === last) { + event.preventDefault(); + first?.focus(); + } + }; + + return ( + <> + <button + ref={triggerRef} + type="button" + onClick={openSearch} + className="mb-2 flex w-full items-center gap-2 rounded-lg border border-gray-200 px-3 py-2 text-left text-sm text-gray-600 transition-colors hover:border-gray-300 hover:bg-gray-50" + aria-expanded={isOpen} + aria-haspopup="dialog" + > + <SearchIcon className="h-4 w-4" /> + <span className="flex-1">Search</span> + <Shortcut combo="mod+k" /> + </button> + {hasOpened && + createPortal( + <div + className={ + isOpen + ? 'fixed inset-0 z-[100] flex items-start justify-center bg-black/45 px-4 pt-[10vh] backdrop-blur-[2px]' + : 'hidden' + } + onMouseDown={(event) => { + if (event.target === event.currentTarget) closeSearch(); + }} + > + <div + role="dialog" + aria-modal="true" + aria-labelledby={`${id}-title`} + className="docs-search-modal relative flex max-h-[78vh] w-full max-w-3xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-2xl" + onKeyDown={trapFocus} + > + <h2 id={`${id}-title`} className="sr-only"> + Search + </h2> + <div className="min-h-0 overflow-x-hidden overflow-y-auto p-3 sm:p-4"> + {import.meta.env.DEV ? ( + <div className="flex min-h-32 items-center justify-center rounded-xl border border-dashed border-gray-200 px-6 text-center text-sm text-gray-500"> + Search is available in a built preview. + </div> + ) : error ? ( + <div className="flex min-h-32 items-center justify-center px-6 text-center text-sm text-red-600"> + {error} + </div> + ) : ( + <div id={id} /> + )} + </div> + <div className="flex items-center justify-end border-t border-gray-100 bg-gray-50 px-4 py-1.5 text-xs text-gray-500"> + <button + ref={closeRef} + type="button" + onClick={closeSearch} + className="inline-flex items-center gap-1.5 rounded-md px-2 py-1 leading-none transition-colors hover:bg-gray-200 hover:text-gray-900" + > + <Kbd>Esc</Kbd> + Close + </button> + </div> + </div> + </div>, + document.body, + )} + </> + ); +} diff --git a/apps/docs/src/components/Shortcut.tsx b/apps/docs/src/components/Shortcut.tsx new file mode 100644 index 000000000..4dda96ce2 --- /dev/null +++ b/apps/docs/src/components/Shortcut.tsx @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * OS-aware keyboard-shortcut chip. Renders a shortcut in the same boxed + * {@link Kbd} style used across the docs, picking the right notation for the + * reader's platform — `⌘,` / `⇧⌘Z` on macOS, `Ctrl+,` / `Ctrl+Shift+Z` + * elsewhere — so every surface (body copy, the Search trigger) shows one + * consistent representation instead of the old hand-written + * `⌘, (Ctrl+, on Windows)`. + * + * The pages are prerendered in Node and hydrated in the browser, so platform + * detection must run *after* mount to avoid a hydration mismatch: the first + * client render matches the server (non-mac), then {@link useIsMac} flips it. + */ + +import { useEffect, useState } from 'react'; + +import { Kbd } from './Code'; + +/** Canonical modifier tokens accepted in a {@link Shortcut} `combo`. */ +type Modifier = 'mod' | 'shift' | 'alt' | 'meta'; + +const MAC_SYMBOL: Record<Modifier, string> = { + mod: '⌘', + shift: '⇧', + alt: '⌥', + meta: '⌘', +}; + +const OTHER_LABEL: Record<Modifier, string> = { + mod: 'Ctrl', + shift: 'Shift', + alt: 'Alt', + meta: 'Win', +}; + +const isModifier = (part: string): part is Modifier => part in MAC_SYMBOL; + +/** + * `true` when the reader is on macOS. Defaults to `false` during SSR and the + * first hydration render, then resolves on the client to keep markup stable. + */ +function useIsMac(): boolean { + const [isMac, setIsMac] = useState(false); + useEffect(() => { + const ua = navigator.userAgent; + setIsMac(/Mac|iPhone|iPad|iPod/.test(navigator.platform || ua)); + }, []); + return isMac; +} + +/** + * Render `combo` (a `+`-separated string like `mod+,` or `mod+shift+z`) as a + * platform-appropriate shortcut chip. Modifiers are mapped per OS; any other + * token is treated as a literal key (upper-cased when a single letter). macOS + * joins parts with no separator (`⇧⌘Z`); other platforms use `+` + * (`Ctrl+Shift+Z`). + */ +export function Shortcut({ combo }: { combo: string }) { + const isMac = useIsMac(); + + const parts = combo.split('+').map((raw) => { + const part = raw.trim(); + if (isModifier(part)) return isMac ? MAC_SYMBOL[part] : OTHER_LABEL[part]; + return part.length === 1 ? part.toUpperCase() : part; + }); + + return <Kbd>{parts.join(isMac ? '' : '+')}</Kbd>; +} diff --git a/apps/docs/src/components/Table.tsx b/apps/docs/src/components/Table.tsx new file mode 100644 index 000000000..87fff11b9 --- /dev/null +++ b/apps/docs/src/components/Table.tsx @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Small data table component for reference-style pages. + * + * Designed for short, two- or three-column lookup tables (shortcuts, + * settings, comparisons). Long-form prose still belongs in `P`. + */ + +import { cn } from './cn'; + +import type { ReactNode } from 'react'; + +export function Table({ + headers, + rows, + className, +}: { + headers: string[]; + rows: ReactNode[][]; + className?: string; +}) { + return ( + <div + className={cn( + 'overflow-hidden rounded-xl border border-gray-200', + className, + )} + > + <table className="w-full border-collapse text-[13.5px]"> + <thead> + <tr className="bg-gray-50 text-left text-[12px] font-semibold tracking-wide text-gray-600 uppercase"> + {headers.map((header) => ( + <th key={header} className="px-4 py-2.5"> + {header} + </th> + ))} + </tr> + </thead> + <tbody className="divide-y divide-gray-100 bg-white text-gray-700"> + {rows.map((row, rowIndex) => ( + <tr key={rowIndex} className="align-top"> + {row.map((cell, cellIndex) => ( + <td key={cellIndex} className="px-4 py-2.5"> + {cell} + </td> + ))} + </tr> + ))} + </tbody> + </table> + </div> + ); +} diff --git a/apps/docs/src/components/Toc.tsx b/apps/docs/src/components/Toc.tsx new file mode 100644 index 000000000..2cfa90530 --- /dev/null +++ b/apps/docs/src/components/Toc.tsx @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Right-side table of contents for a section page. + * + * The page passes a list of `{ id, label, level }` entries that map + * to heading anchors emitted by the typography components in + * `Heading.tsx`. Levels 2 and 3 are indented to mirror the document + * hierarchy without becoming visually noisy. + */ + +import { cn } from './cn'; + +export type TocEntry = { + /** The `id` of the heading to jump to. */ + id: string; + /** Sidebar label — usually the heading text. */ + label: string; + /** 2 for `<H2>`, 3 for `<H3>`. Defaults to 2. */ + level?: 2 | 3; +}; + +export function Toc({ entries }: { entries: TocEntry[] }) { + if (!entries.length) return null; + + return ( + <nav aria-label="On this page" className="text-[13px]"> + <div className="mb-3 text-[11px] font-semibold tracking-wide text-gray-500 uppercase"> + On this page + </div> + <ul className="space-y-1.5 border-l border-gray-200"> + {entries.map((entry) => ( + <li key={entry.id}> + <a + href={`#${entry.id}`} + className={cn( + '-ml-px block border-l border-transparent py-0.5 pl-3 text-gray-600 transition-colors hover:border-gray-400 hover:text-gray-900', + entry.level === 3 && 'pl-6', + )} + > + {entry.label} + </a> + </li> + ))} + </ul> + </nav> + ); +} diff --git a/apps/docs/src/components/cn.ts b/apps/docs/src/components/cn.ts new file mode 100644 index 000000000..6c5539ff2 --- /dev/null +++ b/apps/docs/src/components/cn.ts @@ -0,0 +1,14 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Local class-name combinator for the docs module. + * + * The docs folder is intentionally decoupled from the rest of the + * web app so it can be lifted out into a standalone site later. We + * keep our own `cn` here instead of reaching into + * `apps/web/src/components/Common/cn`. + */ +export function cn(...args: (string | false | null | undefined)[]): string { + return args.filter(Boolean).join(' '); +} diff --git a/apps/docs/src/components/index.ts b/apps/docs/src/components/index.ts new file mode 100644 index 000000000..05be8b5d9 --- /dev/null +++ b/apps/docs/src/components/index.ts @@ -0,0 +1,22 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Barrel export for the docs component library. + * + * Every section page imports from `'../components'` (or + * `'../../components'` for nested folders) instead of reaching into + * individual files, so future renames don't ripple across the docs. + */ + +export { Callout } from './Callout'; +export { CardGrid, NavCard } from './Card'; +export { Code, CodeBlock, Kbd } from './Code'; +export { H1, H2, H3, P, slugify } from './Heading'; +export { DocImage } from './Image'; +export { DocLink } from './Link'; +export { PageLayout } from './PageLayout'; +export { Shortcut } from './Shortcut'; +export { Table } from './Table'; +export { Toc, type TocEntry } from './Toc'; +export { cn } from './cn'; diff --git a/apps/docs/src/config/nodeIcons.ts b/apps/docs/src/config/nodeIcons.ts new file mode 100644 index 000000000..031b4b75a --- /dev/null +++ b/apps/docs/src/config/nodeIcons.ts @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + BookOpen, + Clipboard, + Film, + Frame, + Globe, + Image as ImageIcon, + MessageCircleQuestionMark, + Mic, + Pencil, + Type, +} from 'lucide-react'; + +import type { LucideIcon } from 'lucide-react'; + +type HandbookNodeType = + | 'note' + | 'text' + | 'image' + | 'pdf' + | 'video' + | 'audio' + | 'web' + | 'frame' + | 'sketch' + | 'question'; + +export const NODE_ICON: Record<HandbookNodeType, LucideIcon> = { + note: Clipboard, + text: Type, + image: ImageIcon, + pdf: BookOpen, + video: Film, + audio: Mic, + web: Globe, + frame: Frame, + sketch: Pencil, + question: MessageCircleQuestionMark, +}; diff --git a/apps/docs/src/config/shortcuts.test.ts b/apps/docs/src/config/shortcuts.test.ts new file mode 100644 index 000000000..883f78d88 --- /dev/null +++ b/apps/docs/src/config/shortcuts.test.ts @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { describe, expect, it } from 'vitest'; + +import { keyboardShortcutSections } from './shortcuts'; + +describe('handbook keyboard shortcut catalog', () => { + it('documents the public shortcuts in canonical section order', () => { + expect(keyboardShortcutSections.map((section) => section.title)).toEqual([ + 'General', + 'Editing', + 'Layout', + 'Toolbar', + 'Layering & Grouping', + 'Drag and drop', + 'Search', + 'Help', + ]); + expect( + keyboardShortcutSections.flatMap((section) => section.items), + ).toHaveLength(31); + }); + + it('uses the toolbar bindings registered by the app', () => { + const toolbar = keyboardShortcutSections.find( + (section) => section.title === 'Toolbar', + ); + expect(toolbar?.items).toEqual( + expect.arrayContaining([ + { keys: '1', description: 'Note placement mode' }, + { keys: '2', description: 'Text placement mode' }, + { keys: '3', description: 'Frame placement mode' }, + { keys: '4', description: 'Sketch mode' }, + { keys: '5', description: 'Audio placement mode' }, + { keys: 'A', description: 'Create Agent Node' }, + ]), + ); + }); +}); diff --git a/apps/docs/src/config/shortcuts.ts b/apps/docs/src/config/shortcuts.ts new file mode 100644 index 000000000..3beef7734 --- /dev/null +++ b/apps/docs/src/config/shortcuts.ts @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +export type ShortcutSection = { + title: string; + items: Array<{ keys: string; description: string }>; +}; + +/** Public English subset of the app's user-facing shortcut catalog. */ +export const keyboardShortcutSections: ShortcutSection[] = [ + { + title: 'General', + items: [ + { keys: 'Ctrl/Cmd+N', description: 'New Space (desktop app only)' }, + { + keys: 'Ctrl/Cmd+,', + description: 'Open settings (desktop app only)', + }, + ], + }, + { + title: 'Editing', + items: [ + { keys: 'Ctrl/Cmd+Z', description: 'Undo' }, + { keys: 'Ctrl/Cmd+Shift+Z', description: 'Redo' }, + { keys: 'Ctrl/Cmd+C', description: 'Copy selected nodes' }, + { + keys: 'Ctrl/Cmd+V', + description: 'Paste nodes, files, URLs, or plain text', + }, + { + keys: 'Delete / Backspace', + description: 'Delete selected nodes or edges', + }, + ], + }, + { + title: 'Layout', + items: [ + { keys: 'Ctrl/Cmd+Plus', description: 'Zoom in' }, + { keys: 'Ctrl/Cmd+Minus', description: 'Zoom out' }, + ], + }, + { + title: 'Toolbar', + items: [ + { keys: 'Space (hold)', description: 'Temporarily switch to pan tool' }, + { + keys: 'Space (hold while dragging)', + description: + 'Move a node without entering or leaving any frame (opt out of auto-reparent)', + }, + { keys: 'S', description: 'Select tool' }, + { keys: 'P', description: 'Pan tool' }, + { keys: 'L', description: 'Lasso tool' }, + { keys: '3', description: 'Frame placement mode' }, + { keys: '1', description: 'Note placement mode' }, + { keys: '2', description: 'Text placement mode' }, + { keys: '4', description: 'Sketch mode' }, + { keys: '5', description: 'Audio placement mode' }, + { keys: 'A', description: 'Create Agent Node' }, + ], + }, + { + title: 'Layering & Grouping', + items: [ + { keys: '[', description: 'Send selected nodes to back' }, + { keys: ']', description: 'Bring selected nodes to front' }, + { keys: 'Ctrl/Cmd+G', description: 'Group selected nodes into a frame' }, + ], + }, + { + title: 'Drag and drop', + items: [ + { + keys: 'Option (hold while dragging) / Ctrl (hold while dragging)', + description: + 'Copy a Note block to the Space instead of moving it (the default is move — the source loses the block)', + }, + ], + }, + { + title: 'Search', + items: [ + { + keys: 'Ctrl/Cmd+F', + description: + 'Search the Space (or find inside the active preview when focus is in an expanded node)', + }, + { keys: 'Enter', description: 'Jump to active result / next match' }, + { keys: 'Shift+Enter', description: 'Previous match (in preview)' }, + { + keys: '↑ / ↓', + description: 'Move between results (in Space overlay)', + }, + { keys: 'Esc', description: 'Close the search bar' }, + ], + }, + { + title: 'Help', + items: [ + { keys: '?', description: 'Show keyboard shortcuts' }, + { keys: 'Esc', description: 'Close the shortcuts dialog' }, + ], + }, +]; diff --git a/apps/docs/src/entry-server.tsx b/apps/docs/src/entry-server.tsx new file mode 100644 index 000000000..82b819400 --- /dev/null +++ b/apps/docs/src/entry-server.tsx @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PassThrough } from 'node:stream'; + +import { renderToPipeableStream } from 'react-dom/server'; +import { StaticRouter } from 'react-router'; + +import { docsBasePath, routerBasename } from './basePath'; +import { DocsApp } from './DocsApp'; +import { routeManifest } from './navigation'; + +export { docsBasePath, routeManifest }; + +export function renderRoute(pathname: string): Promise<string> { + const location = `${routerBasename === '/' ? '' : routerBasename}${pathname}`; + + return new Promise((resolve, reject) => { + let settled = false; + const output = new PassThrough(); + const chunks: Buffer[] = []; + + output.on('data', (chunk: Buffer) => chunks.push(chunk)); + output.on('end', () => { + settled = true; + resolve(Buffer.concat(chunks).toString('utf8')); + }); + output.on('error', reject); + + const stream = renderToPipeableStream( + <StaticRouter basename={routerBasename} location={location}> + <DocsApp /> + </StaticRouter>, + { + onAllReady() { + stream.pipe(output); + }, + onShellError(error) { + reject(error); + }, + onError(error) { + if (!settled) console.error(error); + }, + }, + ); + }); +} diff --git a/apps/docs/src/index.css b/apps/docs/src/index.css new file mode 100644 index 000000000..002b3d1a7 --- /dev/null +++ b/apps/docs/src/index.css @@ -0,0 +1,177 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT license. + */ + +@import 'tailwindcss'; +@import '@pagefind/default-ui/css/ui.css'; + +:root { + color: #191919; + background: #ffffff; + font-family: + Inter, + ui-sans-serif, + system-ui, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + sans-serif; + font-synthesis: none; + text-rendering: optimizeLegibility; + --fg-default: #191919; + --fg-muted: #6b6b6b; + --fg-subtle: #ababab; +} + +@theme inline { + --color-fg-default: var(--fg-default); + --color-fg-muted: var(--fg-muted); + --color-fg-subtle: var(--fg-subtle); +} + +html, +body, +#root { + min-height: 100%; + margin: 0; +} + +body { + min-width: 320px; +} + +* { + box-sizing: border-box; +} + +:focus-visible { + outline: 2px solid #191919; + outline-offset: 2px; +} + +.docs-search-modal { + --pagefind-ui-scale: 1; + --pagefind-ui-primary: #191919; + --pagefind-ui-text: #353535; + --pagefind-ui-background: #ffffff; + --pagefind-ui-border: #e5e7eb; + --pagefind-ui-tag: #f3f4f6; + --pagefind-ui-border-width: 1px; + --pagefind-ui-border-radius: 12px; + --pagefind-ui-font: inherit; +} + +.docs-search-modal .pagefind-ui__search-input { + height: 56px; + padding-right: 20px; + border-color: #d1d5db; + font-size: 18px; + box-shadow: 0 1px 2px rgb(0 0 0 / 4%); +} + +.docs-search-modal .pagefind-ui__form::before { + top: 28px; + transform: translateY(-50%); +} + +.docs-search-modal .pagefind-ui__search-clear { + display: none; +} + +.docs-search-modal .pagefind-ui__search-input:focus { + border-color: #9ca3af; + outline: none; + box-shadow: 0 1px 2px rgb(0 0 0 / 4%); +} + +.docs-search-modal .pagefind-ui__drawer { + padding-top: 4px; +} + +.docs-search-modal .pagefind-ui__message { + display: none; +} + +.docs-search-modal .pagefind-ui__results-area { + margin-top: 4px; +} + +.docs-search-modal .pagefind-ui__result.pagefind-ui__result { + gap: 0; + padding: 10px 12px; + border: 1px solid #e5e7eb; + border-radius: 10px; +} + +.docs-search-modal .pagefind-ui__result.pagefind-ui__result:last-of-type { + border-bottom: 1px solid #e5e7eb; +} + +@media (min-width: 640px) { + .docs-search-modal .pagefind-ui__results { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 8px; + } +} + +.docs-search-modal .pagefind-ui__result-thumb.pagefind-ui__result-thumb { + display: none; +} + +.docs-search-modal .pagefind-ui__result-inner.pagefind-ui__result-inner { + min-width: 0; + margin-top: 0; +} + +.docs-search-modal .pagefind-ui__result-link { + font-size: 17px; + line-height: 1.35; + overflow-wrap: anywhere; +} + +.docs-search-modal .pagefind-ui__result-excerpt.pagefind-ui__result-excerpt { + display: none; +} + +.docs-search-modal .pagefind-ui__result-nested.pagefind-ui__result-nested { + padding-left: 14px; +} + +.docs-search-modal + .pagefind-ui__result-nested.pagefind-ui__result-nested:first-of-type { + padding-top: 4px; +} + +.docs-search-modal + .pagefind-ui__result-nested + .pagefind-ui__result-link.pagefind-ui__result-link { + color: #6b7280; + font-size: 14px; + font-weight: 400; +} + +.docs-search-modal .pagefind-ui__button { + display: block; + width: fit-content; + height: 32px; + margin: 12px auto 2px; + padding: 0 14px; + border-color: #e5e7eb; + border-radius: 9999px; + background: #f9fafb; + color: #6b7280; + font-size: 13px; + font-weight: 500; + transition: + color 150ms ease, + background-color 150ms ease, + border-color 150ms ease; +} + +.docs-search-modal .pagefind-ui__button:hover { + border-color: #d1d5db; + background: #f3f4f6; + color: #191919; +} diff --git a/apps/docs/src/main.tsx b/apps/docs/src/main.tsx new file mode 100644 index 000000000..2d4548f5a --- /dev/null +++ b/apps/docs/src/main.tsx @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { StrictMode } from 'react'; +import { hydrateRoot } from 'react-dom/client'; +import { BrowserRouter } from 'react-router-dom'; + +import { routerBasename } from './basePath'; +import { DocsApp } from './DocsApp'; +import './index.css'; + +const rootElement = document.getElementById('root'); +if (!rootElement) { + throw new Error('Docs root element was not found.'); +} + +hydrateRoot( + rootElement, + <StrictMode> + <BrowserRouter basename={routerBasename}> + <DocsApp /> + </BrowserRouter> + </StrictMode>, +); diff --git a/apps/docs/src/navigation.test.ts b/apps/docs/src/navigation.test.ts new file mode 100644 index 000000000..55c759e37 --- /dev/null +++ b/apps/docs/src/navigation.test.ts @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { describe, expect, it } from 'vitest'; + +import { allRoutes, groups, pinnedItems, routeManifest } from './navigation'; + +describe('handbook route registry', () => { + it('contains unique /docs routes', () => { + const paths = allRoutes.map((route) => route.to); + expect(new Set(paths).size).toBe(paths.length); + expect( + paths.every((path) => path === '/docs' || path.startsWith('/docs/')), + ).toBe(true); + }); + + it('provides metadata for every route', () => { + expect(routeManifest).toHaveLength(allRoutes.length); + expect( + routeManifest.every((route) => route.title && route.description), + ).toBe(true); + }); + + it('starts with the task-focused Quick Start', () => { + expect(pinnedItems).toEqual([]); + expect(groups[0]?.label).toBe('Getting Started'); + expect(groups[0]?.items.map(({ to, label }) => ({ to, label }))).toEqual([ + { to: '/docs', label: 'Quick Start' }, + ]); + expect(allRoutes.some((route) => route.to === '/docs/showcase')).toBe( + false, + ); + }); + + it('does not expose product-positioning Core pages', () => { + expect(groups.some((group) => group.label === 'Core')).toBe(false); + expect(allRoutes.some((route) => route.to.startsWith('/docs/core/'))).toBe( + false, + ); + }); + + it('presents Space fundamentals as one task-focused page', () => { + const spaces = groups.find((group) => group.label === 'Spaces'); + expect(spaces?.items.map(({ to, label }) => ({ to, label }))).toEqual([ + { to: '/docs/work-in-a-space', label: 'Work in a Space' }, + { to: '/docs/space/data-and-backup', label: 'Data & Files' }, + ]); + expect( + allRoutes.some( + (route) => + route.to.startsWith('/docs/concepts/') || + route.to.startsWith('/docs/nodes/'), + ), + ).toBe(false); + }); + + it('does not expose unreleased AI features', () => { + expect(allRoutes.some((route) => route.to === '/docs/ai/intent')).toBe( + false, + ); + }); + + it('presents everyday AI work in one task-focused page', () => { + const ai = groups.find((group) => group.label === 'AI'); + expect(ai?.items.map(({ to, label }) => ({ to, label }))).toEqual([ + { to: '/docs/work-with-ai', label: 'Work with AI' }, + { + to: '/docs/ai/models-and-capabilities', + label: 'Models & Capabilities', + }, + { to: '/docs/ai/external-agents', label: 'External Agents' }, + { to: '/docs/ai/memory-and-skills', label: 'Memory & Skills' }, + ]); + expect( + allRoutes.some((route) => + [ + '/docs/ai/chat-mode', + '/docs/ai/agent-mode', + '/docs/ai/question-mode', + '/docs/ai/digest', + '/docs/ai/models-and-credentials', + ].includes(route.to), + ), + ).toBe(false); + }); + + it('keeps shortcuts and issue reporting in Help', () => { + const help = groups.find((group) => group.label === 'Help'); + expect(help?.items.map(({ to, label }) => ({ to, label }))).toEqual([ + { to: '/docs/reference/shortcuts', label: 'Keyboard Shortcuts' }, + { to: '/docs/reference/issues', label: 'Report an Issue' }, + ]); + expect(groups.map((group) => group.label)).toEqual([ + 'Getting Started', + 'Spaces', + 'AI', + 'Help', + ]); + expect( + allRoutes.some((route) => + ['/docs/reference/settings', '/docs/reference/storage'].includes( + route.to, + ), + ), + ).toBe(false); + }); +}); diff --git a/apps/docs/src/navigation.ts b/apps/docs/src/navigation.ts new file mode 100644 index 000000000..1c6c76cc0 --- /dev/null +++ b/apps/docs/src/navigation.ts @@ -0,0 +1,171 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Single source of truth for the User Handbook. + * + * Authoring rules + * - `pinned` entries, when present, sit below the logo and search + * control in the static top portion of the sidebar and never scroll. + * - `groups` are rendered as bold-titled flat lists below the pinned + * block, all expanded all the time (no collapse). + * - Each item declares its full absolute `to` (under `/docs`). This + * lets a single sidebar group pull pages from any folder, so we + * can regroup the menu without breaking existing URLs. + * - Section modules are loaded with `React.lazy` so the handbook + * never ships in the main bundle. + */ + +import { lazy } from 'react'; + +import type { ComponentType } from 'react'; + +type SectionLoader = () => Promise<{ default: ComponentType }>; + +type RawItem = { + /** Absolute path under `/docs`, with leading slash. */ + to: string; + label: string; + description?: string; + load: SectionLoader; +}; + +type RawGroup = { + label: string; + items: RawItem[]; +}; + +const pinnedRaw: RawItem[] = []; + +const groupsRaw: RawGroup[] = [ + { + label: 'Getting Started', + items: [ + { + to: '/docs', + label: 'Quick Start', + description: + 'Install Huabu, create your first Space, add material, and complete your first AI conversation.', + load: () => import('./sections/QuickStart'), + }, + ], + }, + { + label: 'Spaces', + items: [ + { + to: '/docs/work-in-a-space', + label: 'Work in a Space', + description: + 'Create, arrange, connect, and inspect the materials and ideas in a Huabu Space.', + load: () => import('./sections/space/WorkInASpace'), + }, + { + to: '/docs/space/data-and-backup', + label: 'Data & Files', + description: + 'Understand how Huabu stores each Space as plain files inside your Home folder.', + load: () => import('./sections/space/DataAndBackup'), + }, + ], + }, + { + label: 'AI', + items: [ + { + to: '/docs/work-with-ai', + label: 'Work with AI', + description: + 'Choose Chat, Agent, or an Agent Node; provide context; and review AI changes.', + load: () => import('./sections/ai/WorkWithAI'), + }, + { + to: '/docs/ai/models-and-capabilities', + label: 'Models & Capabilities', + description: + 'Configure the Chat and Utility Models and optional web, image, and video capabilities.', + load: () => import('./sections/ai/ModelsAndCapabilities'), + }, + { + to: '/docs/ai/external-agents', + label: 'External Agents', + load: () => import('./sections/ai/ExternalAgents'), + }, + { + to: '/docs/ai/memory-and-skills', + label: 'Memory & Skills', + load: () => import('./sections/ai/MemoryAndSkills'), + }, + ], + }, + { + label: 'Help', + items: [ + { + to: '/docs/reference/shortcuts', + label: 'Keyboard Shortcuts', + load: () => import('./sections/reference/Shortcuts'), + }, + { + to: '/docs/reference/issues', + label: 'Report an Issue', + description: + 'Describe a problem, collect useful diagnostic information, and report it through GitHub Issues.', + load: () => import('./sections/reference/IssueReporting'), + }, + ], + }, +]; + +export type DocsItem = { + /** Absolute path including the `/docs` prefix. */ + to: string; + label: string; + description: string; + Component: ComponentType; +}; + +export type DocsGroup = { + label: string; + items: DocsItem[]; +}; + +function buildItem(item: RawItem): DocsItem { + return { + to: item.to, + label: item.label, + description: + item.description ?? `Learn about ${item.label.toLowerCase()} in Huabu.`, + Component: lazy(item.load), + }; +} + +export const pinnedItems: DocsItem[] = pinnedRaw.map(buildItem); + +export const groups: DocsGroup[] = groupsRaw.map((group) => ({ + label: group.label, + items: group.items.map(buildItem), +})); + +/** + * Flat list consumed by `<Routes>` in `DocsPage`. + */ +const allItems: DocsItem[] = [ + ...pinnedItems, + ...groups.flatMap((g) => g.items), +]; + +const seen = new Set<string>(); +export const allRoutes: DocsItem[] = allItems.filter((item) => { + if (seen.has(item.to)) { + throw new Error(`Duplicate handbook route: ${item.to}`); + } + seen.add(item.to); + return true; +}); + +export const routeManifest = allRoutes.map(({ to, label, description }) => ({ + path: to, + title: label, + description, +})); diff --git a/apps/docs/src/normalizeBasePath.ts b/apps/docs/src/normalizeBasePath.ts new file mode 100644 index 000000000..37211e57f --- /dev/null +++ b/apps/docs/src/normalizeBasePath.ts @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +export function normalizeBasePath(value: string | undefined): string { + const segments = (value ?? '/').split('/').filter(Boolean); + return segments.length === 0 ? '/' : `/${segments.join('/')}/`; +} diff --git a/apps/docs/src/sections/QuickStart.tsx b/apps/docs/src/sections/QuickStart.tsx new file mode 100644 index 000000000..2a51f1781 --- /dev/null +++ b/apps/docs/src/sections/QuickStart.tsx @@ -0,0 +1,192 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Bot, Settings as SettingsIcon } from 'lucide-react'; + +import { + Callout, + DocImage, + DocLink, + H2, + P, + PageLayout, + Shortcut, + type TocEntry, +} from '../components'; +import { NODE_ICON } from '../config/nodeIcons'; + +const toc: TocEntry[] = [ + { id: '1-download-and-install-huabu', label: 'Download and install Huabu' }, + { id: '2-choose-a-home-folder', label: 'Choose a Home Folder' }, + { id: '3-configure-models-and-keys', label: 'Configure models and keys' }, + { id: '4-create-a-space', label: 'Create a Space' }, + { id: '5-add-content-to-your-space', label: 'Add content to your Space' }, + { id: '6-think-and-work-with-ai', label: 'Think and work with AI' }, +]; + +export default function QuickStart() { + return ( + <PageLayout + title="Quick Start" + description="Install Huabu, create your first Space, add one piece of material, and have your first conversation with AI." + toc={toc} + > + <H2>1. Download and install Huabu</H2> + <P> + Download the latest version from{' '} + <DocLink href="https://github.com/microsoft/Huabu/releases/latest"> + GitHub Releases + </DocLink> + . Choose the <code>.dmg</code> package on macOS or the <code>.exe</code>{' '} + package on Windows, then install and launch Huabu. + </P> + + <H2>2. Choose a Home Folder</H2> + <P> + On first launch, select a local folder and open it as your{' '} + <strong>Home</strong>. Huabu stores your Spaces and their materials in + this folder so you can choose where your work lives. + </P> + + <H2>3. Configure models and keys</H2> + <P> + Open <strong>Settings</strong> ( + <SettingsIcon + aria-label="Settings" + className="inline-block size-[1em] align-[-0.15em]" + /> + ) from the app header (or press <Shortcut combo="mod+," /> + ), then select <strong>Huabu Agent</strong>. The{' '} + <strong>Chat Model</strong> is the only model you must set up to get + started. + </P> + <P> + The same page also holds optional settings — a{' '} + <strong>Utility Model</strong> for lightweight background tasks,{' '} + <strong>Image Generation</strong>, and capabilities such as{' '} + <strong>Web Search</strong> — that you can configure later. + </P> + <Callout tone="info"> + API keys and sign-in credentials saved in the Huabu desktop app are + encrypted at rest using your operating system's protected storage. + Huabu never stores them as plain text. + </Callout> + <DocImage + src="/docs/quick-start/configure-llm.png" + alt="Huabu Agent settings with the Chat Model provider, endpoint, and API key fields" + caption="Configure models and keys in Huabu Agent settings — only the Chat Model is required." + className="mx-auto max-w-2xl" + /> + + <H2>4. Create a Space</H2> + <P> + A <strong>Space</strong> is an independent place to think and work on a + topic, question, or project. Inside your Home, select{' '} + <strong>New Space</strong> to create a Space and open it immediately. + </P> + <DocImage + src="/docs/quick-start/create-canvas.png" + alt="Huabu Space list with the New Space button" + caption="Create a Space for the topic or project you want to work on." + className="mx-auto max-w-2xl" + /> + + <H2>5. Add content to your Space</H2> + <P>There are several ways to bring content into a Space:</P> + <ul className="text-fg-muted list-disc space-y-1.5 pl-5 text-[15px] leading-relaxed"> + <li> + <strong>Paste</strong> — copy text or an image anywhere and paste it + straight into your Space. + </li> + <li> + <strong>Drag and drop</strong> — drop files from your computer into + your Space. + </li> + <li> + <strong>Upload or Link</strong> — from the toolbar, choose{' '} + <strong>Upload Files</strong> to add a PDF or image, or{' '} + <strong>Add Links</strong> to bring in a web page. + </li> + <li> + <strong>Create a node</strong> — start from scratch with a{' '} + <NODE_ICON.note + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <strong>Note</strong>,{' '} + <NODE_ICON.text + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <strong>Text</strong>,{' '} + <NODE_ICON.frame + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <strong>Frame</strong>, or{' '} + <NODE_ICON.sketch + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <strong>Sketch</strong> from the toolbar. + </li> + </ul> + <DocImage + src="/docs/quick-start/add-content.png" + alt="Huabu toolbar with the Upload or Link menu open showing Upload Files and Add Links, alongside the Note, Text, Frame, and Sketch tools" + caption="Add content by pasting, dragging, uploading — or create a Note, Text, Frame, or Sketch from the toolbar." + className="mx-auto max-w-2xl" + /> + + <H2>6. Think and work with AI</H2> + <P> + Every conversation lives in the{' '} + <DocLink href="/docs/work-with-ai">Chat Panel</DocLink>. Open it with + the top-right button ( + <Bot + aria-label="Open chat panel" + className="inline-block size-[1em] align-[-0.15em]" + /> + ), start a new conversation, and choose who you are talking to: + </P> + <ul className="text-fg-muted list-disc space-y-1.5 pl-5 text-[15px] leading-relaxed"> + <li> + <strong>Huabu Chat</strong> — a plain conversation. Select the nodes + you want as context, ask questions, and drag useful parts of a reply + back into your Space to keep organizing your thinking. + </li> + <li> + <strong>Huabu Agent</strong> — a conversation in which the agent can + also act on your Space. It works with your materials and structure and + records its changes so you can keep or revert them. + </li> + </ul> + <P> + You can add more agents too. Pair an{' '} + <DocLink href="/docs/ai/external-agents">External Agent</DocLink> in{' '} + <strong>Settings → External Agents</strong>; afterwards it appears in + the Chat Panel as an option when you start a new conversation, bringing + its own specialized context or tools, such as understanding a repository + or producing a presentation. + </P> + <P> + Prefer to ask right beside your material? Add an{' '} + <NODE_ICON.question + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <DocLink href="/docs/work-with-ai">Agent Node</DocLink> in your Space to + start a conversation in place, so it stays in context with the ideas and + sources around it. + </P> + <Callout tone="tip" title="Where to next"> + Continue with{' '} + <DocLink href="/docs/work-in-a-space">Work in a Space</DocLink> to learn + how to select, arrange, connect, and frame materials in a Space. For + deeper AI workflows, continue with{' '} + <DocLink href="/docs/work-with-ai">Work with AI</DocLink> or configure{' '} + <DocLink href="/docs/ai/external-agents">External Agents</DocLink>. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/ai/ExternalAgents.tsx b/apps/docs/src/sections/ai/ExternalAgents.tsx new file mode 100644 index 000000000..fc85117e0 --- /dev/null +++ b/apps/docs/src/sections/ai/ExternalAgents.tsx @@ -0,0 +1,308 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Pencil, Settings as SettingsIcon, Trash2 } from 'lucide-react'; + +import { + Callout, + Code, + DocLink, + H2, + Kbd, + P, + PageLayout, + Table, + type TocEntry, +} from '../../components'; + +const toc: TocEntry[] = [ + { id: 'what-is-an-external-agent', label: 'What is an external agent?' }, + { id: 'before-you-start', label: 'Before you start' }, + { id: 'create-a-profile', label: 'Create a Profile' }, + { id: 'understand-presets', label: 'Understand Presets' }, + { id: 'use-an-external-agent', label: 'Use an external agent' }, + { id: 'manage-and-troubleshoot', label: 'Manage & troubleshoot' }, +]; + +export default function ExternalAgents() { + return ( + <PageLayout + title="External Agents" + description="Connect different AI agents, configure them as Profiles in Huabu." + toc={toc} + > + <H2>What is an external agent?</H2> + <P> + External agents are AI agents outside Huabu's built-in agent + system. Huabu currently starts local{' '} + <DocLink href="https://agentclientprotocol.com/get-started/agents"> + ACP-compatible agents + </DocLink> + , connects to them over ACP, and associates each with a working + directory and chat thread. Model access, authentication, tools, + permissions, and usage charges remain with the agent or its provider. + </P> + + <H2>Before you start</H2> + <P>Prepare the agent on the same computer that runs Huabu:</P> + <ol className="list-decimal space-y-2 pl-5 text-[15px] leading-relaxed text-gray-700"> + <li> + <strong>Install an ACP-compatible agent.</strong> Huabu automatically + detects these eight ACP-capable agent commands or adapters after + installation:{' '} + <DocLink href="https://www.npmjs.com/package/@github/copilot"> + GitHub Copilot + </DocLink> + ,{' '} + <DocLink href="https://www.npmjs.com/package/@agentclientprotocol/claude-agent-acp"> + Claude Agent + </DocLink> + ,{' '} + <DocLink href="https://geminicli.com/docs/get-started/installation"> + Gemini + </DocLink> + ,{' '} + <DocLink href="https://www.npmjs.com/package/@agentclientprotocol/codex-acp"> + Codex + </DocLink> + ,{' '} + <DocLink href="https://github.com/QwenLM/qwen-code"> + Qwen Code + </DocLink> + ,{' '} + <DocLink href="https://github.com/MoonshotAI/kimi-cli"> + Kimi Code + </DocLink> + , <DocLink href="https://opencode.ai/docs/">OpenCode</DocLink>, and{' '} + <DocLink href="https://cursor.com/docs/cli/installation"> + Cursor + </DocLink> + . For any other ACP-compatible agent, select{' '} + <strong>Custom command</strong> and enter its complete ACP launch + command, such as <Code>/path/to/my-agent --acp</Code>. Use the command + documented by that agent. + </li> + <li> + <strong>Sign in and accept any first-run prompts.</strong> Open a + normal terminal, run the agent once, and complete its authentication + or provider setup. Huabu cannot complete an interactive sign-in for a + background agent process. + </li> + <li> + <strong>Ensure Huabu can find the agent.</strong> The agent command + must be on the operating system's <Code>PATH</Code> environment + variable when Huabu starts. Restart Huabu after installing the agent + or changing <Code>PATH</Code>. If the command is still unavailable, + use <strong>Custom command</strong> with its absolute executable path. + </li> + </ol> + + <H2>Create a Profile</H2> + <P> + A <strong>Profile</strong> is Huabu's saved connection to one + external agent in one working directory. Open Settings ( + <SettingsIcon + aria-label="Settings" + className="inline-block size-[1em] align-[-0.15em]" + /> + ) > <strong>External Agents</strong>, select{' '} + <strong>Add agent</strong>, and complete these fields: + </P> + <Table + headers={['Field', 'What to choose']} + rows={[ + [ + <strong>Preset</strong>, + <> + Choose a Preset to give the agent a ready-made role and workflow, + including any required tools, configuration, and setup. Leave it + set to <strong>None</strong> to use the agent as installed. See{' '} + <DocLink href="#understand-presets">Understand Presets</DocLink>. + </>, + ], + [ + <strong>Agent</strong>, + 'Installed agents appear first. Agents that are not installed appear in a disabled Not installed section, followed by Custom command. Selecting a Preset filters the list to agents supported by that Preset.', + ], + [ + <strong>Auto-approve all tool calls</strong>, + 'Optional. With no Preset, this appears when Huabu knows the selected agent’s auto-approval option. Enable it only when you trust the agent and the working directory.', + ], + [ + <strong>Working directory</strong>, + 'The local project folder used as the agent process working directory. Each Profile can point to a different folder.', + ], + [ + <strong>Display name</strong>, + 'Optional. Huabu derives a name from the agent or Preset and the working-directory folder when you leave it empty.', + ], + ]} + /> + <P> + With no Preset, select <strong>Create profile</strong>. The Profile is + ready to use immediately. Choose <strong>Custom command</strong> at the + end of the Agent menu when you need an absolute path, extra flags, or an + ACP agent Huabu does not detect. Enter the complete command Huabu should + launch. + </P> + + <H2>Understand Presets</H2> + <P> + A <strong>Preset</strong> is a ready-made workflow for a specific task. + It gives an external agent a specialized role, instructions, and tools, + and may configure the working directory for that workflow. A Preset is + not a model and does not install the external agent itself. + </P> + <P> + The first release includes the following Presets. Their additional + requirements apply alongside the installed and authenticated external + agent described above. + </P> + <Table + headers={['Preset', 'What it does', 'Additional requirements']} + rows={[ + [ + <strong>paper-reviewer</strong>, + 'Provides a paper-review role and workflow for discussing academic papers and drafting review responses.', + 'None. It does not install npm tools or skills.', + ], + [ + <strong>html-slides-maker</strong>, + 'Creates static HTML presentations and optional technical diagrams.', + <> + Node.js with <Code>npx</Code> available on the <Code>PATH</Code>, + plus network access to GitHub during setup so Huabu can install + the required skills. + </>, + ], + [ + <strong>hackmd-publisher</strong>, + 'Turns selected Space material into a HackMD document and writes the published URL back to Huabu.', + <> + A HackMD API token, Node.js with <Code>npm</Code> and{' '} + <Code>npx</Code> available on the <Code>PATH</Code>, access to a + working npm registry, and network access to GitHub during setup. + </>, + ], + ]} + /> + <Callout tone="tip"> + On macOS, Windows, and Linux, <Code>npm</Code> and <Code>npx</Code> are + normally installed with Node.js. Verify that <Code>node --version</Code> + , <Code>npm --version</Code>, and <Code>npx --version</Code> work in a + normal terminal, then restart Huabu after installing Node.js or changing + the <Code>PATH</Code>. A company npm mirror is supported as long as it + can provide the packages required by the Preset. + </Callout> + <Table + headers={['Without a Preset', 'With a Preset']} + rows={[ + [ + 'Huabu launches the selected agent with its standard ACP command.', + "Huabu launches the selected agent with the Preset's managed instructions and tools.", + ], + [ + 'You can select any installed recognized agent or enter a Custom command.', + 'You can select only an installed agent supported by that Preset. Custom command is unavailable.', + ], + [ + 'The Profile is ready as soon as it is created.', + 'Huabu prepares the working directory before the Profile becomes available.', + ], + [ + 'No Preset-specific configuration is required.', + 'The Preset may request tokens or other configuration. Secret values are stored securely and are never displayed again.', + ], + ]} + /> + <P> + After selecting a Preset, complete any fields shown directly below it, + choose an available Agent and a working directory, then select{' '} + <strong>Create and set up</strong>. Setup continues from the External + Agents list. When setup finishes successfully, the setup status and + action disappear and the Profile becomes available in Chat. If setup + fails, the Profile remains in the list so you can fix its configuration + and retry. + </P> + <Callout tone="info"> + Preset configuration belongs to the Preset and is shared by Profiles + created from the same Preset. The working directory and display name + still belong to each individual Profile. + </Callout> + + <H2>Use an external agent</H2> + <P> + Once a Profile is available, you can choose it from the agent menus in + Chat. A Profile that uses a Preset appears after setup finishes + successfully. + </P> + <ul className="list-disc space-y-1.5 pl-5 text-[15px] leading-relaxed text-gray-700"> + <li> + To start a new conversation, open the dropdown beside the{' '} + <strong>New chat</strong> button and select a Profile under{' '} + <strong>External Agents</strong>. + </li> + <li> + Before sending the first message in an empty conversation, you can + also use the Agent menu in the message box to choose a Profile. After + you send the message, you cannot change the Agent for that + conversation. + </li> + </ul> + <P> + The <strong>Add agent</strong> entry in either menu opens Settings + directly on the External Agents page. Send a message to begin the + conversation. Huabu opens the selected Agent when needed and continues + using it for that conversation. Type <Kbd>/</Kbd> in the message box to + see any commands offered by that Agent. + </P> + <Callout tone="info"> + A conversation keeps using the Profile it started with. Start a new + conversation to use a different Agent or updated Profile settings. + </Callout> + + <H2>Manage & troubleshoot</H2> + <P> + In <strong>Settings > External Agents</strong>, use{' '} + <Pencil + aria-label="Edit" + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + to rename a Profile or update shared Preset configuration, and{' '} + <Trash2 + aria-label="Delete" + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + to remove it from future agent selectors. The launch command, selected + agent, Preset, and working directory are fixed after creation; create a + new Profile to change them. Existing chat threads keep the connection + settings captured when they were created. + </P> + <Table + headers={['Symptom', 'What to check']} + rows={[ + [ + 'An Agent is marked not installed', + 'Install the indicated CLI or adapter, run it once in a terminal, and reopen the Add agent editor. Confirm that Huabu inherits the PATH containing the executable.', + ], + [ + 'The Agent menu has no suitable installed agent', + 'For a Profile without a Preset, use Custom command with the full ACP launch command. A Preset requires one of its supported agents and cannot use a custom command.', + ], + [ + 'A Preset Profile is not available in Chat', + 'Return to External Agents and check its status. Complete the required Preset configuration, then use Set up or Retry. When setup succeeds, the status badge disappears and the Profile becomes available in Chat.', + ], + [ + 'Worker offline appears', + 'Select Restart worker. If the error names a missing executable or path, correct the installation or Profile command first.', + ], + [ + 'The agent starts but does not reply', + 'Run the same agent command in a terminal and check authentication, provider access, first-run prompts, and ACP support. Also confirm that the working directory still exists and is accessible.', + ], + ]} + /> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/ai/MemoryAndSkills.tsx b/apps/docs/src/sections/ai/MemoryAndSkills.tsx new file mode 100644 index 000000000..d8511e62e --- /dev/null +++ b/apps/docs/src/sections/ai/MemoryAndSkills.tsx @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + Callout, + Code, + H2, + P, + PageLayout, + Table, + type TocEntry, +} from '../../components'; + +const toc: TocEntry[] = [ + { id: 'what-they-remember', label: 'What Memory and Skills remember' }, + { id: 'two-memory-tiers', label: 'Two Memory tiers' }, + { id: 'how-memory-updates', label: 'How Memory updates' }, + { id: 'review-memory', label: 'Review and edit Memory' }, + { id: 'run-a-skill', label: 'Run a Skill' }, + { id: 'save-a-skill', label: 'Save a Skill' }, +]; + +const orderedListClassName = + 'text-fg-muted list-decimal space-y-1.5 pl-5 text-[15px] leading-relaxed'; + +export default function MemoryAndSkills() { + return ( + <PageLayout + title="Memory & Skills" + description="Memory carries durable context between conversations, while Skills preserve procedures an Agent can run again." + toc={toc} + > + <H2>What Memory and Skills remember</H2> + <P> + Memory and Skills help the AI carry useful knowledge into later work, + but they preserve different things. + </P> + <Table + headers={['Save', 'When to use it', 'Example']} + rows={[ + [ + <strong>Memory</strong>, + 'For a preference, constraint, decision, or durable fact.', + 'I prefer concise summaries.', + ], + [ + <strong>Skill</strong>, + 'For a repeatable procedure with a consistent outcome.', + 'Turn selected research notes into a comparison structure.', + ], + ]} + /> + <Callout tone="info"> + Huabu curates Memory automatically. Use <Code>/create-skill</Code> when + you want Agent to preserve a successful repeatable workflow. + </Callout> + <Callout tone="info"> + Memory curation and Skill creation or updates use the Utility Model. + Running a Skill to complete a task uses the Chat Model. If Utility is + not configured, Huabu uses Chat for authoring too. + </Callout> + + <H2>Two Memory tiers</H2> + <Table + headers={['Tier', 'Scope', 'Where it lives', 'Typical contents']} + rows={[ + [ + <strong>User</strong>, + 'Applies to every Space in this Home.', + <Code>setting/user.md</Code>, + 'Preferences, constraints, and recurring vocabulary.', + ], + [ + <strong>Space</strong>, + 'Applies only to the current Space.', + <Code>.memory/space.md</Code>, + 'The topic, decisions, and things to revisit.', + ], + ]} + /> + <P> + User Memory is available to every built-in Chat and Agent turn. Space + Memory is read on demand when the current topic needs it. Both tiers are + kept small, about 4 KB or 80 lines each, so they remain focused. + </P> + + <H2>How Memory updates</H2> + <P> + After enough Space activity, a background process reviews recent + conversations and operations, then keeps only details worth carrying + forward. It runs without interrupting your work. + </P> + <P> + Telling the AI to remember a preference or Space decision makes the + request a strong candidate for that review. It does not update Memory + immediately, and the curator still decides whether the detail is worth + keeping. + </P> + + <H2>Review and edit Memory</H2> + <P> + Both tiers are plain Markdown. Open them in any editor to audit, + correct, or remove an entry. Huabu checks the size limit when it writes + Memory, but it does not trim a file that you edit beyond the limit. + </P> + <Callout tone="tip"> + Keep large reference material as nodes in a Space. Memory works best for + small facts and preferences that should influence future conversations. + </Callout> + + <H2>Run a Skill</H2> + <ol className={orderedListClassName}> + <li>Start a conversation with the built-in Agent.</li> + <li>Select the nodes the Skill should work on.</li> + <li> + Type <Code>/</Code> in the chat input to open the Skills menu. + </li> + <li>Choose a Skill, add any task-specific instruction, and send.</li> + </ol> + <Callout tone="info"> + The nodes selected when you send the request remain the Skill's + focus. + </Callout> + + <H2>Save a Skill</H2> + <P> + In an Agent conversation, type <Code>/create-skill</Code> followed by a + description of the reusable procedure. To change an existing Skill, use{' '} + <Code>/update-skill</Code> followed by the Skill and the change you + want. + </P> + <P> + When creating a Skill, Huabu checks the catalogue and warns if a similar + Skill may be a better update target. It does not silently turn creation + into an update. + </P> + <P> + User Skills are plain Markdown files stored under{' '} + <Code>setting/skills/<id>/SKILL.md</Code> in your Home. You can + inspect, edit, copy, or version-control them like other text files. + </P> + <Callout tone="tip"> + Keep each Skill focused on one reusable outcome. A short catalogue of + distinct procedures is easier to use than many overlapping variations. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/ai/ModelsAndCapabilities.tsx b/apps/docs/src/sections/ai/ModelsAndCapabilities.tsx new file mode 100644 index 000000000..279c0318b --- /dev/null +++ b/apps/docs/src/sections/ai/ModelsAndCapabilities.tsx @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + Callout, + H2, + P, + PageLayout, + Table, + type TocEntry, +} from '../../components'; + +const toc: TocEntry[] = [ + { id: 'choose-models', label: 'Choose your models' }, + { id: 'chat-model', label: 'Chat Model' }, + { id: 'utility-model', label: 'Utility Model' }, + { id: 'image-understanding', label: 'Image understanding' }, + { id: 'image-generation', label: 'Image generation' }, + { id: 'web-and-video', label: 'Web search and video transcripts' }, +]; + +export default function ModelsAndCapabilities() { + return ( + <PageLayout + title="Models & Capabilities" + description="Understand which model Huabu uses for each kind of work and configure optional web, image, and video capabilities." + toc={toc} + > + <H2>Choose your models</H2> + <P> + Open <strong>Settings > Huabu Agent</strong> to configure models and + optional capabilities. Only the Chat Model is required. + </P> + <Table + headers={['Setting', 'Used for', 'Required']} + rows={[ + [ + <strong>Chat Model</strong>, + 'Conversations, Agent work, and running Skills.', + 'Yes', + ], + [ + <strong>Utility Model</strong>, + 'Memory, Skill creation and updates, labels, summaries, keywords, and intent suggestions.', + 'No', + ], + [ + <strong>Image Generation</strong>, + 'Creating or editing images through Agent.', + 'No', + ], + ]} + /> + + <H2>Chat Model</H2> + <P> + The Chat Model powers built-in Chat and Agent conversations. It reasons + over your request, reads Space material, chooses tools, and plans Space + changes. Running a Skill to complete a task also uses this model. Chat + acts as the fallback when the Utility Model is not configured or cannot + process required image input. + </P> + <Callout tone="tip"> + Choose the most capable model you want to use for interactive work. It + needs a sufficiently large context window for longer conversations and + Spaces. + </Callout> + + <H2>Utility Model</H2> + <P> + The optional Utility Model handles frequent, lightweight background + work: Memory curation, Skill creation and updates, intent suggestions, + image and Frame labels, and content labels, summaries, and keywords. A + faster or less expensive model can reduce latency and cost for these + tasks. + </P> + <Callout tone="info"> + Leave Utility Model set to <strong>Follow chat model</strong> to use the + Chat Model for these tasks too. + </Callout> + + <H2>Image understanding</H2> + <P> + Chat and Agent can inspect images when the selected Chat Model supports + image input. Huabu also uses image input when it labels image nodes or + interprets visual context. If a configured Utility Model cannot accept + images, Huabu falls back to the Chat Model for that image task. + </P> + + <H2>Image generation</H2> + <P> + Image Generation is separate from the Chat and Utility Models. Configure + an Azure OpenAI image deployment in{' '} + <strong>Settings > Huabu Agent</strong> to let Agent create images or + use Space images and sketches as visual references. Built-in Chat is + read-only and does not generate images in the Space. + </P> + + <H2>Web search and video transcripts</H2> + <Table + headers={['Capability', 'What it enables', 'Setup']} + rows={[ + [ + <strong>Web Search</strong>, + 'Lets Chat and Agent find current information and cite the source URLs.', + 'Add a Tavily API key under Settings > Huabu Agent > Other Capabilities.', + ], + [ + <strong>YouTube Transcripts</strong>, + 'Lets Huabu import transcript text when processing YouTube material.', + 'Add a RapidAPI key under Settings > Huabu Agent > Other Capabilities.', + ], + ]} + /> + <Callout tone="info"> + Skills provide reusable instructions; they do not add new tools. Web + search, image generation, and transcript loading must be configured as + capabilities separately. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/ai/WorkWithAI.tsx b/apps/docs/src/sections/ai/WorkWithAI.tsx new file mode 100644 index 000000000..8283d1fa4 --- /dev/null +++ b/apps/docs/src/sections/ai/WorkWithAI.tsx @@ -0,0 +1,195 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + Callout, + H2, + P, + PageLayout, + Table, + type TocEntry, +} from '../../components'; +import { NODE_ICON } from '../../config/nodeIcons'; + +const toc: TocEntry[] = [ + { id: 'choose-how-to-work', label: 'Choose how to work' }, + { id: 'give-ai-context', label: 'Give AI the right context' }, + { id: 'let-agent-work', label: 'Let Agent work on the Space' }, + { id: 'review-ai-changes', label: 'Review AI changes' }, + { + id: 'work-beside-material', + label: 'Work beside your material with an Agent Node', + }, + { id: 'ask-and-discuss', label: 'Ask and discuss in Chat' }, +]; + +const listClassName = + 'text-fg-muted list-disc space-y-1.5 pl-5 text-[15px] leading-relaxed'; +const orderedListClassName = + 'text-fg-muted list-decimal space-y-1.5 pl-5 text-[15px] leading-relaxed'; + +export default function WorkWithAI() { + return ( + <PageLayout + title="Work with AI" + description="Let an Agent shape your Space, or keep an Agent Node beside the material you are developing." + toc={toc} + > + <H2>Choose how to work</H2> + <P> + Huabu offers three ways to work with AI. Start with the outcome you + want, then choose the surface that keeps the conversation and any + changes in the right place. + </P> + <Table + headers={['What you want to do', 'Use']} + rows={[ + [ + 'Create, edit, arrange, or connect things in the Space', + <strong>Agent</strong>, + ], + [ + 'Keep a focused conversation beside the relevant material', + <> + <NODE_ICON.question + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <strong>Agent Node</strong> + </>, + ], + [ + 'Ask questions, discuss ideas, or understand selected material', + <strong>Chat</strong>, + ], + ]} + /> + + <H2>Give AI the right context</H2> + <P> + Good results start with a clear focus. Huabu sends references to the + nodes you select, and the AI can inspect their content and the + surrounding Space when it needs more detail. + </P> + <ul className={listClassName}> + <li> + <strong>Select relevant nodes before sending.</strong> The source + count beside the chat input confirms which nodes are in focus. + </li> + <li> + <strong>Paste or drop a file or image into the chat input.</strong> It + is attached to that message without first becoming a Space node. + </li> + <li> + <strong>Place an Agent Node beside the subject.</strong> Its position, + parent Frame, and nearby or connected nodes help define the local + context. + </li> + </ul> + <Callout tone="tip"> + Select only what matters. A smaller, explicit scope is usually easier + for the AI to interpret and easier for you to review. + </Callout> + + <H2>Let Agent work on the Space</H2> + <ol className={orderedListClassName}> + <li> + Open the Chat Panel and start a new conversation with{' '} + <strong>Agent</strong>. + </li> + <li> + Describe both the result and its shape—for example, “group these notes + into named Frames and connect each source to its summary.” + </li> + <li>Send the request and let Agent update the Space.</li> + <li>Review the resulting changes above the chat input.</li> + </ol> + <P> + Agent can create, edit, move, group, connect, and remove items as part + of a multi-step task. The changes appear in the Space as the Agent + works; the review card then lets you keep or revert them. + </P> + + <H2>Review AI changes</H2> + <P> + Agent changes are collected by conversation in a review card above the + chat input. Expand it to inspect individual changes or act on the whole + set. + </P> + <Table + headers={['Control', 'What it does']} + rows={[ + [ + 'Preview', + 'Press and hold to temporarily show the state before the change.', + ], + ['Keep', 'Keep one change and remove it from the review list.'], + ['Revert', 'Undo one change when it is still safe to do so.'], + ['Keep all', 'Keep every pending change in this conversation.'], + [ + 'Revert all', + 'Undo every pending change that can still be safely reverted.', + ], + ]} + /> + <Callout tone="warning"> + If you or another Agent edits the same item later, an earlier change may + become unsafe to revert. Huabu disables that revert instead of + overwriting newer work. + </Callout> + + <H2>Work beside your material with an Agent Node</H2> + <P> + An Agent Node keeps a dedicated conversation on the Space, making it + useful for open questions that should remain visible beside their source + material. + </P> + <ol className={orderedListClassName}> + <li> + Create an{' '} + <NODE_ICON.question + aria-hidden + className="inline-block size-[1em] align-[-0.15em]" + />{' '} + <strong>Agent Node</strong> from the toolbar or a node's + quick-create arrow. + </li> + <li> + The Chat Panel opens a conversation bound to the new Agent Node. + </li> + <li> + Choose the built-in Chat, Agent, or an available external agent. + </li> + <li>Write the question and send it.</li> + <li> + Double-click the Agent Node later to reopen and continue its thread. + </li> + </ol> + <P> + Put the Agent Node inside the Frame you want it to understand, or + connect it to the most relevant nodes. The conversation stays bound to + that node and to the agent selected for it. + </P> + + <H2>Ask and discuss in Chat</H2> + <ol className={orderedListClassName}> + <li>Open the Chat Panel from the top-right of the Space.</li> + <li> + Start a new conversation with <strong>Chat</strong>. + </li> + <li>Write your question and send it.</li> + </ol> + <P> + Chat is read-only: it can inspect the Space, read selected sources, + search files or the web, and explain what it finds, but it does not + modify the Space. Use it for summaries, comparisons, explanations, and + brainstorming. + </P> + <Callout tone="info"> + When the next step requires Space changes, start a new conversation with{' '} + <strong>Agent</strong> and describe the outcome you want. An existing + Chat conversation cannot be switched to Agent. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/reference/IssueReporting.tsx b/apps/docs/src/sections/reference/IssueReporting.tsx new file mode 100644 index 000000000..6ac2321ca --- /dev/null +++ b/apps/docs/src/sections/reference/IssueReporting.tsx @@ -0,0 +1,161 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + Callout, + Code, + CodeBlock, + DocLink, + H2, + P, + PageLayout, + Table, + type TocEntry, +} from '../../components'; + +const toc: TocEntry[] = [ + { id: 'before-reporting', label: 'Before reporting' }, + { id: 'describe-the-problem', label: 'Describe the problem' }, + { id: 'system-information', label: 'System information' }, + { id: 'screenshots-and-logs', label: 'Screenshots and logs' }, + { id: 'ai-problems', label: 'AI-related problems' }, + { id: 'submit-the-issue', label: 'Submit the issue' }, +]; + +export default function IssueReporting() { + return ( + <PageLayout + title="Report an Issue" + description="Report bugs and unexpected behavior through GitHub Issues. A short report with clear reproduction steps gives the team the best chance of identifying and fixing the problem." + toc={toc} + > + <Callout tone="info"> + Huabu uses{' '} + <DocLink href="https://github.com/microsoft/Huabu/issues"> + GitHub Issues + </DocLink>{' '} + as its public feedback channel. Never include API keys, access tokens, + private documents, or other sensitive data in an issue. + </Callout> + + <H2>Before reporting</H2> + <ul className="list-disc space-y-1.5 pl-5 text-[15px] leading-relaxed text-gray-700"> + <li> + <strong>Update Huabu</strong> to the latest available version and + check whether the problem still occurs. + </li> + <li> + <strong>Search existing issues</strong> in the{' '} + <DocLink href="https://github.com/microsoft/Huabu/issues"> + Huabu issue tracker + </DocLink>{' '} + using the error message or a few words that describe the symptom. + </li> + </ul> + <P> + If an existing issue describes the same problem, add any new + reproduction details, your Huabu version, and your operating system to + that issue instead of opening a duplicate. + </P> + + <H2>Describe the problem</H2> + <P> + Use a specific title that describes the visible symptom, such as “PDF + node becomes blank after reopening a Space.” In the report, include the + following information: + </P> + <Table + headers={['Field', 'What to include']} + rows={[ + [ + <strong>What happened</strong>, + 'A short description of the behavior you observed, including any error message.', + ], + [ + <strong>What you expected</strong>, + 'What you were trying to do and what you expected Huabu to do instead.', + ], + [ + <strong>Steps to reproduce</strong>, + 'A numbered list of the shortest sequence that triggers the problem.', + ], + [ + <strong>Frequency</strong>, + 'Whether it happens every time, sometimes, or only once, and whether it also happens in a new Space.', + ], + ]} + /> + <P>For example:</P> + <CodeBlock language="text">{`What happened +The PDF node is blank after I close and reopen its Space. + +Expected behavior +The first page preview should appear after the Space reloads. + +Steps to reproduce +1. Open Huabu and create a new Space. +2. Drag a PDF into the Space. +3. Return to Home, then reopen the Space. +4. The PDF node is blank. + +Frequency +Every time with this PDF; it also happens in a new Space.`}</CodeBlock> + + <H2>System information</H2> + <P> + Include the Huabu version, operating system version, CPU architecture, + and whether you use the desktop or web app. In the desktop app, choose{' '} + <strong>Help → Troubleshooting → Copy System Information</strong>, then + paste the result into the issue. + </P> + + <H2>Screenshots and logs</H2> + <P> + Add a screenshot or short screen recording when the problem is visual or + difficult to describe. For crashes, failed requests, or unexpected + errors, choose <strong>Help → Troubleshooting → Open Server Log</strong>{' '} + and attach only the relevant part of <Code>server.log</Code>. + </P> + <Callout tone="warning"> + Review every attachment before uploading it. Remove API keys, access + tokens, private conversations, personal information, confidential + documents, and file paths that reveal information you do not want to + publish. + </Callout> + + <H2>AI-related problems</H2> + <P> + If the problem involves an AI response or edit, also include the details + below. Share only the minimum context needed to understand the problem. + </P> + <ul className="list-disc space-y-1.5 pl-5 text-[15px] leading-relaxed text-gray-700"> + <li> + Whether you used Chat, Agent mode, or an Agent node, and whether it + was powered by Huabu Agent or an external agent. + </li> + <li>The provider and model name, but never the API key.</li> + <li>Which nodes or materials were selected as context.</li> + <li> + The relevant prompt, response, or proposed edit, if safe to share, and + whether you applied any proposed changes. + </li> + </ul> + + <H2>Submit the issue</H2> + <P> + Once the report contains the problem, expected behavior, reproduction + steps, and system information, create a{' '} + <DocLink href="https://github.com/microsoft/Huabu/issues/new/choose"> + new GitHub issue + </DocLink> + . You can add screenshots or logs by dragging them into the issue + editor. + </P> + <Callout tone="tip"> + A minimal reproduction is more useful than a large attachment. Share a + sample file or exported Space only when it is necessary, safe to + publish, and stripped of private content. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/reference/Shortcuts.tsx b/apps/docs/src/sections/reference/Shortcuts.tsx new file mode 100644 index 000000000..d75136007 --- /dev/null +++ b/apps/docs/src/sections/reference/Shortcuts.tsx @@ -0,0 +1,165 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { Fragment, useMemo } from 'react'; + +import { + Callout, + H2, + Kbd, + P, + PageLayout, + slugify, + Table, + type TocEntry, +} from '../../components'; +import { keyboardShortcutSections } from '../../config/shortcuts'; + +const PASTE_SECTION = { + id: 'paste-behaviour', + label: 'Paste behaviour', +} as const; + +/** + * Maps shortcut-template tokens that would otherwise collide with the `+` + * separator (e.g. `Ctrl/Cmd+Plus`) to their printable glyphs. Mirrors the + * mapping used by `utils/platform.ts` for the in-app shortcuts modal so the + * two surfaces stay visually consistent. + */ +const KEY_GLYPHS: Record<string, string> = { + Plus: '+', + Minus: '−', // U+2212 minus sign — distinct from the `+` separator + Equal: '=', +}; + +/** + * Render a shortcut template from `config/shortcuts.ts` as a row of + * `<Kbd>` chips. Unlike the in-app modal — which collapses `Ctrl/Cmd` to + * the platform-native modifier — the docs always render both `Ctrl` and + * `Cmd` so the page reads correctly regardless of the visitor's OS. + * + * Handles three template shapes: + * - `Key+Key+...` combinations (e.g. `Ctrl/Cmd+Shift+Z`) + * - `Key / Key` alternatives (e.g. `Delete / Backspace`) + * - `Key (qualifier)` annotations (e.g. `Space (hold)`) + */ +function ShortcutKbd({ template }: { template: string }) { + if (template.includes(' / ')) { + const alternatives = template.split(' / '); + return ( + <> + {alternatives.map((alt, index) => ( + <Fragment key={`alt-${index}`}> + {index > 0 && ' / '} + <ShortcutKbd template={alt} /> + </Fragment> + ))} + </> + ); + } + + const qualifierMatch = /^(.+?)\s+\(([^)]+)\)$/.exec(template); + if (qualifierMatch) { + const [, base, qualifier] = qualifierMatch; + return ( + <> + <ShortcutKbd template={base} /> ({qualifier}) + </> + ); + } + + const parts = template.split('+').map((part) => part.trim()); + return ( + <> + {parts.map((part, index) => ( + <Fragment key={`part-${index}`}> + {index > 0 && '+'} + {part === 'Ctrl/Cmd' ? ( + <> + <Kbd>Ctrl</Kbd>/<Kbd>Cmd</Kbd> + </> + ) : ( + <Kbd>{KEY_GLYPHS[part] ?? part}</Kbd> + )} + </Fragment> + ))} + </> + ); +} + +export default function Shortcuts() { + const toc = useMemo<TocEntry[]>( + () => [ + ...keyboardShortcutSections.map((section) => ({ + id: slugify(section.title), + label: section.title, + })), + { id: PASTE_SECTION.id, label: PASTE_SECTION.label }, + ], + [], + ); + + return ( + <PageLayout + title="Keyboard Shortcuts" + description={ + <> + <Kbd>Ctrl</Kbd> on Windows / Linux, <Kbd>Cmd</Kbd> (⌘) on macOS — the + tables below write it as <Kbd>Ctrl</Kbd>/<Kbd>Cmd</Kbd>. Press{' '} + <Kbd>?</Kbd> in any Space to view the same list in-app. Shortcuts in + the General section are available only in the desktop app. + </> + } + toc={toc} + > + {keyboardShortcutSections.map((section) => ( + <Fragment key={section.title}> + <H2>{section.title}</H2> + <Table + headers={['Shortcut', 'Action']} + rows={section.items.map((item) => [ + <ShortcutKbd key={item.keys} template={item.keys} />, + item.description, + ])} + /> + </Fragment> + ))} + + <H2>{PASTE_SECTION.label}</H2> + <P> + <Kbd>Ctrl</Kbd>/<Kbd>Cmd</Kbd>+<Kbd>V</Kbd> resolves to different node + types depending on what's on your clipboard: + </P> + <Table + headers={['Clipboard contents', 'Result']} + rows={[ + [ + 'Space nodes copied earlier', + 'Pasted as duplicates at the cursor position.', + ], + ['Image file', 'Creates an Image node and uploads it.'], + ['PDF file', 'Creates a PDF node and uploads it.'], + ['Video file', 'Creates a Video node and uploads it.'], + [ + 'One or more URLs (one per line)', + 'Auto-detected as image / PDF / web page / YouTube; one node per line.', + ], + ['Plain text', 'Creates a Note with the pasted text.'], + ]} + /> + + <Callout tone="info"> + Shortcuts adapt to your platform automatically — the modifier shows up + as <Kbd>Cmd</Kbd> on macOS and <Kbd>Ctrl</Kbd> on Windows / Linux. + </Callout> + + <Callout tone="info"> + On the <strong>Drag and drop</strong> row above: the cursor reflects the + active mode — a <strong>+</strong> badge means copy, no badge means + move. Drags that can't mutate their source (AI chat cards, web / + image cards, external files or URLs) always fall back to copy regardless + of the modifier. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/space/DataAndBackup.tsx b/apps/docs/src/sections/space/DataAndBackup.tsx new file mode 100644 index 000000000..008bc3144 --- /dev/null +++ b/apps/docs/src/sections/space/DataAndBackup.tsx @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + Code, + CodeBlock, + H2, + P, + PageLayout, + Table, + type TocEntry, +} from '../../components'; + +const toc: TocEntry[] = [ + { id: 'home-layout', label: 'Home layout' }, + { id: 'per-space-files', label: 'Per-Space files' }, + { id: 'home-settings', label: 'Home settings & skills' }, + { id: 'hand-editing', label: 'Hand-editing files' }, +]; + +export default function DataAndBackup() { + return ( + <PageLayout + title="Data & Files" + description="Huabu stores each Space as a directory of plain files inside the Home folder you choose." + toc={toc} + > + <H2>Home layout</H2> + <P> + Each Space is a self-contained directory inside your Home. Its content, + attachments, AI memory, and conversation history stay together. + </P> + <CodeBlock language="text">{`<home>/ +├── <space-title>/ # one folder per Space +│ ├── space.json # this Space's topology +│ ├── nodes/<node-title>.md +│ ├── .artifacts/<artifactId>.<ext> +│ ├── .memory/canvas.md # Space memory +│ └── .history/ # conversation and event history +└── setting/ + ├── user.md # User memory + └── skills/<id>/SKILL.md # user-authored skills`}</CodeBlock> + + <H2>Per-Space files</H2> + <Table + headers={['Item', 'Format', 'Notes']} + rows={[ + [ + <Code>space.json</Code>, + 'JSON (atomic writes)', + 'Topology — nodes, edges, geometry, version. Each save writes a .tmp then renames.', + ], + [ + <Code>nodes/<title>.md</Code>, + 'Markdown + YAML frontmatter', + "One file per node (Note / Text / Web / PDF / Image / Video / Frame). Don't edit the id field.", + ], + [ + <Code>.artifacts/</Code>, + 'Raw binaries', + 'PDF / image / video originals; each filename is based on its artifact ID.', + ], + [ + <Code>.memory/canvas.md</Code>, + 'Markdown', + 'Space-level memory the AI writes.', + ], + [ + <Code>.history/</Code>, + 'JSON / JSONL', + 'Conversation threads and event timeline.', + ], + ]} + /> + + <H2>Home settings & skills</H2> + <P> + The <Code>setting/</Code> directory contains information shared across + Spaces: <Code>user.md</Code> stores user memory, while{' '} + <Code>skills/<id>/SKILL.md</Code> stores user-authored skills and + their supporting files. + </P> + + <H2>Hand-editing files</H2> + <Table + headers={['File', 'Hand-editable?']} + rows={[ + [ + <Code>space.json</Code>, + "❌ Don't edit — Huabu manages this file automatically.", + ], + [ + <> + <Code>nodes/<title>.md</Code> body + </>, + '✅ Yes — next Space load picks it up.', + ], + [ + <> + <Code>nodes/<title>.md</Code> frontmatter <Code>id</Code> + </>, + '❌ Never — node references rely on it.', + ], + [ + <> + <Code>nodes/<title>.md</Code> filename + </>, + '✅ Renaming the file renames the node on next load.', + ], + [ + <> + <Code>.artifacts/</Code> filenames + </>, + <> + ❌ Don't change — filename = artifactId, used by the + node's <Code>src</Code>. + </>, + ], + [ + <Code>.history/.../*.json</Code>, + 'Not recommended — but deletions only lose conversation context, not Space content.', + ], + [ + <Code>setting/user.md</Code>, + '✅ Edit freely; the AI will respect the 4 KB cap on its next write.', + ], + [ + <Code>setting/skills/<id>/SKILL.md</Code>, + '✅ Author your own skills here.', + ], + ]} + /> + </PageLayout> + ); +} diff --git a/apps/docs/src/sections/space/WorkInASpace.tsx b/apps/docs/src/sections/space/WorkInASpace.tsx new file mode 100644 index 000000000..4bdcac10e --- /dev/null +++ b/apps/docs/src/sections/space/WorkInASpace.tsx @@ -0,0 +1,378 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { + Callout, + DocImage, + H2, + H3, + P, + PageLayout, + Shortcut, + Table, + type TocEntry, +} from '../../components'; +import { NODE_ICON } from '../../config/nodeIcons'; + +const toc: TocEntry[] = [ + { id: 'understand-the-space', label: 'Understand the Space' }, + { id: 'navigate-and-select', label: 'Navigate and select' }, + { id: 'use-the-toolbar', label: 'Use the toolbar' }, + { id: 'move-content-by-dragging', label: 'Move content by dragging' }, + { id: 'choose-the-right-node', label: 'Choose the right node' }, + { id: 'build-structure', label: 'Build structure' }, + { id: 'open-view-and-edit', label: 'Open, view, and edit' }, + { id: 'everyday-operations', label: 'Everyday operations' }, +]; + +const iconClassName = 'inline-block size-[1em] align-[-0.15em]'; + +export default function WorkInASpace() { + return ( + <PageLayout + title="Work in a Space" + description="Create, arrange, connect, and inspect the materials and ideas in a Huabu Space." + toc={toc} + > + <H2>Understand the Space</H2> + <P> + A <strong>Space</strong> is an infinite two-dimensional work surface for + one topic, question, or project. Everything on it is built from three + elements: <strong>nodes</strong> hold material or ideas,{' '} + <strong>edges</strong> express relationships, and{' '} + <strong>Frames</strong> group related nodes into named regions. + </P> + <P> + Position is useful too: keep related material close, separate competing + directions, and use Frames and labelled edges when a relationship should + be explicit. + </P> + + <H2>Navigate and select</H2> + <Table + headers={['Action', 'How']} + rows={[ + [ + 'Select', + 'Use the Select tool, then click a node. Click empty space to clear the selection.', + ], + [ + 'Select several nodes', + <> + Hold <Shortcut combo="mod" /> while clicking nodes, drag a + rectangle in empty space, or draw around them with Lasso. + </>, + ], + [ + 'Move', + 'Drag a node. If several nodes are selected, they move together.', + ], + [ + 'Pan', + <> + Scroll the mouse wheel, use the Pan tool, or hold{' '} + <Shortcut combo="Space" /> temporarily while dragging the Space. + </>, + ], + [ + 'Zoom', + 'Press Ctrl/Cmd+Plus to zoom in or Ctrl/Cmd+Minus to zoom out. You can also use a trackpad pinch gesture.', + ], + ]} + /> + <Callout tone="tip"> + When dragging a node across a Frame, hold <Shortcut combo="Space" /> to + move it without adding it to or removing it from that Frame. + </Callout> + + <H2>Use the toolbar</H2> + <P> + The toolbar is the main place to choose how you interact with the Space + and what you want to add. Select a creation tool, then click or drag in + the Space to place the new node. Press <Shortcut combo="Esc" /> to + cancel a placement tool. + </P> + <Table + headers={['Group', 'Tools', 'What they do']} + rows={[ + [ + 'Navigate', + 'Select (S), Pan (P), Lasso (L)', + 'Select and move nodes, move the viewport, or draw a freehand selection.', + ], + [ + 'Create', + 'Note (1), Text (2), Frame (3), Sketch (4)', + 'Create your own writing, labels, groups, and drawings.', + ], + [ + 'Import', + 'Upload Files, Add Links', + 'Bring images, PDFs, videos, HTML files, and web links into the Space.', + ], + [ + 'AI', + 'Agent (A)', + 'Place an Agent node and start an AI conversation beside the relevant material.', + ], + ]} + /> + <P> + You can also drag files from your computer onto the Space, paste files, + URLs, images, or text, and copy existing nodes. Huabu creates the + matching node type and places it near the pointer. + </P> + + <H2>Move content by dragging</H2> + <P> + Content can flow directly from your computer and other sources into the + Space and your writing. Drop a local file or a useful block or excerpt + onto empty space to make it a node. You can also drop extracted content + into a Note to continue working with it there. Huabu preserves the + appropriate format, so you do not need to import, copy, create a + destination, and paste in separate steps. + </P> + <Table + headers={['Drag from', 'Drop on empty space', 'Drop into a Note']} + rows={[ + [ + 'A local file', + 'Creates the matching Image, PDF, Video, or Web node and uploads the file.', + 'Not supported.', + ], + [ + 'A Chat reply', + 'Creates a Note from a text block or an Image from an image block.', + 'Appends the block, or inserts it at the indicator when the Note is expanded.', + ], + [ + 'A PDF selection', + 'Creates a Note from selected text or an Image from a captured area.', + 'Appends the text or image to the Note.', + ], + [ + 'A Note block', + 'Moves the block into a new Note.', + 'Moves the block to the end of the other Note.', + ], + ]} + /> + <P> + Only one content node can be expanded at a time. A selection dragged + from an expanded PDF or Note therefore lands on the target Note in the + Space and is appended to its end. When the target Note itself is + expanded, content available from Chat can follow the insertion indicator + between existing blocks, and its own blocks can be reordered. + </P> + <Callout tone="tip"> + Dragging from Chat or a PDF always copies the source. When dragging a + Note block, the default is move; hold <strong>Option</strong> on macOS + or <strong>Ctrl</strong> on Windows / Linux while dragging to copy it + instead. + </Callout> + + <H2>Choose the right node</H2> + <Table + headers={['Node', 'Use it for']} + rows={[ + [ + <> + <NODE_ICON.note aria-hidden className={iconClassName} />{' '} + <strong>Note</strong> + </>, + 'Ideas, prose, outlines, lists, quotes, code, and other structured Markdown content.', + ], + [ + <> + <NODE_ICON.text aria-hidden className={iconClassName} />{' '} + <strong>Text</strong> + </>, + 'Short titles, labels, captions, and visual annotations.', + ], + [ + <> + <NODE_ICON.image aria-hidden className={iconClassName} />{' '} + <strong>Image</strong> + </>, + 'Images, diagrams, and screenshots.', + ], + [ + <> + <NODE_ICON.pdf aria-hidden className={iconClassName} />{' '} + <strong>PDF</strong> + </>, + 'Reading a complete document and extracting text or regions from it.', + ], + [ + <> + <NODE_ICON.video aria-hidden className={iconClassName} />{' '} + <strong>Video</strong> + </>, + 'Local videos and supported video links.', + ], + [ + <> + <NODE_ICON.web aria-hidden className={iconClassName} />{' '} + <strong>Web</strong> + </>, + 'Web pages and extracted article content.', + ], + [ + <> + <NODE_ICON.frame aria-hidden className={iconClassName} />{' '} + <strong>Frame</strong> + </>, + 'A named group or region that contains and arranges other nodes.', + ], + [ + <> + <NODE_ICON.sketch aria-hidden className={iconClassName} />{' '} + <strong>Sketch</strong> + </>, + 'Freehand diagrams, marks, and visual thinking.', + ], + [ + <> + <NODE_ICON.question aria-hidden className={iconClassName} />{' '} + <strong>Agent</strong> + </>, + 'An AI conversation placed beside the material it concerns.', + ], + ]} + /> + + <H3>Text or Note?</H3> + <Table + headers={['', 'Text', 'Note']} + rows={[ + [ + 'Best for', + 'Titles, labels, short captions', + 'Ideas and longer writing', + ], + [ + 'Content', + 'A short plain-text string', + 'Rich text stored as Markdown', + ], + [ + 'Editing', + 'Directly in the Space', + 'In the node or expanded editor', + ], + [ + 'Formatting', + 'Typography and colour', + 'Headings, lists, quotes, code, links, and more', + ], + ]} + /> + <Callout tone="info"> + A simple rule: use <strong>Text</strong> to label the Space; use a{' '} + <strong>Note</strong> to develop an idea. + </Callout> + + <H2>Build structure</H2> + <H3>Group related work with Frames</H3> + <P> + A Frame is more than a rectangle: it gives a group a name and keeps its + contents together. Use one for a topic, project stage, chapter, source + collection, or intended output. Drag nodes into or out of a Frame, or + select several nodes and press <Shortcut combo="mod+g" /> to group them. + </P> + <P> + A Frame can keep its children in a free arrangement or lay them out in a + row or column. Moving the Frame moves its contents, while moving nodes + inside it changes their local arrangement. + </P> + + <H3>Create a connected Note or Agent node</H3> + <P> + Select a node to reveal arrows above, below, left, and right. Choose an + arrow, then choose <strong>Note</strong> or <strong>Agent</strong>. + Huabu places the new node on that side, avoids nearby content when + possible, and connects it to the original node automatically. + </P> + <DocImage + src="/docs/work-in-a-space/quick-create-arrows-full.png" + alt="A selected Note with directional arrows and the connected-node menu open beside the right arrow" + caption="Select a directional arrow, then choose Note or Agent to create and connect a new node on that side." + className="mx-auto max-w-3xl" + /> + + <H3>Connect existing nodes</H3> + <P> + Hover or select a node to reveal its small connection points. Drag from + one point to another node to create an edge. Select the edge to add a + label or change its direction. Use an edge when the relationship should + remain explicit even after the nodes move. + </P> + + <H2>Open, view, and edit</H2> + <P> + Double-click a content node to expand it. The expanded panel can stay + beside the Space in <strong>Split View</strong>, or switch to{' '} + <strong>Full View</strong> when you want more room to read or edit. + Close the panel to return to the same place in the Space. + </P> + + <H3>Work with a Note</H3> + <P> + A Note supports headings, lists, tasks, quotes, code, tables, links, and + other rich content. Expand it for the full editor; switch between rich + text and raw Markdown when needed. Drag blocks out to organize them as + separate Notes, or move them to the end of another Note in the Space. + When this Note is expanded, you can also place content dragged from Chat + at the insertion indicator. + </P> + + <H3>Work with a PDF</H3> + <P> + Expand a PDF to read the full document with page thumbnails. Highlight + text to drag it out as a Note, or select an area to drag it out as an + Image. Drop either one on empty space to create a node or into a Note to + add it to your writing. You can also send a capture to Chat, keeping the + extracted idea close to its source. + </P> + + <H2>Everyday operations</H2> + <Table + headers={['Action', 'How']} + rows={[ + [ + 'Copy and paste', + <> + <Shortcut combo="mod+c" /> and <Shortcut combo="mod+v" /> + </>, + ], + [ + 'Delete', + <> + Select nodes or edges, then press <Shortcut combo="Delete" /> or{' '} + <Shortcut combo="Backspace" />. + </>, + ], + [ + 'Undo and redo', + <> + <Shortcut combo="mod+z" /> and <Shortcut combo="mod+shift+z" /> + </>, + ], + [ + 'Align and distribute', + 'Select several nodes, then use the floating toolbar to align their edges or centres and spread them evenly.', + ], + [ + 'Resize', + 'Select a node and drag its resize handles. Available handles depend on the node type.', + ], + ]} + /> + <Callout tone="tip"> + Start simple: add a source, write a Note beside it, and group related + work in a Frame. Add edges only when a relationship needs to be stated + explicitly. + </Callout> + </PageLayout> + ); +} diff --git a/apps/docs/src/setting.png b/apps/docs/src/setting.png new file mode 100644 index 0000000000000000000000000000000000000000..ebacd74648d149ade5e07cd6b874afb34b228e27 GIT binary patch literal 188494 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"W$jRW#bmKtd7 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 i@wx>SMrZ1^@E_FCBme%p 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 Z-2L5s`;rG8%9(KJYUyj<-fDB={{Rg9cw+zn literal 0 HcmV?d00001 diff --git a/apps/docs/src/vite-env.d.ts b/apps/docs/src/vite-env.d.ts new file mode 100644 index 000000000..bf58c5041 --- /dev/null +++ b/apps/docs/src/vite-env.d.ts @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/// <reference types="vite/client" /> + +declare module '@pagefind/default-ui' { + export class PagefindUI { + constructor(options: { + element: string | HTMLElement; + bundlePath?: string; + baseUrl?: string; + showSubResults?: boolean; + pageSize?: number; + }); + } +} diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json new file mode 100644 index 000000000..aa4f9acf1 --- /dev/null +++ b/apps/docs/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/apps/docs/tsconfig.node.json b/apps/docs/tsconfig.node.json new file mode 100644 index 000000000..f5537e20e --- /dev/null +++ b/apps/docs/tsconfig.node.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "target": "ES2022", + "lib": ["ES2022"], + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "strict": true, + "types": ["node"] + }, + "include": [ + "vite.config.ts", + "vitest.config.ts", + "scripts/**/*.mjs", + "src/normalizeBasePath.ts" + ] +} diff --git a/apps/docs/vite.config.ts b/apps/docs/vite.config.ts new file mode 100644 index 000000000..895b42858 --- /dev/null +++ b/apps/docs/vite.config.ts @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { fileURLToPath, URL } from 'node:url'; + +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; + +import { normalizeBasePath } from './src/normalizeBasePath'; + +export default defineConfig(({ isSsrBuild }) => { + const parsedDocsPort = Number.parseInt(process.env.DOCS_PORT || '', 10); + const docsPort = + Number.isFinite(parsedDocsPort) && parsedDocsPort > 0 + ? parsedDocsPort + : 43127; + + return { + base: normalizeBasePath(process.env.DOCS_BASE_PATH), + plugins: [react()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, + server: { + host: true, + port: docsPort, + strictPort: true, + }, + preview: { + host: true, + port: 43128, + strictPort: true, + }, + build: { + manifest: !isSsrBuild, + sourcemap: false, + }, + }; +}); diff --git a/apps/docs/vitest.config.ts b/apps/docs/vitest.config.ts new file mode 100644 index 000000000..54c74483d --- /dev/null +++ b/apps/docs/vitest.config.ts @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { defineConfig, mergeConfig } from 'vitest/config'; + +import viteConfig from './vite.config'; + +export default defineConfig(async (environment) => { + const resolved = + typeof viteConfig === 'function' + ? await viteConfig(environment) + : viteConfig; + + return mergeConfig(resolved, { + test: { + environment: 'happy-dom', + }, + }); +}); diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..13f9035a9 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import js from '@eslint/js'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import importPlugin from 'eslint-plugin-import'; +import jsxA11yPlugin from 'eslint-plugin-jsx-a11y'; +import reactPlugin from 'eslint-plugin-react'; +import reactHooksPlugin from 'eslint-plugin-react-hooks'; +import globals from 'globals'; +import typescriptEslint from 'typescript-eslint'; + +export default typescriptEslint.config( + { + ignores: ['**/dist/**', '**/node_modules/**', '**/.ssr/**', '**/*.min.*'], + }, + js.configs.recommended, + ...typescriptEslint.configs.recommended, + { + files: ['**/*.{ts,tsx}'], + plugins: { + import: importPlugin, + }, + rules: { + curly: 'error', + semi: 'error', + 'no-unused-vars': 'off', + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + prefer: 'type-imports', + fixStyle: 'separate-type-imports', + }, + ], + '@typescript-eslint/no-import-type-side-effects': 'error', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + 'import/order': [ + 'error', + { + groups: [ + 'builtin', + 'external', + 'internal', + ['parent', 'sibling'], + 'index', + 'type', + ], + pathGroups: [ + { pattern: '@/**', group: 'internal', position: 'before' }, + ], + pathGroupsExcludedImportTypes: ['type'], + distinctGroup: true, + 'newlines-between': 'always', + alphabetize: { + order: 'asc', + caseInsensitive: true, + }, + }, + ], + }, + }, + { + files: ['apps/*/src/**/*.{ts,tsx,js,jsx}'], + plugins: { + react: reactPlugin, + 'react-hooks': reactHooksPlugin, + 'jsx-a11y': jsxA11yPlugin, + }, + languageOptions: { + globals: { + ...globals.browser, + }, + }, + settings: { + react: { + version: 'detect', + }, + }, + rules: { + 'react/react-in-jsx-scope': 'off', + 'react/jsx-uses-react': 'off', + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'warn', + }, + }, + { + files: [ + '*.config.{js,mjs,cjs}', + 'apps/*/*.config.{js,mjs,cjs}', + 'apps/*/scripts/**/*.{js,mjs,cjs}', + 'packages/*/scripts/**/*.{js,mjs,cjs}', + 'scripts/**/*.{js,mjs,cjs}', + ], + languageOptions: { + globals: { + ...globals.node, + }, + }, + }, + eslintConfigPrettier, +); diff --git a/package.json b/package.json new file mode 100644 index 000000000..cf4f0927d --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "huabu", + "private": true, + "scripts": { + "build": "pnpm -r --if-present run build", + "test": "pnpm -r --if-present run test", + "typecheck": "pnpm -r --if-present run typecheck", + "lint": "eslint . --report-unused-disable-directives --max-warnings 0", + "lint:fix": "pnpm run lint --fix", + "format": "prettier --write .", + "format:check": "prettier --check .", + "check": "pnpm run lint && pnpm run format:check && pnpm run typecheck && pnpm run test && pnpm run build && node scripts/check-headers.mjs" + }, + "devDependencies": { + "@eslint/js": "^9.39.2", + "eslint": "^9.39.2", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "globals": "^17.2.0", + "prettier": "3.8.1", + "prettier-plugin-tailwindcss": "^0.7.2", + "typescript-eslint": "^8.54.0" + }, + "packageManager": "pnpm@10.34.3" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..21cffb776 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6202 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + .: + devDependencies: + '@eslint/js': + specifier: ^9.39.2 + version: 9.39.4 + eslint: + specifier: ^9.39.2 + version: 9.39.4(jiti@2.7.0) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@9.39.4(jiti@2.7.0)) + eslint-plugin-import: + specifier: ^2.32.0 + version: 2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)) + eslint-plugin-jsx-a11y: + specifier: ^6.10.2 + version: 6.10.2(eslint@9.39.4(jiti@2.7.0)) + eslint-plugin-react: + specifier: ^7.37.5 + version: 7.37.5(eslint@9.39.4(jiti@2.7.0)) + eslint-plugin-react-hooks: + specifier: ^7.0.1 + version: 7.1.1(eslint@9.39.4(jiti@2.7.0)) + globals: + specifier: ^17.2.0 + version: 17.7.0 + prettier: + specifier: 3.8.1 + version: 3.8.1 + prettier-plugin-tailwindcss: + specifier: ^0.7.2 + version: 0.7.4(prettier@3.8.1) + typescript-eslint: + specifier: ^8.54.0 + version: 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + + apps/docs: + dependencies: + '@pagefind/default-ui': + specifier: ^1.4.0 + version: 1.5.2 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.577.0 + version: 0.577.0(react@18.3.1) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + react-router: + specifier: ^7.13.1 + version: 7.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-router-dom: + specifier: ^7.13.1 + version: 7.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tailwind-merge: + specifier: ^3.5.0 + version: 3.6.0 + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.1.18 + version: 4.3.2 + '@types/node': + specifier: ^22.15.0 + version: 22.20.1 + '@types/react': + specifier: ^18.2.15 + version: 18.3.31 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.3.7(@types/react@18.3.31) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.7.0(vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0)) + happy-dom: + specifier: ^15.11.7 + version: 15.11.7 + pagefind: + specifier: ^1.4.0 + version: 1.5.2 + postcss: + specifier: ^8.5.6 + version: 8.5.16 + tailwindcss: + specifier: ^4.1.18 + version: 4.3.2 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + vite: + specifier: ^6.0.0 + version: 6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0) + vitest: + specifier: ^4.0.18 + version: 4.1.10(@types/node@22.20.1)(happy-dom@15.11.7)(vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0)) + +packages: + '@alloc/quick-lru@5.2.0': + resolution: + { + integrity: sha1-e/aLIMCjUPk2kV/K4G9Y4yAHzjA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@alloc/quick-lru/-/quick-lru-5.2.0.tgz, + } + engines: { node: '>=10' } + + '@babel/code-frame@7.29.7': + resolution: + { + integrity: sha1-8vu/6ofESiFZDsUVt3iywm2IZuc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/code-frame/-/code-frame-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/compat-data@7.29.7': + resolution: + { + integrity: sha1-bwI38PNtLlHAVwpjb67Z0tDv5ik=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/compat-data/-/compat-data-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/core@7.29.7': + resolution: + { + integrity: sha1-gMELFySAgpaLV6hXuRZAlx8gcPc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/core/-/core-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/generator@7.29.7': + resolution: + { + integrity: sha1-zKC4gn5rzzuhdniOfzsYCtbbL6M=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/generator/-/generator-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-compilation-targets@7.29.7': + resolution: + { + integrity: sha1-eh3vcEMCQBxH9k+oVYnpdK4hcEI=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-globals@7.29.7': + resolution: + { + integrity: sha1-8EqW+9hHMkGxB5JD9bPwOjAQq3s=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-globals/-/helper-globals-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-module-imports@7.29.7': + resolution: + { + integrity: sha1-7yUEilGOgo1zk/rFiC3dc5Idc5Y=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-module-transforms@7.29.7': + resolution: + { + integrity: sha1-sGJ0elmXuhOGNyATKLv/d5YFdK4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.29.7': + resolution: + { + integrity: sha1-wKB2bxoTYX2KF0B9erj51IYiXqQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-string-parser@7.29.7': + resolution: + { + integrity: sha1-fwhx2Zgk0jE31g+G/PYTD9WhtR8=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-validator-identifier@7.29.7': + resolution: + { + integrity: sha1-vYcITO0MeW7Ea9pJLeboPSnon8I=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helper-validator-option@7.29.7': + resolution: + { + integrity: sha1-zzFb6UAhOzVOtKvMC9Aevj9zvCo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/helpers@7.29.7': + resolution: + { + integrity: sha1-Rav951SJl+NDdsPmn+tHXP+0pgc=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helpers/-/helpers-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/parser@7.29.7': + resolution: + { + integrity: sha1-g3uHOHy/XsVTDLY0s8Yi9o7bkzQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/parser/-/parser-7.29.7.tgz, + } + engines: { node: '>=6.0.0' } + hasBin: true + + '@babel/plugin-transform-react-jsx-self@7.29.7': + resolution: + { + integrity: sha1-wkQkUnhYIgYk/Vmlseq0+kE8gDo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.29.7': + resolution: + { + integrity: sha1-XPJaNomQa1ji8KLys3R4nmYnsV8=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.29.7': + resolution: + { + integrity: sha1-TZ1ABPZFzdME3pWMclFieE7KxwA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/template/-/template-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/traverse@7.29.7': + resolution: + { + integrity: sha1-xHsHpBuV2gkH0Ca13YlNmN59Ly0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/traverse/-/traverse-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@babel/types@7.29.7': + resolution: + { + integrity: sha1-gAXjHYJxLuetrvbiPGO3GmJ3CpI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/types/-/types-7.29.7.tgz, + } + engines: { node: '>=6.9.0' } + + '@esbuild/aix-ppc64@0.25.12': + resolution: + { + integrity: sha1-gPy+NhMOWLdnBRHoiLjoiiWe12w=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: + { + integrity: sha1-iqSWX40KeYLcIXNL9mATI6Ztp1I=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: + { + integrity: sha1-MAcSEB9/UPHSYnoWLm4JsQm2dno=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/android-arm/-/android-arm-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: + { + integrity: sha1-h9+ycWEgK9yVjvSLthsJx1j67hY=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/android-x64/-/android-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: + { + integrity: sha1-eRl4mOwf90XSHAceHHzDyALwwf0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: + { + integrity: sha1-FGQAqFYhM/RcTS6tzzfd0JcYB54=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: + { + integrity: sha1-HF+bpyBuFY/SskxZ+i0si7R8oP4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: + { + integrity: sha1-6mMfSja+qsS5J5+g/MbKKerusrM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: + { + integrity: sha1-4QZrzlg5TxsRQd7shVel8KIvWXc=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: + { + integrity: sha1-RSzWayCTLQi9xTqLYcDjC69DSLk=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: + { + integrity: sha1-sk+KzEW89UGSx/LzvhtT5lUer+A=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: + { + integrity: sha1-+c//p/yDIlcfvEyLMmjK8VvYGtA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: + { + integrity: sha1-V1oUvXRkT/q4ka3H1+YNJ1KW8s0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: + { + integrity: sha1-dbmccKlfvV93OddpK+/mBgFZGGk=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: + { + integrity: sha1-LjJZRAMhpE553fdTXDJQV9qHXNY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: + { + integrity: sha1-F2dsq7/lko2lsqDW311YzQjbJmM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: + { + integrity: sha1-BYN3VoXKggZtBMNQfwlSTTzXowY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: + { + integrity: sha1-8ExAScsuJS/paxb+2Q9wdGsT9KQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: + { + integrity: sha1-d9oNCg2CbXySHuo9QCklSLJYoHY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: + { + integrity: sha1-Ypb1hnrt7yioGyKrIAnHhqlS3M0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: + { + integrity: sha1-+NIzAzYOJ7Fs8GWyO7/0PBQUJnk=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: + { + integrity: sha1-SeC3aHRKOSS+DX/ZfdbOmykj2I0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: + { + integrity: sha1-pu19Z3jWflKMgfsWWyP0kRubE9Y=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: + { + integrity: sha1-msFMN44bZTrxfQjn0840yu9YcyM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: + { + integrity: sha1-kYlC3LuzXMFPyjmvuRteaj0Scmc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: + { + integrity: sha1-m9rYF2vngRrRSNH4dyNZBB9GxsU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz, + } + engines: { node: '>=18' } + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.1': + resolution: + { + integrity: sha1-TpCvZ7xR3e5s3vUoTt9XLsN2tZU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz, + } + 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: sha1-vM32Fbz3tujbgw7AuNIcmiXeWXs=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/regexpp/-/regexpp-4.12.2.tgz, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + + '@eslint/config-array@0.21.2': + resolution: + { + integrity: sha1-8p4iBXrVMWzyODbO6aNMgf/8t+Y=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/config-array/-/config-array-0.21.2.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/config-helpers@0.4.2': + resolution: + { + integrity: sha1-G9AGzut+LlWyt3OrMY0wDhpmrto=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/config-helpers/-/config-helpers-0.4.2.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/core@0.17.0': + resolution: + { + integrity: sha1-dyJYIEE9lhdQnak0IZCiAZ54dhw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/core/-/core-0.17.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/eslintrc@3.3.5': + resolution: + { + integrity: sha1-wTF5PPwae5bySoPgqLvUuIFVjGA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/eslintrc/-/eslintrc-3.3.5.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/js@9.39.4': + resolution: + { + integrity: sha1-o/g7/G/ZvzOoU9+s0LSbOY61lsE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/js/-/js-9.39.4.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/object-schema@2.1.7': + resolution: + { + integrity: sha1-biEmoTR+hqTe34cG7Gf/jhB+u60=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/object-schema/-/object-schema-2.1.7.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/plugin-kit@0.4.1': + resolution: + { + integrity: sha1-l3nj/Zt+4zVxpXQ1z0M1oXlKbLI=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@humanfs/core@0.19.2': + resolution: + { + integrity: sha1-qCcsoDsqz0kmcCIrIyC2xCG/3mA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanfs/core/-/core-0.19.2.tgz, + } + engines: { node: '>=18.18.0' } + + '@humanfs/node@0.16.8': + resolution: + { + integrity: sha1-j4AMzME/T4zTEW4tnAqUk52j4+0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanfs/node/-/node-0.16.8.tgz, + } + engines: { node: '>=18.18.0' } + + '@humanfs/types@0.15.0': + resolution: + { + integrity: sha1-8qCfYgEjkLK/8/xvskjd7IwJoJA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanfs/types/-/types-0.15.0.tgz, + } + engines: { node: '>=18.18.0' } + + '@humanwhocodes/module-importer@1.0.1': + resolution: + { + integrity: sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz, + } + engines: { node: '>=12.22' } + + '@humanwhocodes/retry@0.4.3': + resolution: + { + integrity: sha1-wrnS43TuYsWG062+qHGZsdenpro=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/retry/-/retry-0.4.3.tgz, + } + engines: { node: '>=18.18' } + + '@jridgewell/gen-mapping@0.3.13': + resolution: + { + integrity: sha1-Y0Khn0Q0dRjJPkOxrGnes8Rlah8=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz, + } + + '@jridgewell/remapping@2.3.5': + resolution: + { + integrity: sha1-N1xHbRlylHhRuh4Vro8SMEdEWqE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/remapping/-/remapping-2.3.5.tgz, + } + + '@jridgewell/resolve-uri@3.1.2': + resolution: + { + integrity: sha1-eg7mAfYPmaIMfHxf8MgDiMEYm9Y=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz, + } + engines: { node: '>=6.0.0' } + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: + { + integrity: sha1-aRKwDSxjHA0Vzhp6tXzWV/Ko+Lo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz, + } + + '@jridgewell/trace-mapping@0.3.31': + resolution: + { + integrity: sha1-2xXWeByTHzolGj2sOVAcmKYIL9A=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz, + } + + '@pagefind/darwin-arm64@1.5.2': + resolution: + { + integrity: sha1-llFS/8IrzNgpngZffPvGhpob/+A=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz, + } + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.5.2': + resolution: + { + integrity: sha1-tbm0dnPK97KAiRFU4qR1q8SZ+t0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz, + } + cpu: [x64] + os: [darwin] + + '@pagefind/default-ui@1.5.2': + resolution: + { + integrity: sha1-ZHPNLDSpS4IhxTNKX+8xTNSETDc=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/default-ui/-/default-ui-1.5.2.tgz, + } + + '@pagefind/freebsd-x64@1.5.2': + resolution: + { + integrity: sha1-z24nnZOMI2hzG7ZVi/j2agyAomk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz, + } + cpu: [x64] + os: [freebsd] + + '@pagefind/linux-arm64@1.5.2': + resolution: + { + integrity: sha1-iyLPwaNMWQM8W9Zmdreobvug9fQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz, + } + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.5.2': + resolution: + { + integrity: sha1-pzPRwKnZBTEfafiGh3HAzEKQn+Q=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz, + } + cpu: [x64] + os: [linux] + + '@pagefind/windows-arm64@1.5.2': + resolution: + { + integrity: sha1-bWyzlaVhNqkrkcC9hm9/7DsLvnw=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz, + } + cpu: [arm64] + os: [win32] + + '@pagefind/windows-x64@1.5.2': + resolution: + { + integrity: sha1-kx/byfAPcgV5UM0mDvll1P0CqS4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz, + } + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: + { + integrity: sha1-R9K/TO9tRwsi9YMbQg+JZOC/dV8=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz, + } + + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: + { + integrity: sha1-XphJtmHCIpz5Z6CNvi276ejJkeU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz, + } + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.62.2': + resolution: + { + integrity: sha1-WwaZ7l3UhLIiye10r/Q8keqLF/g=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz, + } + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: + { + integrity: sha1-i8UsnXo86NBTPDUanJNd54HaoG8=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz, + } + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.2': + resolution: + { + integrity: sha1-ui7z6PsxDwrzVYjycM+lqpbkh2Q=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz, + } + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: + { + integrity: sha1-k7EL2/6K2iJri8DALva39URHTZY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz, + } + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: + { + integrity: sha1-PoqjjvPJwwCUaHHj/bsMMOCiD4Y=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz, + } + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: + { + integrity: sha1-HXmUOEuwrRvEGSG1BuFkLU+df8M=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz, + } + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: + { + integrity: sha1-plQPR8+ESla4DKn/ldKs37LO+Xs=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz, + } + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: + { + integrity: sha1-QE8gRWUYQMv0jakbptD0kPC8LL8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz, + } + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: + { + integrity: sha1-o0BP/d97R0tIyZuciTtiR7t2W6U=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz, + } + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: + { + integrity: sha1-6KrG1Umzd5ReNJiC8Zm3yOt1yjg=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz, + } + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: + { + integrity: sha1-bi5E6lAxCzpYIHipFeX+uHnIINQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz, + } + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: + { + integrity: sha1-aJgwLabXegU3zeZLK0xrYGWb0RA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz, + } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: + { + integrity: sha1-MzcXyV3Vpmvvj2Pn74qf2EX9GNA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz, + } + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: + { + integrity: sha1-gbwGujgDUgBNAfSCbrfNzO+gW60=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz, + } + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: + { + integrity: sha1-lafNOd4hOJrWeIpShOqqc44pykw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz, + } + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: + { + integrity: sha1-BubbLsG8SLU3THkj74PC6wJLJFI=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz, + } + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: + { + integrity: sha1-XcgYmIKF4J6IeQxkYt73JBPfLaM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz, + } + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: + { + integrity: sha1-IID0qTNJ6a/TS+b8GjfgH8i/yA8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz, + } + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: + { + integrity: sha1-IdZKistmIhckuSPlGvUzPfGvBEs=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz, + } + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: + { + integrity: sha1-jg/NnQIUHjN7TFtc/1dsuadrG6A=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz, + } + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: + { + integrity: sha1-vbTMTv1Y7+gIIDNH8PVGPw6hblI=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz, + } + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: + { + integrity: sha1-26695a/STq4O7+kV2QFjLny1mGA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz, + } + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: + { + integrity: sha1-hBCehf6l+PE1NJn5ZXj9wqDosTg=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz, + } + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: + { + integrity: sha1-NnHOP5uSjVwB+Hl5LVwLYK4U1K0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz, + } + cpu: [x64] + os: [win32] + + '@rtsao/scc@1.1.0': + resolution: + { + integrity: sha1-kn3S+um8M2FAOsLHoAwy3c6a1+g=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rtsao/scc/-/scc-1.1.0.tgz, + } + + '@standard-schema/spec@1.1.0': + resolution: + { + integrity: sha1-p5tV26+GBIEvUtFAssmrQbwVC7g=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@standard-schema/spec/-/spec-1.1.0.tgz, + } + + '@tailwindcss/node@4.3.2': + resolution: + { + integrity: sha1-K6VjsF/2YrkXLJZF14pe3Vn5brM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/node/-/node-4.3.2.tgz, + } + + '@tailwindcss/oxide-android-arm64@4.3.2': + resolution: + { + integrity: sha1-rdT466JlsgsUY0oicXYhozUM1tQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + resolution: + { + integrity: sha1-JDm3yZFnnABtFu0AJkxg1UBWdVQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.3.2': + resolution: + { + integrity: sha1-AW/7s3W7X+q6sP1Cx0SzzyFkeWg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + resolution: + { + integrity: sha1-b+ESsQP/ZZZxSDKTxhyFNlFjXuA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + resolution: + { + integrity: sha1-MP/7SVrFnqAQRu5Iwr+iR8pu2l4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + resolution: + { + integrity: sha1-kQ9HVOmqj4sEwBi+urYnpSvVaLk=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + resolution: + { + integrity: sha1-vbmGG7UGQgnsX/EBr/9tBG+xXs0=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + resolution: + { + integrity: sha1-QkJ2KHYQYHMDo19S8qFyuVr0iYo=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + resolution: + { + integrity: sha1-YG1dwv19LozdfR8cSh9NVjkFbgU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + resolution: + { + integrity: sha1-9dTtK80SUHIXzBqS5PxQf9rG3Yw=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz, + } + engines: { node: '>=14.0.0' } + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + resolution: + { + integrity: sha1-pOx2EIP+9VxTDiBPrUPtumKeob8=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + resolution: + { + integrity: sha1-OL8OOHjRev7bAmB1i2YZc7LZ3nA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz, + } + engines: { node: '>= 20' } + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.2': + resolution: + { + integrity: sha1-ghV/sNW+vxGII0hVxbfcdU2lQGU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/oxide/-/oxide-4.3.2.tgz, + } + engines: { node: '>= 20' } + + '@tailwindcss/postcss@4.3.2': + resolution: + { + integrity: sha1-hUW8NrVanKIM5wrgDeVYLpF6xcQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tailwindcss/postcss/-/postcss-4.3.2.tgz, + } + + '@types/babel__core@7.20.5': + resolution: + { + integrity: sha1-PfFfJ7qFMZyqB7oI0HIYibs5wBc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/babel__core/-/babel__core-7.20.5.tgz, + } + + '@types/babel__generator@7.27.0': + resolution: + { + integrity: sha1-tYGSlMUReZV6+uw0FEL5NB5BCKk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/babel__generator/-/babel__generator-7.27.0.tgz, + } + + '@types/babel__template@7.4.4': + resolution: + { + integrity: sha1-VnJRNwHBshmbxtrWNqnXSRWGdm8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/babel__template/-/babel__template-7.4.4.tgz, + } + + '@types/babel__traverse@7.28.0': + resolution: + { + integrity: sha1-B9cT1szg0mXJhJ2wy+YtP2Hzb3Q=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/babel__traverse/-/babel__traverse-7.28.0.tgz, + } + + '@types/chai@5.2.3': + resolution: + { + integrity: sha1-jpzZ4cNYH6azQaWu1ViOsoW+C0o=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/chai/-/chai-5.2.3.tgz, + } + + '@types/deep-eql@4.0.2': + resolution: + { + integrity: sha1-M0MRlx06BxIefrkbaEpgXn7qnL0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/deep-eql/-/deep-eql-4.0.2.tgz, + } + + '@types/estree@1.0.9': + resolution: + { + integrity: sha1-zz8Oh2177hWpOrkluCv1cKOQSiQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/estree/-/estree-1.0.9.tgz, + } + + '@types/json-schema@7.0.15': + resolution: + { + integrity: sha1-WWoXRyM2lNUPatinhp/Lb1bPWEE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/json-schema/-/json-schema-7.0.15.tgz, + } + + '@types/json5@0.0.29': + resolution: + { + integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/json5/-/json5-0.0.29.tgz, + } + + '@types/node@22.20.1': + resolution: + { + integrity: sha1-hOfN9jzaogwTSqMXzMkBqiHhbw4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/node/-/node-22.20.1.tgz, + } + + '@types/prop-types@15.7.15': + resolution: + { + integrity: sha1-5uWobWAr6spxzlFj+t9fldcJMcc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/prop-types/-/prop-types-15.7.15.tgz, + } + + '@types/react-dom@18.3.7': + resolution: + { + integrity: sha1-uJ3fLNg7T+r8xOLqQa/fuVoNGU8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/react-dom/-/react-dom-18.3.7.tgz, + } + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react@18.3.31': + resolution: + { + integrity: sha1-teleKP/M6rjZgvM/LrB24XZTwqQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/react/-/react-18.3.31.tgz, + } + + '@typescript-eslint/eslint-plugin@8.63.0': + resolution: + { + integrity: sha1-DYXQ7BoosONfSEzIIgqL8IQBnnE=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + '@typescript-eslint/parser': ^8.63.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.63.0': + resolution: + { + integrity: sha1-KZMzjDeZA+avxyw1Mq5uFblzNNQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/parser/-/parser-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.63.0': + resolution: + { + integrity: sha1-AaPQVQqGASdESpk5dJq0NFkc1xo=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/project-service/-/project-service-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.63.0': + resolution: + { + integrity: sha1-yc9+zSNPfsNG9i5cfSjfr01Qe00=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@typescript-eslint/tsconfig-utils@8.63.0': + resolution: + { + integrity: sha1-9+HPmgKbtx9AJ/+kGUuoKvtWTNM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.63.0': + resolution: + { + integrity: sha1-nADzYhQBhsWI2oaz4QwhKAC2S4U=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.63.0': + resolution: + { + integrity: sha1-azKwpZE1IFVNgamGrP/7otMraWM=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/types/-/types-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@typescript-eslint/typescript-estree@8.63.0': + resolution: + { + integrity: sha1-pvnJzSkOmCA60phQsNclKdyDvnM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.63.0': + resolution: + { + integrity: sha1-tqbIr/HOvR3kQQs6Qrfsm6ZwPyM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/utils/-/utils-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.63.0': + resolution: + { + integrity: sha1-KFOo4ztS8jVwM4+WzInLIj2qvUQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@vitejs/plugin-react@4.7.0': + resolution: + { + integrity: sha1-ZHr057t1rTrdV452KtmEuQ9KJLk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz, + } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@vitest/expect@4.1.10': + resolution: + { + integrity: sha1-eZwG/ES7DPfieEE3tifFzBcyhdQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/expect/-/expect-4.1.10.tgz, + } + + '@vitest/mocker@4.1.10': + resolution: + { + integrity: sha1-JBOYerTNf6HCthS0BMQHv2rR6tE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/mocker/-/mocker-4.1.10.tgz, + } + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@4.1.10': + resolution: + { + integrity: sha1-dVQucnOgjMEP1Nja1OPrHxbNlYw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/pretty-format/-/pretty-format-4.1.10.tgz, + } + + '@vitest/runner@4.1.10': + resolution: + { + integrity: sha1-/r8KIakWhCFCLRlVNw5gb+q2A1U=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/runner/-/runner-4.1.10.tgz, + } + + '@vitest/snapshot@4.1.10': + resolution: + { + integrity: sha1-fj6f7H1NRyMuSTz9y9IXDeQ3HAQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/snapshot/-/snapshot-4.1.10.tgz, + } + + '@vitest/spy@4.1.10': + resolution: + { + integrity: sha1-XAv6l7Vrup43QDyXbbd2/2q1b2U=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/spy/-/spy-4.1.10.tgz, + } + + '@vitest/utils@4.1.10': + resolution: + { + integrity: sha1-/8cQVfGL/Msf0FhjZevCgkiS5AM=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/utils/-/utils-4.1.10.tgz, + } + + acorn-jsx@5.3.2: + resolution: + { + integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.17.0: + resolution: + { + integrity: sha1-F4WtuE+vjYrdEDabk4Jvwr0I8f4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn/-/acorn-8.17.0.tgz, + } + engines: { node: '>=0.4.0' } + hasBin: true + + ajv@6.15.0: + resolution: + { + integrity: sha1-B+mCx0YmFnqnoklcU4F4ktcTlJI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ajv/-/ajv-6.15.0.tgz, + } + + ansi-styles@4.3.0: + resolution: + { + integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz, + } + engines: { node: '>=8' } + + argparse@2.0.1: + resolution: + { + integrity: sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/argparse/-/argparse-2.0.1.tgz, + } + + aria-query@5.3.2: + resolution: + { + integrity: sha1-k/gaQ0gOM6M48ZFjo9EKUMAdzVk=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/aria-query/-/aria-query-5.3.2.tgz, + } + engines: { node: '>= 0.4' } + + array-buffer-byte-length@1.0.2: + resolution: + { + integrity: sha1-OE0So3KVrsN2mrAirTI6GKUcz4s=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + array-includes@3.1.9: + resolution: + { + integrity: sha1-HwzKoI6Qzbw+tDMhD5A60PF8Pzo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array-includes/-/array-includes-3.1.9.tgz, + } + engines: { node: '>= 0.4' } + + array.prototype.findlast@1.2.5: + resolution: + { + integrity: sha1-Pk+8swoVp/W/ZM8vquItE5wuSQQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz, + } + engines: { node: '>= 0.4' } + + array.prototype.findlastindex@1.2.6: + resolution: + { + integrity: sha1-z6EGXIHctk40VXybgdAS9qQhxWQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz, + } + engines: { node: '>= 0.4' } + + array.prototype.flat@1.3.3: + resolution: + { + integrity: sha1-U0qvnm6N15+2uamRf4Oe8exjr+U=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz, + } + engines: { node: '>= 0.4' } + + array.prototype.flatmap@1.3.3: + resolution: + { + integrity: sha1-cSzHkq5wNwrkBYYmRinjOqtd04s=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz, + } + engines: { node: '>= 0.4' } + + array.prototype.tosorted@1.1.4: + resolution: + { + integrity: sha1-/pVGeP9TA05xfqM1KgPwsLhvf/w=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz, + } + engines: { node: '>= 0.4' } + + arraybuffer.prototype.slice@1.0.4: + resolution: + { + integrity: sha1-nXYNhNvdBtDL+SyISWFaGnqzGDw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz, + } + engines: { node: '>= 0.4' } + + assertion-error@2.0.1: + resolution: + { + integrity: sha1-9kGhlrM1aQsQcL8AtudZP+wZC/c=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/assertion-error/-/assertion-error-2.0.1.tgz, + } + engines: { node: '>=12' } + + ast-types-flow@0.0.8: + resolution: + { + integrity: sha1-CoXhySaVdprBOkKLtlPnU4vqJ9Y=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ast-types-flow/-/ast-types-flow-0.0.8.tgz, + } + + async-function@1.0.0: + resolution: + { + integrity: sha1-UJyfymDq+FA0xoKYOBiOTkyP+ys=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/async-function/-/async-function-1.0.0.tgz, + } + engines: { node: '>= 0.4' } + + available-typed-arrays@1.0.7: + resolution: + { + integrity: sha1-pcw3XWoDwu/IelU/PgsVIt7xSEY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz, + } + engines: { node: '>= 0.4' } + + axe-core@4.12.1: + resolution: + { + integrity: sha1-af4r9t/Asklzr5Gx2OlF954bfEQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/axe-core/-/axe-core-4.12.1.tgz, + } + engines: { node: '>=4' } + + axobject-query@4.1.0: + resolution: + { + integrity: sha1-KHaMdtDjz/IbxiqeLQtqwwBCoe4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/axobject-query/-/axobject-query-4.1.0.tgz, + } + engines: { node: '>= 0.4' } + + balanced-match@1.0.2: + resolution: + { + integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz, + } + + balanced-match@4.0.4: + resolution: + { + integrity: sha1-v7EGYv7tgZaixi58aOF3IMJ0F5o=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/balanced-match/-/balanced-match-4.0.4.tgz, + } + engines: { node: 18 || 20 || >=22 } + + baseline-browser-mapping@2.10.42: + resolution: + { + integrity: sha1-GV3MdrqiaaSX8LB97Kzhaf7prFg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz, + } + engines: { node: '>=6.0.0' } + hasBin: true + + brace-expansion@1.1.16: + resolution: + { + integrity: sha1-cj06MMBVjCJavJ/Eeac+FOJsPC8=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/brace-expansion/-/brace-expansion-1.1.16.tgz, + } + + brace-expansion@5.0.7: + resolution: + { + integrity: sha1-Gw5GlltHna1lr3N7SgJ5CgVJgzc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/brace-expansion/-/brace-expansion-5.0.7.tgz, + } + engines: { node: 18 || 20 || >=22 } + + browserslist@4.28.5: + resolution: + { + integrity: sha1-Q4t9OMDUtHdAu7NneNW9ygGzeDg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/browserslist/-/browserslist-4.28.5.tgz, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + + call-bind-apply-helpers@1.0.2: + resolution: + { + integrity: sha1-S1QowiK+mF15w9gmV0edvgtZstY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + call-bind@1.0.9: + resolution: + { + integrity: sha1-OaZEcAyAvH0MqRAvxtHUOy/X7uc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/call-bind/-/call-bind-1.0.9.tgz, + } + engines: { node: '>= 0.4' } + + call-bound@1.0.4: + resolution: + { + integrity: sha1-I43pNdKippKSjFOMfM+pEGf9Bio=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/call-bound/-/call-bound-1.0.4.tgz, + } + engines: { node: '>= 0.4' } + + callsites@3.1.0: + resolution: + { + integrity: sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/callsites/-/callsites-3.1.0.tgz, + } + engines: { node: '>=6' } + + caniuse-lite@1.0.30001803: + resolution: + { + integrity: sha1-sqXWluBCvIME3NSULDn+Mw+7yyQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz, + } + + chai@6.2.2: + resolution: + { + integrity: sha1-rkG1LJrKh3NFBTYnF/MlX6zaNg4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/chai/-/chai-6.2.2.tgz, + } + engines: { node: '>=18' } + + chalk@4.1.2: + resolution: + { + integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/chalk/-/chalk-4.1.2.tgz, + } + engines: { node: '>=10' } + + clsx@2.1.1: + resolution: + { + integrity: sha1-7tOXyf2L2IK/sY3qtxAgSaLzKZk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/clsx/-/clsx-2.1.1.tgz, + } + engines: { node: '>=6' } + + color-convert@2.0.1: + resolution: + { + integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/color-convert/-/color-convert-2.0.1.tgz, + } + engines: { node: '>=7.0.0' } + + color-name@1.1.4: + resolution: + { + integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/color-name/-/color-name-1.1.4.tgz, + } + + concat-map@0.0.1: + resolution: + { + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/concat-map/-/concat-map-0.0.1.tgz, + } + + convert-source-map@2.0.0: + resolution: + { + integrity: sha1-S1YPZJ/E6RjdCrdc9JYei8iC2Co=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/convert-source-map/-/convert-source-map-2.0.0.tgz, + } + + cookie@1.1.1: + resolution: + { + integrity: sha1-O7m9/II2nbnC9pyTycPOsxDIizw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/cookie/-/cookie-1.1.1.tgz, + } + engines: { node: '>=18' } + + cross-spawn@7.0.6: + resolution: + { + integrity: sha1-ilj+ePANzXDDcEUXWd+/rwPo7p8=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/cross-spawn/-/cross-spawn-7.0.6.tgz, + } + engines: { node: '>= 8' } + + csstype@3.2.3: + resolution: + { + integrity: sha1-7EjA8+mT5QZIyG2lWeJhCZXPmJo=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/csstype/-/csstype-3.2.3.tgz, + } + + damerau-levenshtein@1.0.8: + resolution: + { + integrity: sha1-tD0obMvTa8Wy9+1ByvLQq6H4puc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz, + } + + data-view-buffer@1.0.2: + resolution: + { + integrity: sha1-IRoDupXsr3eYqMcZjXlTYhH4hXA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/data-view-buffer/-/data-view-buffer-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + data-view-byte-length@1.0.2: + resolution: + { + integrity: sha1-noD3ylJFPOPpPSWjUxh2fqdwRzU=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + data-view-byte-offset@1.0.1: + resolution: + { + integrity: sha1-BoMH+bcat2274QKROJ4CCFZgYZE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + debug@3.2.7: + resolution: + { + integrity: sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/debug/-/debug-3.2.7.tgz, + } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: + { + integrity: sha1-xq5DLZvZZiWC/OCHCbA4xY6ePWo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/debug/-/debug-4.4.3.tgz, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: + { + integrity: sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/deep-is/-/deep-is-0.1.4.tgz, + } + + define-data-property@1.1.4: + resolution: + { + integrity: sha1-iU3BQbt9MGCuQ2b2oBB+aPvkjF4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/define-data-property/-/define-data-property-1.1.4.tgz, + } + engines: { node: '>= 0.4' } + + define-properties@1.2.1: + resolution: + { + integrity: sha1-EHgcxhbrlRqAoDS6/Kpzd/avK2w=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/define-properties/-/define-properties-1.2.1.tgz, + } + engines: { node: '>= 0.4' } + + detect-libc@2.1.2: + resolution: + { + integrity: sha1-aJxdzcGQDvVYOky59te0c3QgdK0=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/detect-libc/-/detect-libc-2.1.2.tgz, + } + engines: { node: '>=8' } + + doctrine@2.1.0: + resolution: + { + integrity: sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/doctrine/-/doctrine-2.1.0.tgz, + } + engines: { node: '>=0.10.0' } + + dunder-proto@1.0.1: + resolution: + { + integrity: sha1-165mfh3INIL4tw/Q9u78UNow9Yo=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/dunder-proto/-/dunder-proto-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + electron-to-chromium@1.5.389: + resolution: + { + integrity: sha1-U4vp6+x4Am1Nq6a+Mhq4VN+sKo8=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz, + } + + emoji-regex@9.2.2: + resolution: + { + integrity: sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/emoji-regex/-/emoji-regex-9.2.2.tgz, + } + + enhanced-resolve@5.21.6: + resolution: + { + integrity: sha1-qiB7Q89ljmqzugaJbtwAwTwxJ8Y=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz, + } + engines: { node: '>=10.13.0' } + + entities@4.5.0: + resolution: + { + integrity: sha1-XSaOpecRPsdMTQM7eepaNaSI+0g=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/entities/-/entities-4.5.0.tgz, + } + engines: { node: '>=0.12' } + + es-abstract-get@1.0.0: + resolution: + { + integrity: sha1-Hq6HEB9Cvt62p0DoxQUSca74kIg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-abstract-get/-/es-abstract-get-1.0.0.tgz, + } + engines: { node: '>= 0.4' } + + es-abstract@1.24.2: + resolution: + { + integrity: sha1-Lb04wYBzXumD93WFFAonBqlj7Zo=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-abstract/-/es-abstract-1.24.2.tgz, + } + engines: { node: '>= 0.4' } + + es-define-property@1.0.1: + resolution: + { + integrity: sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-define-property/-/es-define-property-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + es-errors@1.3.0: + resolution: + { + integrity: sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-errors/-/es-errors-1.3.0.tgz, + } + engines: { node: '>= 0.4' } + + es-iterator-helpers@1.3.3: + resolution: + { + integrity: sha1-CiKdw4raBFC4z6qFgJ/XPbs0ETw=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz, + } + engines: { node: '>= 0.4' } + + es-module-lexer@2.3.0: + resolution: + { + integrity: sha1-/adwI0w0UGTBIuuQXhxCAP+kzn4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-module-lexer/-/es-module-lexer-2.3.0.tgz, + } + + es-object-atoms@1.1.2: + resolution: + { + integrity: sha1-otCzcyBXJN+lJdI7DD4bHKWCyZs=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-object-atoms/-/es-object-atoms-1.1.2.tgz, + } + engines: { node: '>= 0.4' } + + es-set-tostringtag@2.1.0: + resolution: + { + integrity: sha1-8x274MGDsAptJutjJcgQwP0YvU0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz, + } + engines: { node: '>= 0.4' } + + es-shim-unscopables@1.1.0: + resolution: + { + integrity: sha1-Q43zVSDaxdEF85Q9knVJ6jsA9LU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + es-to-primitive@1.3.4: + resolution: + { + integrity: sha1-DIVCkc8Ne0Oda55XceqDf/rx+ZE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-to-primitive/-/es-to-primitive-1.3.4.tgz, + } + engines: { node: '>= 0.4' } + + esbuild@0.25.12: + resolution: + { + integrity: sha1-l6HQQfSrAML84vg40rmWmi0ql6U=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esbuild/-/esbuild-0.25.12.tgz, + } + engines: { node: '>=18' } + hasBin: true + + escalade@3.2.0: + resolution: + { + integrity: sha1-ARo/aYVroYnf+n3I/M6Z0qh5A+U=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/escalade/-/escalade-3.2.0.tgz, + } + engines: { node: '>=6' } + + escape-string-regexp@4.0.0: + resolution: + { + integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz, + } + engines: { node: '>=10' } + + eslint-config-prettier@10.1.8: + resolution: + { + integrity: sha1-FXNM5K+MJ3jMMvCwGzewtc0ey5c=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz, + } + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.10: + resolution: + { + integrity: sha1-hM4wBav8MAWIzyO7rBqr7B/G6ME=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz, + } + + eslint-module-utils@2.14.0: + resolution: + { + integrity: sha1-YR+OHGzrKak+uUnhzGcLgod2SBk=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.32.0: + resolution: + { + integrity: sha1-YCtV+qbkyuql6XDBmLXACjdwiYA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: + { + integrity: sha1-0oErsjvxq0Zl8XGOpELoNy5jhIM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz, + } + engines: { node: '>=4.0' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@7.1.1: + resolution: + { + integrity: sha1-5nQsrXXZcMCj8w19P6gKR4T1WSc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz, + } + engines: { node: '>=18' } + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-react@7.37.5: + resolution: + { + integrity: sha1-KXVRFHK92hsnKzTXeTNcmw6HcGU=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz, + } + engines: { node: '>=4' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@8.4.0: + resolution: + { + integrity: sha1-iOZGogf61hQ2/6OetQUUcgBlXII=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-scope/-/eslint-scope-8.4.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + eslint-visitor-keys@3.4.3: + resolution: + { + integrity: sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + eslint-visitor-keys@4.2.1: + resolution: + { + integrity: sha1-TP6mD+fdCtjoFuHtAmwdUlG1EsE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + eslint-visitor-keys@5.0.1: + resolution: + { + integrity: sha1-njyUiWl4JNLUzjqK0SYo+R6fWb4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + eslint@9.39.4: + resolution: + { + integrity: sha1-hV2hsuKtZtxZkRlfNeJivOyBF7U=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint/-/eslint-9.39.4.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: + { + integrity: sha1-1U9JSdRikAWh+haNk3w/8ffiqDc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/espree/-/espree-10.4.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + esquery@1.7.0: + resolution: + { + integrity: sha1-CNBI8mHw3e21uulfRoCUY9nJSW0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esquery/-/esquery-1.7.0.tgz, + } + engines: { node: '>=0.10' } + + esrecurse@4.3.0: + resolution: + { + integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esrecurse/-/esrecurse-4.3.0.tgz, + } + engines: { node: '>=4.0' } + + estraverse@5.3.0: + resolution: + { + integrity: sha1-LupSkHAvJquP5TcDcP+GyWXSESM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/estraverse/-/estraverse-5.3.0.tgz, + } + engines: { node: '>=4.0' } + + estree-walker@3.0.3: + resolution: + { + integrity: sha1-Z8PlSexAKkh7T8GT0ZU6UkdSNA0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/estree-walker/-/estree-walker-3.0.3.tgz, + } + + esutils@2.0.3: + resolution: + { + integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esutils/-/esutils-2.0.3.tgz, + } + engines: { node: '>=0.10.0' } + + expect-type@1.4.0: + resolution: + { + integrity: sha1-JO338MxppE0AhWe6RZSrlvPDo9Y=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/expect-type/-/expect-type-1.4.0.tgz, + } + engines: { node: '>=12.0.0' } + + fast-deep-equal@3.1.3: + resolution: + { + integrity: sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz, + } + + fast-json-stable-stringify@2.1.0: + resolution: + { + integrity: sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz, + } + + fast-levenshtein@2.0.6: + resolution: + { + integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz, + } + + fdir@6.5.0: + resolution: + { + integrity: sha1-7Sq5Z6MxreYvGNB32uGSaE1Q01A=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fdir/-/fdir-6.5.0.tgz, + } + engines: { node: '>=12.0.0' } + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: + { + integrity: sha1-d4e93PETG/+5JjbGlFe7wO3W2B8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/file-entry-cache/-/file-entry-cache-8.0.0.tgz, + } + engines: { node: '>=16.0.0' } + + find-up@5.0.0: + resolution: + { + integrity: sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/find-up/-/find-up-5.0.0.tgz, + } + engines: { node: '>=10' } + + flat-cache@4.0.1: + resolution: + { + integrity: sha1-Ds45/LFO4BL0sEEL0z3ZwfAREnw=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/flat-cache/-/flat-cache-4.0.1.tgz, + } + engines: { node: '>=16' } + + flatted@3.4.2: + resolution: + { + integrity: sha1-9cI8EH8PN96NvfJPE3IrO5jVJyY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/flatted/-/flatted-3.4.2.tgz, + } + + for-each@0.3.5: + resolution: + { + integrity: sha1-1lBogCeCaSD+6wr3R+57lCGkHUc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/for-each/-/for-each-0.3.5.tgz, + } + engines: { node: '>= 0.4' } + + fsevents@2.3.3: + resolution: + { + integrity: sha1-ysZAd4XQNnWipeGlMFxpezR9kNY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fsevents/-/fsevents-2.3.3.tgz, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + + function-bind@1.1.2: + resolution: + { + integrity: sha1-LALYZNl/PqbIgwxGTL0Rq26rehw=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/function-bind/-/function-bind-1.1.2.tgz, + } + + function.prototype.name@1.2.0: + resolution: + { + integrity: sha1-dY8+hPpUJnJFS9XhTLCBpc4H9ww=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/function.prototype.name/-/function.prototype.name-1.2.0.tgz, + } + engines: { node: '>= 0.4' } + + functions-have-names@1.2.3: + resolution: + { + integrity: sha1-BAT+TuK6L2B/Dg7DyAuumUEzuDQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/functions-have-names/-/functions-have-names-1.2.3.tgz, + } + + generator-function@2.0.1: + resolution: + { + integrity: sha1-DnXdQQ0SQ2h6C6LpUblO7bj3N6I=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/generator-function/-/generator-function-2.0.1.tgz, + } + engines: { node: '>= 0.4' } + + gensync@1.0.0-beta.2: + resolution: + { + integrity: sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/gensync/-/gensync-1.0.0-beta.2.tgz, + } + engines: { node: '>=6.9.0' } + + get-intrinsic@1.3.0: + resolution: + { + integrity: sha1-dD8OO2lkqTpUke0b/6rgVNf5jQE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/get-intrinsic/-/get-intrinsic-1.3.0.tgz, + } + engines: { node: '>= 0.4' } + + get-proto@1.0.1: + resolution: + { + integrity: sha1-FQs/J0OGnvPoUewMSdFbHRTQDuE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/get-proto/-/get-proto-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + get-symbol-description@1.1.0: + resolution: + { + integrity: sha1-e91U4L7+j/yfO04gMiDZ8eiBtu4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/get-symbol-description/-/get-symbol-description-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + glob-parent@6.0.2: + resolution: + { + integrity: sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz, + } + engines: { node: '>=10.13.0' } + + globals@14.0.0: + resolution: + { + integrity: sha1-iY10E8Kbq89rr+Vvyt3thYrack4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/globals/-/globals-14.0.0.tgz, + } + engines: { node: '>=18' } + + globals@17.7.0: + resolution: + { + integrity: sha1-VT1VCQtN3oIJ7C2kJYDW5+fYsQ0=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/globals/-/globals-17.7.0.tgz, + } + engines: { node: '>=18' } + + globalthis@1.0.4: + resolution: + { + integrity: sha1-dDDtOpddl7+1m8zkH1yruvplEjY=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/globalthis/-/globalthis-1.0.4.tgz, + } + engines: { node: '>= 0.4' } + + gopd@1.2.0: + resolution: + { + integrity: sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/gopd/-/gopd-1.2.0.tgz, + } + engines: { node: '>= 0.4' } + + graceful-fs@4.2.11: + resolution: + { + integrity: sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz, + } + + happy-dom@15.11.7: + resolution: + { + integrity: sha1-25hU8R5d0/1Ksgy7z9972eF82XE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/happy-dom/-/happy-dom-15.11.7.tgz, + } + engines: { node: '>=18.0.0' } + + has-bigints@1.1.0: + resolution: + { + integrity: sha1-KGB+llrJZ+A80qLHCiY2oe2tSf4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-bigints/-/has-bigints-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + has-flag@4.0.0: + resolution: + { + integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-flag/-/has-flag-4.0.0.tgz, + } + engines: { node: '>=8' } + + has-property-descriptors@1.0.2: + resolution: + { + integrity: sha1-lj7X0HHce/XwhMW/vg0bYiJYaFQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz, + } + + has-proto@1.2.0: + resolution: + { + integrity: sha1-XeWm6r2V/f/ZgYtDBV6AZeOf6dU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-proto/-/has-proto-1.2.0.tgz, + } + engines: { node: '>= 0.4' } + + has-symbols@1.1.0: + resolution: + { + integrity: sha1-/JxqeDoISVHQuXH+EBjegTcHozg=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-symbols/-/has-symbols-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + has-tostringtag@1.0.2: + resolution: + { + integrity: sha1-LNxC1AvvLltO6rfAGnPFTOerWrw=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-tostringtag/-/has-tostringtag-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + hasown@2.0.4: + resolution: + { + integrity: sha1-jGLYy5C+sqrV0KW2dYGtmFTD8AM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/hasown/-/hasown-2.0.4.tgz, + } + engines: { node: '>= 0.4' } + + hermes-estree@0.25.1: + resolution: + { + integrity: sha1-au7BfRmDtOq/aXIfOqPrcFsX9IA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/hermes-estree/-/hermes-estree-0.25.1.tgz, + } + + hermes-parser@0.25.1: + resolution: + { + integrity: sha1-W+Dkh7IJCIbGK9ihFyTNdm1fVNE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/hermes-parser/-/hermes-parser-0.25.1.tgz, + } + + ignore@5.3.2: + resolution: + { + integrity: sha1-PNQOcp82Q/2HywTlC/DrcivFlvU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ignore/-/ignore-5.3.2.tgz, + } + engines: { node: '>= 4' } + + ignore@7.0.5: + resolution: + { + integrity: sha1-TLX2zX1MerA2VzjHrqiIuqbX79k=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ignore/-/ignore-7.0.5.tgz, + } + engines: { node: '>= 4' } + + import-fresh@3.3.1: + resolution: + { + integrity: sha1-nOy1ZQPAraHydB271lRuSxO1fM8=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/import-fresh/-/import-fresh-3.3.1.tgz, + } + engines: { node: '>=6' } + + imurmurhash@0.1.4: + resolution: + { + integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz, + } + engines: { node: '>=0.8.19' } + + internal-slot@1.1.0: + resolution: + { + integrity: sha1-HqyRdilH0vcFa8g42T4TsulgSWE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/internal-slot/-/internal-slot-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + is-array-buffer@3.0.5: + resolution: + { + integrity: sha1-ZXQuHmh70sxmYlMGj9hwf+TUQoA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-array-buffer/-/is-array-buffer-3.0.5.tgz, + } + engines: { node: '>= 0.4' } + + is-async-function@2.1.1: + resolution: + { + integrity: sha1-PmkBjI4E5ztzh5PQIL/ohLn9NSM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-async-function/-/is-async-function-2.1.1.tgz, + } + engines: { node: '>= 0.4' } + + is-bigint@1.1.0: + resolution: + { + integrity: sha1-3aejRF31ekJYPbQihoLrp8QXBnI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-bigint/-/is-bigint-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + is-boolean-object@1.2.2: + resolution: + { + integrity: sha1-cGf0dwmAmjk8cf9bs+E12KkhXZ4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-boolean-object/-/is-boolean-object-1.2.2.tgz, + } + engines: { node: '>= 0.4' } + + is-callable@1.2.7: + resolution: + { + integrity: sha1-O8KoXqdC2eNiBdys3XLKH9xRsFU=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-callable/-/is-callable-1.2.7.tgz, + } + engines: { node: '>= 0.4' } + + is-core-module@2.16.2: + resolution: + { + integrity: sha1-PgdFCoCA684/vwysSU9NKrMk4II=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-core-module/-/is-core-module-2.16.2.tgz, + } + engines: { node: '>= 0.4' } + + is-data-view@1.0.2: + resolution: + { + integrity: sha1-uuCkG5aImGwhiN2mZX5WuPnmO44=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-data-view/-/is-data-view-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + is-date-object@1.1.0: + resolution: + { + integrity: sha1-rYVUGZb8eqiycpcB0ntzGfldgvc=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-date-object/-/is-date-object-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + is-document.all@1.0.0: + resolution: + { + integrity: sha1-FjpL+zYsbtexGM5GzezE433uMZU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-document.all/-/is-document.all-1.0.0.tgz, + } + engines: { node: '>= 0.4' } + + is-extglob@2.1.1: + resolution: + { + integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-extglob/-/is-extglob-2.1.1.tgz, + } + engines: { node: '>=0.10.0' } + + is-finalizationregistry@1.1.1: + resolution: + { + integrity: sha1-7v3NxslN3QZ02chYh7+T+USpfJA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + is-generator-function@1.1.2: + resolution: + { + integrity: sha1-rjth49XqTkg5uQutIrAjNQUaF9U=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-generator-function/-/is-generator-function-1.1.2.tgz, + } + engines: { node: '>= 0.4' } + + is-glob@4.0.3: + resolution: + { + integrity: sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-glob/-/is-glob-4.0.3.tgz, + } + engines: { node: '>=0.10.0' } + + is-map@2.0.3: + resolution: + { + integrity: sha1-7elrf+HicLPERl46RlZYdkkm1i4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-map/-/is-map-2.0.3.tgz, + } + engines: { node: '>= 0.4' } + + is-negative-zero@2.0.3: + resolution: + { + integrity: sha1-ztkDoCespjgbd3pXQwadc3akl0c=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-negative-zero/-/is-negative-zero-2.0.3.tgz, + } + engines: { node: '>= 0.4' } + + is-number-object@1.1.1: + resolution: + { + integrity: sha1-FEsh6VobwUggXcwoFKkTTsQbJUE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-number-object/-/is-number-object-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + is-regex@1.2.1: + resolution: + { + integrity: sha1-dtcKPtEO+b5I61d4h9dCBb8MrSI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-regex/-/is-regex-1.2.1.tgz, + } + engines: { node: '>= 0.4' } + + is-set@2.0.3: + resolution: + { + integrity: sha1-irIJ6kJGCBQTct7W4MsgDvHZ0B0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-set/-/is-set-2.0.3.tgz, + } + engines: { node: '>= 0.4' } + + is-shared-array-buffer@1.0.4: + resolution: + { + integrity: sha1-m2eES9m38ka6BwjDqT40Jpx3T28=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz, + } + engines: { node: '>= 0.4' } + + is-string@1.1.1: + resolution: + { + integrity: sha1-kuo/PVxbbgOcqGd+WsjQfqdzy7k=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-string/-/is-string-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + is-symbol@1.1.1: + resolution: + { + integrity: sha1-9HdhJ59TLisFpwJKdQbbvtrNBjQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-symbol/-/is-symbol-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + is-typed-array@1.1.15: + resolution: + { + integrity: sha1-S/tKRbYc7oOlpG+6d45OjVnAzgs=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-typed-array/-/is-typed-array-1.1.15.tgz, + } + engines: { node: '>= 0.4' } + + is-weakmap@2.0.2: + resolution: + { + integrity: sha1-v3JhXWSd/l9pkHnFS4PkfRrhnP0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-weakmap/-/is-weakmap-2.0.2.tgz, + } + engines: { node: '>= 0.4' } + + is-weakref@1.1.1: + resolution: + { + integrity: sha1-7qQwGCvo1kF0vZa/+8RvIb8/kpM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-weakref/-/is-weakref-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + is-weakset@2.0.4: + resolution: + { + integrity: sha1-yfXesLwZBsbW8QJ/KE3fRZJJ2so=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-weakset/-/is-weakset-2.0.4.tgz, + } + engines: { node: '>= 0.4' } + + isarray@2.0.5: + resolution: + { + integrity: sha1-ivHkwSISRMxiRZ+vOJQNTmRKVyM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/isarray/-/isarray-2.0.5.tgz, + } + + isexe@2.0.0: + resolution: + { + integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/isexe/-/isexe-2.0.0.tgz, + } + + iterator.prototype@1.1.5: + resolution: + { + integrity: sha1-EslZop3jLeCqO7u4AfTXdwZtrjk=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/iterator.prototype/-/iterator.prototype-1.1.5.tgz, + } + engines: { node: '>= 0.4' } + + jiti@2.7.0: + resolution: + { + integrity: sha1-l0Io8vTKK8IYhaF5e0X+po6VDGQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jiti/-/jiti-2.7.0.tgz, + } + hasBin: true + + js-tokens@4.0.0: + resolution: + { + integrity: sha1-GSA/tZmR35jjoocFDUZHzerzJJk=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-tokens/-/js-tokens-4.0.0.tgz, + } + + js-yaml@4.3.0: + resolution: + { + integrity: sha1-0ZAFcqf3zwtfVAyDZz5gutNDZZI=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-yaml/-/js-yaml-4.3.0.tgz, + } + hasBin: true + + jsesc@3.1.0: + resolution: + { + integrity: sha1-dNM1ojT2ftGZB/2t+sfM+dQJgl0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jsesc/-/jsesc-3.1.0.tgz, + } + engines: { node: '>=6' } + hasBin: true + + json-buffer@3.0.1: + resolution: + { + integrity: sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-buffer/-/json-buffer-3.0.1.tgz, + } + + json-schema-traverse@0.4.1: + resolution: + { + integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz, + } + + json-stable-stringify-without-jsonify@1.0.1: + resolution: + { + integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz, + } + + json5@1.0.2: + resolution: + { + integrity: sha1-Y9mNYPIbMTt3xNbaGL+mnYDh1ZM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json5/-/json5-1.0.2.tgz, + } + hasBin: true + + json5@2.2.3: + resolution: + { + integrity: sha1-eM1vGhm9wStz21rQxh79ZsHikoM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json5/-/json5-2.2.3.tgz, + } + engines: { node: '>=6' } + hasBin: true + + jsx-ast-utils@3.3.5: + resolution: + { + integrity: sha1-R2a9BajioRryIr7NGeFVdeUqhTo=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz, + } + engines: { node: '>=4.0' } + + keyv@4.5.4: + resolution: + { + integrity: sha1-qHmpnilFL5QkOfKkBeOvizHU3pM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/keyv/-/keyv-4.5.4.tgz, + } + + language-subtag-registry@0.3.23: + resolution: + { + integrity: sha1-I1KeBNnjt0Z51wFC3z/S627Fcuc=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz, + } + + language-tags@1.0.9: + resolution: + { + integrity: sha1-H/3NDsD6+0sb5/ixHzBq0PnAh3c=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/language-tags/-/language-tags-1.0.9.tgz, + } + engines: { node: '>=0.10' } + + levn@0.4.1: + resolution: + { + integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/levn/-/levn-0.4.1.tgz, + } + engines: { node: '>= 0.8.0' } + + lightningcss-android-arm64@1.32.0: + resolution: + { + integrity: sha1-8DOIURbf79nG9UeHUj41FLYeGWg=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: + { + integrity: sha1-ULcYcbAcgZlYS2SeKSVH+up6+bU=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: + { + integrity: sha1-NfPpczLRMLnKGB4RtWje1q68bV4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: + { + integrity: sha1-l3enZHK2Ttb/lDQq1kx7r9eUpXU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: + { + integrity: sha1-E65lLhq3O5E117faFy9mbEEK1T0=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: + { + integrity: sha1-QXhYeVqUWS9oASOhsfnaig4e8zU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: + { + integrity: sha1-a+NmkugQtxgECAL9gJYjz/5zITM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: + { + integrity: sha1-C3gDr06yHP043Tn+Kru1PH3QkfY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: + { + integrity: sha1-iNyLqGXd3bGsXvBLDxYYBEGMFjs=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: + { + integrity: sha1-TzC6P6XpJfW3n5RejMDRdsOxqzg=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: + { + integrity: sha1-FBqlYFZFBkkokCu0rwRfp9n0Igo=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: + { + integrity: sha1-uFqulkhtyxv0mnyFcSISc/Tx5Kk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss/-/lightningcss-1.32.0.tgz, + } + engines: { node: '>= 12.0.0' } + + locate-path@6.0.0: + resolution: + { + integrity: sha1-VTIeswn+u8WcSAHZMackUqaB0oY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/locate-path/-/locate-path-6.0.0.tgz, + } + engines: { node: '>=10' } + + lodash.merge@4.6.2: + resolution: + { + integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz, + } + + loose-envify@1.4.0: + resolution: + { + integrity: sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/loose-envify/-/loose-envify-1.4.0.tgz, + } + hasBin: true + + lru-cache@5.1.1: + resolution: + { + integrity: sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lru-cache/-/lru-cache-5.1.1.tgz, + } + + lucide-react@0.577.0: + resolution: + { + integrity: sha1-iuie3YQV+ZxjGaOLQNnFE/b6UGI=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lucide-react/-/lucide-react-0.577.0.tgz, + } + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.21: + resolution: + { + integrity: sha1-VnY+wJoPqAkd8nh5/ZTRkHjADZE=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/magic-string/-/magic-string-0.30.21.tgz, + } + + math-intrinsics@1.1.0: + resolution: + { + integrity: sha1-oN10voHiqlwvJ+Zc4oNgXuTit/k=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/math-intrinsics/-/math-intrinsics-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + minimatch@10.2.5: + resolution: + { + integrity: sha1-vUhoegvjjtKWE5kQVgD4MglYYdE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/minimatch/-/minimatch-10.2.5.tgz, + } + engines: { node: 18 || 20 || >=22 } + + minimatch@3.1.5: + resolution: + { + integrity: sha1-WAyI+NVEXyvWqo88re+g3nn71p4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/minimatch/-/minimatch-3.1.5.tgz, + } + + minimist@1.2.8: + resolution: + { + integrity: sha1-waRk52kzAuCCoHXO4MBXdBrEdyw=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/minimist/-/minimist-1.2.8.tgz, + } + + ms@2.1.3: + resolution: + { + integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ms/-/ms-2.1.3.tgz, + } + + nanoid@3.3.15: + resolution: + { + integrity: sha1-NsSQ+tjG6GyCTJQN/d6Zm2ntQxY=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/nanoid/-/nanoid-3.3.15.tgz, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + + natural-compare@1.4.0: + resolution: + { + integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/natural-compare/-/natural-compare-1.4.0.tgz, + } + + node-exports-info@1.6.2: + resolution: + { + integrity: sha1-JDoxBWd9Z4HNJuanI1D9kopctG8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/node-exports-info/-/node-exports-info-1.6.2.tgz, + } + engines: { node: '>= 0.4' } + + node-releases@2.0.51: + resolution: + { + integrity: sha1-zcCEM1d/WzKtAWlEgXJuIu61Su8=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/node-releases/-/node-releases-2.0.51.tgz, + } + engines: { node: '>=18' } + + object-assign@4.1.1: + resolution: + { + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object-assign/-/object-assign-4.1.1.tgz, + } + engines: { node: '>=0.10.0' } + + object-inspect@1.13.4: + resolution: + { + integrity: sha1-g3UmXiG8IND6WCwi4bE0hdbgAhM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object-inspect/-/object-inspect-1.13.4.tgz, + } + engines: { node: '>= 0.4' } + + object-keys@1.1.1: + resolution: + { + integrity: sha1-HEfyct8nfzsdrwYWd9nILiMixg4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object-keys/-/object-keys-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + object.assign@4.1.7: + resolution: + { + integrity: sha1-jBTKGkJMalYbC7KiL2b1BJqUXT0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object.assign/-/object.assign-4.1.7.tgz, + } + engines: { node: '>= 0.4' } + + object.entries@1.1.9: + resolution: + { + integrity: sha1-5HcKahREr7Yb05+YQBi1vt4l+LM=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object.entries/-/object.entries-1.1.9.tgz, + } + engines: { node: '>= 0.4' } + + object.fromentries@2.0.8: + resolution: + { + integrity: sha1-9xldipuXvZXLwZmeqTns0aKwDGU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object.fromentries/-/object.fromentries-2.0.8.tgz, + } + engines: { node: '>= 0.4' } + + object.groupby@1.0.3: + resolution: + { + integrity: sha1-mxJcNiOBKfb3thlUoecXYUjVAC4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object.groupby/-/object.groupby-1.0.3.tgz, + } + engines: { node: '>= 0.4' } + + object.values@1.2.1: + resolution: + { + integrity: sha1-3u1SClCAn/f3Wnz9S8ZMegOMYhY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/object.values/-/object.values-1.2.1.tgz, + } + engines: { node: '>= 0.4' } + + obug@2.1.3: + resolution: + { + integrity: sha1-wCxg+Vq9YDQJMw52fbfygjGTMx4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/obug/-/obug-2.1.3.tgz, + } + engines: { node: '>=12.20.0' } + + optionator@0.9.4: + resolution: + { + integrity: sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/optionator/-/optionator-0.9.4.tgz, + } + engines: { node: '>= 0.8.0' } + + own-keys@1.0.1: + resolution: + { + integrity: sha1-5ABpEKK/kTWFKJZ27r1vOQz1E1g=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/own-keys/-/own-keys-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + p-limit@3.1.0: + resolution: + { + integrity: sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-limit/-/p-limit-3.1.0.tgz, + } + engines: { node: '>=10' } + + p-locate@5.0.0: + resolution: + { + integrity: sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-locate/-/p-locate-5.0.0.tgz, + } + engines: { node: '>=10' } + + pagefind@1.5.2: + resolution: + { + integrity: sha1-RH3YABjX/QwpJKVmOfe3K7vR8WU=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/pagefind/-/pagefind-1.5.2.tgz, + } + hasBin: true + + parent-module@1.0.1: + resolution: + { + integrity: sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/parent-module/-/parent-module-1.0.1.tgz, + } + engines: { node: '>=6' } + + path-exists@4.0.0: + resolution: + { + integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/path-exists/-/path-exists-4.0.0.tgz, + } + engines: { node: '>=8' } + + path-key@3.1.1: + resolution: + { + integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/path-key/-/path-key-3.1.1.tgz, + } + engines: { node: '>=8' } + + path-parse@1.0.7: + resolution: + { + integrity: sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/path-parse/-/path-parse-1.0.7.tgz, + } + + pathe@2.0.3: + resolution: + { + integrity: sha1-PsvsVUIWhbcKnahyss/z4cvtFxY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/pathe/-/pathe-2.0.3.tgz, + } + + picocolors@1.1.1: + resolution: + { + integrity: sha1-PTIa8+q5ObCDyPkpodEs2oHCa2s=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picocolors/-/picocolors-1.1.1.tgz, + } + + picomatch@4.0.5: + resolution: + { + integrity: sha1-UepXoX2G9gX4EDlZX7xA7QalX6s=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picomatch/-/picomatch-4.0.5.tgz, + } + engines: { node: '>=12' } + + possible-typed-array-names@1.1.0: + resolution: + { + integrity: sha1-k+NYK8DlQmWG2dB7ee5A/IQd5K4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + postcss@8.5.16: + resolution: + { + integrity: sha1-EjDOC13zVMJMDqRfmc5faognnSg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/postcss/-/postcss-8.5.16.tgz, + } + engines: { node: ^10 || ^12 || >=14 } + + prelude-ls@1.2.1: + resolution: + { + integrity: sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz, + } + engines: { node: '>= 0.8.0' } + + prettier-plugin-tailwindcss@0.7.4: + resolution: + { + integrity: sha1-6t0/nS5L+6KZSyL4DdolgEpgipo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.4.tgz, + } + engines: { node: '>=20.19' } + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.8.1: + resolution: + { + integrity: sha1-7fSJd8+ZFVj0/L2KO6YBW6KjoXM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prettier/-/prettier-3.8.1.tgz, + } + engines: { node: '>=14' } + hasBin: true + + prop-types@15.8.1: + resolution: + { + integrity: sha1-Z9h78aaU9IQ1zzMsJK8QIUoxQLU=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prop-types/-/prop-types-15.8.1.tgz, + } + + punycode@2.3.1: + resolution: + { + integrity: sha1-AnQi4vrsCyXhVJw+G9gwm5EztuU=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/punycode/-/punycode-2.3.1.tgz, + } + engines: { node: '>=6' } + + react-dom@18.3.1: + resolution: + { + integrity: sha1-wiZdeVEbV9R5s90/36UVNklMXLQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react-dom/-/react-dom-18.3.1.tgz, + } + peerDependencies: + react: ^18.3.1 + + react-is@16.13.1: + resolution: + { + integrity: sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react-is/-/react-is-16.13.1.tgz, + } + + react-refresh@0.17.0: + resolution: + { + integrity: sha1-t+V5w2V/I9BOzL5K0uWKjtUeflM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react-refresh/-/react-refresh-0.17.0.tgz, + } + engines: { node: '>=0.10.0' } + + react-router-dom@7.18.1: + resolution: + { + integrity: sha1-DRsTjikTkwWa1IHD4Q42Y4WpeKQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react-router-dom/-/react-router-dom-7.18.1.tgz, + } + engines: { node: '>=20.0.0' } + peerDependencies: + react: '>=18' + react-dom: '>=18' + + react-router@7.18.1: + resolution: + { + integrity: sha1-YSWdFZS5XBrOKZ7kxXRTVw8MIvE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react-router/-/react-router-7.18.1.tgz, + } + engines: { node: '>=20.0.0' } + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + + react@18.3.1: + resolution: + { + integrity: sha1-SauJIAnFOTNiW9FrJTP8dUyrKJE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react/-/react-18.3.1.tgz, + } + engines: { node: '>=0.10.0' } + + reflect.getprototypeof@1.0.10: + resolution: + { + integrity: sha1-xikhnnijMW2LYEx2XvaJlpZOe/k=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz, + } + engines: { node: '>= 0.4' } + + regexp.prototype.flags@1.5.4: + resolution: + { + integrity: sha1-GtbGLUSiWQB+VbOXDgD3Ru+8qhk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz, + } + engines: { node: '>= 0.4' } + + resolve-from@4.0.0: + resolution: + { + integrity: sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz, + } + engines: { node: '>=4' } + + resolve@2.0.0-next.7: + resolution: + { + integrity: sha1-ujsDXUse58UiQm7uc8q8sP1VFd0=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/resolve/-/resolve-2.0.0-next.7.tgz, + } + engines: { node: '>= 0.4' } + hasBin: true + + rollup@4.62.2: + resolution: + { + integrity: sha1-2Q/Ey4EfBxMDyJC3eVlWNPNflUE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/rollup/-/rollup-4.62.2.tgz, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true + + safe-array-concat@1.1.4: + resolution: + { + integrity: sha1-pUzJthpX8ztCq608vdo6KzjMVxk=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/safe-array-concat/-/safe-array-concat-1.1.4.tgz, + } + engines: { node: '>=0.4' } + + safe-push-apply@1.0.0: + resolution: + { + integrity: sha1-AYUOmBwWAtOYyFCB82Dk5tA9J/U=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/safe-push-apply/-/safe-push-apply-1.0.0.tgz, + } + engines: { node: '>= 0.4' } + + safe-regex-test@1.1.0: + resolution: + { + integrity: sha1-f4fftnoxUHguqvGFg/9dFxGsEME=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/safe-regex-test/-/safe-regex-test-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + scheduler@0.23.2: + resolution: + { + integrity: sha1-QUumSjsoKJLpRM8hCOzAeNEVzcM=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/scheduler/-/scheduler-0.23.2.tgz, + } + + semver@6.3.1: + resolution: + { + integrity: sha1-VW0u+GiRRuRtzqS/3QlfNDTf/LQ=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/semver/-/semver-6.3.1.tgz, + } + hasBin: true + + semver@7.8.5: + resolution: + { + integrity: sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/semver/-/semver-7.8.5.tgz, + } + engines: { node: '>=10' } + hasBin: true + + set-cookie-parser@2.7.2: + resolution: + { + integrity: sha1-zNCGc6muXS5E6iot4lCJ5nx+32g=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz, + } + + set-function-length@1.2.2: + resolution: + { + integrity: sha1-qscjFBmOrtl1z3eyw7a4gGleVEk=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/set-function-length/-/set-function-length-1.2.2.tgz, + } + engines: { node: '>= 0.4' } + + set-function-name@2.0.2: + resolution: + { + integrity: sha1-FqcFxaDcL15jjKltiozU4cK5CYU=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/set-function-name/-/set-function-name-2.0.2.tgz, + } + engines: { node: '>= 0.4' } + + set-proto@1.0.0: + resolution: + { + integrity: sha1-B2Dbz/MLLX6AH9bhmYPlbaM3Vl4=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/set-proto/-/set-proto-1.0.0.tgz, + } + engines: { node: '>= 0.4' } + + shebang-command@2.0.0: + resolution: + { + integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz, + } + engines: { node: '>=8' } + + shebang-regex@3.0.0: + resolution: + { + integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz, + } + engines: { node: '>=8' } + + side-channel-list@1.0.1: + resolution: + { + integrity: sha1-wuC1oUpUCuvuO7xsP4ZmzJtQkSc=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/side-channel-list/-/side-channel-list-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + side-channel-map@1.0.1: + resolution: + { + integrity: sha1-1rtrN5Asb+9RdOX1M/q0xzKib0I=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/side-channel-map/-/side-channel-map-1.0.1.tgz, + } + engines: { node: '>= 0.4' } + + side-channel-weakmap@1.0.2: + resolution: + { + integrity: sha1-Ed2hnVNo5Azp7CvcH7DsvAeQ7Oo=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + side-channel@1.1.1: + resolution: + { + integrity: sha1-6gLGLgXcS+pn1EQvD7ce4ZL44Ks=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/side-channel/-/side-channel-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + siginfo@2.0.0: + resolution: + { + integrity: sha1-MudscLeXJOO7Vny51UPrhYzPrzA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/siginfo/-/siginfo-2.0.0.tgz, + } + + source-map-js@1.2.1: + resolution: + { + integrity: sha1-HOVlD93YerwJnto33P8CTCZnrkY=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/source-map-js/-/source-map-js-1.2.1.tgz, + } + engines: { node: '>=0.10.0' } + + stackback@0.0.2: + resolution: + { + integrity: sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/stackback/-/stackback-0.0.2.tgz, + } + + std-env@4.2.0: + resolution: + { + integrity: sha1-jr4OxgSFZoq0ciezEvQlTN+AydM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/std-env/-/std-env-4.2.0.tgz, + } + + stop-iteration-iterator@1.1.0: + resolution: + { + integrity: sha1-9IH/cKVI9hJNAxLDqhTL+nqlQq0=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + string.prototype.includes@2.0.1: + resolution: + { + integrity: sha1-7O7yEoNkB2GoHb4W1scXGk7ffZI=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz, + } + engines: { node: '>= 0.4' } + + string.prototype.matchall@4.0.12: + resolution: + { + integrity: sha1-bIh0DkmtSVaxMyqRHpSVg6J11MA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz, + } + engines: { node: '>= 0.4' } + + string.prototype.repeat@1.0.0: + resolution: + { + integrity: sha1-6Qhy7gMIspQ1qiYnX24bdi2u4Bo=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz, + } + + string.prototype.trim@1.2.11: + resolution: + { + integrity: sha1-5r0ZzaOYXQWkLdox89300100MOM=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz, + } + engines: { node: '>= 0.4' } + + string.prototype.trimend@1.0.10: + resolution: + { + integrity: sha1-vmvPTz/gRgvezNss9PlxsxD4NG4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz, + } + engines: { node: '>= 0.4' } + + string.prototype.trimstart@1.0.8: + resolution: + { + integrity: sha1-fug03ajHwX7/MRhHK7Nb/tqjTd4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz, + } + engines: { node: '>= 0.4' } + + strip-bom@3.0.0: + resolution: + { + integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-bom/-/strip-bom-3.0.0.tgz, + } + engines: { node: '>=4' } + + strip-json-comments@3.1.1: + resolution: + { + integrity: sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz, + } + engines: { node: '>=8' } + + supports-color@7.2.0: + resolution: + { + integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/supports-color/-/supports-color-7.2.0.tgz, + } + engines: { node: '>=8' } + + supports-preserve-symlinks-flag@1.0.0: + resolution: + { + integrity: sha1-btpL00SjyUrqN21MwxvHcxEDngk=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz, + } + engines: { node: '>= 0.4' } + + tailwind-merge@3.6.0: + resolution: + { + integrity: sha1-iNgyQtHde8hHIj9z3PIQ3R8u4Rw=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tailwind-merge/-/tailwind-merge-3.6.0.tgz, + } + + tailwindcss@4.3.2: + resolution: + { + integrity: sha1-QI7mfXZ6D+97F0Z0u5xc4TalrOE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tailwindcss/-/tailwindcss-4.3.2.tgz, + } + + tapable@2.3.3: + resolution: + { + integrity: sha1-XafJmSxGA4IhJnmFqyhCGoh58WA=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tapable/-/tapable-2.3.3.tgz, + } + engines: { node: '>=6' } + + tinybench@2.9.0: + resolution: + { + integrity: sha1-EDyfi6bXI3pHq23R3P93JRhjQms=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinybench/-/tinybench-2.9.0.tgz, + } + + tinyexec@1.2.4: + resolution: + { + integrity: sha1-rkW7Lt69qUxw9OqJfg8SQ+Rw23E=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyexec/-/tinyexec-1.2.4.tgz, + } + engines: { node: '>=18' } + + tinyglobby@0.2.17: + resolution: + { + integrity: sha1-ViqabJ6ys7Ej05cZ+a9btE/NdjE=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyglobby/-/tinyglobby-0.2.17.tgz, + } + engines: { node: '>=12.0.0' } + + tinyrainbow@3.1.0: + resolution: + { + integrity: sha1-HYpiOJP5XPCi3bnl0RFQ4ZFAlCE=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyrainbow/-/tinyrainbow-3.1.0.tgz, + } + engines: { node: '>=14.0.0' } + + ts-api-utils@2.5.0: + resolution: + { + integrity: sha1-Ss1KFV4ic0mQpe0f6el/ETvLN8E=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ts-api-utils/-/ts-api-utils-2.5.0.tgz, + } + engines: { node: '>=18.12' } + peerDependencies: + typescript: '>=4.8.4' + + tsconfig-paths@3.15.0: + resolution: + { + integrity: sha1-UpnsYF5VsauyPsk57xXtr0gwcNQ=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz, + } + + type-check@0.4.0: + resolution: + { + integrity: sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/type-check/-/type-check-0.4.0.tgz, + } + engines: { node: '>= 0.8.0' } + + typed-array-buffer@1.0.3: + resolution: + { + integrity: sha1-pyOVRQpIaewDP9VJNxtHrzou5TY=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz, + } + engines: { node: '>= 0.4' } + + typed-array-byte-length@1.0.3: + resolution: + { + integrity: sha1-hAegT314aE89JSqhoUPSt3tBYM4=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz, + } + engines: { node: '>= 0.4' } + + typed-array-byte-offset@1.0.4: + resolution: + { + integrity: sha1-rjaYuOyRqKuUUBYQiu8A1b/xI1U=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz, + } + engines: { node: '>= 0.4' } + + typed-array-length@1.0.8: + resolution: + { + integrity: sha1-C3Dpgsnp2v4t721kWP9LPy0rbXA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typed-array-length/-/typed-array-length-1.0.8.tgz, + } + engines: { node: '>= 0.4' } + + typescript-eslint@8.63.0: + resolution: + { + integrity: sha1-HCtlyYlXKvcRP7rn9Ux/+rD76xI=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript-eslint/-/typescript-eslint-8.63.0.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + typescript@5.9.3: + resolution: + { + integrity: sha1-W09Z4VMQqxeiFvXWz1PuR27eZw8=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript/-/typescript-5.9.3.tgz, + } + engines: { node: '>=14.17' } + hasBin: true + + unbox-primitive@1.1.0: + resolution: + { + integrity: sha1-jZ0snt7qhGDH81AzqIhnlEk00eI=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/unbox-primitive/-/unbox-primitive-1.1.0.tgz, + } + engines: { node: '>= 0.4' } + + undici-types@6.21.0: + resolution: + { + integrity: sha1-aR0ArzkJvpOn+qE75hs6W1DvEss=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/undici-types/-/undici-types-6.21.0.tgz, + } + + update-browserslist-db@1.2.3: + resolution: + { + integrity: sha1-ZNdttYcTE2rL60xJEUNmzGzC6A0=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz, + } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: + { + integrity: sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/uri-js/-/uri-js-4.4.1.tgz, + } + + vite@6.4.3: + resolution: + { + integrity: sha1-haFk23znBvKndoEu+is0DxchhY4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/vite/-/vite-6.4.3.tgz, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@4.1.10: + resolution: + { + integrity: sha1-fpKF7+JksRZwULejp/80eI4bevw=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/vitest/-/vitest-4.1.10.tgz, + } + engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 } + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 + happy-dom: '*' + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + webidl-conversions@7.0.0: + resolution: + { + integrity: sha1-JWtOGIK+feu/AdBfCqIDl3jqCAo=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/webidl-conversions/-/webidl-conversions-7.0.0.tgz, + } + engines: { node: '>=12' } + + whatwg-mimetype@3.0.0: + resolution: + { + integrity: sha1-X6GnYjhn/xr2yj3HKta4pCCL66c=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz, + } + engines: { node: '>=12' } + + which-boxed-primitive@1.1.1: + resolution: + { + integrity: sha1-127Cfff6Fl8Y1YCDdKX+I8KbF24=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz, + } + engines: { node: '>= 0.4' } + + which-builtin-type@1.2.1: + resolution: + { + integrity: sha1-iRg9obSQerCJprAgKcxdjWV0Jw4=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/which-builtin-type/-/which-builtin-type-1.2.1.tgz, + } + engines: { node: '>= 0.4' } + + which-collection@1.0.2: + resolution: + { + integrity: sha1-Yn73YkOSChB+fOjpYZHevksWwqA=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/which-collection/-/which-collection-1.0.2.tgz, + } + engines: { node: '>= 0.4' } + + which-typed-array@1.1.22: + resolution: + { + integrity: sha1-jzzHiu+0C0NzRt1Aodv6XR2kP+k=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/which-typed-array/-/which-typed-array-1.1.22.tgz, + } + engines: { node: '>= 0.4' } + + which@2.0.2: + resolution: + { + integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/which/-/which-2.0.2.tgz, + } + engines: { node: '>= 8' } + hasBin: true + + why-is-node-running@2.3.0: + resolution: + { + integrity: sha1-o/aalxB/SUs83Dvd3Yg6fWXOvwQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/why-is-node-running/-/why-is-node-running-2.3.0.tgz, + } + engines: { node: '>=8' } + hasBin: true + + word-wrap@1.2.5: + resolution: + { + integrity: sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=, + tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/word-wrap/-/word-wrap-1.2.5.tgz, + } + engines: { node: '>=0.10.0' } + + yallist@3.1.1: + resolution: + { + integrity: sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/yallist/-/yallist-3.1.1.tgz, + } + + yocto-queue@0.1.0: + resolution: + { + integrity: sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz, + } + engines: { node: '>=10' } + + zod-validation-error@4.0.2: + resolution: + { + integrity: sha1-vGBeuknOD81ZjBJ/7hwja+PyKRg=, + tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/zod-validation-error/-/zod-validation-error-4.0.2.tgz, + } + engines: { node: '>=18.0.0' } + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.4.3: + resolution: + { + integrity: sha1-toDxcohdGLvr8hqDTqJeVaG781Y=, + tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/zod/-/zod-4.4.3.tgz, + } + +snapshots: + '@alloc/quick-lru@5.2.0': {} + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.7': {} + + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.7': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.5 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/traverse@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))': + dependencies: + eslint: 9.39.4(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.5': + dependencies: + ajv: 6.15.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.0 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.4': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@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': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@pagefind/darwin-arm64@1.5.2': + optional: true + + '@pagefind/darwin-x64@1.5.2': + optional: true + + '@pagefind/default-ui@1.5.2': {} + + '@pagefind/freebsd-x64@1.5.2': + optional: true + + '@pagefind/linux-arm64@1.5.2': + optional: true + + '@pagefind/linux-x64@1.5.2': + optional: true + + '@pagefind/windows-arm64@1.5.2': + optional: true + + '@pagefind/windows-x64@1.5.2': + optional: true + + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/rollup-android-arm-eabi@4.62.2': + optional: true + + '@rollup/rollup-android-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-x64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.62.2': + optional: true + + '@rollup/rollup-openbsd-x64@4.62.2': + optional: true + + '@rollup/rollup-openharmony-arm64@4.62.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.62.2': + optional: true + + '@rtsao/scc@1.1.0': {} + + '@standard-schema/spec@1.1.0': {} + + '@tailwindcss/node@4.3.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.21.6 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.2 + + '@tailwindcss/oxide-android-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.2': + optional: true + + '@tailwindcss/oxide@4.3.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-arm64': 4.3.2 + '@tailwindcss/oxide-darwin-x64': 4.3.2 + '@tailwindcss/oxide-freebsd-x64': 4.3.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.2 + '@tailwindcss/oxide-linux-x64-musl': 4.3.2 + '@tailwindcss/oxide-wasm32-wasi': 4.3.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.2 + + '@tailwindcss/postcss@4.3.2': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.3.2 + '@tailwindcss/oxide': 4.3.2 + postcss: 8.5.16 + tailwindcss: 4.3.2 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.7 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.7 + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/deep-eql@4.0.2': {} + + '@types/estree@1.0.9': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/node@22.20.1': + dependencies: + undici-types: 6.21.0 + + '@types/prop-types@15.7.15': {} + + '@types/react-dom@18.3.7(@types/react@18.3.31)': + dependencies: + '@types/react': 18.3.31 + + '@types/react@18.3.31': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.2.3 + + '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/type-utils': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.63.0 + eslint: 9.39.4(jiti@2.7.0) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.63.0 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.7.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.63.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.63.0': + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 + + '@typescript-eslint/tsconfig-utils@8.63.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.63.0': {} + + '@typescript-eslint/typescript-estree@8.63.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.63.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.8.5 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + eslint: 9.39.4(jiti@2.7.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.63.0': + dependencies: + '@typescript-eslint/types': 8.63.0 + eslint-visitor-keys: 5.0.1 + + '@vitejs/plugin-react@4.7.0(vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0))': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@4.1.10': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 + chai: 6.2.2 + tinyrainbow: 3.1.0 + + '@vitest/mocker@4.1.10(vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0))': + dependencies: + '@vitest/spy': 4.1.10 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0) + + '@vitest/pretty-format@4.1.10': + dependencies: + tinyrainbow: 3.1.0 + + '@vitest/runner@4.1.10': + dependencies: + '@vitest/utils': 4.1.10 + pathe: 2.0.3 + + '@vitest/snapshot@4.1.10': + dependencies: + '@vitest/pretty-format': 4.1.10 + '@vitest/utils': 4.1.10 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@4.1.10': {} + + '@vitest/utils@4.1.10': + dependencies: + '@vitest/pretty-format': 4.1.10 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 + + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + + acorn@8.17.0: {} + + 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 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-includes@3.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + assertion-error@2.0.1: {} + + ast-types-flow@0.0.8: {} + + async-function@1.0.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.12.1: {} + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + baseline-browser-mapping@2.10.42: {} + + brace-expansion@1.1.16: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@5.0.7: + dependencies: + balanced-match: 4.0.4 + + browserslist@4.28.5: + dependencies: + baseline-browser-mapping: 2.10.42 + caniuse-lite: 1.0.30001803 + electron-to-chromium: 1.5.389 + node-releases: 2.0.51 + update-browserslist-db: 1.2.3(browserslist@4.28.5) + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001803: {} + + chai@6.2.2: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + cookie@1.1.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.2.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + detect-libc@2.1.2: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + electron-to-chromium@1.5.389: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.21.6: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + + entities@4.5.0: {} + + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + + es-abstract@1.24.2: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.4 + function.prototype.name: 1.2.0 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.4 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.8 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.22 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.3.3: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + math-intrinsics: 1.1.0 + + es-module-lexer@2.3.0: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.4 + + es-to-primitive@1.3.4: + dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)): + dependencies: + eslint: 9.39.4(jiti@2.7.0) + + eslint-import-resolver-node@0.3.10: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.2 + resolve: 2.0.0-next.7 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.14.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint@9.39.4(jiti@2.7.0)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.39.4(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint@9.39.4(jiti@2.7.0)) + hasown: 2.0.4 + is-core-module: 2.16.2 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.10 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.4(jiti@2.7.0)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.12.1 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.39.4(jiti@2.7.0) + hasown: 2.0.4 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-react-hooks@7.1.1(eslint@9.39.4(jiti@2.7.0)): + dependencies: + '@babel/core': 7.29.7 + '@babel/parser': 7.29.7 + eslint: 9.39.4(jiti@2.7.0) + hermes-parser: 0.25.1 + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.7.0)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.3.3 + eslint: 9.39.4(jiti@2.7.0) + estraverse: 5.3.0 + hasown: 2.0.4 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.5 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.7 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@9.39.4(jiti@2.7.0): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.4 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.7.0 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + eslint-visitor-keys: 4.2.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + esutils@2.0.3: {} + + expect-type@1.4.0: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + + flatted@3.4.2: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.2.0: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + es-define-property: 1.0.1 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 + is-callable: 1.2.7 + is-document.all: 1.0.0 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@14.0.0: {} + + globals@17.7.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + happy-dom@15.11.7: + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.4 + side-channel: 1.1.1 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.22 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jiti@2.7.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.3.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lucide-react@0.577.0(react@18.3.1): + dependencies: + react: 18.3.1 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + math-intrinsics@1.1.0: {} + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.7 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.16 + + minimist@1.2.8: {} + + ms@2.1.3: {} + + nanoid@3.3.15: {} + + natural-compare@1.4.0: {} + + node-exports-info@1.6.2: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + + node-releases@2.0.51: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + obug@2.1.3: {} + + 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 + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + pagefind@1.5.2: + optionalDependencies: + '@pagefind/darwin-arm64': 1.5.2 + '@pagefind/darwin-x64': 1.5.2 + '@pagefind/freebsd-x64': 1.5.2 + '@pagefind/linux-arm64': 1.5.2 + '@pagefind/linux-x64': 1.5.2 + '@pagefind/windows-arm64': 1.5.2 + '@pagefind/windows-x64': 1.5.2 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@4.0.5: {} + + possible-typed-array-names@1.1.0: {} + + postcss@8.5.16: + dependencies: + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-plugin-tailwindcss@0.7.4(prettier@3.8.1): + dependencies: + prettier: 3.8.1 + + prettier@3.8.1: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + punycode@2.3.1: {} + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-is@16.13.1: {} + + react-refresh@0.17.0: {} + + react-router-dom@7.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 7.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + react-router@7.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + cookie: 1.1.1 + react: 18.3.1 + set-cookie-parser: 2.7.2 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + resolve-from@4.0.0: {} + + resolve@2.0.0-next.7: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.2 + object-keys: 1.1.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + rollup@4.62.2: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 + fsevents: 2.3.3 + + safe-array-concat@1.1.4: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + semver@6.3.1: {} + + semver@7.8.5: {} + + set-cookie-parser@2.7.2: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + source-map-js@1.2.1: {} + + stackback@0.0.2: {} + + std-env@4.2.0: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.1 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.2 + + string.prototype.trim@1.2.11: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 + + string.prototype.trimend@1.0.10: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tailwind-merge@3.6.0: {} + + tailwindcss@4.3.2: {} + + tapable@2.3.3: {} + + tinybench@2.9.0: {} + + tinyexec@1.2.4: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + tinyrainbow@3.1.0: {} + + ts-api-utils@2.5.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.8: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typescript-eslint@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.63.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.7.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@6.21.0: {} + + update-browserslist-db@1.2.3(browserslist@4.28.5): + dependencies: + browserslist: 4.28.5 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + postcss: 8.5.16 + rollup: 4.62.2 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 22.20.1 + fsevents: 2.3.3 + jiti: 2.7.0 + lightningcss: 1.32.0 + + vitest@4.1.10(@types/node@22.20.1)(happy-dom@15.11.7)(vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0)): + dependencies: + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 + magic-string: 0.30.21 + obug: 2.1.3 + pathe: 2.0.3 + picomatch: 4.0.5 + std-env: 4.2.0 + tinybench: 2.9.0 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.0 + vite: 6.4.3(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.32.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.20.1 + happy-dom: 15.11.7 + transitivePeerDependencies: + - msw + + webidl-conversions@7.0.0: {} + + whatwg-mimetype@3.0.0: {} + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.2.0 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.22 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.22: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + yallist@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-validation-error@4.0.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + + zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 000000000..286cf7f56 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - apps/* + - packages/* From 3a47cb3af70ee239a24bcc517f88587c53cae6ff Mon Sep 17 00:00:00 2001 From: cxxxxxn <christy05.chen@gmail.com> Date: Thu, 16 Jul 2026 18:10:41 +0800 Subject: [PATCH 4/6] feat: add sync upstream release workflow --- .github/workflows/sync-release.yml | 148 +++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 .github/workflows/sync-release.yml diff --git a/.github/workflows/sync-release.yml b/.github/workflows/sync-release.yml new file mode 100644 index 000000000..f754fb0b4 --- /dev/null +++ b/.github/workflows/sync-release.yml @@ -0,0 +1,148 @@ +name: Sync upstream release + +on: + workflow_dispatch: + inputs: + destination_tag: + description: 'Destination tag; leave empty to use source tag' + required: false + type: string + +permissions: + contents: write + +concurrency: + group: sync-release-${{ inputs.destination_tag }} + cancel-in-progress: false + +jobs: + sync-release: + runs-on: ubuntu-latest + + steps: + - name: Read latest source release + shell: bash + env: + SOURCE_REPO: ${{ secrets.SOURCE_REPOSITORY }} + SOURCE_TOKEN: ${{ secrets.SOURCE_REPO_TOKEN }} + REQUESTED_DEST_TAG: ${{ inputs.destination_tag }} + run: | + set -euo pipefail + + GH_TOKEN="$SOURCE_TOKEN" gh release view \ + --repo "$SOURCE_REPO" \ + --json tagName,body,isPrerelease \ + > source-release.json + + SOURCE_TAG="$(jq -r '.tagName' source-release.json)" + IS_PRERELEASE="$(jq -r '.isPrerelease' source-release.json)" + + DEST_TAG="$REQUESTED_DEST_TAG" + if [[ -z "$DEST_TAG" ]]; then + DEST_TAG="$SOURCE_TAG" + fi + + for tag in "$SOURCE_TAG" "$DEST_TAG"; do + if [[ "$tag" == -* ]] || ! git check-ref-format "refs/tags/$tag"; then + echo "Invalid release tag: $tag" >&2 + exit 1 + fi + done + + jq -r '.body // ""' source-release.json > release-notes.md + + { + echo "source_tag=$SOURCE_TAG" + echo "dest_tag=$DEST_TAG" + echo "is_prerelease=$IS_PRERELEASE" + } >> "$GITHUB_OUTPUT" + id: release + + - name: Download source assets + id: download + shell: bash + env: + SOURCE_REPO: ${{ secrets.SOURCE_REPOSITORY }} + SOURCE_TOKEN: ${{ secrets.SOURCE_REPO_TOKEN }} + SOURCE_TAG: ${{ steps.release.outputs.source_tag }} + run: | + set -euo pipefail + + mkdir -p assets + + if ! GH_TOKEN="$SOURCE_TOKEN" gh release download \ + "$SOURCE_TAG" \ + --repo "$SOURCE_REPO" \ + --dir assets; then + echo "No downloadable assets for $SOURCE_TAG." + fi + + asset_count="$(find assets -maxdepth 1 -type f | wc -l)" + if (( asset_count == 0 )); then + echo "Source release has no assets; skipping publish." + echo "has_assets=false" >> "$GITHUB_OUTPUT" + else + echo "has_assets=true" >> "$GITHUB_OUTPUT" + fi + + - name: Create or update destination release + if: steps.download.outputs.has_assets == 'true' + shell: bash + env: + DEST_REPO: ${{ github.repository }} + DEST_TOKEN: ${{ github.token }} + SOURCE_TAG: ${{ steps.release.outputs.source_tag }} + DEST_TAG: ${{ steps.release.outputs.dest_tag }} + IS_PRERELEASE: ${{ steps.release.outputs.is_prerelease }} + run: | + set -euo pipefail + + TITLE="Huabu $SOURCE_TAG" + + prerelease_args=() + if [[ "$IS_PRERELEASE" == "true" ]]; then + prerelease_args+=(--prerelease) + fi + + if GH_TOKEN="$DEST_TOKEN" gh release view \ + "$DEST_TAG" \ + --repo "$DEST_REPO" >/dev/null 2>&1; then + + echo "Updating existing release $DEST_TAG" + + GH_TOKEN="$DEST_TOKEN" gh release edit \ + "$DEST_TAG" \ + --repo "$DEST_REPO" \ + --title "$TITLE" \ + --notes-file release-notes.md \ + --prerelease="$IS_PRERELEASE" + else + echo "Creating release $DEST_TAG" + + GH_TOKEN="$DEST_TOKEN" gh release create \ + "$DEST_TAG" \ + --repo "$DEST_REPO" \ + --title "$TITLE" \ + --notes-file release-notes.md \ + "${prerelease_args[@]}" + fi + + - name: Upload destination assets + if: steps.download.outputs.has_assets == 'true' + shell: bash + env: + DEST_REPO: ${{ github.repository }} + DEST_TOKEN: ${{ github.token }} + DEST_TAG: ${{ steps.release.outputs.dest_tag }} + run: | + set -euo pipefail + + mapfile -d '' assets < <( + find assets -maxdepth 1 -type f -print0 + ) + + GH_TOKEN="$DEST_TOKEN" gh release upload \ + "$DEST_TAG" \ + "${assets[@]}" \ + --repo "$DEST_REPO" \ + --clobber From 76cf2ee4975fb871228bdf49bf18921a8ef466d9 Mon Sep 17 00:00:00 2001 From: cxxxxxn <christy05.chen@gmail.com> Date: Thu, 16 Jul 2026 18:18:37 +0800 Subject: [PATCH 5/6] fix(ci): remove duplicate header check and harden URL validation --- .github/workflows/check-source-headers.yml | 20 -------------------- apps/docs/scripts/validate-build.mjs | 9 +-------- 2 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 .github/workflows/check-source-headers.yml diff --git a/.github/workflows/check-source-headers.yml b/.github/workflows/check-source-headers.yml deleted file mode 100644 index 43c24cfe6..000000000 --- a/.github/workflows/check-source-headers.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Check source headers - -on: - pull_request: - push: - branches: - - main - -permissions: - contents: read - -jobs: - check-source-headers: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Check source headers - run: node scripts/check-headers.mjs diff --git a/apps/docs/scripts/validate-build.mjs b/apps/docs/scripts/validate-build.mjs index ac2b21094..80bf0cecf 100644 --- a/apps/docs/scripts/validate-build.mjs +++ b/apps/docs/scripts/validate-build.mjs @@ -35,14 +35,7 @@ async function exists(file) { } async function validateLocalReference(reference, sourceFile) { - if ( - reference.startsWith('#') || - reference.startsWith('mailto:') || - reference.startsWith('data:') || - reference.startsWith('javascript:') - ) { - return; - } + if (reference.startsWith('#')) return; const url = new URL(reference, 'https://handbook.invalid'); if (url.origin !== 'https://handbook.invalid') return; From 088c2f51660141c9a055862fdd1dd731910c2179 Mon Sep 17 00:00:00 2001 From: cxxxxxn <christy05.chen@gmail.com> Date: Thu, 16 Jul 2026 18:23:37 +0800 Subject: [PATCH 6/6] fix(docs): correct file path reference for space memory in DataAndBackup component --- RAI_README.md | 2 +- apps/docs/src/sections/space/DataAndBackup.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/RAI_README.md b/RAI_README.md index c8da1de86..7338a4949 100644 --- a/RAI_README.md +++ b/RAI_README.md @@ -44,7 +44,7 @@ Huabu was evaluated on its ability to support exploratory knowledge work scenari ### EVALUATION METHODS -We used used qualitative observation, task walk-throughs, and structured user feedback from internal dogfooding sessions to measure Huabu’s performance. +We used qualitative observation, task walk-throughs, and structured user feedback from internal dogfooding sessions to measure Huabu’s performance. We compared the performance of Huabu against the linear chat baseline that is the dominant paradigm today using participant-reported feedback across research, planning, and ideation scenarios. diff --git a/apps/docs/src/sections/space/DataAndBackup.tsx b/apps/docs/src/sections/space/DataAndBackup.tsx index 008bc3144..f852ff941 100644 --- a/apps/docs/src/sections/space/DataAndBackup.tsx +++ b/apps/docs/src/sections/space/DataAndBackup.tsx @@ -35,7 +35,7 @@ export default function DataAndBackup() { │ ├── space.json # this Space's topology │ ├── nodes/<node-title>.md │ ├── .artifacts/<artifactId>.<ext> -│ ├── .memory/canvas.md # Space memory +│ ├── .memory/space.md # Space memory │ └── .history/ # conversation and event history └── setting/ ├── user.md # User memory @@ -61,7 +61,7 @@ export default function DataAndBackup() { 'PDF / image / video originals; each filename is based on its artifact ID.', ], [ - <Code>.memory/canvas.md</Code>, + <Code>.memory/space.md</Code>, 'Markdown', 'Space-level memory the AI writes.', ],