From ca0f9fa8303bb2c82dd322d324e396e7a010e2fa Mon Sep 17 00:00:00 2001
From: Mahmoud Mabrouk <4510758+mmabrouk@users.noreply.github.com>
Date: Fri, 11 Sep 2026 09:36:01 +0000
Subject: [PATCH 1/3] [docs] Draft playground workspace PRD and initial RFC
---
docs/design/playground-workspace/README.md | 22 ++++
docs/design/playground-workspace/prd.md | 69 ++++++++++++
docs/design/playground-workspace/rfc.md | 124 +++++++++++++++++++++
3 files changed, 215 insertions(+)
create mode 100644 docs/design/playground-workspace/README.md
create mode 100644 docs/design/playground-workspace/prd.md
create mode 100644 docs/design/playground-workspace/rfc.md
diff --git a/docs/design/playground-workspace/README.md b/docs/design/playground-workspace/README.md
new file mode 100644
index 00000000000..fbaf641c98b
--- /dev/null
+++ b/docs/design/playground-workspace/README.md
@@ -0,0 +1,22 @@
+# Playground workspace discussion
+
+> AGENT-GENERATED, low weight. Draft for founder and frontend review. No implementation or scope approval is implied.
+
+Date: 2026-09-11.
+
+The proposal turns the agent playground into one or two panes with movable tabs. A conversation, file, explorer, or application can occupy either pane.
+
+Read [the product requirements document](prd.md) for the intended experience, then [the initial request for comments](rfc.md) for the architecture and tradeoffs. Both are deliberately high level. There is no implementation schedule or final interface contract.
+
+Related: [PR #6529: workspace-backed internal HTML apps](https://github.com/Agenta-AI/agenta/pull/6529). That proposal covers executing HTML and granting file access. This proposal covers presenting those apps alongside conversations and files.
+
+Terms used in these documents:
+
+- A resource is an underlying session, file, application, or remote computer.
+- A tab is an open view of a resource.
+- A pane holds ordered tabs and displays its selected tab.
+- A workspace stores the panes, open tabs, and keyboard focus for an agent's playground.
+- A runtime is a live client object, such as a chat connection, whose lifetime can outlast its React view.
+- A sandbox is the isolated environment where an agent runs tools or applications.
+
+Status: initial discussion drafts. The founder requested the split-pane direction and the candidate content types. The proposed first scope, lifecycle policies, and library preference are agent suggestions awaiting review.
diff --git a/docs/design/playground-workspace/prd.md b/docs/design/playground-workspace/prd.md
new file mode 100644
index 00000000000..cd798556225
--- /dev/null
+++ b/docs/design/playground-workspace/prd.md
@@ -0,0 +1,69 @@
+# Product requirements: playground workspace
+
+> AGENT-GENERATED, low weight. Draft for discussion. Proposed requirements and scope need founder approval.
+
+Date: 2026-09-11. Technical companion: [initial RFC](rfc.md).
+
+## Current experience
+
+The agent playground presents conversations through session tabs or a session rail. Files appear in a dedicated side pane that follows the active conversation. Agent configuration occupies another specialized pane.
+
+A user who wants to discuss a document while viewing it, compare two conversations, or use an agent-created app needs a more flexible arrangement. The founder's requested direction is one or two panes, each containing tabs that can move between panes.
+
+## Intended experience
+
+A user can keep a conversation on the left and a document or app on the right. Either side can contain any supported tab type. The user can return to one pane without losing open work.
+
+Example: an agent creates `todo.html` and `board.json`. The user opens the HTML beside the conversation, runs the app after granting access, and moves a card. The app updates `board.json`; the agent can read that file in a later turn. Switching conversations does not retarget the app to another session's files.
+
+The execution and access steps in this example depend on [PR #6529](https://github.com/Agenta-AI/agenta/pull/6529), which remains a separate proposal. Opening an HTML tab alone must not execute its author-provided scripts.
+
+## Candidate content
+
+| Content | Intended use | Scope note |
+| --- | --- | --- |
+| Agent session | Read, send, and manage a conversation | Suggested first scope |
+| Opened file | Read a document, source, or HTML preview | Suggested first scope; editing can follow |
+| File explorer | Browse a specific drive and open files into tabs | Suggested first scope |
+| Child-agent call | Inspect a particular child execution and possibly interact | Requires stable identity and supported interaction capabilities |
+| Website or link | View an embeddable external page | Sites can restrict embedding; provide an external-open alternative |
+| Computer view | View and control the agent's remote desktop | Requires a remote desktop service and access rules |
+| Internal app | Use an app hosted within Agenta, including an HTML board | HTML execution and file access connect to #6529 |
+| Other views | A Kanban board or another structured workspace view | Extension direction, not an initial delivery commitment |
+
+## Proposed behavior
+
+1. Users can open tabs in either pane, reorder them, and move them between panes. Provide a menu action as well as dragging so moving a tab is keyboard-accessible.
+2. Each pane selects one tab independently. The focused pane receives workspace keyboard commands; visible conversations continue to show updates.
+3. Opening an already-open resource focuses its existing tab initially. Showing duplicate views of the same resource is deferred.
+4. Moving a tab preserves the resource, conversation draft, and relevant view position. It must not stop a run, resend a message, or change file access.
+5. Returning to one pane retains the tabs from both panes. The precise merge order and selected tab need design review.
+6. Closing a tab does not delete its resource. Proposed default: closing a conversation view does not stop the server run; Stop remains explicit. This differs from the current tab-close button and requires a product decision.
+7. Restore open resource references and layout after reload. A missing file, deleted session, or expired computer shows an explanation and a recovery action without preventing other tabs from opening.
+8. File and app tabs keep their original drive and path context when another conversation becomes selected. A future explorer that follows focus must clearly indicate that behavior.
+9. On narrow screens, show one pane at a time while retaining access to all open tabs. Hidden controls must not receive keyboard focus.
+
+## Proposed first scope
+
+Validate the workspace using sessions, file previews, and a file explorer. Keep agent configuration accessible through the existing build/configuration flow while deciding whether it should become a tab.
+
+The first scope does not require arbitrary nested splits, floating windows, shared layouts across users, duplicate interactive views of one session, a new file editor, or all candidate content types. Preserve existing prompt comparison, agent onboarding, and drawer behavior as the agent workspace evolves.
+
+## Success criteria
+
+- A user can discuss a document while viewing it, then compare two different sessions without navigating away.
+- Moving a streaming conversation produces no cancellation, duplicated send, lost draft, or wrong-session shortcut.
+- Opening a file from session A and selecting session B leaves that file attached to its original drive.
+- Collapsing a pane and restoring the workspace after reload retain the expected tabs.
+- A slow or failed tab does not prevent interaction with the other pane.
+- Repeatedly opening and closing views releases unused view and connection resources according to the chosen lifecycle policy.
+
+Performance targets need measurement on an agreed device and representative transcripts. No latency or memory target has been validated yet.
+
+## Decisions for review
+
+- Is one or two panes the intended limit, or should the design anticipate arbitrary splits?
+- Should configuration stay outside the tab system initially?
+- Should closing a running conversation stop it or only close its view?
+- Should the explorer stay attached to one drive or optionally follow the focused conversation?
+- Which candidate content types belong in the first delivery?
diff --git a/docs/design/playground-workspace/rfc.md b/docs/design/playground-workspace/rfc.md
new file mode 100644
index 00000000000..4c594eccc64
--- /dev/null
+++ b/docs/design/playground-workspace/rfc.md
@@ -0,0 +1,124 @@
+# Initial RFC: playground workspace architecture
+
+> AGENT-GENERATED, low weight. Rough request for comments, not an approved technical design or implementation plan.
+
+Date: 2026-09-11. Product companion: [PRD](prd.md).
+
+## Current architecture
+
+Code observations below refer to main commit `c6b52c09f75c69e19553d9693e4892a125e397f8`. They come from source inspection, not performance profiling.
+
+The outer playground owns configuration and the build/chat arrangement. It supplies `AgentChatPanel` for agent conversations alongside older prompt and comparison surfaces.
+
+```text
+Playground
+ Agent configuration
+ AgentChatPanel
+ Session tabs or rail
+ Visited conversation views
+ Files side pane for the active session
+```
+
+The desktop session store separates history from the ordered open-session list. Both, plus the active session, are scoped by project and chat surface, normally the agent. Drawers and onboarding can supply separate scope keys. Messages use session IDs.
+
+An atom family is a cached factory that returns an atom for a key. It supports dynamic keys. The limiting assumption here is one active session per chat scope, not Jotai itself.
+
+Conversation views mount on first visit and stay mounted while hidden. Live chat instances also live outside React in a registry keyed by session ID. The desktop retains them while their session tab remains open, including across route changes. However, their callbacks still bind to conversation components.
+
+The files pane has openness state by chat scope and selection state by session. Its host supplies the active session's drive context. Hydration hooks and shortcuts also use the scope's active session. Two independently visible conversations require those assumptions to change.
+
+Source entry points:
+
+- [Playground composition](../../../web/oss/src/components/Playground/Playground.tsx).
+- [AgentChatPanel](../../../web/oss/src/components/AgentChatSlice/AgentChatPanel.tsx).
+- [Desktop session state](../../../web/oss/src/components/AgentChatSlice/state/sessions.ts).
+- [Chat runtime registry](../../../web/packages/agenta-chat/src/state/sessionChats.ts).
+- [Hydration hooks](../../../web/oss/src/components/AgentChatSlice/hooks/useSessionHydration.ts).
+- [Files pane](../../../web/packages/agenta-entity-ui/src/drive/SessionFilesPane.tsx).
+
+## Proposed ownership
+
+Introduce a workspace layer above individual content views. Keep resources independent of their screen position.
+
+| Layer | Owns | Does not own |
+| --- | --- | --- |
+| Workspace | Pane layout, tab order, selected tabs, keyboard focus | Messages, file contents, execution permissions |
+| Tab view | Presentation, scroll, selection, visibility | The underlying resource's lifetime |
+| Resource state | Session records, file data, shared document changes | Which pane displays the resource |
+| Runtime registry | Live chat and remote desktop client objects | Pane placement |
+
+Conceptually, the workspace stores a map of tab IDs to resource references, ordered tab IDs per pane, a selected tab per pane, and the focused pane. This is an illustrative model, not a final serialized schema or public API.
+
+Resource identity names the underlying session, drive/path, child execution, or app instance. Tab identity names its view. Keeping these distinct allows future duplicate views without copying their underlying data. Initially, opening the same resource should focus its existing tab.
+
+A small renderer registry maps a tab kind to a lazily loaded React view. Sessions, files, explorers, websites, computers, and apps can implement the same host expectations: title/status, visibility, focus, close handling, and recovery from missing resources. Their data and permissions remain type-specific.
+
+A conversation opening a file requests an explicit resource and a preferred destination. The workspace chooses the pane and handles existing tabs. The conversation does not directly control a special right-hand files panel.
+
+## State and commands
+
+Keep Jotai for shared workspace state and retain existing entity/query state for backend data. A small workspace atom with derived subscriptions is sufficient to explore one or two panes. Tab labels subscribe to title and status, not entire transcripts.
+
+Centralize open, select, move, close, and collapse operations. A move updates both pane lists together and preserves tab identity. It must never invoke the current close-session operation, which drops the runtime; the current close button also requests cancellation when a run is active.
+
+Replace overloaded active-session checks with separate concepts: selected tab per pane, focused pane, visible sessions, and running sessions. Commands carry their target session or tab explicitly. Two sessions can be visible while only one receives keyboard input.
+
+Use one shared resource store across the panes. Per-pane identity can use context, but isolated Jotai stores per pane would complicate shared data and moving views. Define cleanup for dynamically cached tab atoms when views close, without evicting resource state still in use.
+
+## Moving and hiding views
+
+React state belongs to a component's position in its tree. Moving a keyed view between different pane parents can recreate it. A stable key alone does not preserve it across those parents. See [React state preservation](https://react.dev/learn/preserving-and-resetting-state).
+
+Two directions are possible:
+
+| Direction | Benefit | Cost |
+| --- | --- | --- |
+| Allow remounting and restore view state | Simple component structure; views can be unloaded | Drafts, scroll, and runtime callbacks need explicit ownership |
+| Keep views in stable hosts and change placement | Preserves more component-local state | More complex layout/focus handling; embedded document behavior still needs browser testing |
+
+Provisional preference: allow native views to remount once important state can be restored. Reuse the existing chat registry, but review callback and effect ownership before relying on it for background operation. Avoid mounting two independent interactive conversation owners for one session: the current registry rebinds callbacks to the latest committing view.
+
+Choose hidden-view policies by type. A running conversation can keep its runtime while reducing rendering work. An idle transcript or file preview can be eligible for unloading. An unsaved editor must retain its document model. Remote desktops and iframes need explicit suspension or bounded retention policies. Hiding a component does not stop its effects or connections.
+
+Closing a view, disconnecting a client, and cancelling a server run must become separate operations if the PRD's proposed close behavior is accepted.
+
+## Performance and persistence
+
+Load heavy tab implementations on demand. Keep streaming messages out of layout state and keep pointer-move resize state out of persistent storage. Persist a versioned layout description after completed actions, scoped to the user, project, and agent. Do not persist credentials or temporary authenticated app URLs as resource identity.
+
+The current chat hook throttles stream-driven UI updates to 50 milliseconds. The transcript virtualization path, which renders a window of long history, is experimental and disabled by default in its state definition. Neither observation proves that two large conversations will remain responsive.
+
+Measure typing and resizing with two streaming sessions, long history, an app iframe, and repeated open/close cycles. Watch render frequency, mounted views, memory, and live connections. Set budgets from those measurements. Use separate loading and error boundaries so one tab's failure does not replace the whole workspace.
+
+## Relationship to PR #6529
+
+[PR #6529](https://github.com/Agenta-AI/agenta/pull/6529) proposes an explicit HTML Run mode and a narrow `window.arg.fs` file-access bridge. It is an open design proposal, not shipped functionality.
+
+This workspace supplies the app's tab and placement. The HTML proposal supplies execution, file-access grants, and the validated parent/iframe message protocol. Opening, moving, focusing, or restoring a tab must not implicitly grant Run access or expand its file scope. Preview remains the initial mode as proposed in #6529.
+
+Keep app resource identity, view identity, and permission grants separate. Moving a tab retains its original file context. If moving recreates an iframe, invalidate the previous instance's message handling and establish the new instance under the chosen grant policy. Grant persistence and reauthorization remain decisions for the HTML proposal; restoring layout must not silently authorize execution.
+
+The workspace can first host existing static HTML previews. It need not wait for the file bridge. Conversely, the HTML Run experiment can use the existing file surface before this workspace exists. The proposals complement each other without requiring a stacked implementation.
+
+## Implementation directions
+
+| Direction | Fit | Tradeoff |
+| --- | --- | --- |
+| Extend specialized panels | A small number of fixed content combinations | Adds special cases as tab types grow |
+| Generic one/two-pane workspace | The requested arrangement | Own tab movement, accessibility, restoration, and lifecycle policy |
+| Docking library | Arbitrary splits, floating panels, development-environment layouts | Adopt the library's layout and rendering model |
+
+Provisional preference: a generic two-pane workspace using the existing SplitPane primitive and drag-and-drop tooling. Agenta already depends on [dnd-kit](https://dndkit.com/). If arbitrary docking is intended, evaluate [Dockview](https://dockview.dev/docs/overview/introduction/) before building equivalent behavior. Its [inactive rendering policies](https://dockview.dev/docs/core/panels/rendering/) still require decisions about background work.
+
+If a library owns layout, adapt its state to persistence and commands rather than maintaining a second competing layout in Jotai. A library does not solve session identity, grants, callback ownership, or run cancellation.
+
+## Open engineering questions
+
+- Can the existing conversation hooks consume explicit visibility and focus without depending on the scope's single active session?
+- Which callbacks must move out of the conversation component before its runtime can safely outlive it?
+- Can file views consume stable drive/path references without the active session provider?
+- Which views need preserved browser document identity rather than restored React state?
+- What stable identifiers and interaction capabilities exist for child executions and remote computers?
+- Where should the workspace live so desktop changes preserve onboarding, drawers, prompt comparison, and the mobile host?
+
+A useful first experiment is moving a streaming conversation and a file preview between panes, then collapsing to one pane. Verify draft/scroll restoration, uninterrupted execution, correct shortcuts, and unchanged file identity. This would test the proposed boundaries before committing to a larger implementation.
From f94c53972ec3cc82d0557f29df1525f0dc8c1612 Mon Sep 17 00:00:00 2001
From: Mahmoud Mabrouk <4510758+mmabrouk@users.noreply.github.com>
Date: Fri, 11 Sep 2026 09:38:46 +0000
Subject: [PATCH 2/3] [docs] Remove generated-content labels
---
docs/design/playground-workspace/README.md | 2 +-
docs/design/playground-workspace/prd.md | 2 +-
docs/design/playground-workspace/rfc.md | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/design/playground-workspace/README.md b/docs/design/playground-workspace/README.md
index fbaf641c98b..ded26a3a4a5 100644
--- a/docs/design/playground-workspace/README.md
+++ b/docs/design/playground-workspace/README.md
@@ -1,6 +1,6 @@
# Playground workspace discussion
-> AGENT-GENERATED, low weight. Draft for founder and frontend review. No implementation or scope approval is implied.
+> Draft for founder and frontend review. No implementation or scope approval is implied.
Date: 2026-09-11.
diff --git a/docs/design/playground-workspace/prd.md b/docs/design/playground-workspace/prd.md
index cd798556225..30300a2ed27 100644
--- a/docs/design/playground-workspace/prd.md
+++ b/docs/design/playground-workspace/prd.md
@@ -1,6 +1,6 @@
# Product requirements: playground workspace
-> AGENT-GENERATED, low weight. Draft for discussion. Proposed requirements and scope need founder approval.
+> Draft for discussion. Proposed requirements and scope need founder approval.
Date: 2026-09-11. Technical companion: [initial RFC](rfc.md).
diff --git a/docs/design/playground-workspace/rfc.md b/docs/design/playground-workspace/rfc.md
index 4c594eccc64..6d3247e9558 100644
--- a/docs/design/playground-workspace/rfc.md
+++ b/docs/design/playground-workspace/rfc.md
@@ -1,6 +1,6 @@
# Initial RFC: playground workspace architecture
-> AGENT-GENERATED, low weight. Rough request for comments, not an approved technical design or implementation plan.
+> Rough request for comments, not an approved technical design or implementation plan.
Date: 2026-09-11. Product companion: [PRD](prd.md).
From ce32e8baf0df7492a7e05bcf595b0f99c572bcc5 Mon Sep 17 00:00:00 2001
From: Mahmoud Mabrouk <4510758+mmabrouk@users.noreply.github.com>
Date: Fri, 11 Sep 2026 09:51:35 +0000
Subject: [PATCH 3/3] [docs] Add interactive playground workspace concept
---
docs/design/playground-workspace/README.md | 2 +
.../playground-workspace/mockup/README.md | 54 +
.../playground-workspace/mockup/index.html | 12 +
.../mockup/package-lock.json | 2694 +++++++++++++++++
.../playground-workspace/mockup/package.json | 30 +
.../mockup/postcss.config.js | 1 +
.../mockup/preview-app.png | Bin 0 -> 129710 bytes
.../playground-workspace/mockup/preview.png | Bin 0 -> 140094 bytes
.../playground-workspace/mockup/src/main.tsx | 854 ++++++
.../playground-workspace/mockup/src/style.css | 889 ++++++
.../mockup/tailwind.config.ts | 22 +
.../playground-workspace/mockup/tsconfig.json | 19 +
.../mockup/vite.config.ts | 15 +
.../mockup/wrangler.jsonc | 5 +
14 files changed, 4597 insertions(+)
create mode 100644 docs/design/playground-workspace/mockup/README.md
create mode 100644 docs/design/playground-workspace/mockup/index.html
create mode 100644 docs/design/playground-workspace/mockup/package-lock.json
create mode 100644 docs/design/playground-workspace/mockup/package.json
create mode 100644 docs/design/playground-workspace/mockup/postcss.config.js
create mode 100644 docs/design/playground-workspace/mockup/preview-app.png
create mode 100644 docs/design/playground-workspace/mockup/preview.png
create mode 100644 docs/design/playground-workspace/mockup/src/main.tsx
create mode 100644 docs/design/playground-workspace/mockup/src/style.css
create mode 100644 docs/design/playground-workspace/mockup/tailwind.config.ts
create mode 100644 docs/design/playground-workspace/mockup/tsconfig.json
create mode 100644 docs/design/playground-workspace/mockup/vite.config.ts
create mode 100644 docs/design/playground-workspace/mockup/wrangler.jsonc
diff --git a/docs/design/playground-workspace/README.md b/docs/design/playground-workspace/README.md
index ded26a3a4a5..c486680fe09 100644
--- a/docs/design/playground-workspace/README.md
+++ b/docs/design/playground-workspace/README.md
@@ -4,6 +4,8 @@
Date: 2026-09-11.
+[Explore the interactive mockup](https://agenta-playground-workspace-concept.mahmoud-637.workers.dev) or read its [walkthrough and source notes](mockup/README.md).
+
The proposal turns the agent playground into one or two panes with movable tabs. A conversation, file, explorer, or application can occupy either pane.
Read [the product requirements document](prd.md) for the intended experience, then [the initial request for comments](rfc.md) for the architecture and tradeoffs. Both are deliberately high level. There is no implementation schedule or final interface contract.
diff --git a/docs/design/playground-workspace/mockup/README.md b/docs/design/playground-workspace/mockup/README.md
new file mode 100644
index 00000000000..1fe530d8e28
--- /dev/null
+++ b/docs/design/playground-workspace/mockup/README.md
@@ -0,0 +1,54 @@
+# Interactive playground concept
+
+[Open the Cloudflare preview](https://agenta-playground-workspace-concept.mahmoud-637.workers.dev).
+
+This desktop mockup illustrates the [PRD](../prd.md) and [RFC](../rfc.md). It uses local sample data and makes no agent, mounts, or remote-desktop API calls. Website and computer tabs are explicit placeholders. The Kanban example demonstrates the relationship to [#6529](https://github.com/Agenta-AI/agenta/pull/6529); it does not implement that proposal's HTML execution or permission bridge.
+
+## Try the idea
+
+1. Use the three scenario buttons to see a conversation beside a file, an app, or another conversation.
+2. Type a draft, then drag its tab into the other pane or use the pane's move button. The draft stays with the session. Dropping before another tab also changes order.
+3. Resize the divider with the pointer or focus it and press an arrow key. Switch to one pane to bring all open tabs together.
+4. Click a file card in the conversation. An already-open file receives focus; a new one opens in the other pane.
+5. Open the app scenario and move a board card. Select Files and expand `board.json` to see the same example data.
+6. Use the plus button to open another kind of tab, and the close button to close the selected tab. Reset restores the initial example.
+
+The layout, conversation drafts, example messages, and board data persist in this browser's local storage. The sidebar is visual context. On small screens the split workspace scrolls horizontally; the proposed mobile pane switcher is not implemented here.
+
+## Component reuse
+
+The mockup imports the repository's actual Button, Tabs, and SplitPane source from `web/packages/agenta-ui/src/components/ui/`. It also imports Agenta's generated theme variables, control scale, and shadcn token mapping. No copies of those components are maintained here.
+
+Relative source imports are deliberate for this standalone concept. They avoid loading the application's provider stack and require running the mockup inside a complete repository checkout. This is not the proposed production package structure.
+
+The content views and local interaction state are specific to the mockup. Native drag-and-drop illustrates tab placement; the move button supplies a keyboard-accessible alternative. Production runtime ownership, streaming, permissions, and complete accessibility remain subjects of the RFC.
+
+## Build and deploy
+
+From this directory, with Node.js 20 or newer:
+
+```sh
+npm ci --include=dev
+npx tsc --noEmit
+npm run build
+```
+
+The standalone dependency lock is local to this directory. A root application install is not required. Vite deduplicates component dependencies against this host; TypeScript uses local dependency paths for the same reason.
+
+With Cloudflare credentials supplied securely through the environment:
+
+```sh
+npx wrangler@4.72.0 deploy
+```
+
+The Worker serves static assets only. No credentials belong in the source or built assets.
+
+## Verification
+
+Built the static bundle and passed TypeScript checking. Tested the hosted URL with headless Chromium: tab movement by button and drag, draft preservation across move/collapse/reload, keyboard divider resizing, adding and closing tabs, and board data reflected in Files. Inspected screenshots in light and dark themes. No browser JavaScript errors appeared in the exercised flows.
+
+This verifies the concept's local interactions, not production chat performance or backend behavior.
+
+
+
+
diff --git a/docs/design/playground-workspace/mockup/index.html b/docs/design/playground-workspace/mockup/index.html
new file mode 100644
index 00000000000..92972fafb0e
--- /dev/null
+++ b/docs/design/playground-workspace/mockup/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ Agenta · Playground workspace concept
+
+
+
+
+
+
diff --git a/docs/design/playground-workspace/mockup/package-lock.json b/docs/design/playground-workspace/mockup/package-lock.json
new file mode 100644
index 00000000000..6ec63d1c60c
--- /dev/null
+++ b/docs/design/playground-workspace/mockup/package-lock.json
@@ -0,0 +1,2694 @@
+{
+ "name": "agenta-playground-concept",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "agenta-playground-concept",
+ "version": "0.0.0",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.3",
+ "@radix-ui/react-tabs": "1.1.13",
+ "class-variance-authority": "0.7.1",
+ "clsx": "2.1.1",
+ "lucide-react": "0.479.0",
+ "react": "19.0.0",
+ "react-dom": "19.0.0",
+ "tailwind-merge": "3.3.1"
+ },
+ "devDependencies": {
+ "@types/node": "^22.13.10",
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "autoprefixer": "10.4.21",
+ "postcss": "8.5.6",
+ "tailwindcss": "3.4.17",
+ "typescript": "5.9.3",
+ "vite": "6.4.1"
+ }
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.3.0.tgz",
+ "integrity": "sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
+ "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@napi-rs/lzma-linux-x64-gnu": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz",
+ "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^22.20 || ^24.12 || >=25"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@radix-ui/primitive": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
+ "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
+ "license": "MIT"
+ },
+ "node_modules/@radix-ui/react-collection": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz",
+ "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-slot": "1.2.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-compose-refs": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-context": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-direction": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz",
+ "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-id": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-presence": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz",
+ "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-primitive": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-roving-focus": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz",
+ "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.3",
+ "@radix-ui/react-collection": "1.1.7",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-direction": "1.1.1",
+ "@radix-ui/react-id": "1.1.1",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-callback-ref": "1.1.1",
+ "@radix-ui/react-use-controllable-state": "1.2.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-slot": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-tabs": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz",
+ "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.3",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-direction": "1.1.1",
+ "@radix-ui/react-id": "1.1.1",
+ "@radix-ui/react-presence": "1.1.5",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-roving-focus": "1.1.11",
+ "@radix-ui/react-use-controllable-state": "1.2.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-callback-ref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-controllable-state": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-effect-event": "0.0.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-effect-event": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-layout-effect": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.1.tgz",
+ "integrity": "sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.1.tgz",
+ "integrity": "sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.1.tgz",
+ "integrity": "sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.1.tgz",
+ "integrity": "sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.1.tgz",
+ "integrity": "sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.1.tgz",
+ "integrity": "sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.1.tgz",
+ "integrity": "sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.1.tgz",
+ "integrity": "sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.1.tgz",
+ "integrity": "sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.1.tgz",
+ "integrity": "sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.1.tgz",
+ "integrity": "sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.1.tgz",
+ "integrity": "sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.1.tgz",
+ "integrity": "sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.1.tgz",
+ "integrity": "sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.1.tgz",
+ "integrity": "sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.1.tgz",
+ "integrity": "sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.1.tgz",
+ "integrity": "sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.1.tgz",
+ "integrity": "sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.1.tgz",
+ "integrity": "sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.1.tgz",
+ "integrity": "sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.1.tgz",
+ "integrity": "sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.1.tgz",
+ "integrity": "sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.1.tgz",
+ "integrity": "sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.1.tgz",
+ "integrity": "sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.1.tgz",
+ "integrity": "sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
+ "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.13.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz",
+ "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.20.0"
+ }
+ },
+ "node_modules/@types/react": {
+ "version": "19.0.10",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz",
+ "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz",
+ "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==",
+ "devOptional": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^19.0.0"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.21",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
+ "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.24.4",
+ "caniuse-lite": "^1.0.30001702",
+ "fraction.js": "^4.3.7",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.11.22",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.22.tgz",
+ "integrity": "sha512-pWc4w51fBFd7mav43/zKRC+RI6f4yfzQoVlfvE8dECePyfkn1bzLp01Fj0QACcyCZyFhiEMyD2qScfKRWgWibA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.9",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.9.tgz",
+ "integrity": "sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.11.20",
+ "caniuse-lite": "^1.0.30001810",
+ "electron-to-chromium": "^1.5.420",
+ "node-releases": "^2.0.54",
+ "update-browserslist-db": "^1.3.2"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001810",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz",
+ "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/class-variance-authority": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
+ "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "clsx": "^2.1.1"
+ },
+ "funding": {
+ "url": "https://polar.sh/cva"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.427",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.427.tgz",
+ "integrity": "sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "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"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
+ "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+ "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.2",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz",
+ "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.7",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lucide-react": {
+ "version": "0.479.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.479.0.tgz",
+ "integrity": "sha512-aBhNnveRhorBOK7uA4gDjgaf+YlHMdMhQ/3cupk6exM10hWlEU+2QtWYOfhXhjAsmdb6LeKR+NZnow4UxRRiTQ==",
+ "license": "ISC",
+ "peerDependencies": {
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.19",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz",
+ "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.55",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.55.tgz",
+ "integrity": "sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
+ "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.0.0",
+ "yaml": "^2.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "postcss": ">=8.0.9",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.1"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz",
+ "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "19.0.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz",
+ "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.0.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz",
+ "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "scheduler": "^0.25.0"
+ },
+ "peerDependencies": {
+ "react": "^19.0.0"
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.2.tgz",
+ "integrity": "sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.12",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
+ "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.63.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.1.tgz",
+ "integrity": "sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.9"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@napi-rs/lzma-linux-x64-gnu": "1.5.1",
+ "@rollup/rollup-android-arm-eabi": "4.63.1",
+ "@rollup/rollup-android-arm64": "4.63.1",
+ "@rollup/rollup-darwin-arm64": "4.63.1",
+ "@rollup/rollup-darwin-x64": "4.63.1",
+ "@rollup/rollup-freebsd-arm64": "4.63.1",
+ "@rollup/rollup-freebsd-x64": "4.63.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.63.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.63.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.63.1",
+ "@rollup/rollup-linux-arm64-musl": "4.63.1",
+ "@rollup/rollup-linux-loong64-gnu": "4.63.1",
+ "@rollup/rollup-linux-loong64-musl": "4.63.1",
+ "@rollup/rollup-linux-ppc64-gnu": "4.63.1",
+ "@rollup/rollup-linux-ppc64-musl": "4.63.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.63.1",
+ "@rollup/rollup-linux-riscv64-musl": "4.63.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.63.1",
+ "@rollup/rollup-linux-x64-gnu": "4.63.1",
+ "@rollup/rollup-linux-x64-musl": "4.63.1",
+ "@rollup/rollup-openbsd-x64": "4.63.1",
+ "@rollup/rollup-openharmony-arm64": "4.63.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.63.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.63.1",
+ "@rollup/rollup-win32-x64-gnu": "4.63.1",
+ "@rollup/rollup-win32-x64-msvc": "4.63.1",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz",
+ "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==",
+ "license": "MIT"
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.1",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
+ "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "tinyglobby": "^0.2.11",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tailwind-merge": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
+ "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/dcastil"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.17",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
+ "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.6.0",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.6",
+ "lilconfig": "^3.1.3",
+ "micromatch": "^4.0.8",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.4.47",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.2",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "resolve": "^1.22.8",
+ "sucrase": "^3.35.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz",
+ "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vite": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "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
+ }
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/yaml": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
+ "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/eemeli"
+ }
+ }
+ }
+}
diff --git a/docs/design/playground-workspace/mockup/package.json b/docs/design/playground-workspace/mockup/package.json
new file mode 100644
index 00000000000..1e422f2feb7
--- /dev/null
+++ b/docs/design/playground-workspace/mockup/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "agenta-playground-concept",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "build": "vite build",
+ "dev": "vite --host 0.0.0.0"
+ },
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.3",
+ "@radix-ui/react-tabs": "1.1.13",
+ "class-variance-authority": "0.7.1",
+ "clsx": "2.1.1",
+ "lucide-react": "0.479.0",
+ "react": "19.0.0",
+ "react-dom": "19.0.0",
+ "tailwind-merge": "3.3.1"
+ },
+ "devDependencies": {
+ "@types/node": "^22.13.10",
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "autoprefixer": "10.4.21",
+ "postcss": "8.5.6",
+ "tailwindcss": "3.4.17",
+ "typescript": "5.9.3",
+ "vite": "6.4.1"
+ }
+}
diff --git a/docs/design/playground-workspace/mockup/postcss.config.js b/docs/design/playground-workspace/mockup/postcss.config.js
new file mode 100644
index 00000000000..99417eb5a5d
--- /dev/null
+++ b/docs/design/playground-workspace/mockup/postcss.config.js
@@ -0,0 +1 @@
+export default { plugins: { tailwindcss: {}, autoprefixer: {} } };
diff --git a/docs/design/playground-workspace/mockup/preview-app.png b/docs/design/playground-workspace/mockup/preview-app.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff84304c13b9fc2f366978f261bcadab89bf14ab
GIT binary patch
literal 129710
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 |