From c39a669c439e4dc24d8d06c74d202ce688d2200c Mon Sep 17 00:00:00 2001 From: Ade Adedo Date: Sun, 9 Aug 2026 00:31:54 +0100 Subject: [PATCH] Add isolated Fixars product sites and deployment architecture --- .cpanel.yml | 12 + .github/workflows/subapps-quality.yml | 40 + README.md | 9 +- .../network-event-architecture.md | 152 ++ subapps/README.md | 19 + subapps/contracts/events/catalog.v1.json | 77 + .../events/event-envelope.schema.json | 36 + .../collaboard/assets/index-CDNgKr1y.js | 49 + .../collaboard/assets/index-Crbx-SnG.css | 1 + .../dist-products/collaboard/deployment.json | 7 + subapps/dist-products/collaboard/index.html | 18 + .../conceptnexus/assets/index-Crbx-SnG.css | 1 + .../conceptnexus/assets/index-CzNfGGEN.js | 49 + .../conceptnexus/deployment.json | 7 + subapps/dist-products/conceptnexus/index.html | 18 + .../skillscanvas/assets/index-BETtfA4F.js | 49 + .../skillscanvas/assets/index-Crbx-SnG.css | 1 + .../skillscanvas/deployment.json | 7 + subapps/dist-products/skillscanvas/index.html | 18 + .../vestden/assets/index-Crbx-SnG.css | 1 + .../vestden/assets/index-hIzCM4P9.js | 49 + subapps/dist-products/vestden/deployment.json | 7 + subapps/dist-products/vestden/index.html | 18 + subapps/index.html | 16 + subapps/package-lock.json | 1725 +++++++++++++++++ subapps/package.json | 18 + subapps/scripts/build-products.mjs | 82 + subapps/scripts/validate-architecture.mjs | 45 + subapps/src/main.jsx | 1364 +++++++++++++ subapps/src/styles.css | 1052 ++++++++++ subapps/vite.config.mjs | 7 + 31 files changed, 4953 insertions(+), 1 deletion(-) create mode 100644 .cpanel.yml create mode 100644 .github/workflows/subapps-quality.yml create mode 100644 docs/architecture/network-event-architecture.md create mode 100644 subapps/README.md create mode 100644 subapps/contracts/events/catalog.v1.json create mode 100644 subapps/contracts/events/event-envelope.schema.json create mode 100644 subapps/dist-products/collaboard/assets/index-CDNgKr1y.js create mode 100644 subapps/dist-products/collaboard/assets/index-Crbx-SnG.css create mode 100644 subapps/dist-products/collaboard/deployment.json create mode 100644 subapps/dist-products/collaboard/index.html create mode 100644 subapps/dist-products/conceptnexus/assets/index-Crbx-SnG.css create mode 100644 subapps/dist-products/conceptnexus/assets/index-CzNfGGEN.js create mode 100644 subapps/dist-products/conceptnexus/deployment.json create mode 100644 subapps/dist-products/conceptnexus/index.html create mode 100644 subapps/dist-products/skillscanvas/assets/index-BETtfA4F.js create mode 100644 subapps/dist-products/skillscanvas/assets/index-Crbx-SnG.css create mode 100644 subapps/dist-products/skillscanvas/deployment.json create mode 100644 subapps/dist-products/skillscanvas/index.html create mode 100644 subapps/dist-products/vestden/assets/index-Crbx-SnG.css create mode 100644 subapps/dist-products/vestden/assets/index-hIzCM4P9.js create mode 100644 subapps/dist-products/vestden/deployment.json create mode 100644 subapps/dist-products/vestden/index.html create mode 100644 subapps/index.html create mode 100644 subapps/package-lock.json create mode 100644 subapps/package.json create mode 100644 subapps/scripts/build-products.mjs create mode 100644 subapps/scripts/validate-architecture.mjs create mode 100644 subapps/src/main.jsx create mode 100644 subapps/src/styles.css create mode 100644 subapps/vite.config.mjs diff --git a/.cpanel.yml b/.cpanel.yml new file mode 100644 index 0000000..092e8a6 --- /dev/null +++ b/.cpanel.yml @@ -0,0 +1,12 @@ +--- +deployment: + tasks: + # Canonical product origins are isolated. Connector subdomains only redirect. + - /bin/mkdir -p /home/fixarsgr/public_html/skillscanvas.co + - /bin/cp -R subapps/dist-products/skillscanvas/. /home/fixarsgr/public_html/skillscanvas.co/ + - /bin/mkdir -p /home/fixarsgr/public_html/collaboard.co + - /bin/cp -R subapps/dist-products/collaboard/. /home/fixarsgr/public_html/collaboard.co/ + - /bin/mkdir -p /home/fixarsgr/conceptsnexus.co + - /bin/cp -R subapps/dist-products/conceptnexus/. /home/fixarsgr/conceptsnexus.co/ + - /bin/mkdir -p /home/fixarsgr/vestden.co + - /bin/cp -R subapps/dist-products/vestden/. /home/fixarsgr/vestden.co/ diff --git a/.github/workflows/subapps-quality.yml b/.github/workflows/subapps-quality.yml new file mode 100644 index 0000000..493161f --- /dev/null +++ b/.github/workflows/subapps-quality.yml @@ -0,0 +1,40 @@ +name: Sub-app quality + +on: + pull_request: + paths: + - "subapps/**" + - ".cpanel.yml" + - "docs/architecture/network-event-architecture.md" + - ".github/workflows/subapps-quality.yml" + push: + branches: [main] + paths: + - "subapps/**" + - ".cpanel.yml" + - "docs/architecture/network-event-architecture.md" + - ".github/workflows/subapps-quality.yml" + +permissions: + contents: read + +jobs: + validate: + runs-on: ubuntu-latest + defaults: + run: + working-directory: subapps + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + cache-dependency-path: subapps/package-lock.json + - run: npm ci + - run: npm audit --audit-level=high + - run: npm run architecture:validate + - run: npm run build:products + - name: Verify committed product artifacts are reproducible + working-directory: . + run: git diff --exit-code -- subapps/dist-products diff --git a/README.md b/README.md index 19c8a3c..f8745f5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Fixars -The connected productivity ecosystem: **invest in ideas (VestDen)**, **validate concepts (ConceptNexus)**, **collaborate on projects (Collaboard)**, and **showcase/book talent (SkillsCanvas)** — all from a single account with shared points, notifications, and real-time activity. +The connected productivity ecosystem: **invest in ideas (VestDen)**, **validate concepts (ConceptsNexus)**, **collaborate on projects (CollaBoard)**, and **showcase/book talent (SkillsCanvas)** — all from a single account with shared points, notifications, and real-time activity. Underneath the apps sits the **Fixars Context Layer (FCL)** — the ontology/application layer where the durable value lives: models commoditise, your context compounds. See [`docs/fcl-spec.md`](docs/fcl-spec.md) (the layer's specification) and [`docs/strategy-sovereignty.md`](docs/strategy-sovereignty.md) (the positioning). @@ -65,6 +65,13 @@ The currently deployed public waitlist is maintained as a separate project in [`landing-page/`](landing-page/). Keeping it isolated allows the waitlist to be deployed without publishing or changing the broader Fixars application. +### Independent product sites + +The four standalone product-site implementations and their independently built +artifacts live in [`subapps/`](subapps/). Their canonical domains, Fixars +connector redirects, event boundaries, and cPanel deployment roots are recorded +in [`docs/architecture/network-event-architecture.md`](docs/architecture/network-event-architecture.md). + ## Contributing 1. Branch from `main` diff --git a/docs/architecture/network-event-architecture.md b/docs/architecture/network-event-architecture.md new file mode 100644 index 0000000..1b52996 --- /dev/null +++ b/docs/architecture/network-event-architecture.md @@ -0,0 +1,152 @@ +# Fixars Network and Event Architecture + +Status: approved direction, pre-deployment implementation plan + +This document combines the public-domain routing model with the internal event and webhook model. It does not assert that DNS, certificates, webhook endpoints, databases, queues, or production integrations are already live. + +## 1. Architectural boundaries + +- `FixarsGroup.com` is the corporate governance and portfolio site. +- `Fixars.ai` is the public ecosystem hub, discovery layer, and read-only cross-product activity surface. +- SkillsCanvas, ConceptsNexus, CollaBoard, and VestDen remain independently deployable products with separate canonical domains and data ownership. +- Fixars.ai may hold derived projections for discovery and activity feeds. It must not become the authoritative database for every product. +- The current Fixars.ai waitlist root remains isolated until a later, explicitly approved hub migration. + +## 2. Public routing + +| Product | Canonical domain | Fixars connector subdomain | Fixars connector path | +| ------------- | --------------------------- | ----------------------------- | ---------------------------- | +| SkillsCanvas | `https://skillscanvas.co/` | `https://skills.fixars.ai/` | `https://fixars.ai/skills` | +| ConceptsNexus | `https://conceptsnexus.co/` | `https://concepts.fixars.ai/` | `https://fixars.ai/concepts` | +| CollaBoard | `https://collaboard.co/` | `https://collab.fixars.ai/` | `https://fixars.ai/collab` | +| VestDen | `https://vestden.co/` | `https://vest.fixars.ai/` | `https://fixars.ai/vest` | + +The standalone product domain is canonical. Connector subdomains and paths issue server-side permanent redirects and preserve the remainder of the path. For example, `https://fixars.ai/skills/passport` redirects to `https://skillscanvas.co/passport`. + +Connector URLs are not duplicate deployments and are not separate sources of truth. Canonical product HTML, sitemaps, analytics, and search signals live on the standalone domains. + +## 3. Network layers + +| Layer | Responsibility | Initial implementation | +| ----------------- | ------------------------------------------------------------ | ---------------------------------------------------------------------- | +| Authoritative DNS | Resolve canonical and connector hostnames | AfeesHost zones, verified before changes | +| Edge and TLS | HTTPS, WAF/CDN where available, redirects, basic rate limits | One authoritative redirect layer only | +| Product origins | Serve four independently validated builds | Four isolated document roots/build outputs | +| Identity | Shared login and consent | Later `auth.fixars.ai` using OAuth/OIDC; no broad parent-domain cookie | +| API gateway | Route authenticated synchronous requests | Later `api.fixars.ai/{product}` to bounded product services | +| Event gateway | Route asynchronous product facts | Later private `events.fixars.ai` service plus queue | +| Inbound webhooks | Receive narrow third-party notifications | Later `hooks.fixars.ai/inbound/{provider}` endpoints | +| Product data | Authoritative state and append-only records | Separate product-owned databases and policies | + +## 4. When to use each interaction + +- Browser navigation uses canonical URLs and redirects. +- User commands and current-state reads use authenticated APIs. +- Shared login uses OAuth/OIDC. +- Server-to-server notifications use events, with webhook delivery where HTTP is the appropriate adapter. +- Browser live updates use SSE or WebSocket connections fed from product projections. +- Webhooks do not replace APIs, databases, identity, DNS, redirects, or browser realtime channels. + +## 5. Event flow + +1. A product validates and commits a state change in its own database. +2. The same database transaction appends an event to that product's outbox. +3. An outbox dispatcher publishes the event to the Fixars event gateway/queue. +4. The gateway records delivery state and routes the event to approved consumers. +5. Consumers process the event idempotently and update their own local projection or workflow. +6. Fixars.ai updates a read-only ecosystem projection for discovery and activity display. +7. Failed deliveries retry with exponential backoff and jitter, then move to a dead-letter queue for controlled replay. + +No consumer may treat receipt of an event as proof that another consumer completed its work. + +## 6. Initial event catalogue + +The machine-readable catalogue is in `contracts/events/catalog.v1.json`. The first contracts cover: + +- ConceptsNexus concept certification and required-skill publication. +- SkillsCanvas verified-skill and passport updates. +- CollaBoard capsule creation, artifact approval, and milestone approval. +- VestDen diligence updates and restricted escrow-release requests. + +Event names use reverse-DNS style identifiers and explicit versions. Payloads carry identifiers and necessary facts, not whole product records or unnecessary personal data. + +## 7. VestDen consequence boundary + +Events may start a VestDen diligence or verification workflow. They must not directly release escrow, create a position, initiate a payment, or mark a payout successful. + +A consequence-bearing VestDen workflow must: + +1. Verify the event signature and replay window. +2. Deduplicate the event ID. +3. Fetch authoritative records through authenticated APIs. +4. Recalculate server-owned gates and values. +5. Apply legal, policy, and approval controls. +6. Write an append-only decision record. +7. Call a regulated provider only from an authorised server-side workflow. +8. Reconcile the provider's independently verified response/webhook before changing financial state. + +## 8. Webhook delivery requirements + +- HTTPS only. +- Per-producer or per-endpoint signing credentials. +- Signature verification over the exact raw request body. +- Signed timestamp and bounded replay window. +- Unique event IDs and idempotent consumers. +- Quick `2xx` acknowledgement after durable queueing, not after lengthy business logic. +- Exponential retry with jitter, dead-letter storage, and audited replay. +- Explicit event subscriptions; no receive-everything endpoints by default. +- Payload-size limits, schema validation, rate limits, and structured security logs. +- Separate sandbox and production endpoints, secrets, queues, and data. +- Event metadata must not contain secrets or sensitive personal information. + +## 9. Deployment phases + +### Phase A: current static products + +- Produce four isolated frontend build outputs. +- Create four hosting roots. +- Attach canonical domains and HTTPS. +- Configure subdomain and path redirects. +- Keep webhook/event runtime disabled. + +### Phase B: first product backends + +- Define product-owned databases and APIs. +- Implement shared event-envelope validation. +- Add transactional outbox tables and dispatchers. +- Operate one internal queue and event gateway. +- Build Fixars.ai read-only projections. + +### Phase C: inbound and outbound webhooks + +- Add provider-specific inbound endpoints only when a provider is selected. +- Add signed internal webhook delivery for consumers that cannot use the queue directly. +- Add delivery monitoring, replay tooling, and contract tests. + +### Phase D: regulated VestDen integration + +- Complete legal and provider review. +- Implement server-verified financial state and reconciliation. +- Test failure, duplication, replay, reordering, and rollback cases before enabling consequence-bearing workflows. + +## 10. Go-live gates + +- DNS zone exports and rollback values captured. +- Exactly one redirect layer selected. +- All canonical and connector hostnames have valid certificates. +- Canonical redirects preserve deep paths and never loop. +- Four product builds pass desktop and 390px checks. +- Event catalogue validation passes. +- Webhook endpoints reject bad signatures, expired timestamps, duplicates, invalid schemas, and oversized payloads. +- Queue, retry, dead-letter, replay, and audit behaviour are tested. +- No client-side code can produce authoritative cross-product scores or financial success states. +- Live URLs, status codes, certificates, canonical tags, and product identity are verified after deployment. + +## 11. Immediate next work + +1. Complete a read-only cPanel/edge inventory. +2. Use the four deterministic outputs generated by `npm run build:products`. +3. Prepare redirect configuration without applying it. +4. Review the event catalogue and approve the initial event names and consumers. +5. Implement only the static-domain deployment first. +6. Start the event runtime when the first authoritative product backend exists. diff --git a/subapps/README.md b/subapps/README.md new file mode 100644 index 0000000..633fd27 --- /dev/null +++ b/subapps/README.md @@ -0,0 +1,19 @@ +# Fixars independent product sites + +This package produces four independently deployable static artifacts for +SkillsCanvas, ConceptsNexus, CollaBoard, and VestDen. + +```bash +npm install +npm run architecture:validate +npm run build:products +``` + +`dist-products/` contains the exact canonical-domain artifacts. The standalone +`.co` domains are the only indexable product origins. The `*.fixars.ai` +connectors are permanent redirects and must not be configured as duplicate app +origins. + +The repository-root `.cpanel.yml` copies only these validated artifacts into +their isolated document roots. It does not alter Fixars.ai, its waitlist, or +FixarsGroup.com. diff --git a/subapps/contracts/events/catalog.v1.json b/subapps/contracts/events/catalog.v1.json new file mode 100644 index 0000000..27afc84 --- /dev/null +++ b/subapps/contracts/events/catalog.v1.json @@ -0,0 +1,77 @@ +{ + "catalog_version": "1.0.0", + "envelope_schema": "./event-envelope.schema.json", + "products": [ + "fixars-hub", + "concepts-nexus", + "skills-canvas", + "colla-board", + "vest-den", + "vest-den-verification" + ], + "events": [ + { + "type": "ai.fixars.concepts.concept.certified.v1", + "producer": "concepts-nexus", + "consumers": ["fixars-hub", "skills-canvas", "colla-board"], + "classification": "internal", + "description": "A concept completed the authoritative certification workflow." + }, + { + "type": "ai.fixars.concepts.skills.required.v1", + "producer": "concepts-nexus", + "consumers": ["skills-canvas", "colla-board"], + "classification": "internal", + "description": "A certified concept published a versioned capability requirement." + }, + { + "type": "ai.fixars.skills.skill.verified.v1", + "producer": "skills-canvas", + "consumers": ["fixars-hub", "colla-board"], + "classification": "restricted", + "description": "An authoritative assessment changed a verified skill record." + }, + { + "type": "ai.fixars.skills.passport.updated.v1", + "producer": "skills-canvas", + "consumers": ["colla-board", "vest-den"], + "classification": "restricted", + "description": "A versioned passport projection is available for authorised consumers." + }, + { + "type": "ai.fixars.collab.capsule.created.v1", + "producer": "colla-board", + "consumers": ["fixars-hub", "concepts-nexus"], + "classification": "internal", + "description": "A project capsule was created from approved source context." + }, + { + "type": "ai.fixars.collab.artifact.approved.v1", + "producer": "colla-board", + "consumers": ["skills-canvas", "vest-den"], + "classification": "restricted", + "description": "A versioned project artifact was approved and recorded as evidence." + }, + { + "type": "ai.fixars.collab.milestone.approved.v1", + "producer": "colla-board", + "consumers": ["fixars-hub", "vest-den-verification"], + "classification": "restricted", + "description": "A milestone entered verification; this event cannot release escrow." + }, + { + "type": "ai.fixars.vest.diligence.updated.v1", + "producer": "vest-den", + "consumers": ["fixars-hub"], + "classification": "restricted", + "description": "A non-financial diligence projection changed." + }, + { + "type": "ai.fixars.vest.escrow.release.requested.v1", + "producer": "vest-den", + "consumers": ["vest-den-verification"], + "classification": "highly-restricted", + "description": "A request entered the restricted verification workflow; no release has occurred." + } + ] +} diff --git a/subapps/contracts/events/event-envelope.schema.json b/subapps/contracts/events/event-envelope.schema.json new file mode 100644 index 0000000..5612a62 --- /dev/null +++ b/subapps/contracts/events/event-envelope.schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://fixars.ai/schemas/events/envelope.v1.json", + "title": "Fixars ecosystem event envelope v1", + "type": "object", + "additionalProperties": false, + "required": [ + "specversion", + "id", + "type", + "source", + "subject", + "time", + "datacontenttype", + "dataschema", + "correlationid", + "data" + ], + "properties": { + "specversion": { "const": "1.0" }, + "id": { "type": "string", "minLength": 16, "maxLength": 128 }, + "type": { + "type": "string", + "pattern": "^ai\\.fixars\\.[a-z0-9.]+\\.v[1-9][0-9]*$" + }, + "source": { "type": "string", "format": "uri-reference" }, + "subject": { "type": "string", "minLength": 1, "maxLength": 256 }, + "time": { "type": "string", "format": "date-time" }, + "datacontenttype": { "const": "application/json" }, + "dataschema": { "type": "string", "format": "uri" }, + "correlationid": { "type": "string", "minLength": 8, "maxLength": 128 }, + "traceparent": { "type": "string", "maxLength": 256 }, + "tenantid": { "type": "string", "minLength": 1, "maxLength": 128 }, + "data": { "type": "object" } + } +} diff --git a/subapps/dist-products/collaboard/assets/index-CDNgKr1y.js b/subapps/dist-products/collaboard/assets/index-CDNgKr1y.js new file mode 100644 index 0000000..72dc189 --- /dev/null +++ b/subapps/dist-products/collaboard/assets/index-CDNgKr1y.js @@ -0,0 +1,49 @@ +(function(){const E=document.createElement("link").relList;if(E&&E.supports&&E.supports("modulepreload"))return;for(const C of document.querySelectorAll('link[rel="modulepreload"]'))h(C);new MutationObserver(C=>{for(const R of C)if(R.type==="childList")for(const L of R.addedNodes)L.tagName==="LINK"&&L.rel==="modulepreload"&&h(L)}).observe(document,{childList:!0,subtree:!0});function _(C){const R={};return C.integrity&&(R.integrity=C.integrity),C.referrerPolicy&&(R.referrerPolicy=C.referrerPolicy),C.crossOrigin==="use-credentials"?R.credentials="include":C.crossOrigin==="anonymous"?R.credentials="omit":R.credentials="same-origin",R}function h(C){if(C.ep)return;C.ep=!0;const R=_(C);fetch(C.href,R)}})();var cf={exports:{}},pu={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var gr;function tv(){if(gr)return pu;gr=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.fragment");function _(h,C,R){var L=null;if(R!==void 0&&(L=""+R),C.key!==void 0&&(L=""+C.key),"key"in C){R={};for(var X in C)X!=="key"&&(R[X]=C[X])}else R=C;return C=R.ref,{$$typeof:m,type:h,key:L,ref:C!==void 0?C:null,props:R}}return pu.Fragment=E,pu.jsx=_,pu.jsxs=_,pu}var Sr;function ev(){return Sr||(Sr=1,cf.exports=tv()),cf.exports}var f=ev(),ff={exports:{}},G={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var br;function av(){if(br)return G;br=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),R=Symbol.for("react.consumer"),L=Symbol.for("react.context"),X=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),z=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),hl=Symbol.iterator;function kl(d){return d===null||typeof d!="object"?null:(d=hl&&d[hl]||d["@@iterator"],typeof d=="function"?d:null)}var ql={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Hl=Object.assign,Dt={};function Wl(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}Wl.prototype.isReactComponent={},Wl.prototype.setState=function(d,x){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,x,"setState")},Wl.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function $t(){}$t.prototype=Wl.prototype;function Ul(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}var ct=Ul.prototype=new $t;ct.constructor=Ul,Hl(ct,Wl.prototype),ct.isPureReactComponent=!0;var zt=Array.isArray;function Yl(){}var $={H:null,A:null,T:null,S:null},Gl=Object.prototype.hasOwnProperty;function xt(d,x,N){var M=N.ref;return{$$typeof:m,type:d,key:x,ref:M!==void 0?M:null,props:N}}function Ze(d,x){return xt(d.type,x,d.props)}function Et(d){return typeof d=="object"&&d!==null&&d.$$typeof===m}function Xl(d){var x={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(N){return x[N]})}var Te=/\/+/g;function Mt(d,x){return typeof d=="object"&&d!==null&&d.key!=null?Xl(""+d.key):x.toString(36)}function St(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then(Yl,Yl):(d.status="pending",d.then(function(x){d.status==="pending"&&(d.status="fulfilled",d.value=x)},function(x){d.status==="pending"&&(d.status="rejected",d.reason=x)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function p(d,x,N,M,Q){var w=typeof d;(w==="undefined"||w==="boolean")&&(d=null);var el=!1;if(d===null)el=!0;else switch(w){case"bigint":case"string":case"number":el=!0;break;case"object":switch(d.$$typeof){case m:case E:el=!0;break;case I:return el=d._init,p(el(d._payload),x,N,M,Q)}}if(el)return Q=Q(d),el=M===""?"."+Mt(d,0):M,zt(Q)?(N="",el!=null&&(N=el.replace(Te,"$&/")+"/"),p(Q,x,N,"",function(Na){return Na})):Q!=null&&(Et(Q)&&(Q=Ze(Q,N+(Q.key==null||d&&d.key===Q.key?"":(""+Q.key).replace(Te,"$&/")+"/")+el)),x.push(Q)),1;el=0;var Rl=M===""?".":M+":";if(zt(d))for(var gl=0;gl>>1,sl=p[nl];if(0>>1;nlC(N,Y))MC(Q,N)?(p[nl]=Q,p[M]=Y,nl=M):(p[nl]=N,p[x]=Y,nl=x);else if(MC(Q,Y))p[nl]=Q,p[M]=Y,nl=M;else break l}}return A}function C(p,A){var Y=p.sortIndex-A.sortIndex;return Y!==0?Y:p.id-A.id}if(m.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var R=performance;m.unstable_now=function(){return R.now()}}else{var L=Date,X=L.now();m.unstable_now=function(){return L.now()-X}}var O=[],z=[],I=1,q=null,hl=3,kl=!1,ql=!1,Hl=!1,Dt=!1,Wl=typeof setTimeout=="function"?setTimeout:null,$t=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function ct(p){for(var A=_(z);A!==null;){if(A.callback===null)h(z);else if(A.startTime<=p)h(z),A.sortIndex=A.expirationTime,E(O,A);else break;A=_(z)}}function zt(p){if(Hl=!1,ct(p),!ql)if(_(O)!==null)ql=!0,Yl||(Yl=!0,Xl());else{var A=_(z);A!==null&&St(zt,A.startTime-p)}}var Yl=!1,$=-1,Gl=5,xt=-1;function Ze(){return Dt?!0:!(m.unstable_now()-xtp&&Ze());){var nl=q.callback;if(typeof nl=="function"){q.callback=null,hl=q.priorityLevel;var sl=nl(q.expirationTime<=p);if(p=m.unstable_now(),typeof sl=="function"){q.callback=sl,ct(p),A=!0;break t}q===_(O)&&h(O),ct(p)}else h(O);q=_(O)}if(q!==null)A=!0;else{var d=_(z);d!==null&&St(zt,d.startTime-p),A=!1}}break l}finally{q=null,hl=Y,kl=!1}A=void 0}}finally{A?Xl():Yl=!1}}}var Xl;if(typeof Ul=="function")Xl=function(){Ul(Et)};else if(typeof MessageChannel<"u"){var Te=new MessageChannel,Mt=Te.port2;Te.port1.onmessage=Et,Xl=function(){Mt.postMessage(null)}}else Xl=function(){Wl(Et,0)};function St(p,A){$=Wl(function(){p(m.unstable_now())},A)}m.unstable_IdlePriority=5,m.unstable_ImmediatePriority=1,m.unstable_LowPriority=4,m.unstable_NormalPriority=3,m.unstable_Profiling=null,m.unstable_UserBlockingPriority=2,m.unstable_cancelCallback=function(p){p.callback=null},m.unstable_forceFrameRate=function(p){0>p||125nl?(p.sortIndex=Y,E(z,p),_(O)===null&&p===_(z)&&(Hl?($t($),$=-1):Hl=!0,St(zt,Y-nl))):(p.sortIndex=sl,E(O,p),ql||kl||(ql=!0,Yl||(Yl=!0,Xl()))),p},m.unstable_shouldYield=Ze,m.unstable_wrapCallback=function(p){var A=hl;return function(){var Y=hl;hl=A;try{return p.apply(this,arguments)}finally{hl=Y}}}})(df)),df}var Tr;function nv(){return Tr||(Tr=1,of.exports=uv()),of.exports}var rf={exports:{}},Cl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zr;function iv(){if(zr)return Cl;zr=1;var m=mf();function E(O){var z="https://react.dev/errors/"+O;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),rf.exports=iv(),rf.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Er;function fv(){if(Er)return ju;Er=1;var m=nv(),E=mf(),_=cv();function h(l){var t="https://react.dev/errors/"+l;if(1sl||(l.current=nl[sl],nl[sl]=null,sl--)}function N(l,t){sl++,nl[sl]=l.current,l.current=t}var M=d(null),Q=d(null),w=d(null),el=d(null);function Rl(l,t){switch(N(w,t),N(Q,l),N(M,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Xd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Xd(t),l=Qd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}x(M),N(M,l)}function gl(){x(M),x(Q),x(w)}function Na(l){l.memoizedState!==null&&N(el,l);var t=M.current,e=Qd(t,l.type);t!==e&&(N(Q,l),N(M,e))}function Tu(l){Q.current===l&&(x(M),x(Q)),el.current===l&&(x(el),yu._currentValue=Y)}var Zn,vf;function ze(l){if(Zn===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Zn=t&&t[1]||"",vf=-1)":-1u||s[a]!==y[u]){var b=` +`+s[a].replace(" at new "," at ");return l.displayName&&b.includes("")&&(b=b.replace("",l.displayName)),b}while(1<=a&&0<=u);break}}}finally{Vn=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:"")?ze(e):""}function Ur(l,t){switch(l.tag){case 26:case 27:case 5:return ze(l.type);case 16:return ze("Lazy");case 13:return l.child!==t&&t!==null?ze("Suspense Fallback"):ze("Suspense");case 19:return ze("SuspenseList");case 0:case 15:return Ln(l.type,!1);case 11:return Ln(l.type.render,!1);case 1:return Ln(l.type,!0);case 31:return ze("Activity");default:return""}}function yf(l){try{var t="",e=null;do t+=Ur(l,e),e=l,l=l.return;while(l);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}var wn=Object.prototype.hasOwnProperty,Kn=m.unstable_scheduleCallback,Jn=m.unstable_cancelCallback,Cr=m.unstable_shouldYield,Hr=m.unstable_requestPaint,$l=m.unstable_now,Rr=m.unstable_getCurrentPriorityLevel,gf=m.unstable_ImmediatePriority,Sf=m.unstable_UserBlockingPriority,zu=m.unstable_NormalPriority,Br=m.unstable_LowPriority,bf=m.unstable_IdlePriority,qr=m.log,Yr=m.unstable_setDisableYieldValue,_a=null,Fl=null;function Ft(l){if(typeof qr=="function"&&Yr(l),Fl&&typeof Fl.setStrictMode=="function")try{Fl.setStrictMode(_a,l)}catch{}}var Il=Math.clz32?Math.clz32:Qr,Gr=Math.log,Xr=Math.LN2;function Qr(l){return l>>>=0,l===0?32:31-(Gr(l)/Xr|0)|0}var xu=256,Eu=262144,Au=4194304;function xe(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Nu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=xe(a):(i&=c,i!==0?u=xe(i):e||(e=c&~l,e!==0&&(u=xe(e))))):(c=a&~n,c!==0?u=xe(c):i!==0?u=xe(i):e||(e=a&~l,e!==0&&(u=xe(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function Oa(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Zr(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function pf(){var l=Au;return Au<<=1,(Au&62914560)===0&&(Au=4194304),l}function kn(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function Da(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Vr(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,s=l.expirationTimes,y=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Wr=/[\n"\\]/g;function st(l){return l.replace(Wr,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function li(l,t,e,a,u,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ft(t)):l.value!==""+ft(t)&&(l.value=""+ft(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?ti(l,i,ft(t)):e!=null?ti(l,i,ft(e)):a!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+ft(c):l.removeAttribute("name")}function Cf(l,t,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){Pn(l);return}e=e!=null?""+ft(e):"",t=t!=null?""+ft(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),Pn(l)}function ti(l,t,e){t==="number"&&Du(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function ke(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ii=!1;if(Ht)try{var Ha={};Object.defineProperty(Ha,"passive",{get:function(){ii=!0}}),window.addEventListener("test",Ha,Ha),window.removeEventListener("test",Ha,Ha)}catch{ii=!1}var Pt=null,ci=null,Uu=null;function Xf(){if(Uu)return Uu;var l,t=ci,e=t.length,a,u="value"in Pt?Pt.value:Pt.textContent,n=u.length;for(l=0;l=qa),Kf=" ",Jf=!1;function kf(l,t){switch(l){case"keyup":return zh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Ie=!1;function Eh(l,t){switch(l){case"compositionend":return Wf(t);case"keypress":return t.which!==32?null:(Jf=!0,Kf);case"textInput":return l=t.data,l===Kf&&Jf?null:l;default:return null}}function Ah(l,t){if(Ie)return l==="compositionend"||!ri&&kf(l,t)?(l=Xf(),Uu=ci=Pt=null,Ie=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=as(e)}}function ns(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?ns(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function is(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Du(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Du(l.document)}return t}function vi(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var Hh=Ht&&"documentMode"in document&&11>=document.documentMode,Pe=null,yi=null,Qa=null,gi=!1;function cs(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;gi||Pe==null||Pe!==Du(a)||(a=Pe,"selectionStart"in a&&vi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qa&&Xa(Qa,a)||(Qa=a,a=An(yi,"onSelect"),0>=i,u-=i,At=1<<32-Il(t)+u|e<V?(W=U,U=null):W=U.sibling;var ll=g(r,U,v[V],j);if(ll===null){U===null&&(U=W);break}l&&U&&ll.alternate===null&&t(r,U),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll,U=W}if(V===v.length)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;VV?(W=U,U=null):W=U.sibling;var je=g(r,U,ll.value,j);if(je===null){U===null&&(U=W);break}l&&U&&je.alternate===null&&t(r,U),o=n(je,o,V),P===null?H=je:P.sibling=je,P=je,U=W}if(ll.done)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;!ll.done;V++,ll=v.next())ll=T(r,ll.value,j),ll!==null&&(o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return F&&Bt(r,V),H}for(U=a(U);!ll.done;V++,ll=v.next())ll=S(U,r,V,ll.value,j),ll!==null&&(l&&ll.alternate!==null&&U.delete(ll.key===null?V:ll.key),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return l&&U.forEach(function(lv){return t(r,lv)}),F&&Bt(r,V),H}function fl(r,o,v,j){if(typeof v=="object"&&v!==null&&v.type===Hl&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case kl:l:{for(var H=v.key;o!==null;){if(o.key===H){if(H=v.type,H===Hl){if(o.tag===7){e(r,o.sibling),j=u(o,v.props.children),j.return=r,r=j;break l}}else if(o.elementType===H||typeof H=="object"&&H!==null&&H.$$typeof===Gl&&Re(H)===o.type){e(r,o.sibling),j=u(o,v.props),Ja(j,v),j.return=r,r=j;break l}e(r,o);break}else t(r,o);o=o.sibling}v.type===Hl?(j=De(v.props.children,r.mode,j,v.key),j.return=r,r=j):(j=Zu(v.type,v.key,v.props,null,r.mode,j),Ja(j,v),j.return=r,r=j)}return i(r);case ql:l:{for(H=v.key;o!==null;){if(o.key===H)if(o.tag===4&&o.stateNode.containerInfo===v.containerInfo&&o.stateNode.implementation===v.implementation){e(r,o.sibling),j=u(o,v.children||[]),j.return=r,r=j;break l}else{e(r,o);break}else t(r,o);o=o.sibling}j=xi(v,r.mode,j),j.return=r,r=j}return i(r);case Gl:return v=Re(v),fl(r,o,v,j)}if(St(v))return D(r,o,v,j);if(Xl(v)){if(H=Xl(v),typeof H!="function")throw Error(h(150));return v=H.call(v),B(r,o,v,j)}if(typeof v.then=="function")return fl(r,o,Wu(v),j);if(v.$$typeof===Ul)return fl(r,o,wu(r,v),j);$u(r,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,o!==null&&o.tag===6?(e(r,o.sibling),j=u(o,v),j.return=r,r=j):(e(r,o),j=zi(v,r.mode,j),j.return=r,r=j),i(r)):e(r,o)}return function(r,o,v,j){try{Ka=0;var H=fl(r,o,v,j);return oa=null,H}catch(U){if(U===sa||U===Ju)throw U;var P=lt(29,U,null,r.mode);return P.lanes=j,P.return=r,P}finally{}}}var qe=Ds(!0),Ms=Ds(!1),ue=!1;function Bi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qi(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ne(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ie(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(tl&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Qu(l),ms(l,null,e),t}return Xu(l,a,t,e),Qu(l)}function ka(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}function Yi(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Gi=!1;function Wa(){if(Gi){var l=fa;if(l!==null)throw l}}function $a(l,t,e,a){Gi=!1;var u=l.updateQueue;ue=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var s=c,y=s.next;s.next=null,i===null?n=y:i.next=y,i=s;var b=l.alternate;b!==null&&(b=b.updateQueue,c=b.lastBaseUpdate,c!==i&&(c===null?b.firstBaseUpdate=y:c.next=y,b.lastBaseUpdate=s))}if(n!==null){var T=u.baseState;i=0,b=y=s=null,c=n;do{var g=c.lane&-536870913,S=g!==c.lane;if(S?(k&g)===g:(a&g)===g){g!==0&&g===ca&&(Gi=!0),b!==null&&(b=b.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var D=l,B=c;g=t;var fl=e;switch(B.tag){case 1:if(D=B.payload,typeof D=="function"){T=D.call(fl,T,g);break l}T=D;break l;case 3:D.flags=D.flags&-65537|128;case 0:if(D=B.payload,g=typeof D=="function"?D.call(fl,T,g):D,g==null)break l;T=q({},T,g);break l;case 2:ue=!0}}g=c.callback,g!==null&&(l.flags|=64,S&&(l.flags|=8192),S=u.callbacks,S===null?u.callbacks=[g]:S.push(g))}else S={lane:g,tag:c.tag,payload:c.payload,callback:c.callback,next:null},b===null?(y=b=S,s=T):b=b.next=S,i|=g;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;S=c,c=S.next,S.next=null,u.lastBaseUpdate=S,u.shared.pending=null}}while(!0);b===null&&(s=T),u.baseState=s,u.firstBaseUpdate=y,u.lastBaseUpdate=b,n===null&&(u.shared.lanes=0),de|=i,l.lanes=i,l.memoizedState=T}}function Us(l,t){if(typeof l!="function")throw Error(h(191,l));l.call(t)}function Cs(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;ln?n:8;var i=p.T,c={};p.T=c,uc(l,!1,t,e);try{var s=u(),y=p.S;if(y!==null&&y(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var b=Vh(s,a);Pa(l,t,b,nt(l))}else Pa(l,t,a,nt(l))}catch(T){Pa(l,t,{then:function(){},status:"rejected",reason:T},nt())}finally{A.p=n,i!==null&&c.types!==null&&(i.types=c.types),p.T=i}}function Wh(){}function ec(l,t,e,a){if(l.tag!==5)throw Error(h(476));var u=ro(l).queue;oo(l,u,t,Y,e===null?Wh:function(){return ho(l),e(a)})}function ro(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:Y},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function ho(l){var t=ro(l);t.next===null&&(t=l.alternate.memoizedState),Pa(l,t.next.queue,{},nt())}function ac(){return Ol(yu)}function mo(){return bl().memoizedState}function vo(){return bl().memoizedState}function $h(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=nt();l=ne(e);var a=ie(t,l,e);a!==null&&(Jl(a,t,e),ka(a,t,e)),t={cache:Ui()},l.payload=t;return}t=t.return}}function Fh(l,t,e){var a=nt();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},cn(l)?go(t,e):(e=ji(l,t,e,a),e!==null&&(Jl(e,l,a),So(e,t,a)))}function yo(l,t,e){var a=nt();Pa(l,t,e,a)}function Pa(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(cn(l))go(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,Pl(c,i))return Xu(l,t,u,0),ol===null&&Gu(),!1}catch{}finally{}if(e=ji(l,t,u,a),e!==null)return Jl(e,l,a),So(e,t,a),!0}return!1}function uc(l,t,e,a){if(a={lane:2,revertLane:Bc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},cn(l)){if(t)throw Error(h(479))}else t=ji(l,e,a,2),t!==null&&Jl(t,l,2)}function cn(l){var t=l.alternate;return l===Z||t!==null&&t===Z}function go(l,t){ra=Pu=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function So(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}var lu={readContext:Ol,use:en,useCallback:vl,useContext:vl,useEffect:vl,useImperativeHandle:vl,useLayoutEffect:vl,useInsertionEffect:vl,useMemo:vl,useReducer:vl,useRef:vl,useState:vl,useDebugValue:vl,useDeferredValue:vl,useTransition:vl,useSyncExternalStore:vl,useId:vl,useHostTransitionStatus:vl,useFormState:vl,useActionState:vl,useOptimistic:vl,useMemoCache:vl,useCacheRefresh:vl};lu.useEffectEvent=vl;var bo={readContext:Ol,use:en,useCallback:function(l,t){return Bl().memoizedState=[l,t===void 0?null:t],l},useContext:Ol,useEffect:to,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,un(4194308,4,no.bind(null,t,l),e)},useLayoutEffect:function(l,t){return un(4194308,4,l,t)},useInsertionEffect:function(l,t){un(4,2,l,t)},useMemo:function(l,t){var e=Bl();t=t===void 0?null:t;var a=l();if(Ye){Ft(!0);try{l()}finally{Ft(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=Bl();if(e!==void 0){var u=e(t);if(Ye){Ft(!0);try{e(t)}finally{Ft(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=Fh.bind(null,Z,l),[a.memoizedState,l]},useRef:function(l){var t=Bl();return l={current:l},t.memoizedState=l},useState:function(l){l=Fi(l);var t=l.queue,e=yo.bind(null,Z,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:lc,useDeferredValue:function(l,t){var e=Bl();return tc(e,l,t)},useTransition:function(){var l=Fi(!1);return l=oo.bind(null,Z,l.queue,!0,!1),Bl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=Z,u=Bl();if(F){if(e===void 0)throw Error(h(407));e=e()}else{if(e=t(),ol===null)throw Error(h(349));(k&127)!==0||Gs(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,to(Qs.bind(null,a,n,l),[l]),a.flags|=2048,ma(9,{destroy:void 0},Xs.bind(null,a,n,e,t),null),e},useId:function(){var l=Bl(),t=ol.identifierPrefix;if(F){var e=Nt,a=At;e=(a&~(1<<32-Il(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=ln++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[Nl]=t,n[Ql]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Ml(n,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&Zt(t)}}return rl(t),Sc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Zt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(h(166));if(l=w.current,na(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=_l,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[Nl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||Yd(l.nodeValue,e)),l||ee(t,!0)}else l=Nn(l).createTextNode(a),l[Nl]=t,t.stateNode=l}return rl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=na(t),e!==null){if(l===null){if(!a)throw Error(h(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),l=!1}else e=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(et(t),t):(et(t),null);if((t.flags&128)!==0)throw Error(h(558))}return rl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=na(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(h(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(h(317));u[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),u=!1}else u=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(et(t),t):(et(t),null)}return et(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),rn(t,t.updateQueue),rl(t),null);case 4:return gl(),l===null&&Xc(t.stateNode.containerInfo),rl(t),null;case 10:return Yt(t.type),rl(t),null;case 19:if(x(Sl),a=t.memoizedState,a===null)return rl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)eu(a,!1);else{if(yl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=Iu(l),n!==null){for(t.flags|=128,eu(a,!1),l=n.updateQueue,t.updateQueue=l,rn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)vs(e,l),e=e.sibling;return N(Sl,Sl.current&1|2),F&&Bt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&$l()>gn&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304)}else{if(!u)if(l=Iu(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,rn(t,l),eu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!F)return rl(t),null}else 2*$l()-a.renderingStartTime>gn&&e!==536870912&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=$l(),l.sibling=null,e=Sl.current,N(Sl,u?e&1|2:e&1),F&&Bt(t,a.treeForkCount),l):(rl(t),null);case 22:case 23:return et(t),Qi(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(rl(t),t.subtreeFlags&6&&(t.flags|=8192)):rl(t),e=t.updateQueue,e!==null&&rn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&x(He),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),Yt(pl),rl(t),null;case 25:return null;case 30:return null}throw Error(h(156,t.tag))}function em(l,t){switch(Ai(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Yt(pl),gl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Tu(t),null;case 31:if(t.memoizedState!==null){if(et(t),t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(et(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return x(Sl),null;case 4:return gl(),null;case 10:return Yt(t.type),null;case 22:case 23:return et(t),Qi(),l!==null&&x(He),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Yt(pl),null;case 25:return null;default:return null}}function Vo(l,t){switch(Ai(t),t.tag){case 3:Yt(pl),gl();break;case 26:case 27:case 5:Tu(t);break;case 4:gl();break;case 31:t.memoizedState!==null&&et(t);break;case 13:et(t);break;case 19:x(Sl);break;case 10:Yt(t.type);break;case 22:case 23:et(t),Qi(),l!==null&&x(He);break;case 24:Yt(pl)}}function au(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(c){ul(t,t.return,c)}}function se(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var s=e,y=c;try{y()}catch(b){ul(u,s,b)}}}a=a.next}while(a!==n)}}catch(b){ul(t,t.return,b)}}function Lo(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{Cs(t,e)}catch(a){ul(l,l.return,a)}}}function wo(l,t,e){e.props=Ge(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){ul(l,t,a)}}function uu(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e=="function"?l.refCleanup=e(a):e.current=a}}catch(u){ul(l,t,u)}}function _t(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){ul(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(u){ul(l,t,u)}else e.current=null}function Ko(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){ul(l,l.return,u)}}function bc(l,t,e){try{var a=l.stateNode;xm(a,l.type,e,t),a[Ql]=t}catch(u){ul(l,l.return,u)}}function Jo(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ye(l.type)||l.tag===4}function pc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Jo(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&ye(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function jc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=Ct));else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(jc(l,t,e),l=l.sibling;l!==null;)jc(l,t,e),l=l.sibling}function hn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(hn(l,t,e),l=l.sibling;l!==null;)hn(l,t,e),l=l.sibling}function ko(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Ml(t,a,e),t[Nl]=l,t[Ql]=e}catch(n){ul(l,l.return,n)}}var Vt=!1,zl=!1,Tc=!1,Wo=typeof WeakSet=="function"?WeakSet:Set,Al=null;function am(l,t){if(l=l.containerInfo,Vc=Hn,l=is(l),vi(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,c=-1,s=-1,y=0,b=0,T=l,g=null;t:for(;;){for(var S;T!==e||u!==0&&T.nodeType!==3||(c=i+u),T!==n||a!==0&&T.nodeType!==3||(s=i+a),T.nodeType===3&&(i+=T.nodeValue.length),(S=T.firstChild)!==null;)g=T,T=S;for(;;){if(T===l)break t;if(g===e&&++y===u&&(c=i),g===n&&++b===a&&(s=i),(S=T.nextSibling)!==null)break;T=g,g=T.parentNode}T=S}e=c===-1||s===-1?null:{start:c,end:s}}else e=null}e=e||{start:0,end:0}}else e=null;for(Lc={focusedElem:l,selectionRange:e},Hn=!1,Al=t;Al!==null;)if(t=Al,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Al=l;else for(;Al!==null;){switch(t=Al,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),Ml(n,a,e),n[Nl]=l,El(n),a=n;break l;case"link":var i=tr("link","href",u).get(a+(e.href||""));if(i){for(var c=0;cfl&&(i=fl,fl=B,B=i);var r=us(c,B),o=us(c,fl);if(r&&o&&(S.rangeCount!==1||S.anchorNode!==r.node||S.anchorOffset!==r.offset||S.focusNode!==o.node||S.focusOffset!==o.offset)){var v=T.createRange();v.setStart(r.node,r.offset),S.removeAllRanges(),B>fl?(S.addRange(v),S.extend(o.node,o.offset)):(v.setEnd(o.node,o.offset),S.addRange(v))}}}}for(T=[],S=c;S=S.parentNode;)S.nodeType===1&&T.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,p.T=null,e=Oc,Oc=null;var n=he,i=kt;if(xl=0,ba=he=null,kt=0,(tl&6)!==0)throw Error(h(331));var c=tl;if(tl|=4,id(n.current),ad(n,n.current,i,e),tl=c,ou(0,!1),Fl&&typeof Fl.onPostCommitFiberRoot=="function")try{Fl.onPostCommitFiberRoot(_a,n)}catch{}return!0}finally{A.p=u,p.T=a,xd(l,t)}}function Ad(l,t,e){t=dt(e,t),t=fc(l.stateNode,t,2),l=ie(l,t,2),l!==null&&(Da(l,2),Ot(l))}function ul(l,t,e){if(l.tag===3)Ad(l,l,e);else for(;t!==null;){if(t.tag===3){Ad(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(re===null||!re.has(a))){l=dt(e,l),e=No(2),a=ie(t,e,2),a!==null&&(_o(e,a,t,l),Da(a,2),Ot(a));break}}t=t.return}}function Cc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new im;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(Ec=!0,u.add(e),l=dm.bind(null,l,t,e),t.then(l,l))}function dm(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,ol===l&&(k&e)===e&&(yl===4||yl===3&&(k&62914560)===k&&300>$l()-yn?(tl&2)===0&&pa(l,0):Ac|=e,Sa===k&&(Sa=0)),Ot(l)}function Nd(l,t){t===0&&(t=pf()),l=Oe(l,t),l!==null&&(Da(l,t),Ot(l))}function rm(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),Nd(l,e)}function hm(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(h(314))}a!==null&&a.delete(t),Nd(l,e)}function mm(l,t){return Kn(l,t)}var zn=null,Ta=null,Hc=!1,xn=!1,Rc=!1,ve=0;function Ot(l){l!==Ta&&l.next===null&&(Ta===null?zn=Ta=l:Ta=Ta.next=l),xn=!0,Hc||(Hc=!0,ym())}function ou(l,t){if(!Rc&&xn){Rc=!0;do for(var e=!1,a=zn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,c=a.pingedLanes;n=(1<<31-Il(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,Md(a,n))}else n=k,n=Nu(a,a===ol?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||Oa(a,n)||(e=!0,Md(a,n));a=a.next}while(e);Rc=!1}}function vm(){_d()}function _d(){xn=Hc=!1;var l=0;ve!==0&&Am()&&(l=ve);for(var t=$l(),e=null,a=zn;a!==null;){var u=a.next,n=Od(a,t);n===0?(a.next=null,e===null?zn=u:e.next=u,u===null&&(Ta=e)):(e=a,(l!==0||(n&3)!==0)&&(xn=!0)),a=u}xl!==0&&xl!==5||ou(l),ve!==0&&(ve=0)}function Od(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var b=s.transferSize,T=s.initiatorType;b&&Gd(T)&&(s=s.responseEnd,i+=b*(s"u"?null:document;function Fd(l,t,e){var a=za;if(a&&typeof t=="string"&&t){var u=st(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof e=="string"&&(u+='[crossorigin="'+e+'"]'),$d.has(u)||($d.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Rm(l){Wt.D(l),Fd("dns-prefetch",l,null)}function Bm(l,t){Wt.C(l,t),Fd("preconnect",l,t)}function qm(l,t,e){Wt.L(l,t,e);var a=za;if(a&&l&&t){var u='link[rel="preload"][as="'+st(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+st(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+st(e.imageSizes)+'"]')):u+='[href="'+st(l)+'"]';var n=u;switch(t){case"style":n=xa(l);break;case"script":n=Ea(l)}gt.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),gt.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(mu(n))||t==="script"&&a.querySelector(vu(n))||(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Ym(l,t){Wt.m(l,t);var e=za;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+st(a)+'"][href="'+st(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ea(l)}if(!gt.has(n)&&(l=q({rel:"modulepreload",href:l},t),gt.set(n,l),e.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(vu(n)))return}a=e.createElement("link"),Ml(a,"link",l),El(a),e.head.appendChild(a)}}}function Gm(l,t,e){Wt.S(l,t,e);var a=za;if(a&&l){var u=Ke(a).hoistableStyles,n=xa(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(mu(n)))c.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},e),(e=gt.get(n))&&Fc(l,e);var s=i=a.createElement("link");El(s),Ml(s,"link",l),s._p=new Promise(function(y,b){s.onload=y,s.onerror=b}),s.addEventListener("load",function(){c.loading|=1}),s.addEventListener("error",function(){c.loading|=2}),c.loading|=4,On(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function Xm(l,t){Wt.X(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Qm(l,t){Wt.M(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Id(l,t,e,a){var u=(u=w.current)?_n(u):null;if(!u)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=xa(e.href),e=Ke(u).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=xa(e.href);var n=Ke(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(mu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),gt.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},gt.set(l,e),n||Zm(u,l,e,i.state))),t&&a===null)throw Error(h(528,""));return i}if(t&&a!==null)throw Error(h(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ea(e),e=Ke(u).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function xa(l){return'href="'+st(l)+'"'}function mu(l){return'link[rel="stylesheet"]['+l+"]"}function Pd(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function Zm(l,t,e,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ml(t,"link",e),El(t),l.head.appendChild(t))}function Ea(l){return'[src="'+st(l)+'"]'}function vu(l){return"script[async]"+l}function lr(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+st(e.href)+'"]');if(a)return t.instance=a,El(a),a;var u=q({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),El(a),Ml(a,"style",u),On(a,e.precedence,l),t.instance=a;case"stylesheet":u=xa(e.href);var n=l.querySelector(mu(u));if(n)return t.state.loading|=4,t.instance=n,El(n),n;a=Pd(e),(u=gt.get(u))&&Fc(a,u),n=(l.ownerDocument||l).createElement("link"),El(n);var i=n;return i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),t.state.loading|=4,On(n,e.precedence,l),t.instance=n;case"script":return n=Ea(e.src),(u=l.querySelector(vu(n)))?(t.instance=u,El(u),u):(a=e,(u=gt.get(n))&&(a=q({},e),Ic(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),El(u),Ml(u,"link",a),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(h(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,On(a,e.precedence,l));return t.instance}function On(l,t,e){for(var a=e.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i title"):null)}function Vm(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function ar(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Lm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=xa(a.href),n=t.querySelector(mu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Mn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,El(n);return}n=t.ownerDocument||t,a=Pd(a),(u=gt.get(u))&&Fc(a,u),n=n.createElement("link"),El(n);var i=n;i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Mn.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var Pc=0;function wm(l,t){return l.stylesheets&&l.count===0&&Cn(l,l.stylesheets),0Pc?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Mn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Cn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Un=null;function Cn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Un=new Map,t.forEach(Km,l),Un=null,Mn.call(l))}function Km(l,t){if(!(t.state.loading&4)){var e=Un.get(l);if(e)var a=e.get(null);else{e=new Map,Un.set(l,e);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),sf.exports=fv(),sf.exports}var ov=sv();const Qn={conceptnexus:{key:"conceptnexus",name:"ConceptsNexus",mark:"C",accent:"violet",domain:"Planned route · concepts.fixars.ai",eyebrow:"Idea refinement & certification",headline:"Every certified idea started as a hunch",description:"Submit in plain words. AI triage sharpens it and flags the gaps, the community validates it, experts certify it with an IIVS score. What comes out the other end is fund-ready — with receipts, not vibes.",primary:"Submit an idea",secondary:"Become a validator",stats:[["~2 hrs","to an AI triage report — free"],["IIVS","innovation · impact · viability · scalability"],["512","supporters on the top concept this month"]],preview:["Smart waste sorting micro-commission","Certified · CN-2044 · quorum 100%","IIVS breakdown","Handed off to CollaBoard with legal pack + skill brief"],features:[["AI triage & synthesis","A structured brief, a draft IIVS and named gaps before human review."],["Community + validator quorum","Support signals and independent validation make demand visible."],["Certification that carries over","The concept receipt and skill brief travel into a CollaBoard capsule."]],steps:["Submit plainly","AI triage","Community validation","Certified & handed off"],dashboardTitle:"Every certified idea started here",dashboardSub:"Explore an idea, shape its evidence and prepare a usable build brief."},skillscanvas:{key:"skillscanvas",name:"SkillsCanvas",mark:"S",accent:"cyan",domain:"Planned route · skills.fixars.ai",eyebrow:"Verified skills marketplace",headline:"Prove it. Get paid for it.",description:"Your CV says “detail-oriented”. Your SkillsCanvas passport says 1,240 labeled datasets at 99.1% accuracy — and every claim comes with receipts. Do paid micro-work, level real skills, apply to full work with one tap.",primary:"Create your canvas",secondary:"See how it works",stats:[["₦900–2,900","per micro-task, paid same day"],["4 tiers","self-reported → ecosystem-proven"],["94%","top job fit, computed from receipts"]],preview:["Attention to detail — Lv 8","Ecosystem-proven","Identify UI bugs (mobile)","Junior QA engineer · TechFlow"],features:[["Micro-work that pays same day","Short tasks matched to the skills you are levelling."],["Four tiers, no shortcuts","Top-tier proof comes from assessed and shipped work."],["The passport is the application","Fit is based on verified levels, not keyword bingo."]],steps:["Claim your skills","Do micro-work","Get assessed","Ship real work"],dashboardTitle:"Good afternoon, Adaeze",dashboardSub:"Every skill on your canvas is provable, with receipts."},collaboard:{key:"collaboard",name:"CollaBoard",mark:"B",accent:"coral",domain:"Planned route · collab.fixars.ai",eyebrow:"Escrowed project execution",headline:"Build with strangers, safely",description:"A capsule is a sealed workspace: team, tasks, artifacts and a signed legal pack travel together. Ownership, licensing and data consent are settled before the first task — while everyone still likes each other.",primary:"Start a capsule",secondary:"See how it works",stats:[["Day 0","legal pack signed before work starts"],["5 gates","product · legal · team · market · safety"],["Receipts","approved artifacts are traceable"]],preview:["Smart Irrigation Bundle","AgriTech-NGR-2024 · week 3 · capsule health","JDA signed · iCLA · NDPA","System architecture diagram v1.2"],features:[["Legal engine, not legal fees","A clear collaboration pack from the first day of work."],["Teams from passports","Recruit against verified SkillsCanvas evidence, not promises."],["Artifacts become receipts","Approved work becomes clear project evidence."]],steps:["Open a capsule","Sign the pack","Build in sprints","Ship receipts"],dashboardTitle:"Smart Irrigation Bundle",dashboardSub:"A shared project capsule with people, work, evidence and clear handoffs."},vestden:{key:"vestden",name:"VestDen",mark:"V",accent:"green",domain:"Planned route · vest.fixars.ai",eyebrow:"Demo project diligence",headline:"Watch the work, not the pitch",description:"Explore how a project’s concept, team evidence and delivery receipts can be understood together. This temporary workspace uses a dummy profile and simulated data only — no funds are held and no financial actions are available.",primary:"Explore the pipeline",secondary:"See how it works",stats:[["Demo only","simulated project information"],["3 signals","concept · skills · delivery"],["No funds","financial actions are disabled"]],preview:["Community water monitoring pilot","Simulated project brief · Stage 2","Concept · skills · delivery signals","Escrow available at regulated launch"],features:[["Structured project diligence","See the signals that would support a transparent project brief."],["Evidence from the ecosystem","Concept, skills and delivery information remain traceable."],["Demo-first by design","Learn the workflow without deposits, payouts or investment actions."]],steps:["Review a brief","Inspect evidence","Follow milestones","Regulated launch later"],dashboardTitle:"Community water monitoring pilot",dashboardSub:"Simulated project record for exploration and evaluation only."}},_r=Object.values(Qn),hf=()=>{const m=location.hostname.toLowerCase().replace(/^www\./,"");if(["skillscanvas.co","skills.fixars.ai"].includes(m))return"skillscanvas";if(["collaboard.co","collab.fixars.ai"].includes(m))return"collaboard";if(["vestden.co","vest.fixars.ai"].includes(m))return"vestden";if(["conceptsnexus.co","concepts.fixars.ai"].includes(m))return"conceptnexus";const E="collaboard";return Qn[E]?E:"conceptnexus"},Nr=()=>{const[m=hf(),E="home"]=location.hash.replace(/^#\/?/,"").split("/");return{product:Qn[m]?m:hf(),view:E==="app"?"app":"home"}},it=(m,E="home")=>{location.hash=`#/${m}/${E}`};function Or({active:m}){return f.jsxs("div",{className:"ecosystem",children:[f.jsxs("a",{className:"fixars-link",href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:["✦ ",f.jsx("span",{children:"fixars.ai ecosystem"})]}),f.jsx("span",{className:"ecosystem-note",children:"one account, one profile, connected evidence"}),f.jsx("nav",{"aria-label":"Fixars products",children:_r.map(E=>f.jsxs("button",{className:E.key===m?"active":"",onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("span",{children:E.name})]},E.key))})]})}function Dr({product:m,app:E}){return f.jsxs("header",{className:"product-nav",children:[f.jsxs("button",{className:"wordmark",onClick:()=>it(m.key),children:[f.jsx("i",{className:`mark ${m.accent}`,children:m.mark}),m.name]}),f.jsx("span",{className:"domain",children:m.domain}),f.jsxs("nav",{children:[f.jsx("button",{onClick:()=>it(m.key),className:E?"":"selected",children:"How it works"}),f.jsx("button",{onClick:()=>{var _;return(_=document.getElementById("ecosystem"))==null?void 0:_.scrollIntoView({behavior:"smooth"})},children:"Ecosystem"}),f.jsx("button",{onClick:()=>it(m.key,"app"),className:E?"selected":"",children:E?"Dashboard":"Open the app"})]})]})}function dv({product:m}){return f.jsxs("div",{className:"product-preview","aria-label":`${m.name} example`,children:[f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[0]}),f.jsx("span",{children:m.preview[1]})]}),f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[2]}),f.jsx("span",{children:m.key==="skillscanvas"?"3 min · +15 XP · Technical ops":m.key==="vestden"?"No financial actions":"Evidence attached"})]}),f.jsxs("div",{className:"preview-card compact",children:[f.jsx("span",{children:m.preview[3]}),f.jsx("b",{children:m.key==="vestden"?"Locked":"Ready"})]})]})}function rv({product:m}){return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m}),f.jsxs("main",{children:[f.jsxs("section",{className:"hero",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.eyebrow}),f.jsx("h1",{children:m.headline}),f.jsx("p",{className:"lede",children:m.description}),f.jsxs("div",{className:"actions",children:[f.jsx("button",{className:"primary",onClick:()=>it(m.key,"app"),children:m.primary}),f.jsx("button",{className:"secondary",onClick:()=>{var E;return(E=document.getElementById("how"))==null?void 0:E.scrollIntoView({behavior:"smooth"})},children:m.secondary})]}),f.jsx("div",{className:"proof",children:m.stats.map(([E,_])=>f.jsxs("div",{children:[f.jsx("b",{children:E}),f.jsx("span",{children:_})]},E))})]}),f.jsx(dv,{product:m})]}),f.jsx(hv,{product:m}),f.jsx(mv,{product:m}),f.jsx(vv,{product:m}),f.jsxs("section",{className:"closing",children:[f.jsxs("div",{children:[f.jsx("h2",{children:m.key==="vestden"?"Explore the demo workspace":`Open ${m.name}`}),f.jsx("p",{children:m.key==="vestden"?"Use the dummy profile to follow simulated project evidence. Financial actions stay disabled.":"Start with the source workflow, then let the connected ecosystem carry the evidence forward."})]}),f.jsx("button",{onClick:()=>it(m.key,"app"),children:m.primary})]})]}),f.jsx(Mr,{product:m})]})}function hv({product:m}){return f.jsxs("section",{className:"section",children:[f.jsx("p",{className:"eyebrow",children:"Why this product exists"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Skills that carry their own evidence":m.key==="conceptnexus"?"An idea with a score travels further":m.key==="collaboard"?"Handshakes don’t scale. Receipts do.":"A clear view of project evidence."}),f.jsx("div",{className:"feature-grid",children:m.features.map(([E,_],h)=>f.jsxs("article",{children:[f.jsx("i",{children:String(h+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_})]},E))})]})}function mv({product:m}){return f.jsxs("section",{className:"section steps",id:"how",children:[f.jsx("p",{className:"eyebrow",children:"How it works"}),f.jsx("h2",{children:m.key==="conceptnexus"?"One pipeline, four gates":m.key==="skillscanvas"?"From claim to proof in four moves":m.key==="collaboard"?"From certified idea to shipped milestone":"A demo trail, not a financial service"}),f.jsx("div",{children:m.steps.map((E,_)=>f.jsxs("article",{children:[f.jsx("span",{children:String(_+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_===0?"Start with clear context and a shared record.":_===3?"The next state becomes a transparent handoff.":"Progress through a focused, evidence-led step."})]},E))})]})}function vv({product:m}){return f.jsxs("section",{className:"section ecosystem-section",id:"ecosystem",children:[f.jsx("p",{className:"eyebrow",children:"Part of fixars.ai"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Your passport works everywhere":m.key==="conceptnexus"?"Certification is the first receipt":m.key==="collaboard"?"The capsule is the source of truth":"Every signal has a source"}),f.jsx("div",{className:"product-grid",children:_r.filter(E=>E.key!==m.key).map(E=>f.jsxs("button",{onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("strong",{children:E.name}),f.jsx("span",{children:E.key==="conceptnexus"?"Ideas and certified briefs":E.key==="skillscanvas"?"Verified capability evidence":E.key==="collaboard"?"People, projects and receipts":"Demo project diligence"})]},E.key))})]})}function yv({product:m}){const E={conceptnexus:["Discover","Submit","Validator desk"],skillscanvas:["Dashboard","Skill passport","Full work"],collaboard:["Overview","Tasks","Artifacts","Legal"],vestden:["Ideas","Teams","Projects"]},[_,h]=Tt.useState(E[m.key][0]),[C,R]=Tt.useState(""),[L,X]=Tt.useState([!1,!1,!1]),O=z=>{R(z),window.setTimeout(()=>R(""),2600)};return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m,app:!0}),f.jsxs("main",{className:"app-page",children:[m.key==="vestden"&&f.jsxs("div",{className:"demo-banner",children:[f.jsx("b",{children:"Demo workspace"}),f.jsx("span",{children:"Simulated data. No funds, deposits, payouts or financial actions."})]}),f.jsxs("div",{className:"app-heading",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.key==="vestden"?"Dummy profile · demo mode":`${m.name} workspace`}),f.jsx("h1",{children:m.dashboardTitle}),f.jsx("p",{children:m.dashboardSub})]}),f.jsx("button",{className:"secondary",onClick:()=>it(m.key),children:"Back to product"})]}),f.jsx("div",{className:"tabs",role:"tablist","aria-label":`${m.name} workflow`,children:E[m.key].map(z=>f.jsx("button",{role:"tab","aria-selected":_===z,className:_===z?"selected":"",onClick:()=>h(z),children:z},z))}),f.jsx(gv,{product:m,tab:_,action:O,tasks:L,setTasks:X})]}),f.jsx("div",{className:`toast ${C?"show":""}`,role:"status",children:C}),f.jsx(Mr,{product:m})]})}function gv({product:m,tab:E,action:_,tasks:h,setTasks:C}){return m.key==="conceptnexus"?f.jsx(Sv,{tab:E,action:_}):m.key==="skillscanvas"?f.jsx(bv,{tab:E,action:_,tasks:h,setTasks:C}):m.key==="collaboard"?f.jsx(pv,{tab:E,action:_}):f.jsx(jv,{tab:E,action:_})}function Sv({tab:m,action:E}){const[_,h]=Tt.useState({title:"",problem:"",proposal:""}),[C,R]=Tt.useState(!1),L=X=>{if(X.preventDefault(),!_.title.trim())return E("Give the concept a title first.");R(!0),E("Local concept queued for simulated AI triage.")};return m==="Submit"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 01 · submit plainly"}),f.jsx("h2",{children:"Submit an idea"}),f.jsx("p",{className:"muted",children:"Title, problem and proposal. This preview keeps the submission in this browser only."}),f.jsxs("form",{className:"stack-form",onSubmit:L,children:[f.jsxs("label",{children:["Title",f.jsx("input",{value:_.title,onChange:X=>h({..._,title:X.target.value}),placeholder:"What are you proposing?"})]}),f.jsxs("label",{children:["Problem",f.jsx("textarea",{value:_.problem,onChange:X=>h({..._,problem:X.target.value}),placeholder:"What needs to change?"})]}),f.jsxs("label",{children:["Proposal",f.jsx("textarea",{value:_.proposal,onChange:X=>h({..._,proposal:X.target.value}),placeholder:"How could it work?"})]}),f.jsxs("div",{className:"workflow-action",children:[f.jsx("button",{className:"primary",children:"Send to demo AI triage"}),f.jsx("span",{children:"Free · feedback in ~2 hours in the intended flow"})]})]}),C&&f.jsxs("p",{className:"inline-result",children:[f.jsx("b",{children:"Local triage record ready:"})," “",_.title,"” is visible only in this preview; nothing was submitted externally."]})]}):m==="Validator desk"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 03 · community validation"}),f.jsx("h2",{children:"Validator desk"}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Solar cold-storage co-op"}),f.jsx("small",{children:"Draft IIVS · impact strong · viability needs evidence"})]}),f.jsx("span",{className:"tag",children:"Awaiting quorum"})]}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Neighbourhood refill points"}),f.jsx("small",{children:"Community signal is visible; reviewer feedback is still open."})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Demo validator feedback opened."),children:"Review gaps"})]}),f.jsx("p",{className:"muted",children:"The prototype’s intended sequence remains: triage, community validation, expert certification, then a CollaBoard handoff."})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"One pipeline · four gates"}),f.jsx("h2",{children:"Concept discovery"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("span",{children:"01"}),f.jsx("b",{children:"AI triage"}),f.jsx("p",{children:"Sharper framing and a named gap list before a human review."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"02"}),f.jsx("b",{children:"Community quorum"}),f.jsx("p",{children:"Support signals and validator decisions make demand legible."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"03"}),f.jsx("b",{children:"IIVS certification"}),f.jsx("p",{children:"A portable concept receipt, ready to seed a project capsule."})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Next: CollaBoard capsule"}),f.jsx("p",{children:"A certified concept carries a legal pack and skills brief into execution."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]})]})}function bv({tab:m,action:E,tasks:_,setTasks:h}){const C=["Label 12 street-sign images","Identify UI bugs (mobile)","Review & correct short copy"];return m==="Skill passport"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"skillscanvas.ai/p/adaeze"}),f.jsx("h2",{children:"Skill passport"}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Attention to detail — Lv 8"}),f.jsx("p",{children:"1,240 labelled datasets · 99.1% verified accuracy · assessed this month."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Collaboration — Lv 7"}),f.jsx("p",{children:"8 CollaBoard sprints · 2 capsules shipped · 100% attendance cohesion."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{className:"earned",children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Passport link copied in this local preview."),children:"Copy passport link"})]}):m==="Full work"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Matched from verified evidence"}),f.jsx("h2",{children:"Full work"}),[["Junior QA engineer","TechFlow · Lagos, hybrid","94%"],["Content operations associate","CivicStack · Remote","88%"]].map(([R,L,X])=>f.jsxs("div",{className:"job-row",children:[f.jsxs("strong",{children:[X,f.jsx("small",{children:" fit"})]}),f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L})]}),f.jsx("button",{className:"primary",onClick:()=>E("Local passport application prepared."),children:"Apply with passport"})]},R))]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Your canvas · evidence first"}),f.jsx("h2",{children:"Micro-work feed"}),f.jsx("p",{className:"muted",children:"The original flow levels a claimed skill through paid tasks, assessment and shipped work."}),f.jsx("div",{className:"task-list",children:C.map((R,L)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:R}),f.jsxs("small",{children:[L+2," min · Attention to detail · +15 XP"]})]}),f.jsx("button",{disabled:_[L],onClick:()=>{h(X=>X.map((O,z)=>z===L?!0:O)),E("Demo task recorded on this dummy canvas.")},children:_[L]?"Recorded ✓":"Do task"})]},R))})]})}function pv({tab:m,action:E}){const[_,h]=Tt.useState([{name:"Update mobile dashboard offline mode",state:"Done"},{name:"Finalise hardware specification",state:"In review"},{name:"Prepare pilot onboarding guide",state:"To do"}]),[C,R]=Tt.useState(""),L=X=>{X.preventDefault(),C.trim()&&(h(O=>[...O,{name:C,state:"To do"}]),R(""),E("Task added to the local capsule."))};return m==="Tasks"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Capsule workboard"}),f.jsx("h2",{children:"Tasks"}),f.jsx("div",{className:"task-list",children:_.map((X,O)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:X.name}),f.jsx("small",{children:"Smart Irrigation Bundle · assigned from the capsule"})]}),f.jsx("button",{onClick:()=>h(z=>z.map((I,q)=>q===O?{...I,state:I.state==="Done"?"To do":"Done"}:I)),children:X.state})]},`${X.name}-${O}`))}),f.jsxs("form",{className:"add-task",onSubmit:L,children:[f.jsx("input",{value:C,onChange:X=>R(X.target.value),placeholder:"Add a local capsule task"}),f.jsx("button",{className:"secondary",children:"Add task"})]})]}):m==="Artifacts"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Approved work becomes a receipt"}),f.jsx("h2",{children:"Artifacts"}),["System architecture diagram v1.2","Pilot research brief","Hardware specification · pending review"].map((X,O)=>f.jsxs("div",{className:"artifact-row",children:[f.jsx("span",{children:String(O+1).padStart(2,"0")}),f.jsx("b",{children:X}),f.jsx("small",{children:O<2?"Approved receipt":"In review"})]},X))]}):m==="Legal"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Signed before the first task"}),f.jsx("h2",{children:"Legal pack"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("b",{children:"Joint development agreement"}),f.jsx("p",{children:"Scope, authorship and contribution terms recorded."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"IP & confidentiality"}),f.jsx("p",{children:"Project knowledge and approved artifacts are clearly attributed."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"Data consent"}),f.jsx("p",{children:"Access and use have a readable consent record."}),f.jsx("span",{className:"tag",children:"Signed"})]})]})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Project capsule · escrowed execution"}),f.jsx("h2",{children:"Smart Irrigation Bundle"}),f.jsxs("div",{className:"capsule-stats",children:[f.jsxs("div",{children:[f.jsx("b",{children:"84"}),f.jsx("span",{children:"capsule health"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"12/15"}),f.jsx("span",{children:"tasks complete"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"Week 3"}),f.jsx("span",{children:"delivery tempo"})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark cyan",children:"S"}),f.jsxs("div",{children:[f.jsx("b",{children:"Team evidence from SkillsCanvas"}),f.jsx("p",{children:"Roles are matched against verified passports, not only profiles."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("skillscanvas","app"),children:"View skills"})]})]})}function jv({tab:m,action:E}){const[_,h]=Tt.useState(""),C=R=>{h(R),E(`${R} previewed in sandbox mode — no funds move.`)};return m==="Ideas"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 1 · certified ideas"}),f.jsx("h2",{children:"Ideas"}),f.jsx("p",{className:"muted",children:"Certified ConceptsNexus ideas before their teams form. The original screen compares possible Growth and Protection outcomes; these are display-only sandbox previews."}),[["Solar cold-storage co-op","IIVS 78 · community signal building"],["Community water monitoring pilot","IIVS 84 · delivery brief attached"]].map(([R,L])=>f.jsxs("div",{className:"position-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L}),f.jsxs("div",{className:"source-links",children:[f.jsx("span",{children:"ConceptsNexus receipt"}),f.jsx("span",{children:"Skills brief"})]})]}),f.jsxs("div",{className:"simulated-choices",children:[f.jsx("button",{className:"secondary",onClick:()=>C("Growth position"),children:"Preview Growth"}),f.jsx("button",{className:"secondary",onClick:()=>C("Protection position"),children:"Preview Protection"})]})]},R)),f.jsx("p",{className:"sandbox-note",children:"Simulation only. No position, payment instruction, wallet, or investment record is created."}),_&&f.jsxs("p",{className:"inline-result",children:[_," is shown locally as a product-flow state."]})]}):m==="Teams"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 2 · teams forming"}),f.jsx("h2",{children:"Teams"}),f.jsx("p",{className:"muted",children:"The intended screen joins the team’s SkillsCanvas audit and CollaBoard tempo into a single diligence view."}),[["Water systems field team","SkillsCanvas audit 96","CollaBoard tempo 87"],["Cold-chain operations team","SkillsCanvas audit 88","CollaBoard tempo 79"]].map(([R,L,X])=>f.jsxs("div",{className:"team-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:"Simulated team record · no individual identity or financial information."})]}),f.jsxs("div",{children:[f.jsx("span",{children:L}),f.jsx("span",{children:X})]}),f.jsx("button",{className:"secondary",onClick:()=>C("Team diligence"),children:"View diligence"})]},R)),_&&f.jsxs("p",{className:"inline-result",children:[_," is available only in this local sandbox."]})]}):f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 3 · active projects · milestone escrow"}),f.jsx("h2",{children:"Projects"}),f.jsx("p",{className:"muted",children:"This restores the supplied project/milestone structure while keeping every amount and action simulated."}),f.jsxs("div",{className:"project-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Community water monitoring pilot"}),f.jsx("p",{children:"Simulated project record · concept, team audit and delivery evidence linked."})]}),f.jsx("span",{className:"tag",children:"Sandbox"})]}),f.jsxs("div",{className:"milestone-list",children:[f.jsxs("div",{children:[f.jsx("span",{children:"✓"}),f.jsx("b",{children:"SkillsCanvas team audit & MVP"}),f.jsx("small",{children:"30% · simulated verified state"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"2"}),f.jsx("b",{children:"500 test deliveries"}),f.jsx("small",{children:"30% · in progress · 342 of 500 simulated"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"3"}),f.jsx("b",{children:"Independent field review"}),f.jsx("small",{children:"20% · upcoming simulation"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"4"}),f.jsx("b",{children:"Scale handoff"}),f.jsx("small",{children:"20% · upcoming simulation"})]})]}),f.jsxs("div",{className:"position-preview",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Position preview"}),f.jsx("p",{children:"Choose a simulated outcome to test the interaction design. This never creates a financial position."})]}),f.jsx("button",{className:"primary",onClick:()=>C("Project position"),children:"Preview simulated position"})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Watch the work, not the pitch"}),f.jsx("p",{children:"Stage progress is represented by CollaBoard artifacts and delivery receipts."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]}),_&&f.jsxs("p",{className:"inline-result",children:[_," interaction completed locally. No money, escrow release or payout is possible here."]})]})}function Mr({product:m}){return f.jsxs("footer",{children:[f.jsxs("span",{children:[m.name," is a Fixars product preview."]}),f.jsx("button",{onClick:()=>it(m.key),children:"Product home"}),f.jsx("a",{href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:"Fixars.ai ↗"})]})}function Tv(){const[m,E]=Tt.useState(Nr());Tt.useEffect(()=>{const h=()=>E(Nr());return addEventListener("hashchange",h),location.hash||it(hf()),()=>removeEventListener("hashchange",h)},[]);const _=Tt.useMemo(()=>Qn[m.product],[m.product]);return m.view==="app"?f.jsx(yv,{product:_}):f.jsx(rv,{product:_})}ov.createRoot(document.getElementById("root")).render(f.jsx(Tv,{})); diff --git a/subapps/dist-products/collaboard/assets/index-Crbx-SnG.css b/subapps/dist-products/collaboard/assets/index-Crbx-SnG.css new file mode 100644 index 0000000..76cb473 --- /dev/null +++ b/subapps/dist-products/collaboard/assets/index-Crbx-SnG.css @@ -0,0 +1 @@ +:root{--navy: #0a1628;--ink: #2a3c56;--muted: #5a6b85;--line: #ebeff5;--pale: #f5f7fb;--violet: #7c3aed;--violet-pale: #f1eafe;--cyan: #06b6d4;--cyan-pale: #e0f6fa;--coral: #e87d4a;--coral-pale: #fceee4;--green: #10b981;--green-pale: #e6f8f1;font-family:Inter,system-ui,sans-serif;color:var(--navy);background:#fff}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--app);outline-offset:3px}.violet{--app: var(--violet);--app-pale: var(--violet-pale)}.cyan{--app: var(--cyan);--app-pale: var(--cyan-pale)}.coral{--app: var(--coral);--app-pale: var(--coral-pale)}.green{--app: var(--green);--app-pale: var(--green-pale)}.ecosystem{height:48px;background:var(--navy);color:#cbd5e5;display:flex;align-items:center;gap:18px;padding:0 max(28px,calc((100vw - 1180px)/2));font-size:11px}.fixars-link{color:#fff;text-decoration:none;font-weight:700}.ecosystem-note{color:#8ea0bc}.ecosystem nav{margin-left:auto;height:100%;display:flex;gap:2px}.ecosystem nav button{border:0;border-bottom:2px solid transparent;background:transparent;color:#becadc;padding:0 10px;display:flex;align-items:center;gap:7px}.ecosystem nav button.active{color:#fff;border-color:var(--app)}.mark{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--app);color:#fff;font-style:normal;font-family:Space Grotesk,sans-serif;font-weight:700}.product-nav{height:76px;max-width:1180px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.wordmark{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;color:var(--navy);font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.domain{font:11px JetBrains Mono,monospace;color:#8695ae}.product-nav nav{margin-left:auto;display:flex;align-items:center;gap:10px}.product-nav nav button{border:0;background:transparent;color:var(--muted);padding:10px;font-size:13px}.product-nav nav .selected{background:var(--app);color:#fff;border-radius:10px;font-weight:700}.hero{max-width:1180px;margin:auto;padding:78px 24px 70px;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.eyebrow{margin:0 0 12px;color:var(--app);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero h1,.app-heading h1{margin:0;font:700 clamp(43px,5.4vw,68px)/.98 "Space Grotesk",sans-serif;letter-spacing:-.06em}.lede{max-width:620px;color:var(--muted);font-size:18px;line-height:1.6;margin:22px 0 28px}.actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary,.closing button{border-radius:10px;padding:11px 16px;border:0;font-weight:700}.primary,.closing button{background:var(--app);color:#fff}.secondary{background:#fff;color:var(--navy);border:1px solid #d7dde8}.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:39px;padding-top:22px;border-top:1px solid var(--line)}.proof b{display:block;font:650 20px Space Grotesk,sans-serif}.proof span{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.product-preview{background:var(--app-pale);border:1px solid color-mix(in srgb,var(--app) 22%,#fff);border-radius:24px;padding:18px;display:grid;gap:12px;box-shadow:0 18px 45px #0a162814}.preview-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:17px;display:flex;justify-content:space-between;gap:14px;align-items:center}.preview-card strong{font-size:14px}.preview-card span{color:var(--muted);font-size:11px}.preview-card.compact b{font-size:11px;color:#047857;background:var(--green-pale);padding:4px 7px;border-radius:99px}.section{max-width:1180px;margin:auto;padding:80px 24px;border-top:1px solid var(--line)}.section h2,.workspace-card h2,.closing h2{margin:0 0 30px;font:650 34px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.feature-grid,.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.product-grid button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:24px;text-align:left}.feature-grid i{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:34px}.feature-grid h3,.steps h3{font:650 17px Space Grotesk,sans-serif;margin:0 0 9px}.feature-grid p,.steps p,.product-grid span,.closing p,.muted{color:var(--muted);font-size:13px;line-height:1.6}.steps>div{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.steps article{border-top:2px solid var(--app);padding-top:17px}.steps article span{font:11px JetBrains Mono,monospace;color:var(--app)}.steps article h3{margin-top:14px}.product-grid button{display:grid;gap:12px}.product-grid button .mark{margin-bottom:15px}.product-grid strong{font:650 17px Space Grotesk,sans-serif}.closing{background:var(--navy);color:#fff;margin-top:18px;padding:48px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:25px}.closing h2{font-size:27px;margin-bottom:8px}.closing p{margin:0;max-width:600px;color:#bfccdc}.closing button{background:#fff;color:var(--navy);white-space:nowrap}footer{max-width:1180px;margin:auto;padding:24px;display:flex;gap:15px;align-items:center;color:var(--muted);font-size:11px}footer button,footer a{border:0;background:transparent;color:var(--ink);font:inherit;text-decoration:none;font-weight:700}.app-page{max-width:1060px;margin:auto;padding:44px 24px;min-height:720px}.demo-banner{background:var(--green-pale);border:1px solid #b7e7d6;color:#047857;border-radius:12px;padding:13px 16px;display:flex;gap:12px;align-items:center;font-size:13px;margin-bottom:26px}.app-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between}.app-heading h1{font-size:42px}.app-heading p:not(.eyebrow){margin:10px 0 0;color:var(--muted)}.tabs{margin:28px 0 18px;padding:4px;background:var(--pale);border-radius:11px;display:inline-flex;gap:3px}.tabs button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:7px;font-size:12px;text-transform:capitalize}.tabs .selected{background:#fff;color:var(--navy);box-shadow:0 1px 4px #0a16281a;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:18px}.workspace-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff}.workspace-card h2{font-size:24px;margin-bottom:6px}.task-list,.record-list{margin-top:20px;border-top:1px solid var(--line)}.task-list>div,.record-list>div{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.task-list span{flex:1}.task-list b,.record-list b{display:block;font-size:14px}.task-list small,.record-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.task-list button{border:0;background:var(--app);color:#fff;border-radius:8px;padding:8px 10px;font-weight:700;font-size:12px}.task-list button:disabled{background:var(--green-pale);color:#047857}.demo-form,.checklist{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.demo-form label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.demo-form>div{display:flex;gap:10px}.demo-form input{flex:1;min-width:0;padding:11px 12px;border:1px solid #d7dde8;border-radius:9px;color:var(--navy);font:inherit}.demo-form input::placeholder{color:#8b9ab0}.inline-result{margin:14px 0 0;padding:11px 12px;border-radius:9px;background:var(--app-pale);color:var(--ink);font-size:12px;line-height:1.5}.checklist{display:grid;gap:11px}.checklist label{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:13px}.checklist input{width:16px;height:16px;accent-color:var(--app)}.checklist .secondary{justify-self:start;margin-top:8px}.record-list>div>span{font:11px JetBrains Mono,monospace;color:var(--app)}.record-list>div>div{flex:1}.record-list small{margin-left:auto;text-align:right}.side{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 20%,#fff);align-self:start}.side h3{font:650 20px/1.2 Space Grotesk,sans-serif;margin:0 0 12px}.side .primary{margin-top:18px}.evidence{max-width:700px}.trail{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.trail i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-style:normal;font-weight:700}.trail b{font-size:14px}.trail p{margin:4px 0 0;color:var(--muted);font-size:12px}.evidence .secondary,.evidence .primary{margin-top:18px}.toast{position:fixed;right:22px;bottom:20px;padding:12px 14px;background:var(--navy);color:#fff;border-radius:9px;font-size:13px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.workflow-panel{max-width:980px;border:1px solid var(--line);border-radius:16px;padding:26px;background:#fff}.workflow-panel h2{margin:0 0 8px;font:650 28px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.stack-form{display:grid;gap:14px;max-width:700px;margin-top:22px}.stack-form label{display:grid;gap:7px;font-size:12px;font-weight:700}.stack-form input,.stack-form textarea,.add-task input{width:100%;border:1px solid #d7dde8;border-radius:9px;padding:11px 12px;color:var(--navy);font:inherit}.stack-form textarea{min-height:84px;resize:vertical}.workflow-action{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.workflow-action span{color:var(--muted);font-size:12px}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.source-grid article{border:1px solid var(--line);border-radius:12px;padding:17px}.source-grid article>span:first-child{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:22px}.source-grid b{display:block;font-size:14px}.source-grid p,.passport-card p,.job-row p,.handoff-card p,.project-card p,.position-card p,.team-card p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.handoff-card{display:flex;align-items:center;gap:14px;border:1px solid color-mix(in srgb,var(--app) 22%,#fff);background:var(--app-pale);border-radius:13px;padding:17px;margin-top:20px}.handoff-card>div{flex:1}.handoff-card b{font-size:14px}.concept-row,.job-row,.artifact-row,.project-card,.team-card,.position-card{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.concept-row>div,.job-row>div,.project-card>div,.team-card>div:first-child,.position-card>div:first-child{flex:1}.concept-row b,.job-row b,.artifact-row b,.project-card b,.team-card b,.position-card b{display:block;font-size:14px}.concept-row small,.artifact-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.tag{display:inline-flex;align-items:center;border-radius:999px;background:var(--app-pale);color:var(--app);padding:5px 8px;font-size:11px;font-weight:700}.passport-card{margin-top:13px;border:1px solid var(--line);border-radius:12px;padding:17px}.passport-card>b{font-size:15px}.tier-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.tier-list span{border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font-size:10px}.tier-list .earned{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 22%,#fff);color:var(--app)}.job-row>strong{width:56px;color:var(--app);font:650 20px Space Grotesk,sans-serif}.job-row>strong small{font:400 10px Inter,sans-serif}.capsule-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.capsule-stats>div{border:1px solid var(--line);border-radius:12px;padding:17px}.capsule-stats b{display:block;color:var(--app);font:650 24px Space Grotesk,sans-serif}.capsule-stats span{display:block;margin-top:5px;color:var(--muted);font-size:11px}.add-task{display:flex;gap:10px;margin-top:16px}.artifact-row>span{color:var(--app);font:11px JetBrains Mono,monospace}.artifact-row small{margin-left:auto}.project-card,.team-card,.position-card{align-items:flex-start}.source-links,.simulated-choices,.team-card>div:nth-child(2){display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.source-links span,.team-card>div:nth-child(2) span{border-radius:999px;background:var(--pale);padding:4px 7px;color:var(--muted);font-size:10px}.simulated-choices{margin-top:0}.sandbox-note{margin:16px 0 0;color:#047857;font-size:12px;line-height:1.5}.milestone-list{margin:20px 0;border-top:1px solid var(--line)}.milestone-list>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.milestone-list span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-size:12px;font-weight:700}.milestone-list b{font-size:13px}.milestone-list small{color:var(--muted);font-size:11px;text-align:right}.position-preview{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px dashed color-mix(in srgb,var(--app) 48%,#fff);border-radius:12px;padding:16px;margin-top:18px}.position-preview b{font-size:14px}.position-preview p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:820px){.ecosystem{padding:0 16px}.ecosystem-note,.ecosystem nav button span{display:none}.ecosystem nav{margin-left:auto}.product-nav{height:64px;padding:0 16px}.domain,.product-nav nav button:not(.selected){display:none}.product-nav nav{margin-left:auto}.hero{grid-template-columns:1fr;gap:34px;padding:47px 18px}.hero h1{font-size:47px}.lede{font-size:16px}.proof{gap:10px}.feature-grid,.product-grid,.steps>div,.dashboard-grid{grid-template-columns:1fr}.section{padding:62px 18px}.section h2{font-size:29px}.closing{padding:38px 18px;align-items:flex-start;flex-direction:column}.app-page{padding:32px 16px}.app-heading{align-items:flex-start;flex-direction:column}.app-heading h1{font-size:36px}.demo-banner{align-items:flex-start;flex-direction:column;gap:3px}.record-list small{display:none}.demo-form>div{flex-direction:column}.demo-form .primary{align-self:flex-start}.source-grid,.capsule-stats{grid-template-columns:1fr}.handoff-card,.job-row,.project-card,.team-card,.position-card,.position-preview{align-items:flex-start;flex-direction:column}.simulated-choices{width:100%}.simulated-choices .secondary{flex:1}.add-task{flex-direction:column}.milestone-list>div{grid-template-columns:28px 1fr}.milestone-list small{grid-column:2;text-align:left}.workflow-panel{padding:20px}footer{padding:20px 16px;flex-wrap:wrap}} diff --git a/subapps/dist-products/collaboard/deployment.json b/subapps/dist-products/collaboard/deployment.json new file mode 100644 index 0000000..7d7c15e --- /dev/null +++ b/subapps/dist-products/collaboard/deployment.json @@ -0,0 +1,7 @@ +{ + "key": "collaboard", + "name": "CollaBoard", + "canonical": "https://collaboard.co/", + "connector": "https://collab.fixars.ai/", + "path": "https://fixars.ai/collab" +} diff --git a/subapps/dist-products/collaboard/index.html b/subapps/dist-products/collaboard/index.html new file mode 100644 index 0000000..73cab46 --- /dev/null +++ b/subapps/dist-products/collaboard/index.html @@ -0,0 +1,18 @@ + + + + + + + CollaBoard — Fixars + + + + + + + + +
+ + diff --git a/subapps/dist-products/conceptnexus/assets/index-Crbx-SnG.css b/subapps/dist-products/conceptnexus/assets/index-Crbx-SnG.css new file mode 100644 index 0000000..76cb473 --- /dev/null +++ b/subapps/dist-products/conceptnexus/assets/index-Crbx-SnG.css @@ -0,0 +1 @@ +:root{--navy: #0a1628;--ink: #2a3c56;--muted: #5a6b85;--line: #ebeff5;--pale: #f5f7fb;--violet: #7c3aed;--violet-pale: #f1eafe;--cyan: #06b6d4;--cyan-pale: #e0f6fa;--coral: #e87d4a;--coral-pale: #fceee4;--green: #10b981;--green-pale: #e6f8f1;font-family:Inter,system-ui,sans-serif;color:var(--navy);background:#fff}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--app);outline-offset:3px}.violet{--app: var(--violet);--app-pale: var(--violet-pale)}.cyan{--app: var(--cyan);--app-pale: var(--cyan-pale)}.coral{--app: var(--coral);--app-pale: var(--coral-pale)}.green{--app: var(--green);--app-pale: var(--green-pale)}.ecosystem{height:48px;background:var(--navy);color:#cbd5e5;display:flex;align-items:center;gap:18px;padding:0 max(28px,calc((100vw - 1180px)/2));font-size:11px}.fixars-link{color:#fff;text-decoration:none;font-weight:700}.ecosystem-note{color:#8ea0bc}.ecosystem nav{margin-left:auto;height:100%;display:flex;gap:2px}.ecosystem nav button{border:0;border-bottom:2px solid transparent;background:transparent;color:#becadc;padding:0 10px;display:flex;align-items:center;gap:7px}.ecosystem nav button.active{color:#fff;border-color:var(--app)}.mark{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--app);color:#fff;font-style:normal;font-family:Space Grotesk,sans-serif;font-weight:700}.product-nav{height:76px;max-width:1180px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.wordmark{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;color:var(--navy);font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.domain{font:11px JetBrains Mono,monospace;color:#8695ae}.product-nav nav{margin-left:auto;display:flex;align-items:center;gap:10px}.product-nav nav button{border:0;background:transparent;color:var(--muted);padding:10px;font-size:13px}.product-nav nav .selected{background:var(--app);color:#fff;border-radius:10px;font-weight:700}.hero{max-width:1180px;margin:auto;padding:78px 24px 70px;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.eyebrow{margin:0 0 12px;color:var(--app);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero h1,.app-heading h1{margin:0;font:700 clamp(43px,5.4vw,68px)/.98 "Space Grotesk",sans-serif;letter-spacing:-.06em}.lede{max-width:620px;color:var(--muted);font-size:18px;line-height:1.6;margin:22px 0 28px}.actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary,.closing button{border-radius:10px;padding:11px 16px;border:0;font-weight:700}.primary,.closing button{background:var(--app);color:#fff}.secondary{background:#fff;color:var(--navy);border:1px solid #d7dde8}.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:39px;padding-top:22px;border-top:1px solid var(--line)}.proof b{display:block;font:650 20px Space Grotesk,sans-serif}.proof span{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.product-preview{background:var(--app-pale);border:1px solid color-mix(in srgb,var(--app) 22%,#fff);border-radius:24px;padding:18px;display:grid;gap:12px;box-shadow:0 18px 45px #0a162814}.preview-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:17px;display:flex;justify-content:space-between;gap:14px;align-items:center}.preview-card strong{font-size:14px}.preview-card span{color:var(--muted);font-size:11px}.preview-card.compact b{font-size:11px;color:#047857;background:var(--green-pale);padding:4px 7px;border-radius:99px}.section{max-width:1180px;margin:auto;padding:80px 24px;border-top:1px solid var(--line)}.section h2,.workspace-card h2,.closing h2{margin:0 0 30px;font:650 34px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.feature-grid,.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.product-grid button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:24px;text-align:left}.feature-grid i{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:34px}.feature-grid h3,.steps h3{font:650 17px Space Grotesk,sans-serif;margin:0 0 9px}.feature-grid p,.steps p,.product-grid span,.closing p,.muted{color:var(--muted);font-size:13px;line-height:1.6}.steps>div{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.steps article{border-top:2px solid var(--app);padding-top:17px}.steps article span{font:11px JetBrains Mono,monospace;color:var(--app)}.steps article h3{margin-top:14px}.product-grid button{display:grid;gap:12px}.product-grid button .mark{margin-bottom:15px}.product-grid strong{font:650 17px Space Grotesk,sans-serif}.closing{background:var(--navy);color:#fff;margin-top:18px;padding:48px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:25px}.closing h2{font-size:27px;margin-bottom:8px}.closing p{margin:0;max-width:600px;color:#bfccdc}.closing button{background:#fff;color:var(--navy);white-space:nowrap}footer{max-width:1180px;margin:auto;padding:24px;display:flex;gap:15px;align-items:center;color:var(--muted);font-size:11px}footer button,footer a{border:0;background:transparent;color:var(--ink);font:inherit;text-decoration:none;font-weight:700}.app-page{max-width:1060px;margin:auto;padding:44px 24px;min-height:720px}.demo-banner{background:var(--green-pale);border:1px solid #b7e7d6;color:#047857;border-radius:12px;padding:13px 16px;display:flex;gap:12px;align-items:center;font-size:13px;margin-bottom:26px}.app-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between}.app-heading h1{font-size:42px}.app-heading p:not(.eyebrow){margin:10px 0 0;color:var(--muted)}.tabs{margin:28px 0 18px;padding:4px;background:var(--pale);border-radius:11px;display:inline-flex;gap:3px}.tabs button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:7px;font-size:12px;text-transform:capitalize}.tabs .selected{background:#fff;color:var(--navy);box-shadow:0 1px 4px #0a16281a;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:18px}.workspace-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff}.workspace-card h2{font-size:24px;margin-bottom:6px}.task-list,.record-list{margin-top:20px;border-top:1px solid var(--line)}.task-list>div,.record-list>div{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.task-list span{flex:1}.task-list b,.record-list b{display:block;font-size:14px}.task-list small,.record-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.task-list button{border:0;background:var(--app);color:#fff;border-radius:8px;padding:8px 10px;font-weight:700;font-size:12px}.task-list button:disabled{background:var(--green-pale);color:#047857}.demo-form,.checklist{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.demo-form label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.demo-form>div{display:flex;gap:10px}.demo-form input{flex:1;min-width:0;padding:11px 12px;border:1px solid #d7dde8;border-radius:9px;color:var(--navy);font:inherit}.demo-form input::placeholder{color:#8b9ab0}.inline-result{margin:14px 0 0;padding:11px 12px;border-radius:9px;background:var(--app-pale);color:var(--ink);font-size:12px;line-height:1.5}.checklist{display:grid;gap:11px}.checklist label{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:13px}.checklist input{width:16px;height:16px;accent-color:var(--app)}.checklist .secondary{justify-self:start;margin-top:8px}.record-list>div>span{font:11px JetBrains Mono,monospace;color:var(--app)}.record-list>div>div{flex:1}.record-list small{margin-left:auto;text-align:right}.side{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 20%,#fff);align-self:start}.side h3{font:650 20px/1.2 Space Grotesk,sans-serif;margin:0 0 12px}.side .primary{margin-top:18px}.evidence{max-width:700px}.trail{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.trail i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-style:normal;font-weight:700}.trail b{font-size:14px}.trail p{margin:4px 0 0;color:var(--muted);font-size:12px}.evidence .secondary,.evidence .primary{margin-top:18px}.toast{position:fixed;right:22px;bottom:20px;padding:12px 14px;background:var(--navy);color:#fff;border-radius:9px;font-size:13px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.workflow-panel{max-width:980px;border:1px solid var(--line);border-radius:16px;padding:26px;background:#fff}.workflow-panel h2{margin:0 0 8px;font:650 28px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.stack-form{display:grid;gap:14px;max-width:700px;margin-top:22px}.stack-form label{display:grid;gap:7px;font-size:12px;font-weight:700}.stack-form input,.stack-form textarea,.add-task input{width:100%;border:1px solid #d7dde8;border-radius:9px;padding:11px 12px;color:var(--navy);font:inherit}.stack-form textarea{min-height:84px;resize:vertical}.workflow-action{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.workflow-action span{color:var(--muted);font-size:12px}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.source-grid article{border:1px solid var(--line);border-radius:12px;padding:17px}.source-grid article>span:first-child{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:22px}.source-grid b{display:block;font-size:14px}.source-grid p,.passport-card p,.job-row p,.handoff-card p,.project-card p,.position-card p,.team-card p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.handoff-card{display:flex;align-items:center;gap:14px;border:1px solid color-mix(in srgb,var(--app) 22%,#fff);background:var(--app-pale);border-radius:13px;padding:17px;margin-top:20px}.handoff-card>div{flex:1}.handoff-card b{font-size:14px}.concept-row,.job-row,.artifact-row,.project-card,.team-card,.position-card{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.concept-row>div,.job-row>div,.project-card>div,.team-card>div:first-child,.position-card>div:first-child{flex:1}.concept-row b,.job-row b,.artifact-row b,.project-card b,.team-card b,.position-card b{display:block;font-size:14px}.concept-row small,.artifact-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.tag{display:inline-flex;align-items:center;border-radius:999px;background:var(--app-pale);color:var(--app);padding:5px 8px;font-size:11px;font-weight:700}.passport-card{margin-top:13px;border:1px solid var(--line);border-radius:12px;padding:17px}.passport-card>b{font-size:15px}.tier-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.tier-list span{border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font-size:10px}.tier-list .earned{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 22%,#fff);color:var(--app)}.job-row>strong{width:56px;color:var(--app);font:650 20px Space Grotesk,sans-serif}.job-row>strong small{font:400 10px Inter,sans-serif}.capsule-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.capsule-stats>div{border:1px solid var(--line);border-radius:12px;padding:17px}.capsule-stats b{display:block;color:var(--app);font:650 24px Space Grotesk,sans-serif}.capsule-stats span{display:block;margin-top:5px;color:var(--muted);font-size:11px}.add-task{display:flex;gap:10px;margin-top:16px}.artifact-row>span{color:var(--app);font:11px JetBrains Mono,monospace}.artifact-row small{margin-left:auto}.project-card,.team-card,.position-card{align-items:flex-start}.source-links,.simulated-choices,.team-card>div:nth-child(2){display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.source-links span,.team-card>div:nth-child(2) span{border-radius:999px;background:var(--pale);padding:4px 7px;color:var(--muted);font-size:10px}.simulated-choices{margin-top:0}.sandbox-note{margin:16px 0 0;color:#047857;font-size:12px;line-height:1.5}.milestone-list{margin:20px 0;border-top:1px solid var(--line)}.milestone-list>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.milestone-list span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-size:12px;font-weight:700}.milestone-list b{font-size:13px}.milestone-list small{color:var(--muted);font-size:11px;text-align:right}.position-preview{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px dashed color-mix(in srgb,var(--app) 48%,#fff);border-radius:12px;padding:16px;margin-top:18px}.position-preview b{font-size:14px}.position-preview p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:820px){.ecosystem{padding:0 16px}.ecosystem-note,.ecosystem nav button span{display:none}.ecosystem nav{margin-left:auto}.product-nav{height:64px;padding:0 16px}.domain,.product-nav nav button:not(.selected){display:none}.product-nav nav{margin-left:auto}.hero{grid-template-columns:1fr;gap:34px;padding:47px 18px}.hero h1{font-size:47px}.lede{font-size:16px}.proof{gap:10px}.feature-grid,.product-grid,.steps>div,.dashboard-grid{grid-template-columns:1fr}.section{padding:62px 18px}.section h2{font-size:29px}.closing{padding:38px 18px;align-items:flex-start;flex-direction:column}.app-page{padding:32px 16px}.app-heading{align-items:flex-start;flex-direction:column}.app-heading h1{font-size:36px}.demo-banner{align-items:flex-start;flex-direction:column;gap:3px}.record-list small{display:none}.demo-form>div{flex-direction:column}.demo-form .primary{align-self:flex-start}.source-grid,.capsule-stats{grid-template-columns:1fr}.handoff-card,.job-row,.project-card,.team-card,.position-card,.position-preview{align-items:flex-start;flex-direction:column}.simulated-choices{width:100%}.simulated-choices .secondary{flex:1}.add-task{flex-direction:column}.milestone-list>div{grid-template-columns:28px 1fr}.milestone-list small{grid-column:2;text-align:left}.workflow-panel{padding:20px}footer{padding:20px 16px;flex-wrap:wrap}} diff --git a/subapps/dist-products/conceptnexus/assets/index-CzNfGGEN.js b/subapps/dist-products/conceptnexus/assets/index-CzNfGGEN.js new file mode 100644 index 0000000..ac160ca --- /dev/null +++ b/subapps/dist-products/conceptnexus/assets/index-CzNfGGEN.js @@ -0,0 +1,49 @@ +(function(){const E=document.createElement("link").relList;if(E&&E.supports&&E.supports("modulepreload"))return;for(const C of document.querySelectorAll('link[rel="modulepreload"]'))h(C);new MutationObserver(C=>{for(const R of C)if(R.type==="childList")for(const L of R.addedNodes)L.tagName==="LINK"&&L.rel==="modulepreload"&&h(L)}).observe(document,{childList:!0,subtree:!0});function _(C){const R={};return C.integrity&&(R.integrity=C.integrity),C.referrerPolicy&&(R.referrerPolicy=C.referrerPolicy),C.crossOrigin==="use-credentials"?R.credentials="include":C.crossOrigin==="anonymous"?R.credentials="omit":R.credentials="same-origin",R}function h(C){if(C.ep)return;C.ep=!0;const R=_(C);fetch(C.href,R)}})();var cf={exports:{}},pu={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var gr;function tv(){if(gr)return pu;gr=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.fragment");function _(h,C,R){var L=null;if(R!==void 0&&(L=""+R),C.key!==void 0&&(L=""+C.key),"key"in C){R={};for(var X in C)X!=="key"&&(R[X]=C[X])}else R=C;return C=R.ref,{$$typeof:m,type:h,key:L,ref:C!==void 0?C:null,props:R}}return pu.Fragment=E,pu.jsx=_,pu.jsxs=_,pu}var Sr;function ev(){return Sr||(Sr=1,cf.exports=tv()),cf.exports}var f=ev(),ff={exports:{}},G={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var br;function av(){if(br)return G;br=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),R=Symbol.for("react.consumer"),L=Symbol.for("react.context"),X=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),z=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),hl=Symbol.iterator;function kl(d){return d===null||typeof d!="object"?null:(d=hl&&d[hl]||d["@@iterator"],typeof d=="function"?d:null)}var ql={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Hl=Object.assign,Dt={};function Wl(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}Wl.prototype.isReactComponent={},Wl.prototype.setState=function(d,x){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,x,"setState")},Wl.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function $t(){}$t.prototype=Wl.prototype;function Ul(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}var ct=Ul.prototype=new $t;ct.constructor=Ul,Hl(ct,Wl.prototype),ct.isPureReactComponent=!0;var zt=Array.isArray;function Yl(){}var $={H:null,A:null,T:null,S:null},Gl=Object.prototype.hasOwnProperty;function xt(d,x,N){var M=N.ref;return{$$typeof:m,type:d,key:x,ref:M!==void 0?M:null,props:N}}function Ze(d,x){return xt(d.type,x,d.props)}function Et(d){return typeof d=="object"&&d!==null&&d.$$typeof===m}function Xl(d){var x={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(N){return x[N]})}var Te=/\/+/g;function Mt(d,x){return typeof d=="object"&&d!==null&&d.key!=null?Xl(""+d.key):x.toString(36)}function St(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then(Yl,Yl):(d.status="pending",d.then(function(x){d.status==="pending"&&(d.status="fulfilled",d.value=x)},function(x){d.status==="pending"&&(d.status="rejected",d.reason=x)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function p(d,x,N,M,Q){var w=typeof d;(w==="undefined"||w==="boolean")&&(d=null);var el=!1;if(d===null)el=!0;else switch(w){case"bigint":case"string":case"number":el=!0;break;case"object":switch(d.$$typeof){case m:case E:el=!0;break;case I:return el=d._init,p(el(d._payload),x,N,M,Q)}}if(el)return Q=Q(d),el=M===""?"."+Mt(d,0):M,zt(Q)?(N="",el!=null&&(N=el.replace(Te,"$&/")+"/"),p(Q,x,N,"",function(Na){return Na})):Q!=null&&(Et(Q)&&(Q=Ze(Q,N+(Q.key==null||d&&d.key===Q.key?"":(""+Q.key).replace(Te,"$&/")+"/")+el)),x.push(Q)),1;el=0;var Rl=M===""?".":M+":";if(zt(d))for(var gl=0;gl>>1,sl=p[nl];if(0>>1;nlC(N,Y))MC(Q,N)?(p[nl]=Q,p[M]=Y,nl=M):(p[nl]=N,p[x]=Y,nl=x);else if(MC(Q,Y))p[nl]=Q,p[M]=Y,nl=M;else break l}}return A}function C(p,A){var Y=p.sortIndex-A.sortIndex;return Y!==0?Y:p.id-A.id}if(m.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var R=performance;m.unstable_now=function(){return R.now()}}else{var L=Date,X=L.now();m.unstable_now=function(){return L.now()-X}}var O=[],z=[],I=1,q=null,hl=3,kl=!1,ql=!1,Hl=!1,Dt=!1,Wl=typeof setTimeout=="function"?setTimeout:null,$t=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function ct(p){for(var A=_(z);A!==null;){if(A.callback===null)h(z);else if(A.startTime<=p)h(z),A.sortIndex=A.expirationTime,E(O,A);else break;A=_(z)}}function zt(p){if(Hl=!1,ct(p),!ql)if(_(O)!==null)ql=!0,Yl||(Yl=!0,Xl());else{var A=_(z);A!==null&&St(zt,A.startTime-p)}}var Yl=!1,$=-1,Gl=5,xt=-1;function Ze(){return Dt?!0:!(m.unstable_now()-xtp&&Ze());){var nl=q.callback;if(typeof nl=="function"){q.callback=null,hl=q.priorityLevel;var sl=nl(q.expirationTime<=p);if(p=m.unstable_now(),typeof sl=="function"){q.callback=sl,ct(p),A=!0;break t}q===_(O)&&h(O),ct(p)}else h(O);q=_(O)}if(q!==null)A=!0;else{var d=_(z);d!==null&&St(zt,d.startTime-p),A=!1}}break l}finally{q=null,hl=Y,kl=!1}A=void 0}}finally{A?Xl():Yl=!1}}}var Xl;if(typeof Ul=="function")Xl=function(){Ul(Et)};else if(typeof MessageChannel<"u"){var Te=new MessageChannel,Mt=Te.port2;Te.port1.onmessage=Et,Xl=function(){Mt.postMessage(null)}}else Xl=function(){Wl(Et,0)};function St(p,A){$=Wl(function(){p(m.unstable_now())},A)}m.unstable_IdlePriority=5,m.unstable_ImmediatePriority=1,m.unstable_LowPriority=4,m.unstable_NormalPriority=3,m.unstable_Profiling=null,m.unstable_UserBlockingPriority=2,m.unstable_cancelCallback=function(p){p.callback=null},m.unstable_forceFrameRate=function(p){0>p||125nl?(p.sortIndex=Y,E(z,p),_(O)===null&&p===_(z)&&(Hl?($t($),$=-1):Hl=!0,St(zt,Y-nl))):(p.sortIndex=sl,E(O,p),ql||kl||(ql=!0,Yl||(Yl=!0,Xl()))),p},m.unstable_shouldYield=Ze,m.unstable_wrapCallback=function(p){var A=hl;return function(){var Y=hl;hl=A;try{return p.apply(this,arguments)}finally{hl=Y}}}})(df)),df}var Tr;function nv(){return Tr||(Tr=1,of.exports=uv()),of.exports}var rf={exports:{}},Cl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zr;function iv(){if(zr)return Cl;zr=1;var m=mf();function E(O){var z="https://react.dev/errors/"+O;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),rf.exports=iv(),rf.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Er;function fv(){if(Er)return ju;Er=1;var m=nv(),E=mf(),_=cv();function h(l){var t="https://react.dev/errors/"+l;if(1sl||(l.current=nl[sl],nl[sl]=null,sl--)}function N(l,t){sl++,nl[sl]=l.current,l.current=t}var M=d(null),Q=d(null),w=d(null),el=d(null);function Rl(l,t){switch(N(w,t),N(Q,l),N(M,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Xd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Xd(t),l=Qd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}x(M),N(M,l)}function gl(){x(M),x(Q),x(w)}function Na(l){l.memoizedState!==null&&N(el,l);var t=M.current,e=Qd(t,l.type);t!==e&&(N(Q,l),N(M,e))}function Tu(l){Q.current===l&&(x(M),x(Q)),el.current===l&&(x(el),yu._currentValue=Y)}var Zn,vf;function ze(l){if(Zn===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Zn=t&&t[1]||"",vf=-1)":-1u||s[a]!==y[u]){var b=` +`+s[a].replace(" at new "," at ");return l.displayName&&b.includes("")&&(b=b.replace("",l.displayName)),b}while(1<=a&&0<=u);break}}}finally{Vn=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:"")?ze(e):""}function Ur(l,t){switch(l.tag){case 26:case 27:case 5:return ze(l.type);case 16:return ze("Lazy");case 13:return l.child!==t&&t!==null?ze("Suspense Fallback"):ze("Suspense");case 19:return ze("SuspenseList");case 0:case 15:return Ln(l.type,!1);case 11:return Ln(l.type.render,!1);case 1:return Ln(l.type,!0);case 31:return ze("Activity");default:return""}}function yf(l){try{var t="",e=null;do t+=Ur(l,e),e=l,l=l.return;while(l);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}var wn=Object.prototype.hasOwnProperty,Kn=m.unstable_scheduleCallback,Jn=m.unstable_cancelCallback,Cr=m.unstable_shouldYield,Hr=m.unstable_requestPaint,$l=m.unstable_now,Rr=m.unstable_getCurrentPriorityLevel,gf=m.unstable_ImmediatePriority,Sf=m.unstable_UserBlockingPriority,zu=m.unstable_NormalPriority,Br=m.unstable_LowPriority,bf=m.unstable_IdlePriority,qr=m.log,Yr=m.unstable_setDisableYieldValue,_a=null,Fl=null;function Ft(l){if(typeof qr=="function"&&Yr(l),Fl&&typeof Fl.setStrictMode=="function")try{Fl.setStrictMode(_a,l)}catch{}}var Il=Math.clz32?Math.clz32:Qr,Gr=Math.log,Xr=Math.LN2;function Qr(l){return l>>>=0,l===0?32:31-(Gr(l)/Xr|0)|0}var xu=256,Eu=262144,Au=4194304;function xe(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Nu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=xe(a):(i&=c,i!==0?u=xe(i):e||(e=c&~l,e!==0&&(u=xe(e))))):(c=a&~n,c!==0?u=xe(c):i!==0?u=xe(i):e||(e=a&~l,e!==0&&(u=xe(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function Oa(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Zr(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function pf(){var l=Au;return Au<<=1,(Au&62914560)===0&&(Au=4194304),l}function kn(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function Da(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Vr(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,s=l.expirationTimes,y=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Wr=/[\n"\\]/g;function st(l){return l.replace(Wr,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function li(l,t,e,a,u,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ft(t)):l.value!==""+ft(t)&&(l.value=""+ft(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?ti(l,i,ft(t)):e!=null?ti(l,i,ft(e)):a!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+ft(c):l.removeAttribute("name")}function Cf(l,t,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){Pn(l);return}e=e!=null?""+ft(e):"",t=t!=null?""+ft(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),Pn(l)}function ti(l,t,e){t==="number"&&Du(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function ke(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ii=!1;if(Ht)try{var Ha={};Object.defineProperty(Ha,"passive",{get:function(){ii=!0}}),window.addEventListener("test",Ha,Ha),window.removeEventListener("test",Ha,Ha)}catch{ii=!1}var Pt=null,ci=null,Uu=null;function Xf(){if(Uu)return Uu;var l,t=ci,e=t.length,a,u="value"in Pt?Pt.value:Pt.textContent,n=u.length;for(l=0;l=qa),Kf=" ",Jf=!1;function kf(l,t){switch(l){case"keyup":return zh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Ie=!1;function Eh(l,t){switch(l){case"compositionend":return Wf(t);case"keypress":return t.which!==32?null:(Jf=!0,Kf);case"textInput":return l=t.data,l===Kf&&Jf?null:l;default:return null}}function Ah(l,t){if(Ie)return l==="compositionend"||!ri&&kf(l,t)?(l=Xf(),Uu=ci=Pt=null,Ie=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=as(e)}}function ns(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?ns(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function is(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Du(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Du(l.document)}return t}function vi(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var Hh=Ht&&"documentMode"in document&&11>=document.documentMode,Pe=null,yi=null,Qa=null,gi=!1;function cs(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;gi||Pe==null||Pe!==Du(a)||(a=Pe,"selectionStart"in a&&vi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qa&&Xa(Qa,a)||(Qa=a,a=An(yi,"onSelect"),0>=i,u-=i,At=1<<32-Il(t)+u|e<V?(W=U,U=null):W=U.sibling;var ll=g(r,U,v[V],j);if(ll===null){U===null&&(U=W);break}l&&U&&ll.alternate===null&&t(r,U),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll,U=W}if(V===v.length)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;VV?(W=U,U=null):W=U.sibling;var je=g(r,U,ll.value,j);if(je===null){U===null&&(U=W);break}l&&U&&je.alternate===null&&t(r,U),o=n(je,o,V),P===null?H=je:P.sibling=je,P=je,U=W}if(ll.done)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;!ll.done;V++,ll=v.next())ll=T(r,ll.value,j),ll!==null&&(o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return F&&Bt(r,V),H}for(U=a(U);!ll.done;V++,ll=v.next())ll=S(U,r,V,ll.value,j),ll!==null&&(l&&ll.alternate!==null&&U.delete(ll.key===null?V:ll.key),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return l&&U.forEach(function(lv){return t(r,lv)}),F&&Bt(r,V),H}function fl(r,o,v,j){if(typeof v=="object"&&v!==null&&v.type===Hl&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case kl:l:{for(var H=v.key;o!==null;){if(o.key===H){if(H=v.type,H===Hl){if(o.tag===7){e(r,o.sibling),j=u(o,v.props.children),j.return=r,r=j;break l}}else if(o.elementType===H||typeof H=="object"&&H!==null&&H.$$typeof===Gl&&Re(H)===o.type){e(r,o.sibling),j=u(o,v.props),Ja(j,v),j.return=r,r=j;break l}e(r,o);break}else t(r,o);o=o.sibling}v.type===Hl?(j=De(v.props.children,r.mode,j,v.key),j.return=r,r=j):(j=Zu(v.type,v.key,v.props,null,r.mode,j),Ja(j,v),j.return=r,r=j)}return i(r);case ql:l:{for(H=v.key;o!==null;){if(o.key===H)if(o.tag===4&&o.stateNode.containerInfo===v.containerInfo&&o.stateNode.implementation===v.implementation){e(r,o.sibling),j=u(o,v.children||[]),j.return=r,r=j;break l}else{e(r,o);break}else t(r,o);o=o.sibling}j=xi(v,r.mode,j),j.return=r,r=j}return i(r);case Gl:return v=Re(v),fl(r,o,v,j)}if(St(v))return D(r,o,v,j);if(Xl(v)){if(H=Xl(v),typeof H!="function")throw Error(h(150));return v=H.call(v),B(r,o,v,j)}if(typeof v.then=="function")return fl(r,o,Wu(v),j);if(v.$$typeof===Ul)return fl(r,o,wu(r,v),j);$u(r,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,o!==null&&o.tag===6?(e(r,o.sibling),j=u(o,v),j.return=r,r=j):(e(r,o),j=zi(v,r.mode,j),j.return=r,r=j),i(r)):e(r,o)}return function(r,o,v,j){try{Ka=0;var H=fl(r,o,v,j);return oa=null,H}catch(U){if(U===sa||U===Ju)throw U;var P=lt(29,U,null,r.mode);return P.lanes=j,P.return=r,P}finally{}}}var qe=Ds(!0),Ms=Ds(!1),ue=!1;function Bi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qi(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ne(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ie(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(tl&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Qu(l),ms(l,null,e),t}return Xu(l,a,t,e),Qu(l)}function ka(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}function Yi(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Gi=!1;function Wa(){if(Gi){var l=fa;if(l!==null)throw l}}function $a(l,t,e,a){Gi=!1;var u=l.updateQueue;ue=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var s=c,y=s.next;s.next=null,i===null?n=y:i.next=y,i=s;var b=l.alternate;b!==null&&(b=b.updateQueue,c=b.lastBaseUpdate,c!==i&&(c===null?b.firstBaseUpdate=y:c.next=y,b.lastBaseUpdate=s))}if(n!==null){var T=u.baseState;i=0,b=y=s=null,c=n;do{var g=c.lane&-536870913,S=g!==c.lane;if(S?(k&g)===g:(a&g)===g){g!==0&&g===ca&&(Gi=!0),b!==null&&(b=b.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var D=l,B=c;g=t;var fl=e;switch(B.tag){case 1:if(D=B.payload,typeof D=="function"){T=D.call(fl,T,g);break l}T=D;break l;case 3:D.flags=D.flags&-65537|128;case 0:if(D=B.payload,g=typeof D=="function"?D.call(fl,T,g):D,g==null)break l;T=q({},T,g);break l;case 2:ue=!0}}g=c.callback,g!==null&&(l.flags|=64,S&&(l.flags|=8192),S=u.callbacks,S===null?u.callbacks=[g]:S.push(g))}else S={lane:g,tag:c.tag,payload:c.payload,callback:c.callback,next:null},b===null?(y=b=S,s=T):b=b.next=S,i|=g;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;S=c,c=S.next,S.next=null,u.lastBaseUpdate=S,u.shared.pending=null}}while(!0);b===null&&(s=T),u.baseState=s,u.firstBaseUpdate=y,u.lastBaseUpdate=b,n===null&&(u.shared.lanes=0),de|=i,l.lanes=i,l.memoizedState=T}}function Us(l,t){if(typeof l!="function")throw Error(h(191,l));l.call(t)}function Cs(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;ln?n:8;var i=p.T,c={};p.T=c,uc(l,!1,t,e);try{var s=u(),y=p.S;if(y!==null&&y(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var b=Vh(s,a);Pa(l,t,b,nt(l))}else Pa(l,t,a,nt(l))}catch(T){Pa(l,t,{then:function(){},status:"rejected",reason:T},nt())}finally{A.p=n,i!==null&&c.types!==null&&(i.types=c.types),p.T=i}}function Wh(){}function ec(l,t,e,a){if(l.tag!==5)throw Error(h(476));var u=ro(l).queue;oo(l,u,t,Y,e===null?Wh:function(){return ho(l),e(a)})}function ro(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:Y},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function ho(l){var t=ro(l);t.next===null&&(t=l.alternate.memoizedState),Pa(l,t.next.queue,{},nt())}function ac(){return Ol(yu)}function mo(){return bl().memoizedState}function vo(){return bl().memoizedState}function $h(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=nt();l=ne(e);var a=ie(t,l,e);a!==null&&(Jl(a,t,e),ka(a,t,e)),t={cache:Ui()},l.payload=t;return}t=t.return}}function Fh(l,t,e){var a=nt();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},cn(l)?go(t,e):(e=ji(l,t,e,a),e!==null&&(Jl(e,l,a),So(e,t,a)))}function yo(l,t,e){var a=nt();Pa(l,t,e,a)}function Pa(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(cn(l))go(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,Pl(c,i))return Xu(l,t,u,0),ol===null&&Gu(),!1}catch{}finally{}if(e=ji(l,t,u,a),e!==null)return Jl(e,l,a),So(e,t,a),!0}return!1}function uc(l,t,e,a){if(a={lane:2,revertLane:Bc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},cn(l)){if(t)throw Error(h(479))}else t=ji(l,e,a,2),t!==null&&Jl(t,l,2)}function cn(l){var t=l.alternate;return l===Z||t!==null&&t===Z}function go(l,t){ra=Pu=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function So(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}var lu={readContext:Ol,use:en,useCallback:vl,useContext:vl,useEffect:vl,useImperativeHandle:vl,useLayoutEffect:vl,useInsertionEffect:vl,useMemo:vl,useReducer:vl,useRef:vl,useState:vl,useDebugValue:vl,useDeferredValue:vl,useTransition:vl,useSyncExternalStore:vl,useId:vl,useHostTransitionStatus:vl,useFormState:vl,useActionState:vl,useOptimistic:vl,useMemoCache:vl,useCacheRefresh:vl};lu.useEffectEvent=vl;var bo={readContext:Ol,use:en,useCallback:function(l,t){return Bl().memoizedState=[l,t===void 0?null:t],l},useContext:Ol,useEffect:to,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,un(4194308,4,no.bind(null,t,l),e)},useLayoutEffect:function(l,t){return un(4194308,4,l,t)},useInsertionEffect:function(l,t){un(4,2,l,t)},useMemo:function(l,t){var e=Bl();t=t===void 0?null:t;var a=l();if(Ye){Ft(!0);try{l()}finally{Ft(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=Bl();if(e!==void 0){var u=e(t);if(Ye){Ft(!0);try{e(t)}finally{Ft(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=Fh.bind(null,Z,l),[a.memoizedState,l]},useRef:function(l){var t=Bl();return l={current:l},t.memoizedState=l},useState:function(l){l=Fi(l);var t=l.queue,e=yo.bind(null,Z,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:lc,useDeferredValue:function(l,t){var e=Bl();return tc(e,l,t)},useTransition:function(){var l=Fi(!1);return l=oo.bind(null,Z,l.queue,!0,!1),Bl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=Z,u=Bl();if(F){if(e===void 0)throw Error(h(407));e=e()}else{if(e=t(),ol===null)throw Error(h(349));(k&127)!==0||Gs(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,to(Qs.bind(null,a,n,l),[l]),a.flags|=2048,ma(9,{destroy:void 0},Xs.bind(null,a,n,e,t),null),e},useId:function(){var l=Bl(),t=ol.identifierPrefix;if(F){var e=Nt,a=At;e=(a&~(1<<32-Il(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=ln++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[Nl]=t,n[Ql]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Ml(n,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&Zt(t)}}return rl(t),Sc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Zt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(h(166));if(l=w.current,na(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=_l,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[Nl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||Yd(l.nodeValue,e)),l||ee(t,!0)}else l=Nn(l).createTextNode(a),l[Nl]=t,t.stateNode=l}return rl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=na(t),e!==null){if(l===null){if(!a)throw Error(h(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),l=!1}else e=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(et(t),t):(et(t),null);if((t.flags&128)!==0)throw Error(h(558))}return rl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=na(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(h(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(h(317));u[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),u=!1}else u=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(et(t),t):(et(t),null)}return et(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),rn(t,t.updateQueue),rl(t),null);case 4:return gl(),l===null&&Xc(t.stateNode.containerInfo),rl(t),null;case 10:return Yt(t.type),rl(t),null;case 19:if(x(Sl),a=t.memoizedState,a===null)return rl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)eu(a,!1);else{if(yl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=Iu(l),n!==null){for(t.flags|=128,eu(a,!1),l=n.updateQueue,t.updateQueue=l,rn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)vs(e,l),e=e.sibling;return N(Sl,Sl.current&1|2),F&&Bt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&$l()>gn&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304)}else{if(!u)if(l=Iu(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,rn(t,l),eu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!F)return rl(t),null}else 2*$l()-a.renderingStartTime>gn&&e!==536870912&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=$l(),l.sibling=null,e=Sl.current,N(Sl,u?e&1|2:e&1),F&&Bt(t,a.treeForkCount),l):(rl(t),null);case 22:case 23:return et(t),Qi(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(rl(t),t.subtreeFlags&6&&(t.flags|=8192)):rl(t),e=t.updateQueue,e!==null&&rn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&x(He),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),Yt(pl),rl(t),null;case 25:return null;case 30:return null}throw Error(h(156,t.tag))}function em(l,t){switch(Ai(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Yt(pl),gl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Tu(t),null;case 31:if(t.memoizedState!==null){if(et(t),t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(et(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return x(Sl),null;case 4:return gl(),null;case 10:return Yt(t.type),null;case 22:case 23:return et(t),Qi(),l!==null&&x(He),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Yt(pl),null;case 25:return null;default:return null}}function Vo(l,t){switch(Ai(t),t.tag){case 3:Yt(pl),gl();break;case 26:case 27:case 5:Tu(t);break;case 4:gl();break;case 31:t.memoizedState!==null&&et(t);break;case 13:et(t);break;case 19:x(Sl);break;case 10:Yt(t.type);break;case 22:case 23:et(t),Qi(),l!==null&&x(He);break;case 24:Yt(pl)}}function au(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(c){ul(t,t.return,c)}}function se(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var s=e,y=c;try{y()}catch(b){ul(u,s,b)}}}a=a.next}while(a!==n)}}catch(b){ul(t,t.return,b)}}function Lo(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{Cs(t,e)}catch(a){ul(l,l.return,a)}}}function wo(l,t,e){e.props=Ge(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){ul(l,t,a)}}function uu(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e=="function"?l.refCleanup=e(a):e.current=a}}catch(u){ul(l,t,u)}}function _t(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){ul(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(u){ul(l,t,u)}else e.current=null}function Ko(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){ul(l,l.return,u)}}function bc(l,t,e){try{var a=l.stateNode;xm(a,l.type,e,t),a[Ql]=t}catch(u){ul(l,l.return,u)}}function Jo(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ye(l.type)||l.tag===4}function pc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Jo(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&ye(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function jc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=Ct));else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(jc(l,t,e),l=l.sibling;l!==null;)jc(l,t,e),l=l.sibling}function hn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(hn(l,t,e),l=l.sibling;l!==null;)hn(l,t,e),l=l.sibling}function ko(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Ml(t,a,e),t[Nl]=l,t[Ql]=e}catch(n){ul(l,l.return,n)}}var Vt=!1,zl=!1,Tc=!1,Wo=typeof WeakSet=="function"?WeakSet:Set,Al=null;function am(l,t){if(l=l.containerInfo,Vc=Hn,l=is(l),vi(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,c=-1,s=-1,y=0,b=0,T=l,g=null;t:for(;;){for(var S;T!==e||u!==0&&T.nodeType!==3||(c=i+u),T!==n||a!==0&&T.nodeType!==3||(s=i+a),T.nodeType===3&&(i+=T.nodeValue.length),(S=T.firstChild)!==null;)g=T,T=S;for(;;){if(T===l)break t;if(g===e&&++y===u&&(c=i),g===n&&++b===a&&(s=i),(S=T.nextSibling)!==null)break;T=g,g=T.parentNode}T=S}e=c===-1||s===-1?null:{start:c,end:s}}else e=null}e=e||{start:0,end:0}}else e=null;for(Lc={focusedElem:l,selectionRange:e},Hn=!1,Al=t;Al!==null;)if(t=Al,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Al=l;else for(;Al!==null;){switch(t=Al,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),Ml(n,a,e),n[Nl]=l,El(n),a=n;break l;case"link":var i=tr("link","href",u).get(a+(e.href||""));if(i){for(var c=0;cfl&&(i=fl,fl=B,B=i);var r=us(c,B),o=us(c,fl);if(r&&o&&(S.rangeCount!==1||S.anchorNode!==r.node||S.anchorOffset!==r.offset||S.focusNode!==o.node||S.focusOffset!==o.offset)){var v=T.createRange();v.setStart(r.node,r.offset),S.removeAllRanges(),B>fl?(S.addRange(v),S.extend(o.node,o.offset)):(v.setEnd(o.node,o.offset),S.addRange(v))}}}}for(T=[],S=c;S=S.parentNode;)S.nodeType===1&&T.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,p.T=null,e=Oc,Oc=null;var n=he,i=kt;if(xl=0,ba=he=null,kt=0,(tl&6)!==0)throw Error(h(331));var c=tl;if(tl|=4,id(n.current),ad(n,n.current,i,e),tl=c,ou(0,!1),Fl&&typeof Fl.onPostCommitFiberRoot=="function")try{Fl.onPostCommitFiberRoot(_a,n)}catch{}return!0}finally{A.p=u,p.T=a,xd(l,t)}}function Ad(l,t,e){t=dt(e,t),t=fc(l.stateNode,t,2),l=ie(l,t,2),l!==null&&(Da(l,2),Ot(l))}function ul(l,t,e){if(l.tag===3)Ad(l,l,e);else for(;t!==null;){if(t.tag===3){Ad(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(re===null||!re.has(a))){l=dt(e,l),e=No(2),a=ie(t,e,2),a!==null&&(_o(e,a,t,l),Da(a,2),Ot(a));break}}t=t.return}}function Cc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new im;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(Ec=!0,u.add(e),l=dm.bind(null,l,t,e),t.then(l,l))}function dm(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,ol===l&&(k&e)===e&&(yl===4||yl===3&&(k&62914560)===k&&300>$l()-yn?(tl&2)===0&&pa(l,0):Ac|=e,Sa===k&&(Sa=0)),Ot(l)}function Nd(l,t){t===0&&(t=pf()),l=Oe(l,t),l!==null&&(Da(l,t),Ot(l))}function rm(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),Nd(l,e)}function hm(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(h(314))}a!==null&&a.delete(t),Nd(l,e)}function mm(l,t){return Kn(l,t)}var zn=null,Ta=null,Hc=!1,xn=!1,Rc=!1,ve=0;function Ot(l){l!==Ta&&l.next===null&&(Ta===null?zn=Ta=l:Ta=Ta.next=l),xn=!0,Hc||(Hc=!0,ym())}function ou(l,t){if(!Rc&&xn){Rc=!0;do for(var e=!1,a=zn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,c=a.pingedLanes;n=(1<<31-Il(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,Md(a,n))}else n=k,n=Nu(a,a===ol?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||Oa(a,n)||(e=!0,Md(a,n));a=a.next}while(e);Rc=!1}}function vm(){_d()}function _d(){xn=Hc=!1;var l=0;ve!==0&&Am()&&(l=ve);for(var t=$l(),e=null,a=zn;a!==null;){var u=a.next,n=Od(a,t);n===0?(a.next=null,e===null?zn=u:e.next=u,u===null&&(Ta=e)):(e=a,(l!==0||(n&3)!==0)&&(xn=!0)),a=u}xl!==0&&xl!==5||ou(l),ve!==0&&(ve=0)}function Od(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var b=s.transferSize,T=s.initiatorType;b&&Gd(T)&&(s=s.responseEnd,i+=b*(s"u"?null:document;function Fd(l,t,e){var a=za;if(a&&typeof t=="string"&&t){var u=st(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof e=="string"&&(u+='[crossorigin="'+e+'"]'),$d.has(u)||($d.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Rm(l){Wt.D(l),Fd("dns-prefetch",l,null)}function Bm(l,t){Wt.C(l,t),Fd("preconnect",l,t)}function qm(l,t,e){Wt.L(l,t,e);var a=za;if(a&&l&&t){var u='link[rel="preload"][as="'+st(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+st(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+st(e.imageSizes)+'"]')):u+='[href="'+st(l)+'"]';var n=u;switch(t){case"style":n=xa(l);break;case"script":n=Ea(l)}gt.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),gt.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(mu(n))||t==="script"&&a.querySelector(vu(n))||(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Ym(l,t){Wt.m(l,t);var e=za;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+st(a)+'"][href="'+st(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ea(l)}if(!gt.has(n)&&(l=q({rel:"modulepreload",href:l},t),gt.set(n,l),e.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(vu(n)))return}a=e.createElement("link"),Ml(a,"link",l),El(a),e.head.appendChild(a)}}}function Gm(l,t,e){Wt.S(l,t,e);var a=za;if(a&&l){var u=Ke(a).hoistableStyles,n=xa(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(mu(n)))c.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},e),(e=gt.get(n))&&Fc(l,e);var s=i=a.createElement("link");El(s),Ml(s,"link",l),s._p=new Promise(function(y,b){s.onload=y,s.onerror=b}),s.addEventListener("load",function(){c.loading|=1}),s.addEventListener("error",function(){c.loading|=2}),c.loading|=4,On(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function Xm(l,t){Wt.X(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Qm(l,t){Wt.M(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Id(l,t,e,a){var u=(u=w.current)?_n(u):null;if(!u)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=xa(e.href),e=Ke(u).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=xa(e.href);var n=Ke(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(mu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),gt.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},gt.set(l,e),n||Zm(u,l,e,i.state))),t&&a===null)throw Error(h(528,""));return i}if(t&&a!==null)throw Error(h(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ea(e),e=Ke(u).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function xa(l){return'href="'+st(l)+'"'}function mu(l){return'link[rel="stylesheet"]['+l+"]"}function Pd(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function Zm(l,t,e,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ml(t,"link",e),El(t),l.head.appendChild(t))}function Ea(l){return'[src="'+st(l)+'"]'}function vu(l){return"script[async]"+l}function lr(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+st(e.href)+'"]');if(a)return t.instance=a,El(a),a;var u=q({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),El(a),Ml(a,"style",u),On(a,e.precedence,l),t.instance=a;case"stylesheet":u=xa(e.href);var n=l.querySelector(mu(u));if(n)return t.state.loading|=4,t.instance=n,El(n),n;a=Pd(e),(u=gt.get(u))&&Fc(a,u),n=(l.ownerDocument||l).createElement("link"),El(n);var i=n;return i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),t.state.loading|=4,On(n,e.precedence,l),t.instance=n;case"script":return n=Ea(e.src),(u=l.querySelector(vu(n)))?(t.instance=u,El(u),u):(a=e,(u=gt.get(n))&&(a=q({},e),Ic(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),El(u),Ml(u,"link",a),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(h(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,On(a,e.precedence,l));return t.instance}function On(l,t,e){for(var a=e.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i title"):null)}function Vm(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function ar(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Lm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=xa(a.href),n=t.querySelector(mu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Mn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,El(n);return}n=t.ownerDocument||t,a=Pd(a),(u=gt.get(u))&&Fc(a,u),n=n.createElement("link"),El(n);var i=n;i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Mn.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var Pc=0;function wm(l,t){return l.stylesheets&&l.count===0&&Cn(l,l.stylesheets),0Pc?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Mn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Cn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Un=null;function Cn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Un=new Map,t.forEach(Km,l),Un=null,Mn.call(l))}function Km(l,t){if(!(t.state.loading&4)){var e=Un.get(l);if(e)var a=e.get(null);else{e=new Map,Un.set(l,e);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),sf.exports=fv(),sf.exports}var ov=sv();const Qn={conceptnexus:{key:"conceptnexus",name:"ConceptsNexus",mark:"C",accent:"violet",domain:"Planned route · concepts.fixars.ai",eyebrow:"Idea refinement & certification",headline:"Every certified idea started as a hunch",description:"Submit in plain words. AI triage sharpens it and flags the gaps, the community validates it, experts certify it with an IIVS score. What comes out the other end is fund-ready — with receipts, not vibes.",primary:"Submit an idea",secondary:"Become a validator",stats:[["~2 hrs","to an AI triage report — free"],["IIVS","innovation · impact · viability · scalability"],["512","supporters on the top concept this month"]],preview:["Smart waste sorting micro-commission","Certified · CN-2044 · quorum 100%","IIVS breakdown","Handed off to CollaBoard with legal pack + skill brief"],features:[["AI triage & synthesis","A structured brief, a draft IIVS and named gaps before human review."],["Community + validator quorum","Support signals and independent validation make demand visible."],["Certification that carries over","The concept receipt and skill brief travel into a CollaBoard capsule."]],steps:["Submit plainly","AI triage","Community validation","Certified & handed off"],dashboardTitle:"Every certified idea started here",dashboardSub:"Explore an idea, shape its evidence and prepare a usable build brief."},skillscanvas:{key:"skillscanvas",name:"SkillsCanvas",mark:"S",accent:"cyan",domain:"Planned route · skills.fixars.ai",eyebrow:"Verified skills marketplace",headline:"Prove it. Get paid for it.",description:"Your CV says “detail-oriented”. Your SkillsCanvas passport says 1,240 labeled datasets at 99.1% accuracy — and every claim comes with receipts. Do paid micro-work, level real skills, apply to full work with one tap.",primary:"Create your canvas",secondary:"See how it works",stats:[["₦900–2,900","per micro-task, paid same day"],["4 tiers","self-reported → ecosystem-proven"],["94%","top job fit, computed from receipts"]],preview:["Attention to detail — Lv 8","Ecosystem-proven","Identify UI bugs (mobile)","Junior QA engineer · TechFlow"],features:[["Micro-work that pays same day","Short tasks matched to the skills you are levelling."],["Four tiers, no shortcuts","Top-tier proof comes from assessed and shipped work."],["The passport is the application","Fit is based on verified levels, not keyword bingo."]],steps:["Claim your skills","Do micro-work","Get assessed","Ship real work"],dashboardTitle:"Good afternoon, Adaeze",dashboardSub:"Every skill on your canvas is provable, with receipts."},collaboard:{key:"collaboard",name:"CollaBoard",mark:"B",accent:"coral",domain:"Planned route · collab.fixars.ai",eyebrow:"Escrowed project execution",headline:"Build with strangers, safely",description:"A capsule is a sealed workspace: team, tasks, artifacts and a signed legal pack travel together. Ownership, licensing and data consent are settled before the first task — while everyone still likes each other.",primary:"Start a capsule",secondary:"See how it works",stats:[["Day 0","legal pack signed before work starts"],["5 gates","product · legal · team · market · safety"],["Receipts","approved artifacts are traceable"]],preview:["Smart Irrigation Bundle","AgriTech-NGR-2024 · week 3 · capsule health","JDA signed · iCLA · NDPA","System architecture diagram v1.2"],features:[["Legal engine, not legal fees","A clear collaboration pack from the first day of work."],["Teams from passports","Recruit against verified SkillsCanvas evidence, not promises."],["Artifacts become receipts","Approved work becomes clear project evidence."]],steps:["Open a capsule","Sign the pack","Build in sprints","Ship receipts"],dashboardTitle:"Smart Irrigation Bundle",dashboardSub:"A shared project capsule with people, work, evidence and clear handoffs."},vestden:{key:"vestden",name:"VestDen",mark:"V",accent:"green",domain:"Planned route · vest.fixars.ai",eyebrow:"Demo project diligence",headline:"Watch the work, not the pitch",description:"Explore how a project’s concept, team evidence and delivery receipts can be understood together. This temporary workspace uses a dummy profile and simulated data only — no funds are held and no financial actions are available.",primary:"Explore the pipeline",secondary:"See how it works",stats:[["Demo only","simulated project information"],["3 signals","concept · skills · delivery"],["No funds","financial actions are disabled"]],preview:["Community water monitoring pilot","Simulated project brief · Stage 2","Concept · skills · delivery signals","Escrow available at regulated launch"],features:[["Structured project diligence","See the signals that would support a transparent project brief."],["Evidence from the ecosystem","Concept, skills and delivery information remain traceable."],["Demo-first by design","Learn the workflow without deposits, payouts or investment actions."]],steps:["Review a brief","Inspect evidence","Follow milestones","Regulated launch later"],dashboardTitle:"Community water monitoring pilot",dashboardSub:"Simulated project record for exploration and evaluation only."}},_r=Object.values(Qn),hf=()=>{const m=location.hostname.toLowerCase().replace(/^www\./,"");if(["skillscanvas.co","skills.fixars.ai"].includes(m))return"skillscanvas";if(["collaboard.co","collab.fixars.ai"].includes(m))return"collaboard";if(["vestden.co","vest.fixars.ai"].includes(m))return"vestden";if(["conceptsnexus.co","concepts.fixars.ai"].includes(m))return"conceptnexus";const E="conceptnexus";return Qn[E]?E:"conceptnexus"},Nr=()=>{const[m=hf(),E="home"]=location.hash.replace(/^#\/?/,"").split("/");return{product:Qn[m]?m:hf(),view:E==="app"?"app":"home"}},it=(m,E="home")=>{location.hash=`#/${m}/${E}`};function Or({active:m}){return f.jsxs("div",{className:"ecosystem",children:[f.jsxs("a",{className:"fixars-link",href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:["✦ ",f.jsx("span",{children:"fixars.ai ecosystem"})]}),f.jsx("span",{className:"ecosystem-note",children:"one account, one profile, connected evidence"}),f.jsx("nav",{"aria-label":"Fixars products",children:_r.map(E=>f.jsxs("button",{className:E.key===m?"active":"",onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("span",{children:E.name})]},E.key))})]})}function Dr({product:m,app:E}){return f.jsxs("header",{className:"product-nav",children:[f.jsxs("button",{className:"wordmark",onClick:()=>it(m.key),children:[f.jsx("i",{className:`mark ${m.accent}`,children:m.mark}),m.name]}),f.jsx("span",{className:"domain",children:m.domain}),f.jsxs("nav",{children:[f.jsx("button",{onClick:()=>it(m.key),className:E?"":"selected",children:"How it works"}),f.jsx("button",{onClick:()=>{var _;return(_=document.getElementById("ecosystem"))==null?void 0:_.scrollIntoView({behavior:"smooth"})},children:"Ecosystem"}),f.jsx("button",{onClick:()=>it(m.key,"app"),className:E?"selected":"",children:E?"Dashboard":"Open the app"})]})]})}function dv({product:m}){return f.jsxs("div",{className:"product-preview","aria-label":`${m.name} example`,children:[f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[0]}),f.jsx("span",{children:m.preview[1]})]}),f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[2]}),f.jsx("span",{children:m.key==="skillscanvas"?"3 min · +15 XP · Technical ops":m.key==="vestden"?"No financial actions":"Evidence attached"})]}),f.jsxs("div",{className:"preview-card compact",children:[f.jsx("span",{children:m.preview[3]}),f.jsx("b",{children:m.key==="vestden"?"Locked":"Ready"})]})]})}function rv({product:m}){return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m}),f.jsxs("main",{children:[f.jsxs("section",{className:"hero",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.eyebrow}),f.jsx("h1",{children:m.headline}),f.jsx("p",{className:"lede",children:m.description}),f.jsxs("div",{className:"actions",children:[f.jsx("button",{className:"primary",onClick:()=>it(m.key,"app"),children:m.primary}),f.jsx("button",{className:"secondary",onClick:()=>{var E;return(E=document.getElementById("how"))==null?void 0:E.scrollIntoView({behavior:"smooth"})},children:m.secondary})]}),f.jsx("div",{className:"proof",children:m.stats.map(([E,_])=>f.jsxs("div",{children:[f.jsx("b",{children:E}),f.jsx("span",{children:_})]},E))})]}),f.jsx(dv,{product:m})]}),f.jsx(hv,{product:m}),f.jsx(mv,{product:m}),f.jsx(vv,{product:m}),f.jsxs("section",{className:"closing",children:[f.jsxs("div",{children:[f.jsx("h2",{children:m.key==="vestden"?"Explore the demo workspace":`Open ${m.name}`}),f.jsx("p",{children:m.key==="vestden"?"Use the dummy profile to follow simulated project evidence. Financial actions stay disabled.":"Start with the source workflow, then let the connected ecosystem carry the evidence forward."})]}),f.jsx("button",{onClick:()=>it(m.key,"app"),children:m.primary})]})]}),f.jsx(Mr,{product:m})]})}function hv({product:m}){return f.jsxs("section",{className:"section",children:[f.jsx("p",{className:"eyebrow",children:"Why this product exists"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Skills that carry their own evidence":m.key==="conceptnexus"?"An idea with a score travels further":m.key==="collaboard"?"Handshakes don’t scale. Receipts do.":"A clear view of project evidence."}),f.jsx("div",{className:"feature-grid",children:m.features.map(([E,_],h)=>f.jsxs("article",{children:[f.jsx("i",{children:String(h+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_})]},E))})]})}function mv({product:m}){return f.jsxs("section",{className:"section steps",id:"how",children:[f.jsx("p",{className:"eyebrow",children:"How it works"}),f.jsx("h2",{children:m.key==="conceptnexus"?"One pipeline, four gates":m.key==="skillscanvas"?"From claim to proof in four moves":m.key==="collaboard"?"From certified idea to shipped milestone":"A demo trail, not a financial service"}),f.jsx("div",{children:m.steps.map((E,_)=>f.jsxs("article",{children:[f.jsx("span",{children:String(_+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_===0?"Start with clear context and a shared record.":_===3?"The next state becomes a transparent handoff.":"Progress through a focused, evidence-led step."})]},E))})]})}function vv({product:m}){return f.jsxs("section",{className:"section ecosystem-section",id:"ecosystem",children:[f.jsx("p",{className:"eyebrow",children:"Part of fixars.ai"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Your passport works everywhere":m.key==="conceptnexus"?"Certification is the first receipt":m.key==="collaboard"?"The capsule is the source of truth":"Every signal has a source"}),f.jsx("div",{className:"product-grid",children:_r.filter(E=>E.key!==m.key).map(E=>f.jsxs("button",{onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("strong",{children:E.name}),f.jsx("span",{children:E.key==="conceptnexus"?"Ideas and certified briefs":E.key==="skillscanvas"?"Verified capability evidence":E.key==="collaboard"?"People, projects and receipts":"Demo project diligence"})]},E.key))})]})}function yv({product:m}){const E={conceptnexus:["Discover","Submit","Validator desk"],skillscanvas:["Dashboard","Skill passport","Full work"],collaboard:["Overview","Tasks","Artifacts","Legal"],vestden:["Ideas","Teams","Projects"]},[_,h]=Tt.useState(E[m.key][0]),[C,R]=Tt.useState(""),[L,X]=Tt.useState([!1,!1,!1]),O=z=>{R(z),window.setTimeout(()=>R(""),2600)};return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m,app:!0}),f.jsxs("main",{className:"app-page",children:[m.key==="vestden"&&f.jsxs("div",{className:"demo-banner",children:[f.jsx("b",{children:"Demo workspace"}),f.jsx("span",{children:"Simulated data. No funds, deposits, payouts or financial actions."})]}),f.jsxs("div",{className:"app-heading",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.key==="vestden"?"Dummy profile · demo mode":`${m.name} workspace`}),f.jsx("h1",{children:m.dashboardTitle}),f.jsx("p",{children:m.dashboardSub})]}),f.jsx("button",{className:"secondary",onClick:()=>it(m.key),children:"Back to product"})]}),f.jsx("div",{className:"tabs",role:"tablist","aria-label":`${m.name} workflow`,children:E[m.key].map(z=>f.jsx("button",{role:"tab","aria-selected":_===z,className:_===z?"selected":"",onClick:()=>h(z),children:z},z))}),f.jsx(gv,{product:m,tab:_,action:O,tasks:L,setTasks:X})]}),f.jsx("div",{className:`toast ${C?"show":""}`,role:"status",children:C}),f.jsx(Mr,{product:m})]})}function gv({product:m,tab:E,action:_,tasks:h,setTasks:C}){return m.key==="conceptnexus"?f.jsx(Sv,{tab:E,action:_}):m.key==="skillscanvas"?f.jsx(bv,{tab:E,action:_,tasks:h,setTasks:C}):m.key==="collaboard"?f.jsx(pv,{tab:E,action:_}):f.jsx(jv,{tab:E,action:_})}function Sv({tab:m,action:E}){const[_,h]=Tt.useState({title:"",problem:"",proposal:""}),[C,R]=Tt.useState(!1),L=X=>{if(X.preventDefault(),!_.title.trim())return E("Give the concept a title first.");R(!0),E("Local concept queued for simulated AI triage.")};return m==="Submit"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 01 · submit plainly"}),f.jsx("h2",{children:"Submit an idea"}),f.jsx("p",{className:"muted",children:"Title, problem and proposal. This preview keeps the submission in this browser only."}),f.jsxs("form",{className:"stack-form",onSubmit:L,children:[f.jsxs("label",{children:["Title",f.jsx("input",{value:_.title,onChange:X=>h({..._,title:X.target.value}),placeholder:"What are you proposing?"})]}),f.jsxs("label",{children:["Problem",f.jsx("textarea",{value:_.problem,onChange:X=>h({..._,problem:X.target.value}),placeholder:"What needs to change?"})]}),f.jsxs("label",{children:["Proposal",f.jsx("textarea",{value:_.proposal,onChange:X=>h({..._,proposal:X.target.value}),placeholder:"How could it work?"})]}),f.jsxs("div",{className:"workflow-action",children:[f.jsx("button",{className:"primary",children:"Send to demo AI triage"}),f.jsx("span",{children:"Free · feedback in ~2 hours in the intended flow"})]})]}),C&&f.jsxs("p",{className:"inline-result",children:[f.jsx("b",{children:"Local triage record ready:"})," “",_.title,"” is visible only in this preview; nothing was submitted externally."]})]}):m==="Validator desk"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 03 · community validation"}),f.jsx("h2",{children:"Validator desk"}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Solar cold-storage co-op"}),f.jsx("small",{children:"Draft IIVS · impact strong · viability needs evidence"})]}),f.jsx("span",{className:"tag",children:"Awaiting quorum"})]}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Neighbourhood refill points"}),f.jsx("small",{children:"Community signal is visible; reviewer feedback is still open."})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Demo validator feedback opened."),children:"Review gaps"})]}),f.jsx("p",{className:"muted",children:"The prototype’s intended sequence remains: triage, community validation, expert certification, then a CollaBoard handoff."})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"One pipeline · four gates"}),f.jsx("h2",{children:"Concept discovery"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("span",{children:"01"}),f.jsx("b",{children:"AI triage"}),f.jsx("p",{children:"Sharper framing and a named gap list before a human review."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"02"}),f.jsx("b",{children:"Community quorum"}),f.jsx("p",{children:"Support signals and validator decisions make demand legible."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"03"}),f.jsx("b",{children:"IIVS certification"}),f.jsx("p",{children:"A portable concept receipt, ready to seed a project capsule."})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Next: CollaBoard capsule"}),f.jsx("p",{children:"A certified concept carries a legal pack and skills brief into execution."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]})]})}function bv({tab:m,action:E,tasks:_,setTasks:h}){const C=["Label 12 street-sign images","Identify UI bugs (mobile)","Review & correct short copy"];return m==="Skill passport"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"skillscanvas.ai/p/adaeze"}),f.jsx("h2",{children:"Skill passport"}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Attention to detail — Lv 8"}),f.jsx("p",{children:"1,240 labelled datasets · 99.1% verified accuracy · assessed this month."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Collaboration — Lv 7"}),f.jsx("p",{children:"8 CollaBoard sprints · 2 capsules shipped · 100% attendance cohesion."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{className:"earned",children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Passport link copied in this local preview."),children:"Copy passport link"})]}):m==="Full work"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Matched from verified evidence"}),f.jsx("h2",{children:"Full work"}),[["Junior QA engineer","TechFlow · Lagos, hybrid","94%"],["Content operations associate","CivicStack · Remote","88%"]].map(([R,L,X])=>f.jsxs("div",{className:"job-row",children:[f.jsxs("strong",{children:[X,f.jsx("small",{children:" fit"})]}),f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L})]}),f.jsx("button",{className:"primary",onClick:()=>E("Local passport application prepared."),children:"Apply with passport"})]},R))]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Your canvas · evidence first"}),f.jsx("h2",{children:"Micro-work feed"}),f.jsx("p",{className:"muted",children:"The original flow levels a claimed skill through paid tasks, assessment and shipped work."}),f.jsx("div",{className:"task-list",children:C.map((R,L)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:R}),f.jsxs("small",{children:[L+2," min · Attention to detail · +15 XP"]})]}),f.jsx("button",{disabled:_[L],onClick:()=>{h(X=>X.map((O,z)=>z===L?!0:O)),E("Demo task recorded on this dummy canvas.")},children:_[L]?"Recorded ✓":"Do task"})]},R))})]})}function pv({tab:m,action:E}){const[_,h]=Tt.useState([{name:"Update mobile dashboard offline mode",state:"Done"},{name:"Finalise hardware specification",state:"In review"},{name:"Prepare pilot onboarding guide",state:"To do"}]),[C,R]=Tt.useState(""),L=X=>{X.preventDefault(),C.trim()&&(h(O=>[...O,{name:C,state:"To do"}]),R(""),E("Task added to the local capsule."))};return m==="Tasks"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Capsule workboard"}),f.jsx("h2",{children:"Tasks"}),f.jsx("div",{className:"task-list",children:_.map((X,O)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:X.name}),f.jsx("small",{children:"Smart Irrigation Bundle · assigned from the capsule"})]}),f.jsx("button",{onClick:()=>h(z=>z.map((I,q)=>q===O?{...I,state:I.state==="Done"?"To do":"Done"}:I)),children:X.state})]},`${X.name}-${O}`))}),f.jsxs("form",{className:"add-task",onSubmit:L,children:[f.jsx("input",{value:C,onChange:X=>R(X.target.value),placeholder:"Add a local capsule task"}),f.jsx("button",{className:"secondary",children:"Add task"})]})]}):m==="Artifacts"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Approved work becomes a receipt"}),f.jsx("h2",{children:"Artifacts"}),["System architecture diagram v1.2","Pilot research brief","Hardware specification · pending review"].map((X,O)=>f.jsxs("div",{className:"artifact-row",children:[f.jsx("span",{children:String(O+1).padStart(2,"0")}),f.jsx("b",{children:X}),f.jsx("small",{children:O<2?"Approved receipt":"In review"})]},X))]}):m==="Legal"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Signed before the first task"}),f.jsx("h2",{children:"Legal pack"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("b",{children:"Joint development agreement"}),f.jsx("p",{children:"Scope, authorship and contribution terms recorded."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"IP & confidentiality"}),f.jsx("p",{children:"Project knowledge and approved artifacts are clearly attributed."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"Data consent"}),f.jsx("p",{children:"Access and use have a readable consent record."}),f.jsx("span",{className:"tag",children:"Signed"})]})]})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Project capsule · escrowed execution"}),f.jsx("h2",{children:"Smart Irrigation Bundle"}),f.jsxs("div",{className:"capsule-stats",children:[f.jsxs("div",{children:[f.jsx("b",{children:"84"}),f.jsx("span",{children:"capsule health"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"12/15"}),f.jsx("span",{children:"tasks complete"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"Week 3"}),f.jsx("span",{children:"delivery tempo"})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark cyan",children:"S"}),f.jsxs("div",{children:[f.jsx("b",{children:"Team evidence from SkillsCanvas"}),f.jsx("p",{children:"Roles are matched against verified passports, not only profiles."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("skillscanvas","app"),children:"View skills"})]})]})}function jv({tab:m,action:E}){const[_,h]=Tt.useState(""),C=R=>{h(R),E(`${R} previewed in sandbox mode — no funds move.`)};return m==="Ideas"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 1 · certified ideas"}),f.jsx("h2",{children:"Ideas"}),f.jsx("p",{className:"muted",children:"Certified ConceptsNexus ideas before their teams form. The original screen compares possible Growth and Protection outcomes; these are display-only sandbox previews."}),[["Solar cold-storage co-op","IIVS 78 · community signal building"],["Community water monitoring pilot","IIVS 84 · delivery brief attached"]].map(([R,L])=>f.jsxs("div",{className:"position-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L}),f.jsxs("div",{className:"source-links",children:[f.jsx("span",{children:"ConceptsNexus receipt"}),f.jsx("span",{children:"Skills brief"})]})]}),f.jsxs("div",{className:"simulated-choices",children:[f.jsx("button",{className:"secondary",onClick:()=>C("Growth position"),children:"Preview Growth"}),f.jsx("button",{className:"secondary",onClick:()=>C("Protection position"),children:"Preview Protection"})]})]},R)),f.jsx("p",{className:"sandbox-note",children:"Simulation only. No position, payment instruction, wallet, or investment record is created."}),_&&f.jsxs("p",{className:"inline-result",children:[_," is shown locally as a product-flow state."]})]}):m==="Teams"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 2 · teams forming"}),f.jsx("h2",{children:"Teams"}),f.jsx("p",{className:"muted",children:"The intended screen joins the team’s SkillsCanvas audit and CollaBoard tempo into a single diligence view."}),[["Water systems field team","SkillsCanvas audit 96","CollaBoard tempo 87"],["Cold-chain operations team","SkillsCanvas audit 88","CollaBoard tempo 79"]].map(([R,L,X])=>f.jsxs("div",{className:"team-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:"Simulated team record · no individual identity or financial information."})]}),f.jsxs("div",{children:[f.jsx("span",{children:L}),f.jsx("span",{children:X})]}),f.jsx("button",{className:"secondary",onClick:()=>C("Team diligence"),children:"View diligence"})]},R)),_&&f.jsxs("p",{className:"inline-result",children:[_," is available only in this local sandbox."]})]}):f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 3 · active projects · milestone escrow"}),f.jsx("h2",{children:"Projects"}),f.jsx("p",{className:"muted",children:"This restores the supplied project/milestone structure while keeping every amount and action simulated."}),f.jsxs("div",{className:"project-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Community water monitoring pilot"}),f.jsx("p",{children:"Simulated project record · concept, team audit and delivery evidence linked."})]}),f.jsx("span",{className:"tag",children:"Sandbox"})]}),f.jsxs("div",{className:"milestone-list",children:[f.jsxs("div",{children:[f.jsx("span",{children:"✓"}),f.jsx("b",{children:"SkillsCanvas team audit & MVP"}),f.jsx("small",{children:"30% · simulated verified state"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"2"}),f.jsx("b",{children:"500 test deliveries"}),f.jsx("small",{children:"30% · in progress · 342 of 500 simulated"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"3"}),f.jsx("b",{children:"Independent field review"}),f.jsx("small",{children:"20% · upcoming simulation"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"4"}),f.jsx("b",{children:"Scale handoff"}),f.jsx("small",{children:"20% · upcoming simulation"})]})]}),f.jsxs("div",{className:"position-preview",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Position preview"}),f.jsx("p",{children:"Choose a simulated outcome to test the interaction design. This never creates a financial position."})]}),f.jsx("button",{className:"primary",onClick:()=>C("Project position"),children:"Preview simulated position"})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Watch the work, not the pitch"}),f.jsx("p",{children:"Stage progress is represented by CollaBoard artifacts and delivery receipts."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]}),_&&f.jsxs("p",{className:"inline-result",children:[_," interaction completed locally. No money, escrow release or payout is possible here."]})]})}function Mr({product:m}){return f.jsxs("footer",{children:[f.jsxs("span",{children:[m.name," is a Fixars product preview."]}),f.jsx("button",{onClick:()=>it(m.key),children:"Product home"}),f.jsx("a",{href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:"Fixars.ai ↗"})]})}function Tv(){const[m,E]=Tt.useState(Nr());Tt.useEffect(()=>{const h=()=>E(Nr());return addEventListener("hashchange",h),location.hash||it(hf()),()=>removeEventListener("hashchange",h)},[]);const _=Tt.useMemo(()=>Qn[m.product],[m.product]);return m.view==="app"?f.jsx(yv,{product:_}):f.jsx(rv,{product:_})}ov.createRoot(document.getElementById("root")).render(f.jsx(Tv,{})); diff --git a/subapps/dist-products/conceptnexus/deployment.json b/subapps/dist-products/conceptnexus/deployment.json new file mode 100644 index 0000000..b16e5f8 --- /dev/null +++ b/subapps/dist-products/conceptnexus/deployment.json @@ -0,0 +1,7 @@ +{ + "key": "conceptnexus", + "name": "ConceptsNexus", + "canonical": "https://conceptsnexus.co/", + "connector": "https://concepts.fixars.ai/", + "path": "https://fixars.ai/concepts" +} diff --git a/subapps/dist-products/conceptnexus/index.html b/subapps/dist-products/conceptnexus/index.html new file mode 100644 index 0000000..33205c7 --- /dev/null +++ b/subapps/dist-products/conceptnexus/index.html @@ -0,0 +1,18 @@ + + + + + + + ConceptsNexus — Fixars + + + + + + + + +
+ + diff --git a/subapps/dist-products/skillscanvas/assets/index-BETtfA4F.js b/subapps/dist-products/skillscanvas/assets/index-BETtfA4F.js new file mode 100644 index 0000000..22aa8b5 --- /dev/null +++ b/subapps/dist-products/skillscanvas/assets/index-BETtfA4F.js @@ -0,0 +1,49 @@ +(function(){const E=document.createElement("link").relList;if(E&&E.supports&&E.supports("modulepreload"))return;for(const C of document.querySelectorAll('link[rel="modulepreload"]'))h(C);new MutationObserver(C=>{for(const R of C)if(R.type==="childList")for(const L of R.addedNodes)L.tagName==="LINK"&&L.rel==="modulepreload"&&h(L)}).observe(document,{childList:!0,subtree:!0});function _(C){const R={};return C.integrity&&(R.integrity=C.integrity),C.referrerPolicy&&(R.referrerPolicy=C.referrerPolicy),C.crossOrigin==="use-credentials"?R.credentials="include":C.crossOrigin==="anonymous"?R.credentials="omit":R.credentials="same-origin",R}function h(C){if(C.ep)return;C.ep=!0;const R=_(C);fetch(C.href,R)}})();var cf={exports:{}},pu={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var gr;function tv(){if(gr)return pu;gr=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.fragment");function _(h,C,R){var L=null;if(R!==void 0&&(L=""+R),C.key!==void 0&&(L=""+C.key),"key"in C){R={};for(var X in C)X!=="key"&&(R[X]=C[X])}else R=C;return C=R.ref,{$$typeof:m,type:h,key:L,ref:C!==void 0?C:null,props:R}}return pu.Fragment=E,pu.jsx=_,pu.jsxs=_,pu}var Sr;function ev(){return Sr||(Sr=1,cf.exports=tv()),cf.exports}var f=ev(),ff={exports:{}},G={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var br;function av(){if(br)return G;br=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),R=Symbol.for("react.consumer"),L=Symbol.for("react.context"),X=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),z=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),hl=Symbol.iterator;function kl(d){return d===null||typeof d!="object"?null:(d=hl&&d[hl]||d["@@iterator"],typeof d=="function"?d:null)}var ql={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Hl=Object.assign,Dt={};function Wl(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}Wl.prototype.isReactComponent={},Wl.prototype.setState=function(d,x){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,x,"setState")},Wl.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function $t(){}$t.prototype=Wl.prototype;function Ul(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}var ct=Ul.prototype=new $t;ct.constructor=Ul,Hl(ct,Wl.prototype),ct.isPureReactComponent=!0;var zt=Array.isArray;function Yl(){}var $={H:null,A:null,T:null,S:null},Gl=Object.prototype.hasOwnProperty;function xt(d,x,N){var M=N.ref;return{$$typeof:m,type:d,key:x,ref:M!==void 0?M:null,props:N}}function Ze(d,x){return xt(d.type,x,d.props)}function Et(d){return typeof d=="object"&&d!==null&&d.$$typeof===m}function Xl(d){var x={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(N){return x[N]})}var Te=/\/+/g;function Mt(d,x){return typeof d=="object"&&d!==null&&d.key!=null?Xl(""+d.key):x.toString(36)}function St(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then(Yl,Yl):(d.status="pending",d.then(function(x){d.status==="pending"&&(d.status="fulfilled",d.value=x)},function(x){d.status==="pending"&&(d.status="rejected",d.reason=x)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function p(d,x,N,M,Q){var w=typeof d;(w==="undefined"||w==="boolean")&&(d=null);var el=!1;if(d===null)el=!0;else switch(w){case"bigint":case"string":case"number":el=!0;break;case"object":switch(d.$$typeof){case m:case E:el=!0;break;case I:return el=d._init,p(el(d._payload),x,N,M,Q)}}if(el)return Q=Q(d),el=M===""?"."+Mt(d,0):M,zt(Q)?(N="",el!=null&&(N=el.replace(Te,"$&/")+"/"),p(Q,x,N,"",function(Na){return Na})):Q!=null&&(Et(Q)&&(Q=Ze(Q,N+(Q.key==null||d&&d.key===Q.key?"":(""+Q.key).replace(Te,"$&/")+"/")+el)),x.push(Q)),1;el=0;var Rl=M===""?".":M+":";if(zt(d))for(var gl=0;gl>>1,sl=p[nl];if(0>>1;nlC(N,Y))MC(Q,N)?(p[nl]=Q,p[M]=Y,nl=M):(p[nl]=N,p[x]=Y,nl=x);else if(MC(Q,Y))p[nl]=Q,p[M]=Y,nl=M;else break l}}return A}function C(p,A){var Y=p.sortIndex-A.sortIndex;return Y!==0?Y:p.id-A.id}if(m.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var R=performance;m.unstable_now=function(){return R.now()}}else{var L=Date,X=L.now();m.unstable_now=function(){return L.now()-X}}var O=[],z=[],I=1,q=null,hl=3,kl=!1,ql=!1,Hl=!1,Dt=!1,Wl=typeof setTimeout=="function"?setTimeout:null,$t=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function ct(p){for(var A=_(z);A!==null;){if(A.callback===null)h(z);else if(A.startTime<=p)h(z),A.sortIndex=A.expirationTime,E(O,A);else break;A=_(z)}}function zt(p){if(Hl=!1,ct(p),!ql)if(_(O)!==null)ql=!0,Yl||(Yl=!0,Xl());else{var A=_(z);A!==null&&St(zt,A.startTime-p)}}var Yl=!1,$=-1,Gl=5,xt=-1;function Ze(){return Dt?!0:!(m.unstable_now()-xtp&&Ze());){var nl=q.callback;if(typeof nl=="function"){q.callback=null,hl=q.priorityLevel;var sl=nl(q.expirationTime<=p);if(p=m.unstable_now(),typeof sl=="function"){q.callback=sl,ct(p),A=!0;break t}q===_(O)&&h(O),ct(p)}else h(O);q=_(O)}if(q!==null)A=!0;else{var d=_(z);d!==null&&St(zt,d.startTime-p),A=!1}}break l}finally{q=null,hl=Y,kl=!1}A=void 0}}finally{A?Xl():Yl=!1}}}var Xl;if(typeof Ul=="function")Xl=function(){Ul(Et)};else if(typeof MessageChannel<"u"){var Te=new MessageChannel,Mt=Te.port2;Te.port1.onmessage=Et,Xl=function(){Mt.postMessage(null)}}else Xl=function(){Wl(Et,0)};function St(p,A){$=Wl(function(){p(m.unstable_now())},A)}m.unstable_IdlePriority=5,m.unstable_ImmediatePriority=1,m.unstable_LowPriority=4,m.unstable_NormalPriority=3,m.unstable_Profiling=null,m.unstable_UserBlockingPriority=2,m.unstable_cancelCallback=function(p){p.callback=null},m.unstable_forceFrameRate=function(p){0>p||125nl?(p.sortIndex=Y,E(z,p),_(O)===null&&p===_(z)&&(Hl?($t($),$=-1):Hl=!0,St(zt,Y-nl))):(p.sortIndex=sl,E(O,p),ql||kl||(ql=!0,Yl||(Yl=!0,Xl()))),p},m.unstable_shouldYield=Ze,m.unstable_wrapCallback=function(p){var A=hl;return function(){var Y=hl;hl=A;try{return p.apply(this,arguments)}finally{hl=Y}}}})(df)),df}var Tr;function nv(){return Tr||(Tr=1,of.exports=uv()),of.exports}var rf={exports:{}},Cl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zr;function iv(){if(zr)return Cl;zr=1;var m=mf();function E(O){var z="https://react.dev/errors/"+O;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),rf.exports=iv(),rf.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Er;function fv(){if(Er)return ju;Er=1;var m=nv(),E=mf(),_=cv();function h(l){var t="https://react.dev/errors/"+l;if(1sl||(l.current=nl[sl],nl[sl]=null,sl--)}function N(l,t){sl++,nl[sl]=l.current,l.current=t}var M=d(null),Q=d(null),w=d(null),el=d(null);function Rl(l,t){switch(N(w,t),N(Q,l),N(M,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Xd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Xd(t),l=Qd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}x(M),N(M,l)}function gl(){x(M),x(Q),x(w)}function Na(l){l.memoizedState!==null&&N(el,l);var t=M.current,e=Qd(t,l.type);t!==e&&(N(Q,l),N(M,e))}function Tu(l){Q.current===l&&(x(M),x(Q)),el.current===l&&(x(el),yu._currentValue=Y)}var Zn,vf;function ze(l){if(Zn===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Zn=t&&t[1]||"",vf=-1)":-1u||s[a]!==y[u]){var b=` +`+s[a].replace(" at new "," at ");return l.displayName&&b.includes("")&&(b=b.replace("",l.displayName)),b}while(1<=a&&0<=u);break}}}finally{Vn=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:"")?ze(e):""}function Ur(l,t){switch(l.tag){case 26:case 27:case 5:return ze(l.type);case 16:return ze("Lazy");case 13:return l.child!==t&&t!==null?ze("Suspense Fallback"):ze("Suspense");case 19:return ze("SuspenseList");case 0:case 15:return Ln(l.type,!1);case 11:return Ln(l.type.render,!1);case 1:return Ln(l.type,!0);case 31:return ze("Activity");default:return""}}function yf(l){try{var t="",e=null;do t+=Ur(l,e),e=l,l=l.return;while(l);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}var wn=Object.prototype.hasOwnProperty,Kn=m.unstable_scheduleCallback,Jn=m.unstable_cancelCallback,Cr=m.unstable_shouldYield,Hr=m.unstable_requestPaint,$l=m.unstable_now,Rr=m.unstable_getCurrentPriorityLevel,gf=m.unstable_ImmediatePriority,Sf=m.unstable_UserBlockingPriority,zu=m.unstable_NormalPriority,Br=m.unstable_LowPriority,bf=m.unstable_IdlePriority,qr=m.log,Yr=m.unstable_setDisableYieldValue,_a=null,Fl=null;function Ft(l){if(typeof qr=="function"&&Yr(l),Fl&&typeof Fl.setStrictMode=="function")try{Fl.setStrictMode(_a,l)}catch{}}var Il=Math.clz32?Math.clz32:Qr,Gr=Math.log,Xr=Math.LN2;function Qr(l){return l>>>=0,l===0?32:31-(Gr(l)/Xr|0)|0}var xu=256,Eu=262144,Au=4194304;function xe(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Nu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=xe(a):(i&=c,i!==0?u=xe(i):e||(e=c&~l,e!==0&&(u=xe(e))))):(c=a&~n,c!==0?u=xe(c):i!==0?u=xe(i):e||(e=a&~l,e!==0&&(u=xe(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function Oa(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Zr(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function pf(){var l=Au;return Au<<=1,(Au&62914560)===0&&(Au=4194304),l}function kn(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function Da(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Vr(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,s=l.expirationTimes,y=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Wr=/[\n"\\]/g;function st(l){return l.replace(Wr,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function li(l,t,e,a,u,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ft(t)):l.value!==""+ft(t)&&(l.value=""+ft(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?ti(l,i,ft(t)):e!=null?ti(l,i,ft(e)):a!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+ft(c):l.removeAttribute("name")}function Cf(l,t,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){Pn(l);return}e=e!=null?""+ft(e):"",t=t!=null?""+ft(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),Pn(l)}function ti(l,t,e){t==="number"&&Du(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function ke(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ii=!1;if(Ht)try{var Ha={};Object.defineProperty(Ha,"passive",{get:function(){ii=!0}}),window.addEventListener("test",Ha,Ha),window.removeEventListener("test",Ha,Ha)}catch{ii=!1}var Pt=null,ci=null,Uu=null;function Xf(){if(Uu)return Uu;var l,t=ci,e=t.length,a,u="value"in Pt?Pt.value:Pt.textContent,n=u.length;for(l=0;l=qa),Kf=" ",Jf=!1;function kf(l,t){switch(l){case"keyup":return zh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Ie=!1;function Eh(l,t){switch(l){case"compositionend":return Wf(t);case"keypress":return t.which!==32?null:(Jf=!0,Kf);case"textInput":return l=t.data,l===Kf&&Jf?null:l;default:return null}}function Ah(l,t){if(Ie)return l==="compositionend"||!ri&&kf(l,t)?(l=Xf(),Uu=ci=Pt=null,Ie=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=as(e)}}function ns(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?ns(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function is(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Du(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Du(l.document)}return t}function vi(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var Hh=Ht&&"documentMode"in document&&11>=document.documentMode,Pe=null,yi=null,Qa=null,gi=!1;function cs(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;gi||Pe==null||Pe!==Du(a)||(a=Pe,"selectionStart"in a&&vi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qa&&Xa(Qa,a)||(Qa=a,a=An(yi,"onSelect"),0>=i,u-=i,At=1<<32-Il(t)+u|e<V?(W=U,U=null):W=U.sibling;var ll=g(r,U,v[V],j);if(ll===null){U===null&&(U=W);break}l&&U&&ll.alternate===null&&t(r,U),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll,U=W}if(V===v.length)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;VV?(W=U,U=null):W=U.sibling;var je=g(r,U,ll.value,j);if(je===null){U===null&&(U=W);break}l&&U&&je.alternate===null&&t(r,U),o=n(je,o,V),P===null?H=je:P.sibling=je,P=je,U=W}if(ll.done)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;!ll.done;V++,ll=v.next())ll=T(r,ll.value,j),ll!==null&&(o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return F&&Bt(r,V),H}for(U=a(U);!ll.done;V++,ll=v.next())ll=S(U,r,V,ll.value,j),ll!==null&&(l&&ll.alternate!==null&&U.delete(ll.key===null?V:ll.key),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return l&&U.forEach(function(lv){return t(r,lv)}),F&&Bt(r,V),H}function fl(r,o,v,j){if(typeof v=="object"&&v!==null&&v.type===Hl&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case kl:l:{for(var H=v.key;o!==null;){if(o.key===H){if(H=v.type,H===Hl){if(o.tag===7){e(r,o.sibling),j=u(o,v.props.children),j.return=r,r=j;break l}}else if(o.elementType===H||typeof H=="object"&&H!==null&&H.$$typeof===Gl&&Re(H)===o.type){e(r,o.sibling),j=u(o,v.props),Ja(j,v),j.return=r,r=j;break l}e(r,o);break}else t(r,o);o=o.sibling}v.type===Hl?(j=De(v.props.children,r.mode,j,v.key),j.return=r,r=j):(j=Zu(v.type,v.key,v.props,null,r.mode,j),Ja(j,v),j.return=r,r=j)}return i(r);case ql:l:{for(H=v.key;o!==null;){if(o.key===H)if(o.tag===4&&o.stateNode.containerInfo===v.containerInfo&&o.stateNode.implementation===v.implementation){e(r,o.sibling),j=u(o,v.children||[]),j.return=r,r=j;break l}else{e(r,o);break}else t(r,o);o=o.sibling}j=xi(v,r.mode,j),j.return=r,r=j}return i(r);case Gl:return v=Re(v),fl(r,o,v,j)}if(St(v))return D(r,o,v,j);if(Xl(v)){if(H=Xl(v),typeof H!="function")throw Error(h(150));return v=H.call(v),B(r,o,v,j)}if(typeof v.then=="function")return fl(r,o,Wu(v),j);if(v.$$typeof===Ul)return fl(r,o,wu(r,v),j);$u(r,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,o!==null&&o.tag===6?(e(r,o.sibling),j=u(o,v),j.return=r,r=j):(e(r,o),j=zi(v,r.mode,j),j.return=r,r=j),i(r)):e(r,o)}return function(r,o,v,j){try{Ka=0;var H=fl(r,o,v,j);return oa=null,H}catch(U){if(U===sa||U===Ju)throw U;var P=lt(29,U,null,r.mode);return P.lanes=j,P.return=r,P}finally{}}}var qe=Ds(!0),Ms=Ds(!1),ue=!1;function Bi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qi(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ne(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ie(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(tl&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Qu(l),ms(l,null,e),t}return Xu(l,a,t,e),Qu(l)}function ka(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}function Yi(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Gi=!1;function Wa(){if(Gi){var l=fa;if(l!==null)throw l}}function $a(l,t,e,a){Gi=!1;var u=l.updateQueue;ue=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var s=c,y=s.next;s.next=null,i===null?n=y:i.next=y,i=s;var b=l.alternate;b!==null&&(b=b.updateQueue,c=b.lastBaseUpdate,c!==i&&(c===null?b.firstBaseUpdate=y:c.next=y,b.lastBaseUpdate=s))}if(n!==null){var T=u.baseState;i=0,b=y=s=null,c=n;do{var g=c.lane&-536870913,S=g!==c.lane;if(S?(k&g)===g:(a&g)===g){g!==0&&g===ca&&(Gi=!0),b!==null&&(b=b.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var D=l,B=c;g=t;var fl=e;switch(B.tag){case 1:if(D=B.payload,typeof D=="function"){T=D.call(fl,T,g);break l}T=D;break l;case 3:D.flags=D.flags&-65537|128;case 0:if(D=B.payload,g=typeof D=="function"?D.call(fl,T,g):D,g==null)break l;T=q({},T,g);break l;case 2:ue=!0}}g=c.callback,g!==null&&(l.flags|=64,S&&(l.flags|=8192),S=u.callbacks,S===null?u.callbacks=[g]:S.push(g))}else S={lane:g,tag:c.tag,payload:c.payload,callback:c.callback,next:null},b===null?(y=b=S,s=T):b=b.next=S,i|=g;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;S=c,c=S.next,S.next=null,u.lastBaseUpdate=S,u.shared.pending=null}}while(!0);b===null&&(s=T),u.baseState=s,u.firstBaseUpdate=y,u.lastBaseUpdate=b,n===null&&(u.shared.lanes=0),de|=i,l.lanes=i,l.memoizedState=T}}function Us(l,t){if(typeof l!="function")throw Error(h(191,l));l.call(t)}function Cs(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;ln?n:8;var i=p.T,c={};p.T=c,uc(l,!1,t,e);try{var s=u(),y=p.S;if(y!==null&&y(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var b=Vh(s,a);Pa(l,t,b,nt(l))}else Pa(l,t,a,nt(l))}catch(T){Pa(l,t,{then:function(){},status:"rejected",reason:T},nt())}finally{A.p=n,i!==null&&c.types!==null&&(i.types=c.types),p.T=i}}function Wh(){}function ec(l,t,e,a){if(l.tag!==5)throw Error(h(476));var u=ro(l).queue;oo(l,u,t,Y,e===null?Wh:function(){return ho(l),e(a)})}function ro(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:Y},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function ho(l){var t=ro(l);t.next===null&&(t=l.alternate.memoizedState),Pa(l,t.next.queue,{},nt())}function ac(){return Ol(yu)}function mo(){return bl().memoizedState}function vo(){return bl().memoizedState}function $h(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=nt();l=ne(e);var a=ie(t,l,e);a!==null&&(Jl(a,t,e),ka(a,t,e)),t={cache:Ui()},l.payload=t;return}t=t.return}}function Fh(l,t,e){var a=nt();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},cn(l)?go(t,e):(e=ji(l,t,e,a),e!==null&&(Jl(e,l,a),So(e,t,a)))}function yo(l,t,e){var a=nt();Pa(l,t,e,a)}function Pa(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(cn(l))go(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,Pl(c,i))return Xu(l,t,u,0),ol===null&&Gu(),!1}catch{}finally{}if(e=ji(l,t,u,a),e!==null)return Jl(e,l,a),So(e,t,a),!0}return!1}function uc(l,t,e,a){if(a={lane:2,revertLane:Bc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},cn(l)){if(t)throw Error(h(479))}else t=ji(l,e,a,2),t!==null&&Jl(t,l,2)}function cn(l){var t=l.alternate;return l===Z||t!==null&&t===Z}function go(l,t){ra=Pu=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function So(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}var lu={readContext:Ol,use:en,useCallback:vl,useContext:vl,useEffect:vl,useImperativeHandle:vl,useLayoutEffect:vl,useInsertionEffect:vl,useMemo:vl,useReducer:vl,useRef:vl,useState:vl,useDebugValue:vl,useDeferredValue:vl,useTransition:vl,useSyncExternalStore:vl,useId:vl,useHostTransitionStatus:vl,useFormState:vl,useActionState:vl,useOptimistic:vl,useMemoCache:vl,useCacheRefresh:vl};lu.useEffectEvent=vl;var bo={readContext:Ol,use:en,useCallback:function(l,t){return Bl().memoizedState=[l,t===void 0?null:t],l},useContext:Ol,useEffect:to,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,un(4194308,4,no.bind(null,t,l),e)},useLayoutEffect:function(l,t){return un(4194308,4,l,t)},useInsertionEffect:function(l,t){un(4,2,l,t)},useMemo:function(l,t){var e=Bl();t=t===void 0?null:t;var a=l();if(Ye){Ft(!0);try{l()}finally{Ft(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=Bl();if(e!==void 0){var u=e(t);if(Ye){Ft(!0);try{e(t)}finally{Ft(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=Fh.bind(null,Z,l),[a.memoizedState,l]},useRef:function(l){var t=Bl();return l={current:l},t.memoizedState=l},useState:function(l){l=Fi(l);var t=l.queue,e=yo.bind(null,Z,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:lc,useDeferredValue:function(l,t){var e=Bl();return tc(e,l,t)},useTransition:function(){var l=Fi(!1);return l=oo.bind(null,Z,l.queue,!0,!1),Bl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=Z,u=Bl();if(F){if(e===void 0)throw Error(h(407));e=e()}else{if(e=t(),ol===null)throw Error(h(349));(k&127)!==0||Gs(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,to(Qs.bind(null,a,n,l),[l]),a.flags|=2048,ma(9,{destroy:void 0},Xs.bind(null,a,n,e,t),null),e},useId:function(){var l=Bl(),t=ol.identifierPrefix;if(F){var e=Nt,a=At;e=(a&~(1<<32-Il(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=ln++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[Nl]=t,n[Ql]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Ml(n,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&Zt(t)}}return rl(t),Sc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Zt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(h(166));if(l=w.current,na(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=_l,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[Nl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||Yd(l.nodeValue,e)),l||ee(t,!0)}else l=Nn(l).createTextNode(a),l[Nl]=t,t.stateNode=l}return rl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=na(t),e!==null){if(l===null){if(!a)throw Error(h(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),l=!1}else e=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(et(t),t):(et(t),null);if((t.flags&128)!==0)throw Error(h(558))}return rl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=na(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(h(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(h(317));u[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),u=!1}else u=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(et(t),t):(et(t),null)}return et(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),rn(t,t.updateQueue),rl(t),null);case 4:return gl(),l===null&&Xc(t.stateNode.containerInfo),rl(t),null;case 10:return Yt(t.type),rl(t),null;case 19:if(x(Sl),a=t.memoizedState,a===null)return rl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)eu(a,!1);else{if(yl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=Iu(l),n!==null){for(t.flags|=128,eu(a,!1),l=n.updateQueue,t.updateQueue=l,rn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)vs(e,l),e=e.sibling;return N(Sl,Sl.current&1|2),F&&Bt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&$l()>gn&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304)}else{if(!u)if(l=Iu(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,rn(t,l),eu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!F)return rl(t),null}else 2*$l()-a.renderingStartTime>gn&&e!==536870912&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=$l(),l.sibling=null,e=Sl.current,N(Sl,u?e&1|2:e&1),F&&Bt(t,a.treeForkCount),l):(rl(t),null);case 22:case 23:return et(t),Qi(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(rl(t),t.subtreeFlags&6&&(t.flags|=8192)):rl(t),e=t.updateQueue,e!==null&&rn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&x(He),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),Yt(pl),rl(t),null;case 25:return null;case 30:return null}throw Error(h(156,t.tag))}function em(l,t){switch(Ai(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Yt(pl),gl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Tu(t),null;case 31:if(t.memoizedState!==null){if(et(t),t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(et(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return x(Sl),null;case 4:return gl(),null;case 10:return Yt(t.type),null;case 22:case 23:return et(t),Qi(),l!==null&&x(He),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Yt(pl),null;case 25:return null;default:return null}}function Vo(l,t){switch(Ai(t),t.tag){case 3:Yt(pl),gl();break;case 26:case 27:case 5:Tu(t);break;case 4:gl();break;case 31:t.memoizedState!==null&&et(t);break;case 13:et(t);break;case 19:x(Sl);break;case 10:Yt(t.type);break;case 22:case 23:et(t),Qi(),l!==null&&x(He);break;case 24:Yt(pl)}}function au(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(c){ul(t,t.return,c)}}function se(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var s=e,y=c;try{y()}catch(b){ul(u,s,b)}}}a=a.next}while(a!==n)}}catch(b){ul(t,t.return,b)}}function Lo(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{Cs(t,e)}catch(a){ul(l,l.return,a)}}}function wo(l,t,e){e.props=Ge(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){ul(l,t,a)}}function uu(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e=="function"?l.refCleanup=e(a):e.current=a}}catch(u){ul(l,t,u)}}function _t(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){ul(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(u){ul(l,t,u)}else e.current=null}function Ko(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){ul(l,l.return,u)}}function bc(l,t,e){try{var a=l.stateNode;xm(a,l.type,e,t),a[Ql]=t}catch(u){ul(l,l.return,u)}}function Jo(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ye(l.type)||l.tag===4}function pc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Jo(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&ye(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function jc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=Ct));else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(jc(l,t,e),l=l.sibling;l!==null;)jc(l,t,e),l=l.sibling}function hn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(hn(l,t,e),l=l.sibling;l!==null;)hn(l,t,e),l=l.sibling}function ko(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Ml(t,a,e),t[Nl]=l,t[Ql]=e}catch(n){ul(l,l.return,n)}}var Vt=!1,zl=!1,Tc=!1,Wo=typeof WeakSet=="function"?WeakSet:Set,Al=null;function am(l,t){if(l=l.containerInfo,Vc=Hn,l=is(l),vi(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,c=-1,s=-1,y=0,b=0,T=l,g=null;t:for(;;){for(var S;T!==e||u!==0&&T.nodeType!==3||(c=i+u),T!==n||a!==0&&T.nodeType!==3||(s=i+a),T.nodeType===3&&(i+=T.nodeValue.length),(S=T.firstChild)!==null;)g=T,T=S;for(;;){if(T===l)break t;if(g===e&&++y===u&&(c=i),g===n&&++b===a&&(s=i),(S=T.nextSibling)!==null)break;T=g,g=T.parentNode}T=S}e=c===-1||s===-1?null:{start:c,end:s}}else e=null}e=e||{start:0,end:0}}else e=null;for(Lc={focusedElem:l,selectionRange:e},Hn=!1,Al=t;Al!==null;)if(t=Al,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Al=l;else for(;Al!==null;){switch(t=Al,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),Ml(n,a,e),n[Nl]=l,El(n),a=n;break l;case"link":var i=tr("link","href",u).get(a+(e.href||""));if(i){for(var c=0;cfl&&(i=fl,fl=B,B=i);var r=us(c,B),o=us(c,fl);if(r&&o&&(S.rangeCount!==1||S.anchorNode!==r.node||S.anchorOffset!==r.offset||S.focusNode!==o.node||S.focusOffset!==o.offset)){var v=T.createRange();v.setStart(r.node,r.offset),S.removeAllRanges(),B>fl?(S.addRange(v),S.extend(o.node,o.offset)):(v.setEnd(o.node,o.offset),S.addRange(v))}}}}for(T=[],S=c;S=S.parentNode;)S.nodeType===1&&T.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,p.T=null,e=Oc,Oc=null;var n=he,i=kt;if(xl=0,ba=he=null,kt=0,(tl&6)!==0)throw Error(h(331));var c=tl;if(tl|=4,id(n.current),ad(n,n.current,i,e),tl=c,ou(0,!1),Fl&&typeof Fl.onPostCommitFiberRoot=="function")try{Fl.onPostCommitFiberRoot(_a,n)}catch{}return!0}finally{A.p=u,p.T=a,xd(l,t)}}function Ad(l,t,e){t=dt(e,t),t=fc(l.stateNode,t,2),l=ie(l,t,2),l!==null&&(Da(l,2),Ot(l))}function ul(l,t,e){if(l.tag===3)Ad(l,l,e);else for(;t!==null;){if(t.tag===3){Ad(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(re===null||!re.has(a))){l=dt(e,l),e=No(2),a=ie(t,e,2),a!==null&&(_o(e,a,t,l),Da(a,2),Ot(a));break}}t=t.return}}function Cc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new im;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(Ec=!0,u.add(e),l=dm.bind(null,l,t,e),t.then(l,l))}function dm(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,ol===l&&(k&e)===e&&(yl===4||yl===3&&(k&62914560)===k&&300>$l()-yn?(tl&2)===0&&pa(l,0):Ac|=e,Sa===k&&(Sa=0)),Ot(l)}function Nd(l,t){t===0&&(t=pf()),l=Oe(l,t),l!==null&&(Da(l,t),Ot(l))}function rm(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),Nd(l,e)}function hm(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(h(314))}a!==null&&a.delete(t),Nd(l,e)}function mm(l,t){return Kn(l,t)}var zn=null,Ta=null,Hc=!1,xn=!1,Rc=!1,ve=0;function Ot(l){l!==Ta&&l.next===null&&(Ta===null?zn=Ta=l:Ta=Ta.next=l),xn=!0,Hc||(Hc=!0,ym())}function ou(l,t){if(!Rc&&xn){Rc=!0;do for(var e=!1,a=zn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,c=a.pingedLanes;n=(1<<31-Il(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,Md(a,n))}else n=k,n=Nu(a,a===ol?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||Oa(a,n)||(e=!0,Md(a,n));a=a.next}while(e);Rc=!1}}function vm(){_d()}function _d(){xn=Hc=!1;var l=0;ve!==0&&Am()&&(l=ve);for(var t=$l(),e=null,a=zn;a!==null;){var u=a.next,n=Od(a,t);n===0?(a.next=null,e===null?zn=u:e.next=u,u===null&&(Ta=e)):(e=a,(l!==0||(n&3)!==0)&&(xn=!0)),a=u}xl!==0&&xl!==5||ou(l),ve!==0&&(ve=0)}function Od(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var b=s.transferSize,T=s.initiatorType;b&&Gd(T)&&(s=s.responseEnd,i+=b*(s"u"?null:document;function Fd(l,t,e){var a=za;if(a&&typeof t=="string"&&t){var u=st(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof e=="string"&&(u+='[crossorigin="'+e+'"]'),$d.has(u)||($d.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Rm(l){Wt.D(l),Fd("dns-prefetch",l,null)}function Bm(l,t){Wt.C(l,t),Fd("preconnect",l,t)}function qm(l,t,e){Wt.L(l,t,e);var a=za;if(a&&l&&t){var u='link[rel="preload"][as="'+st(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+st(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+st(e.imageSizes)+'"]')):u+='[href="'+st(l)+'"]';var n=u;switch(t){case"style":n=xa(l);break;case"script":n=Ea(l)}gt.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),gt.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(mu(n))||t==="script"&&a.querySelector(vu(n))||(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Ym(l,t){Wt.m(l,t);var e=za;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+st(a)+'"][href="'+st(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ea(l)}if(!gt.has(n)&&(l=q({rel:"modulepreload",href:l},t),gt.set(n,l),e.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(vu(n)))return}a=e.createElement("link"),Ml(a,"link",l),El(a),e.head.appendChild(a)}}}function Gm(l,t,e){Wt.S(l,t,e);var a=za;if(a&&l){var u=Ke(a).hoistableStyles,n=xa(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(mu(n)))c.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},e),(e=gt.get(n))&&Fc(l,e);var s=i=a.createElement("link");El(s),Ml(s,"link",l),s._p=new Promise(function(y,b){s.onload=y,s.onerror=b}),s.addEventListener("load",function(){c.loading|=1}),s.addEventListener("error",function(){c.loading|=2}),c.loading|=4,On(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function Xm(l,t){Wt.X(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Qm(l,t){Wt.M(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Id(l,t,e,a){var u=(u=w.current)?_n(u):null;if(!u)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=xa(e.href),e=Ke(u).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=xa(e.href);var n=Ke(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(mu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),gt.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},gt.set(l,e),n||Zm(u,l,e,i.state))),t&&a===null)throw Error(h(528,""));return i}if(t&&a!==null)throw Error(h(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ea(e),e=Ke(u).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function xa(l){return'href="'+st(l)+'"'}function mu(l){return'link[rel="stylesheet"]['+l+"]"}function Pd(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function Zm(l,t,e,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ml(t,"link",e),El(t),l.head.appendChild(t))}function Ea(l){return'[src="'+st(l)+'"]'}function vu(l){return"script[async]"+l}function lr(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+st(e.href)+'"]');if(a)return t.instance=a,El(a),a;var u=q({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),El(a),Ml(a,"style",u),On(a,e.precedence,l),t.instance=a;case"stylesheet":u=xa(e.href);var n=l.querySelector(mu(u));if(n)return t.state.loading|=4,t.instance=n,El(n),n;a=Pd(e),(u=gt.get(u))&&Fc(a,u),n=(l.ownerDocument||l).createElement("link"),El(n);var i=n;return i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),t.state.loading|=4,On(n,e.precedence,l),t.instance=n;case"script":return n=Ea(e.src),(u=l.querySelector(vu(n)))?(t.instance=u,El(u),u):(a=e,(u=gt.get(n))&&(a=q({},e),Ic(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),El(u),Ml(u,"link",a),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(h(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,On(a,e.precedence,l));return t.instance}function On(l,t,e){for(var a=e.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i title"):null)}function Vm(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function ar(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Lm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=xa(a.href),n=t.querySelector(mu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Mn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,El(n);return}n=t.ownerDocument||t,a=Pd(a),(u=gt.get(u))&&Fc(a,u),n=n.createElement("link"),El(n);var i=n;i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Mn.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var Pc=0;function wm(l,t){return l.stylesheets&&l.count===0&&Cn(l,l.stylesheets),0Pc?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Mn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Cn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Un=null;function Cn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Un=new Map,t.forEach(Km,l),Un=null,Mn.call(l))}function Km(l,t){if(!(t.state.loading&4)){var e=Un.get(l);if(e)var a=e.get(null);else{e=new Map,Un.set(l,e);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),sf.exports=fv(),sf.exports}var ov=sv();const Qn={conceptnexus:{key:"conceptnexus",name:"ConceptsNexus",mark:"C",accent:"violet",domain:"Planned route · concepts.fixars.ai",eyebrow:"Idea refinement & certification",headline:"Every certified idea started as a hunch",description:"Submit in plain words. AI triage sharpens it and flags the gaps, the community validates it, experts certify it with an IIVS score. What comes out the other end is fund-ready — with receipts, not vibes.",primary:"Submit an idea",secondary:"Become a validator",stats:[["~2 hrs","to an AI triage report — free"],["IIVS","innovation · impact · viability · scalability"],["512","supporters on the top concept this month"]],preview:["Smart waste sorting micro-commission","Certified · CN-2044 · quorum 100%","IIVS breakdown","Handed off to CollaBoard with legal pack + skill brief"],features:[["AI triage & synthesis","A structured brief, a draft IIVS and named gaps before human review."],["Community + validator quorum","Support signals and independent validation make demand visible."],["Certification that carries over","The concept receipt and skill brief travel into a CollaBoard capsule."]],steps:["Submit plainly","AI triage","Community validation","Certified & handed off"],dashboardTitle:"Every certified idea started here",dashboardSub:"Explore an idea, shape its evidence and prepare a usable build brief."},skillscanvas:{key:"skillscanvas",name:"SkillsCanvas",mark:"S",accent:"cyan",domain:"Planned route · skills.fixars.ai",eyebrow:"Verified skills marketplace",headline:"Prove it. Get paid for it.",description:"Your CV says “detail-oriented”. Your SkillsCanvas passport says 1,240 labeled datasets at 99.1% accuracy — and every claim comes with receipts. Do paid micro-work, level real skills, apply to full work with one tap.",primary:"Create your canvas",secondary:"See how it works",stats:[["₦900–2,900","per micro-task, paid same day"],["4 tiers","self-reported → ecosystem-proven"],["94%","top job fit, computed from receipts"]],preview:["Attention to detail — Lv 8","Ecosystem-proven","Identify UI bugs (mobile)","Junior QA engineer · TechFlow"],features:[["Micro-work that pays same day","Short tasks matched to the skills you are levelling."],["Four tiers, no shortcuts","Top-tier proof comes from assessed and shipped work."],["The passport is the application","Fit is based on verified levels, not keyword bingo."]],steps:["Claim your skills","Do micro-work","Get assessed","Ship real work"],dashboardTitle:"Good afternoon, Adaeze",dashboardSub:"Every skill on your canvas is provable, with receipts."},collaboard:{key:"collaboard",name:"CollaBoard",mark:"B",accent:"coral",domain:"Planned route · collab.fixars.ai",eyebrow:"Escrowed project execution",headline:"Build with strangers, safely",description:"A capsule is a sealed workspace: team, tasks, artifacts and a signed legal pack travel together. Ownership, licensing and data consent are settled before the first task — while everyone still likes each other.",primary:"Start a capsule",secondary:"See how it works",stats:[["Day 0","legal pack signed before work starts"],["5 gates","product · legal · team · market · safety"],["Receipts","approved artifacts are traceable"]],preview:["Smart Irrigation Bundle","AgriTech-NGR-2024 · week 3 · capsule health","JDA signed · iCLA · NDPA","System architecture diagram v1.2"],features:[["Legal engine, not legal fees","A clear collaboration pack from the first day of work."],["Teams from passports","Recruit against verified SkillsCanvas evidence, not promises."],["Artifacts become receipts","Approved work becomes clear project evidence."]],steps:["Open a capsule","Sign the pack","Build in sprints","Ship receipts"],dashboardTitle:"Smart Irrigation Bundle",dashboardSub:"A shared project capsule with people, work, evidence and clear handoffs."},vestden:{key:"vestden",name:"VestDen",mark:"V",accent:"green",domain:"Planned route · vest.fixars.ai",eyebrow:"Demo project diligence",headline:"Watch the work, not the pitch",description:"Explore how a project’s concept, team evidence and delivery receipts can be understood together. This temporary workspace uses a dummy profile and simulated data only — no funds are held and no financial actions are available.",primary:"Explore the pipeline",secondary:"See how it works",stats:[["Demo only","simulated project information"],["3 signals","concept · skills · delivery"],["No funds","financial actions are disabled"]],preview:["Community water monitoring pilot","Simulated project brief · Stage 2","Concept · skills · delivery signals","Escrow available at regulated launch"],features:[["Structured project diligence","See the signals that would support a transparent project brief."],["Evidence from the ecosystem","Concept, skills and delivery information remain traceable."],["Demo-first by design","Learn the workflow without deposits, payouts or investment actions."]],steps:["Review a brief","Inspect evidence","Follow milestones","Regulated launch later"],dashboardTitle:"Community water monitoring pilot",dashboardSub:"Simulated project record for exploration and evaluation only."}},_r=Object.values(Qn),hf=()=>{const m=location.hostname.toLowerCase().replace(/^www\./,"");if(["skillscanvas.co","skills.fixars.ai"].includes(m))return"skillscanvas";if(["collaboard.co","collab.fixars.ai"].includes(m))return"collaboard";if(["vestden.co","vest.fixars.ai"].includes(m))return"vestden";if(["conceptsnexus.co","concepts.fixars.ai"].includes(m))return"conceptnexus";const E="skillscanvas";return Qn[E]?E:"conceptnexus"},Nr=()=>{const[m=hf(),E="home"]=location.hash.replace(/^#\/?/,"").split("/");return{product:Qn[m]?m:hf(),view:E==="app"?"app":"home"}},it=(m,E="home")=>{location.hash=`#/${m}/${E}`};function Or({active:m}){return f.jsxs("div",{className:"ecosystem",children:[f.jsxs("a",{className:"fixars-link",href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:["✦ ",f.jsx("span",{children:"fixars.ai ecosystem"})]}),f.jsx("span",{className:"ecosystem-note",children:"one account, one profile, connected evidence"}),f.jsx("nav",{"aria-label":"Fixars products",children:_r.map(E=>f.jsxs("button",{className:E.key===m?"active":"",onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("span",{children:E.name})]},E.key))})]})}function Dr({product:m,app:E}){return f.jsxs("header",{className:"product-nav",children:[f.jsxs("button",{className:"wordmark",onClick:()=>it(m.key),children:[f.jsx("i",{className:`mark ${m.accent}`,children:m.mark}),m.name]}),f.jsx("span",{className:"domain",children:m.domain}),f.jsxs("nav",{children:[f.jsx("button",{onClick:()=>it(m.key),className:E?"":"selected",children:"How it works"}),f.jsx("button",{onClick:()=>{var _;return(_=document.getElementById("ecosystem"))==null?void 0:_.scrollIntoView({behavior:"smooth"})},children:"Ecosystem"}),f.jsx("button",{onClick:()=>it(m.key,"app"),className:E?"selected":"",children:E?"Dashboard":"Open the app"})]})]})}function dv({product:m}){return f.jsxs("div",{className:"product-preview","aria-label":`${m.name} example`,children:[f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[0]}),f.jsx("span",{children:m.preview[1]})]}),f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[2]}),f.jsx("span",{children:m.key==="skillscanvas"?"3 min · +15 XP · Technical ops":m.key==="vestden"?"No financial actions":"Evidence attached"})]}),f.jsxs("div",{className:"preview-card compact",children:[f.jsx("span",{children:m.preview[3]}),f.jsx("b",{children:m.key==="vestden"?"Locked":"Ready"})]})]})}function rv({product:m}){return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m}),f.jsxs("main",{children:[f.jsxs("section",{className:"hero",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.eyebrow}),f.jsx("h1",{children:m.headline}),f.jsx("p",{className:"lede",children:m.description}),f.jsxs("div",{className:"actions",children:[f.jsx("button",{className:"primary",onClick:()=>it(m.key,"app"),children:m.primary}),f.jsx("button",{className:"secondary",onClick:()=>{var E;return(E=document.getElementById("how"))==null?void 0:E.scrollIntoView({behavior:"smooth"})},children:m.secondary})]}),f.jsx("div",{className:"proof",children:m.stats.map(([E,_])=>f.jsxs("div",{children:[f.jsx("b",{children:E}),f.jsx("span",{children:_})]},E))})]}),f.jsx(dv,{product:m})]}),f.jsx(hv,{product:m}),f.jsx(mv,{product:m}),f.jsx(vv,{product:m}),f.jsxs("section",{className:"closing",children:[f.jsxs("div",{children:[f.jsx("h2",{children:m.key==="vestden"?"Explore the demo workspace":`Open ${m.name}`}),f.jsx("p",{children:m.key==="vestden"?"Use the dummy profile to follow simulated project evidence. Financial actions stay disabled.":"Start with the source workflow, then let the connected ecosystem carry the evidence forward."})]}),f.jsx("button",{onClick:()=>it(m.key,"app"),children:m.primary})]})]}),f.jsx(Mr,{product:m})]})}function hv({product:m}){return f.jsxs("section",{className:"section",children:[f.jsx("p",{className:"eyebrow",children:"Why this product exists"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Skills that carry their own evidence":m.key==="conceptnexus"?"An idea with a score travels further":m.key==="collaboard"?"Handshakes don’t scale. Receipts do.":"A clear view of project evidence."}),f.jsx("div",{className:"feature-grid",children:m.features.map(([E,_],h)=>f.jsxs("article",{children:[f.jsx("i",{children:String(h+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_})]},E))})]})}function mv({product:m}){return f.jsxs("section",{className:"section steps",id:"how",children:[f.jsx("p",{className:"eyebrow",children:"How it works"}),f.jsx("h2",{children:m.key==="conceptnexus"?"One pipeline, four gates":m.key==="skillscanvas"?"From claim to proof in four moves":m.key==="collaboard"?"From certified idea to shipped milestone":"A demo trail, not a financial service"}),f.jsx("div",{children:m.steps.map((E,_)=>f.jsxs("article",{children:[f.jsx("span",{children:String(_+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_===0?"Start with clear context and a shared record.":_===3?"The next state becomes a transparent handoff.":"Progress through a focused, evidence-led step."})]},E))})]})}function vv({product:m}){return f.jsxs("section",{className:"section ecosystem-section",id:"ecosystem",children:[f.jsx("p",{className:"eyebrow",children:"Part of fixars.ai"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Your passport works everywhere":m.key==="conceptnexus"?"Certification is the first receipt":m.key==="collaboard"?"The capsule is the source of truth":"Every signal has a source"}),f.jsx("div",{className:"product-grid",children:_r.filter(E=>E.key!==m.key).map(E=>f.jsxs("button",{onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("strong",{children:E.name}),f.jsx("span",{children:E.key==="conceptnexus"?"Ideas and certified briefs":E.key==="skillscanvas"?"Verified capability evidence":E.key==="collaboard"?"People, projects and receipts":"Demo project diligence"})]},E.key))})]})}function yv({product:m}){const E={conceptnexus:["Discover","Submit","Validator desk"],skillscanvas:["Dashboard","Skill passport","Full work"],collaboard:["Overview","Tasks","Artifacts","Legal"],vestden:["Ideas","Teams","Projects"]},[_,h]=Tt.useState(E[m.key][0]),[C,R]=Tt.useState(""),[L,X]=Tt.useState([!1,!1,!1]),O=z=>{R(z),window.setTimeout(()=>R(""),2600)};return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m,app:!0}),f.jsxs("main",{className:"app-page",children:[m.key==="vestden"&&f.jsxs("div",{className:"demo-banner",children:[f.jsx("b",{children:"Demo workspace"}),f.jsx("span",{children:"Simulated data. No funds, deposits, payouts or financial actions."})]}),f.jsxs("div",{className:"app-heading",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.key==="vestden"?"Dummy profile · demo mode":`${m.name} workspace`}),f.jsx("h1",{children:m.dashboardTitle}),f.jsx("p",{children:m.dashboardSub})]}),f.jsx("button",{className:"secondary",onClick:()=>it(m.key),children:"Back to product"})]}),f.jsx("div",{className:"tabs",role:"tablist","aria-label":`${m.name} workflow`,children:E[m.key].map(z=>f.jsx("button",{role:"tab","aria-selected":_===z,className:_===z?"selected":"",onClick:()=>h(z),children:z},z))}),f.jsx(gv,{product:m,tab:_,action:O,tasks:L,setTasks:X})]}),f.jsx("div",{className:`toast ${C?"show":""}`,role:"status",children:C}),f.jsx(Mr,{product:m})]})}function gv({product:m,tab:E,action:_,tasks:h,setTasks:C}){return m.key==="conceptnexus"?f.jsx(Sv,{tab:E,action:_}):m.key==="skillscanvas"?f.jsx(bv,{tab:E,action:_,tasks:h,setTasks:C}):m.key==="collaboard"?f.jsx(pv,{tab:E,action:_}):f.jsx(jv,{tab:E,action:_})}function Sv({tab:m,action:E}){const[_,h]=Tt.useState({title:"",problem:"",proposal:""}),[C,R]=Tt.useState(!1),L=X=>{if(X.preventDefault(),!_.title.trim())return E("Give the concept a title first.");R(!0),E("Local concept queued for simulated AI triage.")};return m==="Submit"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 01 · submit plainly"}),f.jsx("h2",{children:"Submit an idea"}),f.jsx("p",{className:"muted",children:"Title, problem and proposal. This preview keeps the submission in this browser only."}),f.jsxs("form",{className:"stack-form",onSubmit:L,children:[f.jsxs("label",{children:["Title",f.jsx("input",{value:_.title,onChange:X=>h({..._,title:X.target.value}),placeholder:"What are you proposing?"})]}),f.jsxs("label",{children:["Problem",f.jsx("textarea",{value:_.problem,onChange:X=>h({..._,problem:X.target.value}),placeholder:"What needs to change?"})]}),f.jsxs("label",{children:["Proposal",f.jsx("textarea",{value:_.proposal,onChange:X=>h({..._,proposal:X.target.value}),placeholder:"How could it work?"})]}),f.jsxs("div",{className:"workflow-action",children:[f.jsx("button",{className:"primary",children:"Send to demo AI triage"}),f.jsx("span",{children:"Free · feedback in ~2 hours in the intended flow"})]})]}),C&&f.jsxs("p",{className:"inline-result",children:[f.jsx("b",{children:"Local triage record ready:"})," “",_.title,"” is visible only in this preview; nothing was submitted externally."]})]}):m==="Validator desk"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 03 · community validation"}),f.jsx("h2",{children:"Validator desk"}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Solar cold-storage co-op"}),f.jsx("small",{children:"Draft IIVS · impact strong · viability needs evidence"})]}),f.jsx("span",{className:"tag",children:"Awaiting quorum"})]}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Neighbourhood refill points"}),f.jsx("small",{children:"Community signal is visible; reviewer feedback is still open."})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Demo validator feedback opened."),children:"Review gaps"})]}),f.jsx("p",{className:"muted",children:"The prototype’s intended sequence remains: triage, community validation, expert certification, then a CollaBoard handoff."})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"One pipeline · four gates"}),f.jsx("h2",{children:"Concept discovery"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("span",{children:"01"}),f.jsx("b",{children:"AI triage"}),f.jsx("p",{children:"Sharper framing and a named gap list before a human review."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"02"}),f.jsx("b",{children:"Community quorum"}),f.jsx("p",{children:"Support signals and validator decisions make demand legible."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"03"}),f.jsx("b",{children:"IIVS certification"}),f.jsx("p",{children:"A portable concept receipt, ready to seed a project capsule."})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Next: CollaBoard capsule"}),f.jsx("p",{children:"A certified concept carries a legal pack and skills brief into execution."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]})]})}function bv({tab:m,action:E,tasks:_,setTasks:h}){const C=["Label 12 street-sign images","Identify UI bugs (mobile)","Review & correct short copy"];return m==="Skill passport"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"skillscanvas.ai/p/adaeze"}),f.jsx("h2",{children:"Skill passport"}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Attention to detail — Lv 8"}),f.jsx("p",{children:"1,240 labelled datasets · 99.1% verified accuracy · assessed this month."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Collaboration — Lv 7"}),f.jsx("p",{children:"8 CollaBoard sprints · 2 capsules shipped · 100% attendance cohesion."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{className:"earned",children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Passport link copied in this local preview."),children:"Copy passport link"})]}):m==="Full work"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Matched from verified evidence"}),f.jsx("h2",{children:"Full work"}),[["Junior QA engineer","TechFlow · Lagos, hybrid","94%"],["Content operations associate","CivicStack · Remote","88%"]].map(([R,L,X])=>f.jsxs("div",{className:"job-row",children:[f.jsxs("strong",{children:[X,f.jsx("small",{children:" fit"})]}),f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L})]}),f.jsx("button",{className:"primary",onClick:()=>E("Local passport application prepared."),children:"Apply with passport"})]},R))]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Your canvas · evidence first"}),f.jsx("h2",{children:"Micro-work feed"}),f.jsx("p",{className:"muted",children:"The original flow levels a claimed skill through paid tasks, assessment and shipped work."}),f.jsx("div",{className:"task-list",children:C.map((R,L)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:R}),f.jsxs("small",{children:[L+2," min · Attention to detail · +15 XP"]})]}),f.jsx("button",{disabled:_[L],onClick:()=>{h(X=>X.map((O,z)=>z===L?!0:O)),E("Demo task recorded on this dummy canvas.")},children:_[L]?"Recorded ✓":"Do task"})]},R))})]})}function pv({tab:m,action:E}){const[_,h]=Tt.useState([{name:"Update mobile dashboard offline mode",state:"Done"},{name:"Finalise hardware specification",state:"In review"},{name:"Prepare pilot onboarding guide",state:"To do"}]),[C,R]=Tt.useState(""),L=X=>{X.preventDefault(),C.trim()&&(h(O=>[...O,{name:C,state:"To do"}]),R(""),E("Task added to the local capsule."))};return m==="Tasks"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Capsule workboard"}),f.jsx("h2",{children:"Tasks"}),f.jsx("div",{className:"task-list",children:_.map((X,O)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:X.name}),f.jsx("small",{children:"Smart Irrigation Bundle · assigned from the capsule"})]}),f.jsx("button",{onClick:()=>h(z=>z.map((I,q)=>q===O?{...I,state:I.state==="Done"?"To do":"Done"}:I)),children:X.state})]},`${X.name}-${O}`))}),f.jsxs("form",{className:"add-task",onSubmit:L,children:[f.jsx("input",{value:C,onChange:X=>R(X.target.value),placeholder:"Add a local capsule task"}),f.jsx("button",{className:"secondary",children:"Add task"})]})]}):m==="Artifacts"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Approved work becomes a receipt"}),f.jsx("h2",{children:"Artifacts"}),["System architecture diagram v1.2","Pilot research brief","Hardware specification · pending review"].map((X,O)=>f.jsxs("div",{className:"artifact-row",children:[f.jsx("span",{children:String(O+1).padStart(2,"0")}),f.jsx("b",{children:X}),f.jsx("small",{children:O<2?"Approved receipt":"In review"})]},X))]}):m==="Legal"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Signed before the first task"}),f.jsx("h2",{children:"Legal pack"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("b",{children:"Joint development agreement"}),f.jsx("p",{children:"Scope, authorship and contribution terms recorded."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"IP & confidentiality"}),f.jsx("p",{children:"Project knowledge and approved artifacts are clearly attributed."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"Data consent"}),f.jsx("p",{children:"Access and use have a readable consent record."}),f.jsx("span",{className:"tag",children:"Signed"})]})]})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Project capsule · escrowed execution"}),f.jsx("h2",{children:"Smart Irrigation Bundle"}),f.jsxs("div",{className:"capsule-stats",children:[f.jsxs("div",{children:[f.jsx("b",{children:"84"}),f.jsx("span",{children:"capsule health"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"12/15"}),f.jsx("span",{children:"tasks complete"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"Week 3"}),f.jsx("span",{children:"delivery tempo"})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark cyan",children:"S"}),f.jsxs("div",{children:[f.jsx("b",{children:"Team evidence from SkillsCanvas"}),f.jsx("p",{children:"Roles are matched against verified passports, not only profiles."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("skillscanvas","app"),children:"View skills"})]})]})}function jv({tab:m,action:E}){const[_,h]=Tt.useState(""),C=R=>{h(R),E(`${R} previewed in sandbox mode — no funds move.`)};return m==="Ideas"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 1 · certified ideas"}),f.jsx("h2",{children:"Ideas"}),f.jsx("p",{className:"muted",children:"Certified ConceptsNexus ideas before their teams form. The original screen compares possible Growth and Protection outcomes; these are display-only sandbox previews."}),[["Solar cold-storage co-op","IIVS 78 · community signal building"],["Community water monitoring pilot","IIVS 84 · delivery brief attached"]].map(([R,L])=>f.jsxs("div",{className:"position-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L}),f.jsxs("div",{className:"source-links",children:[f.jsx("span",{children:"ConceptsNexus receipt"}),f.jsx("span",{children:"Skills brief"})]})]}),f.jsxs("div",{className:"simulated-choices",children:[f.jsx("button",{className:"secondary",onClick:()=>C("Growth position"),children:"Preview Growth"}),f.jsx("button",{className:"secondary",onClick:()=>C("Protection position"),children:"Preview Protection"})]})]},R)),f.jsx("p",{className:"sandbox-note",children:"Simulation only. No position, payment instruction, wallet, or investment record is created."}),_&&f.jsxs("p",{className:"inline-result",children:[_," is shown locally as a product-flow state."]})]}):m==="Teams"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 2 · teams forming"}),f.jsx("h2",{children:"Teams"}),f.jsx("p",{className:"muted",children:"The intended screen joins the team’s SkillsCanvas audit and CollaBoard tempo into a single diligence view."}),[["Water systems field team","SkillsCanvas audit 96","CollaBoard tempo 87"],["Cold-chain operations team","SkillsCanvas audit 88","CollaBoard tempo 79"]].map(([R,L,X])=>f.jsxs("div",{className:"team-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:"Simulated team record · no individual identity or financial information."})]}),f.jsxs("div",{children:[f.jsx("span",{children:L}),f.jsx("span",{children:X})]}),f.jsx("button",{className:"secondary",onClick:()=>C("Team diligence"),children:"View diligence"})]},R)),_&&f.jsxs("p",{className:"inline-result",children:[_," is available only in this local sandbox."]})]}):f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 3 · active projects · milestone escrow"}),f.jsx("h2",{children:"Projects"}),f.jsx("p",{className:"muted",children:"This restores the supplied project/milestone structure while keeping every amount and action simulated."}),f.jsxs("div",{className:"project-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Community water monitoring pilot"}),f.jsx("p",{children:"Simulated project record · concept, team audit and delivery evidence linked."})]}),f.jsx("span",{className:"tag",children:"Sandbox"})]}),f.jsxs("div",{className:"milestone-list",children:[f.jsxs("div",{children:[f.jsx("span",{children:"✓"}),f.jsx("b",{children:"SkillsCanvas team audit & MVP"}),f.jsx("small",{children:"30% · simulated verified state"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"2"}),f.jsx("b",{children:"500 test deliveries"}),f.jsx("small",{children:"30% · in progress · 342 of 500 simulated"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"3"}),f.jsx("b",{children:"Independent field review"}),f.jsx("small",{children:"20% · upcoming simulation"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"4"}),f.jsx("b",{children:"Scale handoff"}),f.jsx("small",{children:"20% · upcoming simulation"})]})]}),f.jsxs("div",{className:"position-preview",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Position preview"}),f.jsx("p",{children:"Choose a simulated outcome to test the interaction design. This never creates a financial position."})]}),f.jsx("button",{className:"primary",onClick:()=>C("Project position"),children:"Preview simulated position"})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Watch the work, not the pitch"}),f.jsx("p",{children:"Stage progress is represented by CollaBoard artifacts and delivery receipts."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]}),_&&f.jsxs("p",{className:"inline-result",children:[_," interaction completed locally. No money, escrow release or payout is possible here."]})]})}function Mr({product:m}){return f.jsxs("footer",{children:[f.jsxs("span",{children:[m.name," is a Fixars product preview."]}),f.jsx("button",{onClick:()=>it(m.key),children:"Product home"}),f.jsx("a",{href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:"Fixars.ai ↗"})]})}function Tv(){const[m,E]=Tt.useState(Nr());Tt.useEffect(()=>{const h=()=>E(Nr());return addEventListener("hashchange",h),location.hash||it(hf()),()=>removeEventListener("hashchange",h)},[]);const _=Tt.useMemo(()=>Qn[m.product],[m.product]);return m.view==="app"?f.jsx(yv,{product:_}):f.jsx(rv,{product:_})}ov.createRoot(document.getElementById("root")).render(f.jsx(Tv,{})); diff --git a/subapps/dist-products/skillscanvas/assets/index-Crbx-SnG.css b/subapps/dist-products/skillscanvas/assets/index-Crbx-SnG.css new file mode 100644 index 0000000..76cb473 --- /dev/null +++ b/subapps/dist-products/skillscanvas/assets/index-Crbx-SnG.css @@ -0,0 +1 @@ +:root{--navy: #0a1628;--ink: #2a3c56;--muted: #5a6b85;--line: #ebeff5;--pale: #f5f7fb;--violet: #7c3aed;--violet-pale: #f1eafe;--cyan: #06b6d4;--cyan-pale: #e0f6fa;--coral: #e87d4a;--coral-pale: #fceee4;--green: #10b981;--green-pale: #e6f8f1;font-family:Inter,system-ui,sans-serif;color:var(--navy);background:#fff}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--app);outline-offset:3px}.violet{--app: var(--violet);--app-pale: var(--violet-pale)}.cyan{--app: var(--cyan);--app-pale: var(--cyan-pale)}.coral{--app: var(--coral);--app-pale: var(--coral-pale)}.green{--app: var(--green);--app-pale: var(--green-pale)}.ecosystem{height:48px;background:var(--navy);color:#cbd5e5;display:flex;align-items:center;gap:18px;padding:0 max(28px,calc((100vw - 1180px)/2));font-size:11px}.fixars-link{color:#fff;text-decoration:none;font-weight:700}.ecosystem-note{color:#8ea0bc}.ecosystem nav{margin-left:auto;height:100%;display:flex;gap:2px}.ecosystem nav button{border:0;border-bottom:2px solid transparent;background:transparent;color:#becadc;padding:0 10px;display:flex;align-items:center;gap:7px}.ecosystem nav button.active{color:#fff;border-color:var(--app)}.mark{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--app);color:#fff;font-style:normal;font-family:Space Grotesk,sans-serif;font-weight:700}.product-nav{height:76px;max-width:1180px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.wordmark{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;color:var(--navy);font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.domain{font:11px JetBrains Mono,monospace;color:#8695ae}.product-nav nav{margin-left:auto;display:flex;align-items:center;gap:10px}.product-nav nav button{border:0;background:transparent;color:var(--muted);padding:10px;font-size:13px}.product-nav nav .selected{background:var(--app);color:#fff;border-radius:10px;font-weight:700}.hero{max-width:1180px;margin:auto;padding:78px 24px 70px;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.eyebrow{margin:0 0 12px;color:var(--app);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero h1,.app-heading h1{margin:0;font:700 clamp(43px,5.4vw,68px)/.98 "Space Grotesk",sans-serif;letter-spacing:-.06em}.lede{max-width:620px;color:var(--muted);font-size:18px;line-height:1.6;margin:22px 0 28px}.actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary,.closing button{border-radius:10px;padding:11px 16px;border:0;font-weight:700}.primary,.closing button{background:var(--app);color:#fff}.secondary{background:#fff;color:var(--navy);border:1px solid #d7dde8}.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:39px;padding-top:22px;border-top:1px solid var(--line)}.proof b{display:block;font:650 20px Space Grotesk,sans-serif}.proof span{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.product-preview{background:var(--app-pale);border:1px solid color-mix(in srgb,var(--app) 22%,#fff);border-radius:24px;padding:18px;display:grid;gap:12px;box-shadow:0 18px 45px #0a162814}.preview-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:17px;display:flex;justify-content:space-between;gap:14px;align-items:center}.preview-card strong{font-size:14px}.preview-card span{color:var(--muted);font-size:11px}.preview-card.compact b{font-size:11px;color:#047857;background:var(--green-pale);padding:4px 7px;border-radius:99px}.section{max-width:1180px;margin:auto;padding:80px 24px;border-top:1px solid var(--line)}.section h2,.workspace-card h2,.closing h2{margin:0 0 30px;font:650 34px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.feature-grid,.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.product-grid button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:24px;text-align:left}.feature-grid i{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:34px}.feature-grid h3,.steps h3{font:650 17px Space Grotesk,sans-serif;margin:0 0 9px}.feature-grid p,.steps p,.product-grid span,.closing p,.muted{color:var(--muted);font-size:13px;line-height:1.6}.steps>div{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.steps article{border-top:2px solid var(--app);padding-top:17px}.steps article span{font:11px JetBrains Mono,monospace;color:var(--app)}.steps article h3{margin-top:14px}.product-grid button{display:grid;gap:12px}.product-grid button .mark{margin-bottom:15px}.product-grid strong{font:650 17px Space Grotesk,sans-serif}.closing{background:var(--navy);color:#fff;margin-top:18px;padding:48px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:25px}.closing h2{font-size:27px;margin-bottom:8px}.closing p{margin:0;max-width:600px;color:#bfccdc}.closing button{background:#fff;color:var(--navy);white-space:nowrap}footer{max-width:1180px;margin:auto;padding:24px;display:flex;gap:15px;align-items:center;color:var(--muted);font-size:11px}footer button,footer a{border:0;background:transparent;color:var(--ink);font:inherit;text-decoration:none;font-weight:700}.app-page{max-width:1060px;margin:auto;padding:44px 24px;min-height:720px}.demo-banner{background:var(--green-pale);border:1px solid #b7e7d6;color:#047857;border-radius:12px;padding:13px 16px;display:flex;gap:12px;align-items:center;font-size:13px;margin-bottom:26px}.app-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between}.app-heading h1{font-size:42px}.app-heading p:not(.eyebrow){margin:10px 0 0;color:var(--muted)}.tabs{margin:28px 0 18px;padding:4px;background:var(--pale);border-radius:11px;display:inline-flex;gap:3px}.tabs button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:7px;font-size:12px;text-transform:capitalize}.tabs .selected{background:#fff;color:var(--navy);box-shadow:0 1px 4px #0a16281a;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:18px}.workspace-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff}.workspace-card h2{font-size:24px;margin-bottom:6px}.task-list,.record-list{margin-top:20px;border-top:1px solid var(--line)}.task-list>div,.record-list>div{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.task-list span{flex:1}.task-list b,.record-list b{display:block;font-size:14px}.task-list small,.record-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.task-list button{border:0;background:var(--app);color:#fff;border-radius:8px;padding:8px 10px;font-weight:700;font-size:12px}.task-list button:disabled{background:var(--green-pale);color:#047857}.demo-form,.checklist{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.demo-form label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.demo-form>div{display:flex;gap:10px}.demo-form input{flex:1;min-width:0;padding:11px 12px;border:1px solid #d7dde8;border-radius:9px;color:var(--navy);font:inherit}.demo-form input::placeholder{color:#8b9ab0}.inline-result{margin:14px 0 0;padding:11px 12px;border-radius:9px;background:var(--app-pale);color:var(--ink);font-size:12px;line-height:1.5}.checklist{display:grid;gap:11px}.checklist label{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:13px}.checklist input{width:16px;height:16px;accent-color:var(--app)}.checklist .secondary{justify-self:start;margin-top:8px}.record-list>div>span{font:11px JetBrains Mono,monospace;color:var(--app)}.record-list>div>div{flex:1}.record-list small{margin-left:auto;text-align:right}.side{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 20%,#fff);align-self:start}.side h3{font:650 20px/1.2 Space Grotesk,sans-serif;margin:0 0 12px}.side .primary{margin-top:18px}.evidence{max-width:700px}.trail{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.trail i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-style:normal;font-weight:700}.trail b{font-size:14px}.trail p{margin:4px 0 0;color:var(--muted);font-size:12px}.evidence .secondary,.evidence .primary{margin-top:18px}.toast{position:fixed;right:22px;bottom:20px;padding:12px 14px;background:var(--navy);color:#fff;border-radius:9px;font-size:13px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.workflow-panel{max-width:980px;border:1px solid var(--line);border-radius:16px;padding:26px;background:#fff}.workflow-panel h2{margin:0 0 8px;font:650 28px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.stack-form{display:grid;gap:14px;max-width:700px;margin-top:22px}.stack-form label{display:grid;gap:7px;font-size:12px;font-weight:700}.stack-form input,.stack-form textarea,.add-task input{width:100%;border:1px solid #d7dde8;border-radius:9px;padding:11px 12px;color:var(--navy);font:inherit}.stack-form textarea{min-height:84px;resize:vertical}.workflow-action{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.workflow-action span{color:var(--muted);font-size:12px}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.source-grid article{border:1px solid var(--line);border-radius:12px;padding:17px}.source-grid article>span:first-child{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:22px}.source-grid b{display:block;font-size:14px}.source-grid p,.passport-card p,.job-row p,.handoff-card p,.project-card p,.position-card p,.team-card p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.handoff-card{display:flex;align-items:center;gap:14px;border:1px solid color-mix(in srgb,var(--app) 22%,#fff);background:var(--app-pale);border-radius:13px;padding:17px;margin-top:20px}.handoff-card>div{flex:1}.handoff-card b{font-size:14px}.concept-row,.job-row,.artifact-row,.project-card,.team-card,.position-card{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.concept-row>div,.job-row>div,.project-card>div,.team-card>div:first-child,.position-card>div:first-child{flex:1}.concept-row b,.job-row b,.artifact-row b,.project-card b,.team-card b,.position-card b{display:block;font-size:14px}.concept-row small,.artifact-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.tag{display:inline-flex;align-items:center;border-radius:999px;background:var(--app-pale);color:var(--app);padding:5px 8px;font-size:11px;font-weight:700}.passport-card{margin-top:13px;border:1px solid var(--line);border-radius:12px;padding:17px}.passport-card>b{font-size:15px}.tier-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.tier-list span{border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font-size:10px}.tier-list .earned{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 22%,#fff);color:var(--app)}.job-row>strong{width:56px;color:var(--app);font:650 20px Space Grotesk,sans-serif}.job-row>strong small{font:400 10px Inter,sans-serif}.capsule-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.capsule-stats>div{border:1px solid var(--line);border-radius:12px;padding:17px}.capsule-stats b{display:block;color:var(--app);font:650 24px Space Grotesk,sans-serif}.capsule-stats span{display:block;margin-top:5px;color:var(--muted);font-size:11px}.add-task{display:flex;gap:10px;margin-top:16px}.artifact-row>span{color:var(--app);font:11px JetBrains Mono,monospace}.artifact-row small{margin-left:auto}.project-card,.team-card,.position-card{align-items:flex-start}.source-links,.simulated-choices,.team-card>div:nth-child(2){display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.source-links span,.team-card>div:nth-child(2) span{border-radius:999px;background:var(--pale);padding:4px 7px;color:var(--muted);font-size:10px}.simulated-choices{margin-top:0}.sandbox-note{margin:16px 0 0;color:#047857;font-size:12px;line-height:1.5}.milestone-list{margin:20px 0;border-top:1px solid var(--line)}.milestone-list>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.milestone-list span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-size:12px;font-weight:700}.milestone-list b{font-size:13px}.milestone-list small{color:var(--muted);font-size:11px;text-align:right}.position-preview{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px dashed color-mix(in srgb,var(--app) 48%,#fff);border-radius:12px;padding:16px;margin-top:18px}.position-preview b{font-size:14px}.position-preview p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:820px){.ecosystem{padding:0 16px}.ecosystem-note,.ecosystem nav button span{display:none}.ecosystem nav{margin-left:auto}.product-nav{height:64px;padding:0 16px}.domain,.product-nav nav button:not(.selected){display:none}.product-nav nav{margin-left:auto}.hero{grid-template-columns:1fr;gap:34px;padding:47px 18px}.hero h1{font-size:47px}.lede{font-size:16px}.proof{gap:10px}.feature-grid,.product-grid,.steps>div,.dashboard-grid{grid-template-columns:1fr}.section{padding:62px 18px}.section h2{font-size:29px}.closing{padding:38px 18px;align-items:flex-start;flex-direction:column}.app-page{padding:32px 16px}.app-heading{align-items:flex-start;flex-direction:column}.app-heading h1{font-size:36px}.demo-banner{align-items:flex-start;flex-direction:column;gap:3px}.record-list small{display:none}.demo-form>div{flex-direction:column}.demo-form .primary{align-self:flex-start}.source-grid,.capsule-stats{grid-template-columns:1fr}.handoff-card,.job-row,.project-card,.team-card,.position-card,.position-preview{align-items:flex-start;flex-direction:column}.simulated-choices{width:100%}.simulated-choices .secondary{flex:1}.add-task{flex-direction:column}.milestone-list>div{grid-template-columns:28px 1fr}.milestone-list small{grid-column:2;text-align:left}.workflow-panel{padding:20px}footer{padding:20px 16px;flex-wrap:wrap}} diff --git a/subapps/dist-products/skillscanvas/deployment.json b/subapps/dist-products/skillscanvas/deployment.json new file mode 100644 index 0000000..550ecb5 --- /dev/null +++ b/subapps/dist-products/skillscanvas/deployment.json @@ -0,0 +1,7 @@ +{ + "key": "skillscanvas", + "name": "SkillsCanvas", + "canonical": "https://skillscanvas.co/", + "connector": "https://skills.fixars.ai/", + "path": "https://fixars.ai/skills" +} diff --git a/subapps/dist-products/skillscanvas/index.html b/subapps/dist-products/skillscanvas/index.html new file mode 100644 index 0000000..85acc66 --- /dev/null +++ b/subapps/dist-products/skillscanvas/index.html @@ -0,0 +1,18 @@ + + + + + + + SkillsCanvas — Fixars + + + + + + + + +
+ + diff --git a/subapps/dist-products/vestden/assets/index-Crbx-SnG.css b/subapps/dist-products/vestden/assets/index-Crbx-SnG.css new file mode 100644 index 0000000..76cb473 --- /dev/null +++ b/subapps/dist-products/vestden/assets/index-Crbx-SnG.css @@ -0,0 +1 @@ +:root{--navy: #0a1628;--ink: #2a3c56;--muted: #5a6b85;--line: #ebeff5;--pale: #f5f7fb;--violet: #7c3aed;--violet-pale: #f1eafe;--cyan: #06b6d4;--cyan-pale: #e0f6fa;--coral: #e87d4a;--coral-pale: #fceee4;--green: #10b981;--green-pale: #e6f8f1;font-family:Inter,system-ui,sans-serif;color:var(--navy);background:#fff}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--app);outline-offset:3px}.violet{--app: var(--violet);--app-pale: var(--violet-pale)}.cyan{--app: var(--cyan);--app-pale: var(--cyan-pale)}.coral{--app: var(--coral);--app-pale: var(--coral-pale)}.green{--app: var(--green);--app-pale: var(--green-pale)}.ecosystem{height:48px;background:var(--navy);color:#cbd5e5;display:flex;align-items:center;gap:18px;padding:0 max(28px,calc((100vw - 1180px)/2));font-size:11px}.fixars-link{color:#fff;text-decoration:none;font-weight:700}.ecosystem-note{color:#8ea0bc}.ecosystem nav{margin-left:auto;height:100%;display:flex;gap:2px}.ecosystem nav button{border:0;border-bottom:2px solid transparent;background:transparent;color:#becadc;padding:0 10px;display:flex;align-items:center;gap:7px}.ecosystem nav button.active{color:#fff;border-color:var(--app)}.mark{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--app);color:#fff;font-style:normal;font-family:Space Grotesk,sans-serif;font-weight:700}.product-nav{height:76px;max-width:1180px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.wordmark{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;color:var(--navy);font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.domain{font:11px JetBrains Mono,monospace;color:#8695ae}.product-nav nav{margin-left:auto;display:flex;align-items:center;gap:10px}.product-nav nav button{border:0;background:transparent;color:var(--muted);padding:10px;font-size:13px}.product-nav nav .selected{background:var(--app);color:#fff;border-radius:10px;font-weight:700}.hero{max-width:1180px;margin:auto;padding:78px 24px 70px;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.eyebrow{margin:0 0 12px;color:var(--app);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero h1,.app-heading h1{margin:0;font:700 clamp(43px,5.4vw,68px)/.98 "Space Grotesk",sans-serif;letter-spacing:-.06em}.lede{max-width:620px;color:var(--muted);font-size:18px;line-height:1.6;margin:22px 0 28px}.actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary,.closing button{border-radius:10px;padding:11px 16px;border:0;font-weight:700}.primary,.closing button{background:var(--app);color:#fff}.secondary{background:#fff;color:var(--navy);border:1px solid #d7dde8}.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:39px;padding-top:22px;border-top:1px solid var(--line)}.proof b{display:block;font:650 20px Space Grotesk,sans-serif}.proof span{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.product-preview{background:var(--app-pale);border:1px solid color-mix(in srgb,var(--app) 22%,#fff);border-radius:24px;padding:18px;display:grid;gap:12px;box-shadow:0 18px 45px #0a162814}.preview-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:17px;display:flex;justify-content:space-between;gap:14px;align-items:center}.preview-card strong{font-size:14px}.preview-card span{color:var(--muted);font-size:11px}.preview-card.compact b{font-size:11px;color:#047857;background:var(--green-pale);padding:4px 7px;border-radius:99px}.section{max-width:1180px;margin:auto;padding:80px 24px;border-top:1px solid var(--line)}.section h2,.workspace-card h2,.closing h2{margin:0 0 30px;font:650 34px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.feature-grid,.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.product-grid button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:24px;text-align:left}.feature-grid i{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:34px}.feature-grid h3,.steps h3{font:650 17px Space Grotesk,sans-serif;margin:0 0 9px}.feature-grid p,.steps p,.product-grid span,.closing p,.muted{color:var(--muted);font-size:13px;line-height:1.6}.steps>div{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.steps article{border-top:2px solid var(--app);padding-top:17px}.steps article span{font:11px JetBrains Mono,monospace;color:var(--app)}.steps article h3{margin-top:14px}.product-grid button{display:grid;gap:12px}.product-grid button .mark{margin-bottom:15px}.product-grid strong{font:650 17px Space Grotesk,sans-serif}.closing{background:var(--navy);color:#fff;margin-top:18px;padding:48px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:25px}.closing h2{font-size:27px;margin-bottom:8px}.closing p{margin:0;max-width:600px;color:#bfccdc}.closing button{background:#fff;color:var(--navy);white-space:nowrap}footer{max-width:1180px;margin:auto;padding:24px;display:flex;gap:15px;align-items:center;color:var(--muted);font-size:11px}footer button,footer a{border:0;background:transparent;color:var(--ink);font:inherit;text-decoration:none;font-weight:700}.app-page{max-width:1060px;margin:auto;padding:44px 24px;min-height:720px}.demo-banner{background:var(--green-pale);border:1px solid #b7e7d6;color:#047857;border-radius:12px;padding:13px 16px;display:flex;gap:12px;align-items:center;font-size:13px;margin-bottom:26px}.app-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between}.app-heading h1{font-size:42px}.app-heading p:not(.eyebrow){margin:10px 0 0;color:var(--muted)}.tabs{margin:28px 0 18px;padding:4px;background:var(--pale);border-radius:11px;display:inline-flex;gap:3px}.tabs button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:7px;font-size:12px;text-transform:capitalize}.tabs .selected{background:#fff;color:var(--navy);box-shadow:0 1px 4px #0a16281a;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:18px}.workspace-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff}.workspace-card h2{font-size:24px;margin-bottom:6px}.task-list,.record-list{margin-top:20px;border-top:1px solid var(--line)}.task-list>div,.record-list>div{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.task-list span{flex:1}.task-list b,.record-list b{display:block;font-size:14px}.task-list small,.record-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.task-list button{border:0;background:var(--app);color:#fff;border-radius:8px;padding:8px 10px;font-weight:700;font-size:12px}.task-list button:disabled{background:var(--green-pale);color:#047857}.demo-form,.checklist{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.demo-form label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.demo-form>div{display:flex;gap:10px}.demo-form input{flex:1;min-width:0;padding:11px 12px;border:1px solid #d7dde8;border-radius:9px;color:var(--navy);font:inherit}.demo-form input::placeholder{color:#8b9ab0}.inline-result{margin:14px 0 0;padding:11px 12px;border-radius:9px;background:var(--app-pale);color:var(--ink);font-size:12px;line-height:1.5}.checklist{display:grid;gap:11px}.checklist label{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:13px}.checklist input{width:16px;height:16px;accent-color:var(--app)}.checklist .secondary{justify-self:start;margin-top:8px}.record-list>div>span{font:11px JetBrains Mono,monospace;color:var(--app)}.record-list>div>div{flex:1}.record-list small{margin-left:auto;text-align:right}.side{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 20%,#fff);align-self:start}.side h3{font:650 20px/1.2 Space Grotesk,sans-serif;margin:0 0 12px}.side .primary{margin-top:18px}.evidence{max-width:700px}.trail{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.trail i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-style:normal;font-weight:700}.trail b{font-size:14px}.trail p{margin:4px 0 0;color:var(--muted);font-size:12px}.evidence .secondary,.evidence .primary{margin-top:18px}.toast{position:fixed;right:22px;bottom:20px;padding:12px 14px;background:var(--navy);color:#fff;border-radius:9px;font-size:13px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.workflow-panel{max-width:980px;border:1px solid var(--line);border-radius:16px;padding:26px;background:#fff}.workflow-panel h2{margin:0 0 8px;font:650 28px/1.1 Space Grotesk,sans-serif;letter-spacing:-.04em}.stack-form{display:grid;gap:14px;max-width:700px;margin-top:22px}.stack-form label{display:grid;gap:7px;font-size:12px;font-weight:700}.stack-form input,.stack-form textarea,.add-task input{width:100%;border:1px solid #d7dde8;border-radius:9px;padding:11px 12px;color:var(--navy);font:inherit}.stack-form textarea{min-height:84px;resize:vertical}.workflow-action{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.workflow-action span{color:var(--muted);font-size:12px}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.source-grid article{border:1px solid var(--line);border-radius:12px;padding:17px}.source-grid article>span:first-child{display:block;color:var(--app);font:11px JetBrains Mono,monospace;margin-bottom:22px}.source-grid b{display:block;font-size:14px}.source-grid p,.passport-card p,.job-row p,.handoff-card p,.project-card p,.position-card p,.team-card p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.handoff-card{display:flex;align-items:center;gap:14px;border:1px solid color-mix(in srgb,var(--app) 22%,#fff);background:var(--app-pale);border-radius:13px;padding:17px;margin-top:20px}.handoff-card>div{flex:1}.handoff-card b{font-size:14px}.concept-row,.job-row,.artifact-row,.project-card,.team-card,.position-card{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.concept-row>div,.job-row>div,.project-card>div,.team-card>div:first-child,.position-card>div:first-child{flex:1}.concept-row b,.job-row b,.artifact-row b,.project-card b,.team-card b,.position-card b{display:block;font-size:14px}.concept-row small,.artifact-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.tag{display:inline-flex;align-items:center;border-radius:999px;background:var(--app-pale);color:var(--app);padding:5px 8px;font-size:11px;font-weight:700}.passport-card{margin-top:13px;border:1px solid var(--line);border-radius:12px;padding:17px}.passport-card>b{font-size:15px}.tier-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.tier-list span{border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font-size:10px}.tier-list .earned{background:var(--app-pale);border-color:color-mix(in srgb,var(--app) 22%,#fff);color:var(--app)}.job-row>strong{width:56px;color:var(--app);font:650 20px Space Grotesk,sans-serif}.job-row>strong small{font:400 10px Inter,sans-serif}.capsule-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.capsule-stats>div{border:1px solid var(--line);border-radius:12px;padding:17px}.capsule-stats b{display:block;color:var(--app);font:650 24px Space Grotesk,sans-serif}.capsule-stats span{display:block;margin-top:5px;color:var(--muted);font-size:11px}.add-task{display:flex;gap:10px;margin-top:16px}.artifact-row>span{color:var(--app);font:11px JetBrains Mono,monospace}.artifact-row small{margin-left:auto}.project-card,.team-card,.position-card{align-items:flex-start}.source-links,.simulated-choices,.team-card>div:nth-child(2){display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.source-links span,.team-card>div:nth-child(2) span{border-radius:999px;background:var(--pale);padding:4px 7px;color:var(--muted);font-size:10px}.simulated-choices{margin-top:0}.sandbox-note{margin:16px 0 0;color:#047857;font-size:12px;line-height:1.5}.milestone-list{margin:20px 0;border-top:1px solid var(--line)}.milestone-list>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.milestone-list span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--app-pale);color:var(--app);font-size:12px;font-weight:700}.milestone-list b{font-size:13px}.milestone-list small{color:var(--muted);font-size:11px;text-align:right}.position-preview{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px dashed color-mix(in srgb,var(--app) 48%,#fff);border-radius:12px;padding:16px;margin-top:18px}.position-preview b{font-size:14px}.position-preview p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:820px){.ecosystem{padding:0 16px}.ecosystem-note,.ecosystem nav button span{display:none}.ecosystem nav{margin-left:auto}.product-nav{height:64px;padding:0 16px}.domain,.product-nav nav button:not(.selected){display:none}.product-nav nav{margin-left:auto}.hero{grid-template-columns:1fr;gap:34px;padding:47px 18px}.hero h1{font-size:47px}.lede{font-size:16px}.proof{gap:10px}.feature-grid,.product-grid,.steps>div,.dashboard-grid{grid-template-columns:1fr}.section{padding:62px 18px}.section h2{font-size:29px}.closing{padding:38px 18px;align-items:flex-start;flex-direction:column}.app-page{padding:32px 16px}.app-heading{align-items:flex-start;flex-direction:column}.app-heading h1{font-size:36px}.demo-banner{align-items:flex-start;flex-direction:column;gap:3px}.record-list small{display:none}.demo-form>div{flex-direction:column}.demo-form .primary{align-self:flex-start}.source-grid,.capsule-stats{grid-template-columns:1fr}.handoff-card,.job-row,.project-card,.team-card,.position-card,.position-preview{align-items:flex-start;flex-direction:column}.simulated-choices{width:100%}.simulated-choices .secondary{flex:1}.add-task{flex-direction:column}.milestone-list>div{grid-template-columns:28px 1fr}.milestone-list small{grid-column:2;text-align:left}.workflow-panel{padding:20px}footer{padding:20px 16px;flex-wrap:wrap}} diff --git a/subapps/dist-products/vestden/assets/index-hIzCM4P9.js b/subapps/dist-products/vestden/assets/index-hIzCM4P9.js new file mode 100644 index 0000000..8058b1a --- /dev/null +++ b/subapps/dist-products/vestden/assets/index-hIzCM4P9.js @@ -0,0 +1,49 @@ +(function(){const E=document.createElement("link").relList;if(E&&E.supports&&E.supports("modulepreload"))return;for(const C of document.querySelectorAll('link[rel="modulepreload"]'))h(C);new MutationObserver(C=>{for(const R of C)if(R.type==="childList")for(const L of R.addedNodes)L.tagName==="LINK"&&L.rel==="modulepreload"&&h(L)}).observe(document,{childList:!0,subtree:!0});function _(C){const R={};return C.integrity&&(R.integrity=C.integrity),C.referrerPolicy&&(R.referrerPolicy=C.referrerPolicy),C.crossOrigin==="use-credentials"?R.credentials="include":C.crossOrigin==="anonymous"?R.credentials="omit":R.credentials="same-origin",R}function h(C){if(C.ep)return;C.ep=!0;const R=_(C);fetch(C.href,R)}})();var cf={exports:{}},pu={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var gr;function tv(){if(gr)return pu;gr=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.fragment");function _(h,C,R){var L=null;if(R!==void 0&&(L=""+R),C.key!==void 0&&(L=""+C.key),"key"in C){R={};for(var X in C)X!=="key"&&(R[X]=C[X])}else R=C;return C=R.ref,{$$typeof:m,type:h,key:L,ref:C!==void 0?C:null,props:R}}return pu.Fragment=E,pu.jsx=_,pu.jsxs=_,pu}var Sr;function ev(){return Sr||(Sr=1,cf.exports=tv()),cf.exports}var f=ev(),ff={exports:{}},G={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var br;function av(){if(br)return G;br=1;var m=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),R=Symbol.for("react.consumer"),L=Symbol.for("react.context"),X=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),z=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),hl=Symbol.iterator;function kl(d){return d===null||typeof d!="object"?null:(d=hl&&d[hl]||d["@@iterator"],typeof d=="function"?d:null)}var ql={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Hl=Object.assign,Dt={};function Wl(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}Wl.prototype.isReactComponent={},Wl.prototype.setState=function(d,x){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,x,"setState")},Wl.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function $t(){}$t.prototype=Wl.prototype;function Ul(d,x,N){this.props=d,this.context=x,this.refs=Dt,this.updater=N||ql}var ct=Ul.prototype=new $t;ct.constructor=Ul,Hl(ct,Wl.prototype),ct.isPureReactComponent=!0;var zt=Array.isArray;function Yl(){}var $={H:null,A:null,T:null,S:null},Gl=Object.prototype.hasOwnProperty;function xt(d,x,N){var M=N.ref;return{$$typeof:m,type:d,key:x,ref:M!==void 0?M:null,props:N}}function Ze(d,x){return xt(d.type,x,d.props)}function Et(d){return typeof d=="object"&&d!==null&&d.$$typeof===m}function Xl(d){var x={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(N){return x[N]})}var Te=/\/+/g;function Mt(d,x){return typeof d=="object"&&d!==null&&d.key!=null?Xl(""+d.key):x.toString(36)}function St(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then(Yl,Yl):(d.status="pending",d.then(function(x){d.status==="pending"&&(d.status="fulfilled",d.value=x)},function(x){d.status==="pending"&&(d.status="rejected",d.reason=x)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function p(d,x,N,M,Q){var w=typeof d;(w==="undefined"||w==="boolean")&&(d=null);var el=!1;if(d===null)el=!0;else switch(w){case"bigint":case"string":case"number":el=!0;break;case"object":switch(d.$$typeof){case m:case E:el=!0;break;case I:return el=d._init,p(el(d._payload),x,N,M,Q)}}if(el)return Q=Q(d),el=M===""?"."+Mt(d,0):M,zt(Q)?(N="",el!=null&&(N=el.replace(Te,"$&/")+"/"),p(Q,x,N,"",function(Na){return Na})):Q!=null&&(Et(Q)&&(Q=Ze(Q,N+(Q.key==null||d&&d.key===Q.key?"":(""+Q.key).replace(Te,"$&/")+"/")+el)),x.push(Q)),1;el=0;var Rl=M===""?".":M+":";if(zt(d))for(var gl=0;gl>>1,sl=p[nl];if(0>>1;nlC(N,Y))MC(Q,N)?(p[nl]=Q,p[M]=Y,nl=M):(p[nl]=N,p[x]=Y,nl=x);else if(MC(Q,Y))p[nl]=Q,p[M]=Y,nl=M;else break l}}return A}function C(p,A){var Y=p.sortIndex-A.sortIndex;return Y!==0?Y:p.id-A.id}if(m.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var R=performance;m.unstable_now=function(){return R.now()}}else{var L=Date,X=L.now();m.unstable_now=function(){return L.now()-X}}var O=[],z=[],I=1,q=null,hl=3,kl=!1,ql=!1,Hl=!1,Dt=!1,Wl=typeof setTimeout=="function"?setTimeout:null,$t=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function ct(p){for(var A=_(z);A!==null;){if(A.callback===null)h(z);else if(A.startTime<=p)h(z),A.sortIndex=A.expirationTime,E(O,A);else break;A=_(z)}}function zt(p){if(Hl=!1,ct(p),!ql)if(_(O)!==null)ql=!0,Yl||(Yl=!0,Xl());else{var A=_(z);A!==null&&St(zt,A.startTime-p)}}var Yl=!1,$=-1,Gl=5,xt=-1;function Ze(){return Dt?!0:!(m.unstable_now()-xtp&&Ze());){var nl=q.callback;if(typeof nl=="function"){q.callback=null,hl=q.priorityLevel;var sl=nl(q.expirationTime<=p);if(p=m.unstable_now(),typeof sl=="function"){q.callback=sl,ct(p),A=!0;break t}q===_(O)&&h(O),ct(p)}else h(O);q=_(O)}if(q!==null)A=!0;else{var d=_(z);d!==null&&St(zt,d.startTime-p),A=!1}}break l}finally{q=null,hl=Y,kl=!1}A=void 0}}finally{A?Xl():Yl=!1}}}var Xl;if(typeof Ul=="function")Xl=function(){Ul(Et)};else if(typeof MessageChannel<"u"){var Te=new MessageChannel,Mt=Te.port2;Te.port1.onmessage=Et,Xl=function(){Mt.postMessage(null)}}else Xl=function(){Wl(Et,0)};function St(p,A){$=Wl(function(){p(m.unstable_now())},A)}m.unstable_IdlePriority=5,m.unstable_ImmediatePriority=1,m.unstable_LowPriority=4,m.unstable_NormalPriority=3,m.unstable_Profiling=null,m.unstable_UserBlockingPriority=2,m.unstable_cancelCallback=function(p){p.callback=null},m.unstable_forceFrameRate=function(p){0>p||125nl?(p.sortIndex=Y,E(z,p),_(O)===null&&p===_(z)&&(Hl?($t($),$=-1):Hl=!0,St(zt,Y-nl))):(p.sortIndex=sl,E(O,p),ql||kl||(ql=!0,Yl||(Yl=!0,Xl()))),p},m.unstable_shouldYield=Ze,m.unstable_wrapCallback=function(p){var A=hl;return function(){var Y=hl;hl=A;try{return p.apply(this,arguments)}finally{hl=Y}}}})(df)),df}var Tr;function nv(){return Tr||(Tr=1,of.exports=uv()),of.exports}var rf={exports:{}},Cl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zr;function iv(){if(zr)return Cl;zr=1;var m=mf();function E(O){var z="https://react.dev/errors/"+O;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),rf.exports=iv(),rf.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Er;function fv(){if(Er)return ju;Er=1;var m=nv(),E=mf(),_=cv();function h(l){var t="https://react.dev/errors/"+l;if(1sl||(l.current=nl[sl],nl[sl]=null,sl--)}function N(l,t){sl++,nl[sl]=l.current,l.current=t}var M=d(null),Q=d(null),w=d(null),el=d(null);function Rl(l,t){switch(N(w,t),N(Q,l),N(M,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Xd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Xd(t),l=Qd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}x(M),N(M,l)}function gl(){x(M),x(Q),x(w)}function Na(l){l.memoizedState!==null&&N(el,l);var t=M.current,e=Qd(t,l.type);t!==e&&(N(Q,l),N(M,e))}function Tu(l){Q.current===l&&(x(M),x(Q)),el.current===l&&(x(el),yu._currentValue=Y)}var Zn,vf;function ze(l){if(Zn===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Zn=t&&t[1]||"",vf=-1)":-1u||s[a]!==y[u]){var b=` +`+s[a].replace(" at new "," at ");return l.displayName&&b.includes("")&&(b=b.replace("",l.displayName)),b}while(1<=a&&0<=u);break}}}finally{Vn=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:"")?ze(e):""}function Ur(l,t){switch(l.tag){case 26:case 27:case 5:return ze(l.type);case 16:return ze("Lazy");case 13:return l.child!==t&&t!==null?ze("Suspense Fallback"):ze("Suspense");case 19:return ze("SuspenseList");case 0:case 15:return Ln(l.type,!1);case 11:return Ln(l.type.render,!1);case 1:return Ln(l.type,!0);case 31:return ze("Activity");default:return""}}function yf(l){try{var t="",e=null;do t+=Ur(l,e),e=l,l=l.return;while(l);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}var wn=Object.prototype.hasOwnProperty,Kn=m.unstable_scheduleCallback,Jn=m.unstable_cancelCallback,Cr=m.unstable_shouldYield,Hr=m.unstable_requestPaint,$l=m.unstable_now,Rr=m.unstable_getCurrentPriorityLevel,gf=m.unstable_ImmediatePriority,Sf=m.unstable_UserBlockingPriority,zu=m.unstable_NormalPriority,Br=m.unstable_LowPriority,bf=m.unstable_IdlePriority,qr=m.log,Yr=m.unstable_setDisableYieldValue,_a=null,Fl=null;function Ft(l){if(typeof qr=="function"&&Yr(l),Fl&&typeof Fl.setStrictMode=="function")try{Fl.setStrictMode(_a,l)}catch{}}var Il=Math.clz32?Math.clz32:Qr,Gr=Math.log,Xr=Math.LN2;function Qr(l){return l>>>=0,l===0?32:31-(Gr(l)/Xr|0)|0}var xu=256,Eu=262144,Au=4194304;function xe(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Nu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=xe(a):(i&=c,i!==0?u=xe(i):e||(e=c&~l,e!==0&&(u=xe(e))))):(c=a&~n,c!==0?u=xe(c):i!==0?u=xe(i):e||(e=a&~l,e!==0&&(u=xe(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function Oa(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Zr(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function pf(){var l=Au;return Au<<=1,(Au&62914560)===0&&(Au=4194304),l}function kn(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function Da(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Vr(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,s=l.expirationTimes,y=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Wr=/[\n"\\]/g;function st(l){return l.replace(Wr,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function li(l,t,e,a,u,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ft(t)):l.value!==""+ft(t)&&(l.value=""+ft(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?ti(l,i,ft(t)):e!=null?ti(l,i,ft(e)):a!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+ft(c):l.removeAttribute("name")}function Cf(l,t,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){Pn(l);return}e=e!=null?""+ft(e):"",t=t!=null?""+ft(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),Pn(l)}function ti(l,t,e){t==="number"&&Du(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function ke(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ii=!1;if(Ht)try{var Ha={};Object.defineProperty(Ha,"passive",{get:function(){ii=!0}}),window.addEventListener("test",Ha,Ha),window.removeEventListener("test",Ha,Ha)}catch{ii=!1}var Pt=null,ci=null,Uu=null;function Xf(){if(Uu)return Uu;var l,t=ci,e=t.length,a,u="value"in Pt?Pt.value:Pt.textContent,n=u.length;for(l=0;l=qa),Kf=" ",Jf=!1;function kf(l,t){switch(l){case"keyup":return zh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Ie=!1;function Eh(l,t){switch(l){case"compositionend":return Wf(t);case"keypress":return t.which!==32?null:(Jf=!0,Kf);case"textInput":return l=t.data,l===Kf&&Jf?null:l;default:return null}}function Ah(l,t){if(Ie)return l==="compositionend"||!ri&&kf(l,t)?(l=Xf(),Uu=ci=Pt=null,Ie=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=as(e)}}function ns(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?ns(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function is(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Du(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Du(l.document)}return t}function vi(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var Hh=Ht&&"documentMode"in document&&11>=document.documentMode,Pe=null,yi=null,Qa=null,gi=!1;function cs(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;gi||Pe==null||Pe!==Du(a)||(a=Pe,"selectionStart"in a&&vi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qa&&Xa(Qa,a)||(Qa=a,a=An(yi,"onSelect"),0>=i,u-=i,At=1<<32-Il(t)+u|e<V?(W=U,U=null):W=U.sibling;var ll=g(r,U,v[V],j);if(ll===null){U===null&&(U=W);break}l&&U&&ll.alternate===null&&t(r,U),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll,U=W}if(V===v.length)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;VV?(W=U,U=null):W=U.sibling;var je=g(r,U,ll.value,j);if(je===null){U===null&&(U=W);break}l&&U&&je.alternate===null&&t(r,U),o=n(je,o,V),P===null?H=je:P.sibling=je,P=je,U=W}if(ll.done)return e(r,U),F&&Bt(r,V),H;if(U===null){for(;!ll.done;V++,ll=v.next())ll=T(r,ll.value,j),ll!==null&&(o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return F&&Bt(r,V),H}for(U=a(U);!ll.done;V++,ll=v.next())ll=S(U,r,V,ll.value,j),ll!==null&&(l&&ll.alternate!==null&&U.delete(ll.key===null?V:ll.key),o=n(ll,o,V),P===null?H=ll:P.sibling=ll,P=ll);return l&&U.forEach(function(lv){return t(r,lv)}),F&&Bt(r,V),H}function fl(r,o,v,j){if(typeof v=="object"&&v!==null&&v.type===Hl&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case kl:l:{for(var H=v.key;o!==null;){if(o.key===H){if(H=v.type,H===Hl){if(o.tag===7){e(r,o.sibling),j=u(o,v.props.children),j.return=r,r=j;break l}}else if(o.elementType===H||typeof H=="object"&&H!==null&&H.$$typeof===Gl&&Re(H)===o.type){e(r,o.sibling),j=u(o,v.props),Ja(j,v),j.return=r,r=j;break l}e(r,o);break}else t(r,o);o=o.sibling}v.type===Hl?(j=De(v.props.children,r.mode,j,v.key),j.return=r,r=j):(j=Zu(v.type,v.key,v.props,null,r.mode,j),Ja(j,v),j.return=r,r=j)}return i(r);case ql:l:{for(H=v.key;o!==null;){if(o.key===H)if(o.tag===4&&o.stateNode.containerInfo===v.containerInfo&&o.stateNode.implementation===v.implementation){e(r,o.sibling),j=u(o,v.children||[]),j.return=r,r=j;break l}else{e(r,o);break}else t(r,o);o=o.sibling}j=xi(v,r.mode,j),j.return=r,r=j}return i(r);case Gl:return v=Re(v),fl(r,o,v,j)}if(St(v))return D(r,o,v,j);if(Xl(v)){if(H=Xl(v),typeof H!="function")throw Error(h(150));return v=H.call(v),B(r,o,v,j)}if(typeof v.then=="function")return fl(r,o,Wu(v),j);if(v.$$typeof===Ul)return fl(r,o,wu(r,v),j);$u(r,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,o!==null&&o.tag===6?(e(r,o.sibling),j=u(o,v),j.return=r,r=j):(e(r,o),j=zi(v,r.mode,j),j.return=r,r=j),i(r)):e(r,o)}return function(r,o,v,j){try{Ka=0;var H=fl(r,o,v,j);return oa=null,H}catch(U){if(U===sa||U===Ju)throw U;var P=lt(29,U,null,r.mode);return P.lanes=j,P.return=r,P}finally{}}}var qe=Ds(!0),Ms=Ds(!1),ue=!1;function Bi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qi(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ne(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ie(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(tl&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Qu(l),ms(l,null,e),t}return Xu(l,a,t,e),Qu(l)}function ka(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}function Yi(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Gi=!1;function Wa(){if(Gi){var l=fa;if(l!==null)throw l}}function $a(l,t,e,a){Gi=!1;var u=l.updateQueue;ue=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var s=c,y=s.next;s.next=null,i===null?n=y:i.next=y,i=s;var b=l.alternate;b!==null&&(b=b.updateQueue,c=b.lastBaseUpdate,c!==i&&(c===null?b.firstBaseUpdate=y:c.next=y,b.lastBaseUpdate=s))}if(n!==null){var T=u.baseState;i=0,b=y=s=null,c=n;do{var g=c.lane&-536870913,S=g!==c.lane;if(S?(k&g)===g:(a&g)===g){g!==0&&g===ca&&(Gi=!0),b!==null&&(b=b.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var D=l,B=c;g=t;var fl=e;switch(B.tag){case 1:if(D=B.payload,typeof D=="function"){T=D.call(fl,T,g);break l}T=D;break l;case 3:D.flags=D.flags&-65537|128;case 0:if(D=B.payload,g=typeof D=="function"?D.call(fl,T,g):D,g==null)break l;T=q({},T,g);break l;case 2:ue=!0}}g=c.callback,g!==null&&(l.flags|=64,S&&(l.flags|=8192),S=u.callbacks,S===null?u.callbacks=[g]:S.push(g))}else S={lane:g,tag:c.tag,payload:c.payload,callback:c.callback,next:null},b===null?(y=b=S,s=T):b=b.next=S,i|=g;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;S=c,c=S.next,S.next=null,u.lastBaseUpdate=S,u.shared.pending=null}}while(!0);b===null&&(s=T),u.baseState=s,u.firstBaseUpdate=y,u.lastBaseUpdate=b,n===null&&(u.shared.lanes=0),de|=i,l.lanes=i,l.memoizedState=T}}function Us(l,t){if(typeof l!="function")throw Error(h(191,l));l.call(t)}function Cs(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;ln?n:8;var i=p.T,c={};p.T=c,uc(l,!1,t,e);try{var s=u(),y=p.S;if(y!==null&&y(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var b=Vh(s,a);Pa(l,t,b,nt(l))}else Pa(l,t,a,nt(l))}catch(T){Pa(l,t,{then:function(){},status:"rejected",reason:T},nt())}finally{A.p=n,i!==null&&c.types!==null&&(i.types=c.types),p.T=i}}function Wh(){}function ec(l,t,e,a){if(l.tag!==5)throw Error(h(476));var u=ro(l).queue;oo(l,u,t,Y,e===null?Wh:function(){return ho(l),e(a)})}function ro(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:Y},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function ho(l){var t=ro(l);t.next===null&&(t=l.alternate.memoizedState),Pa(l,t.next.queue,{},nt())}function ac(){return Ol(yu)}function mo(){return bl().memoizedState}function vo(){return bl().memoizedState}function $h(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=nt();l=ne(e);var a=ie(t,l,e);a!==null&&(Jl(a,t,e),ka(a,t,e)),t={cache:Ui()},l.payload=t;return}t=t.return}}function Fh(l,t,e){var a=nt();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},cn(l)?go(t,e):(e=ji(l,t,e,a),e!==null&&(Jl(e,l,a),So(e,t,a)))}function yo(l,t,e){var a=nt();Pa(l,t,e,a)}function Pa(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(cn(l))go(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,Pl(c,i))return Xu(l,t,u,0),ol===null&&Gu(),!1}catch{}finally{}if(e=ji(l,t,u,a),e!==null)return Jl(e,l,a),So(e,t,a),!0}return!1}function uc(l,t,e,a){if(a={lane:2,revertLane:Bc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},cn(l)){if(t)throw Error(h(479))}else t=ji(l,e,a,2),t!==null&&Jl(t,l,2)}function cn(l){var t=l.alternate;return l===Z||t!==null&&t===Z}function go(l,t){ra=Pu=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function So(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Tf(l,e)}}var lu={readContext:Ol,use:en,useCallback:vl,useContext:vl,useEffect:vl,useImperativeHandle:vl,useLayoutEffect:vl,useInsertionEffect:vl,useMemo:vl,useReducer:vl,useRef:vl,useState:vl,useDebugValue:vl,useDeferredValue:vl,useTransition:vl,useSyncExternalStore:vl,useId:vl,useHostTransitionStatus:vl,useFormState:vl,useActionState:vl,useOptimistic:vl,useMemoCache:vl,useCacheRefresh:vl};lu.useEffectEvent=vl;var bo={readContext:Ol,use:en,useCallback:function(l,t){return Bl().memoizedState=[l,t===void 0?null:t],l},useContext:Ol,useEffect:to,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,un(4194308,4,no.bind(null,t,l),e)},useLayoutEffect:function(l,t){return un(4194308,4,l,t)},useInsertionEffect:function(l,t){un(4,2,l,t)},useMemo:function(l,t){var e=Bl();t=t===void 0?null:t;var a=l();if(Ye){Ft(!0);try{l()}finally{Ft(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=Bl();if(e!==void 0){var u=e(t);if(Ye){Ft(!0);try{e(t)}finally{Ft(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=Fh.bind(null,Z,l),[a.memoizedState,l]},useRef:function(l){var t=Bl();return l={current:l},t.memoizedState=l},useState:function(l){l=Fi(l);var t=l.queue,e=yo.bind(null,Z,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:lc,useDeferredValue:function(l,t){var e=Bl();return tc(e,l,t)},useTransition:function(){var l=Fi(!1);return l=oo.bind(null,Z,l.queue,!0,!1),Bl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=Z,u=Bl();if(F){if(e===void 0)throw Error(h(407));e=e()}else{if(e=t(),ol===null)throw Error(h(349));(k&127)!==0||Gs(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,to(Qs.bind(null,a,n,l),[l]),a.flags|=2048,ma(9,{destroy:void 0},Xs.bind(null,a,n,e,t),null),e},useId:function(){var l=Bl(),t=ol.identifierPrefix;if(F){var e=Nt,a=At;e=(a&~(1<<32-Il(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=ln++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[Nl]=t,n[Ql]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Ml(n,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&Zt(t)}}return rl(t),Sc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Zt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(h(166));if(l=w.current,na(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=_l,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[Nl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||Yd(l.nodeValue,e)),l||ee(t,!0)}else l=Nn(l).createTextNode(a),l[Nl]=t,t.stateNode=l}return rl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=na(t),e!==null){if(l===null){if(!a)throw Error(h(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),l=!1}else e=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(et(t),t):(et(t),null);if((t.flags&128)!==0)throw Error(h(558))}return rl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=na(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(h(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(h(317));u[Nl]=t}else Me(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;rl(t),u=!1}else u=_i(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(et(t),t):(et(t),null)}return et(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),rn(t,t.updateQueue),rl(t),null);case 4:return gl(),l===null&&Xc(t.stateNode.containerInfo),rl(t),null;case 10:return Yt(t.type),rl(t),null;case 19:if(x(Sl),a=t.memoizedState,a===null)return rl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)eu(a,!1);else{if(yl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=Iu(l),n!==null){for(t.flags|=128,eu(a,!1),l=n.updateQueue,t.updateQueue=l,rn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)vs(e,l),e=e.sibling;return N(Sl,Sl.current&1|2),F&&Bt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&$l()>gn&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304)}else{if(!u)if(l=Iu(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,rn(t,l),eu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!F)return rl(t),null}else 2*$l()-a.renderingStartTime>gn&&e!==536870912&&(t.flags|=128,u=!0,eu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=$l(),l.sibling=null,e=Sl.current,N(Sl,u?e&1|2:e&1),F&&Bt(t,a.treeForkCount),l):(rl(t),null);case 22:case 23:return et(t),Qi(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(rl(t),t.subtreeFlags&6&&(t.flags|=8192)):rl(t),e=t.updateQueue,e!==null&&rn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&x(He),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),Yt(pl),rl(t),null;case 25:return null;case 30:return null}throw Error(h(156,t.tag))}function em(l,t){switch(Ai(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Yt(pl),gl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Tu(t),null;case 31:if(t.memoizedState!==null){if(et(t),t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(et(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(h(340));Me()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return x(Sl),null;case 4:return gl(),null;case 10:return Yt(t.type),null;case 22:case 23:return et(t),Qi(),l!==null&&x(He),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Yt(pl),null;case 25:return null;default:return null}}function Vo(l,t){switch(Ai(t),t.tag){case 3:Yt(pl),gl();break;case 26:case 27:case 5:Tu(t);break;case 4:gl();break;case 31:t.memoizedState!==null&&et(t);break;case 13:et(t);break;case 19:x(Sl);break;case 10:Yt(t.type);break;case 22:case 23:et(t),Qi(),l!==null&&x(He);break;case 24:Yt(pl)}}function au(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(c){ul(t,t.return,c)}}function se(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var s=e,y=c;try{y()}catch(b){ul(u,s,b)}}}a=a.next}while(a!==n)}}catch(b){ul(t,t.return,b)}}function Lo(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{Cs(t,e)}catch(a){ul(l,l.return,a)}}}function wo(l,t,e){e.props=Ge(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){ul(l,t,a)}}function uu(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e=="function"?l.refCleanup=e(a):e.current=a}}catch(u){ul(l,t,u)}}function _t(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){ul(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(u){ul(l,t,u)}else e.current=null}function Ko(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){ul(l,l.return,u)}}function bc(l,t,e){try{var a=l.stateNode;xm(a,l.type,e,t),a[Ql]=t}catch(u){ul(l,l.return,u)}}function Jo(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ye(l.type)||l.tag===4}function pc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Jo(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&ye(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function jc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=Ct));else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(jc(l,t,e),l=l.sibling;l!==null;)jc(l,t,e),l=l.sibling}function hn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&ye(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(hn(l,t,e),l=l.sibling;l!==null;)hn(l,t,e),l=l.sibling}function ko(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Ml(t,a,e),t[Nl]=l,t[Ql]=e}catch(n){ul(l,l.return,n)}}var Vt=!1,zl=!1,Tc=!1,Wo=typeof WeakSet=="function"?WeakSet:Set,Al=null;function am(l,t){if(l=l.containerInfo,Vc=Hn,l=is(l),vi(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,c=-1,s=-1,y=0,b=0,T=l,g=null;t:for(;;){for(var S;T!==e||u!==0&&T.nodeType!==3||(c=i+u),T!==n||a!==0&&T.nodeType!==3||(s=i+a),T.nodeType===3&&(i+=T.nodeValue.length),(S=T.firstChild)!==null;)g=T,T=S;for(;;){if(T===l)break t;if(g===e&&++y===u&&(c=i),g===n&&++b===a&&(s=i),(S=T.nextSibling)!==null)break;T=g,g=T.parentNode}T=S}e=c===-1||s===-1?null:{start:c,end:s}}else e=null}e=e||{start:0,end:0}}else e=null;for(Lc={focusedElem:l,selectionRange:e},Hn=!1,Al=t;Al!==null;)if(t=Al,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Al=l;else for(;Al!==null;){switch(t=Al,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),Ml(n,a,e),n[Nl]=l,El(n),a=n;break l;case"link":var i=tr("link","href",u).get(a+(e.href||""));if(i){for(var c=0;cfl&&(i=fl,fl=B,B=i);var r=us(c,B),o=us(c,fl);if(r&&o&&(S.rangeCount!==1||S.anchorNode!==r.node||S.anchorOffset!==r.offset||S.focusNode!==o.node||S.focusOffset!==o.offset)){var v=T.createRange();v.setStart(r.node,r.offset),S.removeAllRanges(),B>fl?(S.addRange(v),S.extend(o.node,o.offset)):(v.setEnd(o.node,o.offset),S.addRange(v))}}}}for(T=[],S=c;S=S.parentNode;)S.nodeType===1&&T.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,p.T=null,e=Oc,Oc=null;var n=he,i=kt;if(xl=0,ba=he=null,kt=0,(tl&6)!==0)throw Error(h(331));var c=tl;if(tl|=4,id(n.current),ad(n,n.current,i,e),tl=c,ou(0,!1),Fl&&typeof Fl.onPostCommitFiberRoot=="function")try{Fl.onPostCommitFiberRoot(_a,n)}catch{}return!0}finally{A.p=u,p.T=a,xd(l,t)}}function Ad(l,t,e){t=dt(e,t),t=fc(l.stateNode,t,2),l=ie(l,t,2),l!==null&&(Da(l,2),Ot(l))}function ul(l,t,e){if(l.tag===3)Ad(l,l,e);else for(;t!==null;){if(t.tag===3){Ad(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(re===null||!re.has(a))){l=dt(e,l),e=No(2),a=ie(t,e,2),a!==null&&(_o(e,a,t,l),Da(a,2),Ot(a));break}}t=t.return}}function Cc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new im;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(Ec=!0,u.add(e),l=dm.bind(null,l,t,e),t.then(l,l))}function dm(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,ol===l&&(k&e)===e&&(yl===4||yl===3&&(k&62914560)===k&&300>$l()-yn?(tl&2)===0&&pa(l,0):Ac|=e,Sa===k&&(Sa=0)),Ot(l)}function Nd(l,t){t===0&&(t=pf()),l=Oe(l,t),l!==null&&(Da(l,t),Ot(l))}function rm(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),Nd(l,e)}function hm(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(h(314))}a!==null&&a.delete(t),Nd(l,e)}function mm(l,t){return Kn(l,t)}var zn=null,Ta=null,Hc=!1,xn=!1,Rc=!1,ve=0;function Ot(l){l!==Ta&&l.next===null&&(Ta===null?zn=Ta=l:Ta=Ta.next=l),xn=!0,Hc||(Hc=!0,ym())}function ou(l,t){if(!Rc&&xn){Rc=!0;do for(var e=!1,a=zn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,c=a.pingedLanes;n=(1<<31-Il(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,Md(a,n))}else n=k,n=Nu(a,a===ol?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||Oa(a,n)||(e=!0,Md(a,n));a=a.next}while(e);Rc=!1}}function vm(){_d()}function _d(){xn=Hc=!1;var l=0;ve!==0&&Am()&&(l=ve);for(var t=$l(),e=null,a=zn;a!==null;){var u=a.next,n=Od(a,t);n===0?(a.next=null,e===null?zn=u:e.next=u,u===null&&(Ta=e)):(e=a,(l!==0||(n&3)!==0)&&(xn=!0)),a=u}xl!==0&&xl!==5||ou(l),ve!==0&&(ve=0)}function Od(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var b=s.transferSize,T=s.initiatorType;b&&Gd(T)&&(s=s.responseEnd,i+=b*(s"u"?null:document;function Fd(l,t,e){var a=za;if(a&&typeof t=="string"&&t){var u=st(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof e=="string"&&(u+='[crossorigin="'+e+'"]'),$d.has(u)||($d.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Rm(l){Wt.D(l),Fd("dns-prefetch",l,null)}function Bm(l,t){Wt.C(l,t),Fd("preconnect",l,t)}function qm(l,t,e){Wt.L(l,t,e);var a=za;if(a&&l&&t){var u='link[rel="preload"][as="'+st(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+st(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+st(e.imageSizes)+'"]')):u+='[href="'+st(l)+'"]';var n=u;switch(t){case"style":n=xa(l);break;case"script":n=Ea(l)}gt.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),gt.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(mu(n))||t==="script"&&a.querySelector(vu(n))||(t=a.createElement("link"),Ml(t,"link",l),El(t),a.head.appendChild(t)))}}function Ym(l,t){Wt.m(l,t);var e=za;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+st(a)+'"][href="'+st(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ea(l)}if(!gt.has(n)&&(l=q({rel:"modulepreload",href:l},t),gt.set(n,l),e.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(vu(n)))return}a=e.createElement("link"),Ml(a,"link",l),El(a),e.head.appendChild(a)}}}function Gm(l,t,e){Wt.S(l,t,e);var a=za;if(a&&l){var u=Ke(a).hoistableStyles,n=xa(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(mu(n)))c.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},e),(e=gt.get(n))&&Fc(l,e);var s=i=a.createElement("link");El(s),Ml(s,"link",l),s._p=new Promise(function(y,b){s.onload=y,s.onerror=b}),s.addEventListener("load",function(){c.loading|=1}),s.addEventListener("error",function(){c.loading|=2}),c.loading|=4,On(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function Xm(l,t){Wt.X(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Qm(l,t){Wt.M(l,t);var e=za;if(e&&l){var a=Ke(e).hoistableScripts,u=Ea(l),n=a.get(u);n||(n=e.querySelector(vu(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=gt.get(u))&&Ic(l,t),n=e.createElement("script"),El(n),Ml(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Id(l,t,e,a){var u=(u=w.current)?_n(u):null;if(!u)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=xa(e.href),e=Ke(u).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=xa(e.href);var n=Ke(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(mu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),gt.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},gt.set(l,e),n||Zm(u,l,e,i.state))),t&&a===null)throw Error(h(528,""));return i}if(t&&a!==null)throw Error(h(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ea(e),e=Ke(u).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function xa(l){return'href="'+st(l)+'"'}function mu(l){return'link[rel="stylesheet"]['+l+"]"}function Pd(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function Zm(l,t,e,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ml(t,"link",e),El(t),l.head.appendChild(t))}function Ea(l){return'[src="'+st(l)+'"]'}function vu(l){return"script[async]"+l}function lr(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+st(e.href)+'"]');if(a)return t.instance=a,El(a),a;var u=q({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),El(a),Ml(a,"style",u),On(a,e.precedence,l),t.instance=a;case"stylesheet":u=xa(e.href);var n=l.querySelector(mu(u));if(n)return t.state.loading|=4,t.instance=n,El(n),n;a=Pd(e),(u=gt.get(u))&&Fc(a,u),n=(l.ownerDocument||l).createElement("link"),El(n);var i=n;return i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),t.state.loading|=4,On(n,e.precedence,l),t.instance=n;case"script":return n=Ea(e.src),(u=l.querySelector(vu(n)))?(t.instance=u,El(u),u):(a=e,(u=gt.get(n))&&(a=q({},e),Ic(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),El(u),Ml(u,"link",a),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(h(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,On(a,e.precedence,l));return t.instance}function On(l,t,e){for(var a=e.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i title"):null)}function Vm(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function ar(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Lm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=xa(a.href),n=t.querySelector(mu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Mn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,El(n);return}n=t.ownerDocument||t,a=Pd(a),(u=gt.get(u))&&Fc(a,u),n=n.createElement("link"),El(n);var i=n;i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ml(n,"link",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Mn.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var Pc=0;function wm(l,t){return l.stylesheets&&l.count===0&&Cn(l,l.stylesheets),0Pc?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Mn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Cn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Un=null;function Cn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Un=new Map,t.forEach(Km,l),Un=null,Mn.call(l))}function Km(l,t){if(!(t.state.loading&4)){var e=Un.get(l);if(e)var a=e.get(null);else{e=new Map,Un.set(l,e);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m)}catch(E){console.error(E)}}return m(),sf.exports=fv(),sf.exports}var ov=sv();const Qn={conceptnexus:{key:"conceptnexus",name:"ConceptsNexus",mark:"C",accent:"violet",domain:"Planned route · concepts.fixars.ai",eyebrow:"Idea refinement & certification",headline:"Every certified idea started as a hunch",description:"Submit in plain words. AI triage sharpens it and flags the gaps, the community validates it, experts certify it with an IIVS score. What comes out the other end is fund-ready — with receipts, not vibes.",primary:"Submit an idea",secondary:"Become a validator",stats:[["~2 hrs","to an AI triage report — free"],["IIVS","innovation · impact · viability · scalability"],["512","supporters on the top concept this month"]],preview:["Smart waste sorting micro-commission","Certified · CN-2044 · quorum 100%","IIVS breakdown","Handed off to CollaBoard with legal pack + skill brief"],features:[["AI triage & synthesis","A structured brief, a draft IIVS and named gaps before human review."],["Community + validator quorum","Support signals and independent validation make demand visible."],["Certification that carries over","The concept receipt and skill brief travel into a CollaBoard capsule."]],steps:["Submit plainly","AI triage","Community validation","Certified & handed off"],dashboardTitle:"Every certified idea started here",dashboardSub:"Explore an idea, shape its evidence and prepare a usable build brief."},skillscanvas:{key:"skillscanvas",name:"SkillsCanvas",mark:"S",accent:"cyan",domain:"Planned route · skills.fixars.ai",eyebrow:"Verified skills marketplace",headline:"Prove it. Get paid for it.",description:"Your CV says “detail-oriented”. Your SkillsCanvas passport says 1,240 labeled datasets at 99.1% accuracy — and every claim comes with receipts. Do paid micro-work, level real skills, apply to full work with one tap.",primary:"Create your canvas",secondary:"See how it works",stats:[["₦900–2,900","per micro-task, paid same day"],["4 tiers","self-reported → ecosystem-proven"],["94%","top job fit, computed from receipts"]],preview:["Attention to detail — Lv 8","Ecosystem-proven","Identify UI bugs (mobile)","Junior QA engineer · TechFlow"],features:[["Micro-work that pays same day","Short tasks matched to the skills you are levelling."],["Four tiers, no shortcuts","Top-tier proof comes from assessed and shipped work."],["The passport is the application","Fit is based on verified levels, not keyword bingo."]],steps:["Claim your skills","Do micro-work","Get assessed","Ship real work"],dashboardTitle:"Good afternoon, Adaeze",dashboardSub:"Every skill on your canvas is provable, with receipts."},collaboard:{key:"collaboard",name:"CollaBoard",mark:"B",accent:"coral",domain:"Planned route · collab.fixars.ai",eyebrow:"Escrowed project execution",headline:"Build with strangers, safely",description:"A capsule is a sealed workspace: team, tasks, artifacts and a signed legal pack travel together. Ownership, licensing and data consent are settled before the first task — while everyone still likes each other.",primary:"Start a capsule",secondary:"See how it works",stats:[["Day 0","legal pack signed before work starts"],["5 gates","product · legal · team · market · safety"],["Receipts","approved artifacts are traceable"]],preview:["Smart Irrigation Bundle","AgriTech-NGR-2024 · week 3 · capsule health","JDA signed · iCLA · NDPA","System architecture diagram v1.2"],features:[["Legal engine, not legal fees","A clear collaboration pack from the first day of work."],["Teams from passports","Recruit against verified SkillsCanvas evidence, not promises."],["Artifacts become receipts","Approved work becomes clear project evidence."]],steps:["Open a capsule","Sign the pack","Build in sprints","Ship receipts"],dashboardTitle:"Smart Irrigation Bundle",dashboardSub:"A shared project capsule with people, work, evidence and clear handoffs."},vestden:{key:"vestden",name:"VestDen",mark:"V",accent:"green",domain:"Planned route · vest.fixars.ai",eyebrow:"Demo project diligence",headline:"Watch the work, not the pitch",description:"Explore how a project’s concept, team evidence and delivery receipts can be understood together. This temporary workspace uses a dummy profile and simulated data only — no funds are held and no financial actions are available.",primary:"Explore the pipeline",secondary:"See how it works",stats:[["Demo only","simulated project information"],["3 signals","concept · skills · delivery"],["No funds","financial actions are disabled"]],preview:["Community water monitoring pilot","Simulated project brief · Stage 2","Concept · skills · delivery signals","Escrow available at regulated launch"],features:[["Structured project diligence","See the signals that would support a transparent project brief."],["Evidence from the ecosystem","Concept, skills and delivery information remain traceable."],["Demo-first by design","Learn the workflow without deposits, payouts or investment actions."]],steps:["Review a brief","Inspect evidence","Follow milestones","Regulated launch later"],dashboardTitle:"Community water monitoring pilot",dashboardSub:"Simulated project record for exploration and evaluation only."}},_r=Object.values(Qn),hf=()=>{const m=location.hostname.toLowerCase().replace(/^www\./,"");if(["skillscanvas.co","skills.fixars.ai"].includes(m))return"skillscanvas";if(["collaboard.co","collab.fixars.ai"].includes(m))return"collaboard";if(["vestden.co","vest.fixars.ai"].includes(m))return"vestden";if(["conceptsnexus.co","concepts.fixars.ai"].includes(m))return"conceptnexus";const E="vestden";return Qn[E]?E:"conceptnexus"},Nr=()=>{const[m=hf(),E="home"]=location.hash.replace(/^#\/?/,"").split("/");return{product:Qn[m]?m:hf(),view:E==="app"?"app":"home"}},it=(m,E="home")=>{location.hash=`#/${m}/${E}`};function Or({active:m}){return f.jsxs("div",{className:"ecosystem",children:[f.jsxs("a",{className:"fixars-link",href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:["✦ ",f.jsx("span",{children:"fixars.ai ecosystem"})]}),f.jsx("span",{className:"ecosystem-note",children:"one account, one profile, connected evidence"}),f.jsx("nav",{"aria-label":"Fixars products",children:_r.map(E=>f.jsxs("button",{className:E.key===m?"active":"",onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("span",{children:E.name})]},E.key))})]})}function Dr({product:m,app:E}){return f.jsxs("header",{className:"product-nav",children:[f.jsxs("button",{className:"wordmark",onClick:()=>it(m.key),children:[f.jsx("i",{className:`mark ${m.accent}`,children:m.mark}),m.name]}),f.jsx("span",{className:"domain",children:m.domain}),f.jsxs("nav",{children:[f.jsx("button",{onClick:()=>it(m.key),className:E?"":"selected",children:"How it works"}),f.jsx("button",{onClick:()=>{var _;return(_=document.getElementById("ecosystem"))==null?void 0:_.scrollIntoView({behavior:"smooth"})},children:"Ecosystem"}),f.jsx("button",{onClick:()=>it(m.key,"app"),className:E?"selected":"",children:E?"Dashboard":"Open the app"})]})]})}function dv({product:m}){return f.jsxs("div",{className:"product-preview","aria-label":`${m.name} example`,children:[f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[0]}),f.jsx("span",{children:m.preview[1]})]}),f.jsxs("div",{className:"preview-card",children:[f.jsx("strong",{children:m.preview[2]}),f.jsx("span",{children:m.key==="skillscanvas"?"3 min · +15 XP · Technical ops":m.key==="vestden"?"No financial actions":"Evidence attached"})]}),f.jsxs("div",{className:"preview-card compact",children:[f.jsx("span",{children:m.preview[3]}),f.jsx("b",{children:m.key==="vestden"?"Locked":"Ready"})]})]})}function rv({product:m}){return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m}),f.jsxs("main",{children:[f.jsxs("section",{className:"hero",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.eyebrow}),f.jsx("h1",{children:m.headline}),f.jsx("p",{className:"lede",children:m.description}),f.jsxs("div",{className:"actions",children:[f.jsx("button",{className:"primary",onClick:()=>it(m.key,"app"),children:m.primary}),f.jsx("button",{className:"secondary",onClick:()=>{var E;return(E=document.getElementById("how"))==null?void 0:E.scrollIntoView({behavior:"smooth"})},children:m.secondary})]}),f.jsx("div",{className:"proof",children:m.stats.map(([E,_])=>f.jsxs("div",{children:[f.jsx("b",{children:E}),f.jsx("span",{children:_})]},E))})]}),f.jsx(dv,{product:m})]}),f.jsx(hv,{product:m}),f.jsx(mv,{product:m}),f.jsx(vv,{product:m}),f.jsxs("section",{className:"closing",children:[f.jsxs("div",{children:[f.jsx("h2",{children:m.key==="vestden"?"Explore the demo workspace":`Open ${m.name}`}),f.jsx("p",{children:m.key==="vestden"?"Use the dummy profile to follow simulated project evidence. Financial actions stay disabled.":"Start with the source workflow, then let the connected ecosystem carry the evidence forward."})]}),f.jsx("button",{onClick:()=>it(m.key,"app"),children:m.primary})]})]}),f.jsx(Mr,{product:m})]})}function hv({product:m}){return f.jsxs("section",{className:"section",children:[f.jsx("p",{className:"eyebrow",children:"Why this product exists"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Skills that carry their own evidence":m.key==="conceptnexus"?"An idea with a score travels further":m.key==="collaboard"?"Handshakes don’t scale. Receipts do.":"A clear view of project evidence."}),f.jsx("div",{className:"feature-grid",children:m.features.map(([E,_],h)=>f.jsxs("article",{children:[f.jsx("i",{children:String(h+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_})]},E))})]})}function mv({product:m}){return f.jsxs("section",{className:"section steps",id:"how",children:[f.jsx("p",{className:"eyebrow",children:"How it works"}),f.jsx("h2",{children:m.key==="conceptnexus"?"One pipeline, four gates":m.key==="skillscanvas"?"From claim to proof in four moves":m.key==="collaboard"?"From certified idea to shipped milestone":"A demo trail, not a financial service"}),f.jsx("div",{children:m.steps.map((E,_)=>f.jsxs("article",{children:[f.jsx("span",{children:String(_+1).padStart(2,"0")}),f.jsx("h3",{children:E}),f.jsx("p",{children:_===0?"Start with clear context and a shared record.":_===3?"The next state becomes a transparent handoff.":"Progress through a focused, evidence-led step."})]},E))})]})}function vv({product:m}){return f.jsxs("section",{className:"section ecosystem-section",id:"ecosystem",children:[f.jsx("p",{className:"eyebrow",children:"Part of fixars.ai"}),f.jsx("h2",{children:m.key==="skillscanvas"?"Your passport works everywhere":m.key==="conceptnexus"?"Certification is the first receipt":m.key==="collaboard"?"The capsule is the source of truth":"Every signal has a source"}),f.jsx("div",{className:"product-grid",children:_r.filter(E=>E.key!==m.key).map(E=>f.jsxs("button",{onClick:()=>it(E.key),children:[f.jsx("i",{className:`mark ${E.accent}`,children:E.mark}),f.jsx("strong",{children:E.name}),f.jsx("span",{children:E.key==="conceptnexus"?"Ideas and certified briefs":E.key==="skillscanvas"?"Verified capability evidence":E.key==="collaboard"?"People, projects and receipts":"Demo project diligence"})]},E.key))})]})}function yv({product:m}){const E={conceptnexus:["Discover","Submit","Validator desk"],skillscanvas:["Dashboard","Skill passport","Full work"],collaboard:["Overview","Tasks","Artifacts","Legal"],vestden:["Ideas","Teams","Projects"]},[_,h]=Tt.useState(E[m.key][0]),[C,R]=Tt.useState(""),[L,X]=Tt.useState([!1,!1,!1]),O=z=>{R(z),window.setTimeout(()=>R(""),2600)};return f.jsxs("div",{className:m.accent,children:[f.jsx(Or,{active:m.key}),f.jsx(Dr,{product:m,app:!0}),f.jsxs("main",{className:"app-page",children:[m.key==="vestden"&&f.jsxs("div",{className:"demo-banner",children:[f.jsx("b",{children:"Demo workspace"}),f.jsx("span",{children:"Simulated data. No funds, deposits, payouts or financial actions."})]}),f.jsxs("div",{className:"app-heading",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow",children:m.key==="vestden"?"Dummy profile · demo mode":`${m.name} workspace`}),f.jsx("h1",{children:m.dashboardTitle}),f.jsx("p",{children:m.dashboardSub})]}),f.jsx("button",{className:"secondary",onClick:()=>it(m.key),children:"Back to product"})]}),f.jsx("div",{className:"tabs",role:"tablist","aria-label":`${m.name} workflow`,children:E[m.key].map(z=>f.jsx("button",{role:"tab","aria-selected":_===z,className:_===z?"selected":"",onClick:()=>h(z),children:z},z))}),f.jsx(gv,{product:m,tab:_,action:O,tasks:L,setTasks:X})]}),f.jsx("div",{className:`toast ${C?"show":""}`,role:"status",children:C}),f.jsx(Mr,{product:m})]})}function gv({product:m,tab:E,action:_,tasks:h,setTasks:C}){return m.key==="conceptnexus"?f.jsx(Sv,{tab:E,action:_}):m.key==="skillscanvas"?f.jsx(bv,{tab:E,action:_,tasks:h,setTasks:C}):m.key==="collaboard"?f.jsx(pv,{tab:E,action:_}):f.jsx(jv,{tab:E,action:_})}function Sv({tab:m,action:E}){const[_,h]=Tt.useState({title:"",problem:"",proposal:""}),[C,R]=Tt.useState(!1),L=X=>{if(X.preventDefault(),!_.title.trim())return E("Give the concept a title first.");R(!0),E("Local concept queued for simulated AI triage.")};return m==="Submit"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 01 · submit plainly"}),f.jsx("h2",{children:"Submit an idea"}),f.jsx("p",{className:"muted",children:"Title, problem and proposal. This preview keeps the submission in this browser only."}),f.jsxs("form",{className:"stack-form",onSubmit:L,children:[f.jsxs("label",{children:["Title",f.jsx("input",{value:_.title,onChange:X=>h({..._,title:X.target.value}),placeholder:"What are you proposing?"})]}),f.jsxs("label",{children:["Problem",f.jsx("textarea",{value:_.problem,onChange:X=>h({..._,problem:X.target.value}),placeholder:"What needs to change?"})]}),f.jsxs("label",{children:["Proposal",f.jsx("textarea",{value:_.proposal,onChange:X=>h({..._,proposal:X.target.value}),placeholder:"How could it work?"})]}),f.jsxs("div",{className:"workflow-action",children:[f.jsx("button",{className:"primary",children:"Send to demo AI triage"}),f.jsx("span",{children:"Free · feedback in ~2 hours in the intended flow"})]})]}),C&&f.jsxs("p",{className:"inline-result",children:[f.jsx("b",{children:"Local triage record ready:"})," “",_.title,"” is visible only in this preview; nothing was submitted externally."]})]}):m==="Validator desk"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Stage 03 · community validation"}),f.jsx("h2",{children:"Validator desk"}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Solar cold-storage co-op"}),f.jsx("small",{children:"Draft IIVS · impact strong · viability needs evidence"})]}),f.jsx("span",{className:"tag",children:"Awaiting quorum"})]}),f.jsxs("div",{className:"concept-row",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Neighbourhood refill points"}),f.jsx("small",{children:"Community signal is visible; reviewer feedback is still open."})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Demo validator feedback opened."),children:"Review gaps"})]}),f.jsx("p",{className:"muted",children:"The prototype’s intended sequence remains: triage, community validation, expert certification, then a CollaBoard handoff."})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"One pipeline · four gates"}),f.jsx("h2",{children:"Concept discovery"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("span",{children:"01"}),f.jsx("b",{children:"AI triage"}),f.jsx("p",{children:"Sharper framing and a named gap list before a human review."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"02"}),f.jsx("b",{children:"Community quorum"}),f.jsx("p",{children:"Support signals and validator decisions make demand legible."})]}),f.jsxs("article",{children:[f.jsx("span",{children:"03"}),f.jsx("b",{children:"IIVS certification"}),f.jsx("p",{children:"A portable concept receipt, ready to seed a project capsule."})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Next: CollaBoard capsule"}),f.jsx("p",{children:"A certified concept carries a legal pack and skills brief into execution."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]})]})}function bv({tab:m,action:E,tasks:_,setTasks:h}){const C=["Label 12 street-sign images","Identify UI bugs (mobile)","Review & correct short copy"];return m==="Skill passport"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"skillscanvas.ai/p/adaeze"}),f.jsx("h2",{children:"Skill passport"}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Attention to detail — Lv 8"}),f.jsx("p",{children:"1,240 labelled datasets · 99.1% verified accuracy · assessed this month."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsxs("div",{className:"passport-card",children:[f.jsx("b",{children:"Collaboration — Lv 7"}),f.jsx("p",{children:"8 CollaBoard sprints · 2 capsules shipped · 100% attendance cohesion."}),f.jsxs("div",{className:"tier-list",children:[f.jsx("span",{children:"Self-reported"}),f.jsx("span",{children:"Peer"}),f.jsx("span",{className:"earned",children:"Assessed"}),f.jsx("span",{className:"earned",children:"Ecosystem-proven"})]})]}),f.jsx("button",{className:"secondary",onClick:()=>E("Passport link copied in this local preview."),children:"Copy passport link"})]}):m==="Full work"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Matched from verified evidence"}),f.jsx("h2",{children:"Full work"}),[["Junior QA engineer","TechFlow · Lagos, hybrid","94%"],["Content operations associate","CivicStack · Remote","88%"]].map(([R,L,X])=>f.jsxs("div",{className:"job-row",children:[f.jsxs("strong",{children:[X,f.jsx("small",{children:" fit"})]}),f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L})]}),f.jsx("button",{className:"primary",onClick:()=>E("Local passport application prepared."),children:"Apply with passport"})]},R))]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Your canvas · evidence first"}),f.jsx("h2",{children:"Micro-work feed"}),f.jsx("p",{className:"muted",children:"The original flow levels a claimed skill through paid tasks, assessment and shipped work."}),f.jsx("div",{className:"task-list",children:C.map((R,L)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:R}),f.jsxs("small",{children:[L+2," min · Attention to detail · +15 XP"]})]}),f.jsx("button",{disabled:_[L],onClick:()=>{h(X=>X.map((O,z)=>z===L?!0:O)),E("Demo task recorded on this dummy canvas.")},children:_[L]?"Recorded ✓":"Do task"})]},R))})]})}function pv({tab:m,action:E}){const[_,h]=Tt.useState([{name:"Update mobile dashboard offline mode",state:"Done"},{name:"Finalise hardware specification",state:"In review"},{name:"Prepare pilot onboarding guide",state:"To do"}]),[C,R]=Tt.useState(""),L=X=>{X.preventDefault(),C.trim()&&(h(O=>[...O,{name:C,state:"To do"}]),R(""),E("Task added to the local capsule."))};return m==="Tasks"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Capsule workboard"}),f.jsx("h2",{children:"Tasks"}),f.jsx("div",{className:"task-list",children:_.map((X,O)=>f.jsxs("div",{children:[f.jsxs("span",{children:[f.jsx("b",{children:X.name}),f.jsx("small",{children:"Smart Irrigation Bundle · assigned from the capsule"})]}),f.jsx("button",{onClick:()=>h(z=>z.map((I,q)=>q===O?{...I,state:I.state==="Done"?"To do":"Done"}:I)),children:X.state})]},`${X.name}-${O}`))}),f.jsxs("form",{className:"add-task",onSubmit:L,children:[f.jsx("input",{value:C,onChange:X=>R(X.target.value),placeholder:"Add a local capsule task"}),f.jsx("button",{className:"secondary",children:"Add task"})]})]}):m==="Artifacts"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Approved work becomes a receipt"}),f.jsx("h2",{children:"Artifacts"}),["System architecture diagram v1.2","Pilot research brief","Hardware specification · pending review"].map((X,O)=>f.jsxs("div",{className:"artifact-row",children:[f.jsx("span",{children:String(O+1).padStart(2,"0")}),f.jsx("b",{children:X}),f.jsx("small",{children:O<2?"Approved receipt":"In review"})]},X))]}):m==="Legal"?f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Signed before the first task"}),f.jsx("h2",{children:"Legal pack"}),f.jsxs("div",{className:"source-grid",children:[f.jsxs("article",{children:[f.jsx("b",{children:"Joint development agreement"}),f.jsx("p",{children:"Scope, authorship and contribution terms recorded."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"IP & confidentiality"}),f.jsx("p",{children:"Project knowledge and approved artifacts are clearly attributed."}),f.jsx("span",{className:"tag",children:"Signed"})]}),f.jsxs("article",{children:[f.jsx("b",{children:"Data consent"}),f.jsx("p",{children:"Access and use have a readable consent record."}),f.jsx("span",{className:"tag",children:"Signed"})]})]})]}):f.jsxs("section",{className:"workflow-panel",children:[f.jsx("p",{className:"eyebrow",children:"Project capsule · escrowed execution"}),f.jsx("h2",{children:"Smart Irrigation Bundle"}),f.jsxs("div",{className:"capsule-stats",children:[f.jsxs("div",{children:[f.jsx("b",{children:"84"}),f.jsx("span",{children:"capsule health"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"12/15"}),f.jsx("span",{children:"tasks complete"})]}),f.jsxs("div",{children:[f.jsx("b",{children:"Week 3"}),f.jsx("span",{children:"delivery tempo"})]})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark cyan",children:"S"}),f.jsxs("div",{children:[f.jsx("b",{children:"Team evidence from SkillsCanvas"}),f.jsx("p",{children:"Roles are matched against verified passports, not only profiles."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("skillscanvas","app"),children:"View skills"})]})]})}function jv({tab:m,action:E}){const[_,h]=Tt.useState(""),C=R=>{h(R),E(`${R} previewed in sandbox mode — no funds move.`)};return m==="Ideas"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 1 · certified ideas"}),f.jsx("h2",{children:"Ideas"}),f.jsx("p",{className:"muted",children:"Certified ConceptsNexus ideas before their teams form. The original screen compares possible Growth and Protection outcomes; these are display-only sandbox previews."}),[["Solar cold-storage co-op","IIVS 78 · community signal building"],["Community water monitoring pilot","IIVS 84 · delivery brief attached"]].map(([R,L])=>f.jsxs("div",{className:"position-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:L}),f.jsxs("div",{className:"source-links",children:[f.jsx("span",{children:"ConceptsNexus receipt"}),f.jsx("span",{children:"Skills brief"})]})]}),f.jsxs("div",{className:"simulated-choices",children:[f.jsx("button",{className:"secondary",onClick:()=>C("Growth position"),children:"Preview Growth"}),f.jsx("button",{className:"secondary",onClick:()=>C("Protection position"),children:"Preview Protection"})]})]},R)),f.jsx("p",{className:"sandbox-note",children:"Simulation only. No position, payment instruction, wallet, or investment record is created."}),_&&f.jsxs("p",{className:"inline-result",children:[_," is shown locally as a product-flow state."]})]}):m==="Teams"?f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 2 · teams forming"}),f.jsx("h2",{children:"Teams"}),f.jsx("p",{className:"muted",children:"The intended screen joins the team’s SkillsCanvas audit and CollaBoard tempo into a single diligence view."}),[["Water systems field team","SkillsCanvas audit 96","CollaBoard tempo 87"],["Cold-chain operations team","SkillsCanvas audit 88","CollaBoard tempo 79"]].map(([R,L,X])=>f.jsxs("div",{className:"team-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:R}),f.jsx("p",{children:"Simulated team record · no individual identity or financial information."})]}),f.jsxs("div",{children:[f.jsx("span",{children:L}),f.jsx("span",{children:X})]}),f.jsx("button",{className:"secondary",onClick:()=>C("Team diligence"),children:"View diligence"})]},R)),_&&f.jsxs("p",{className:"inline-result",children:[_," is available only in this local sandbox."]})]}):f.jsxs("section",{className:"workflow-panel vest-workflow",children:[f.jsx("p",{className:"eyebrow",children:"Layer 3 · active projects · milestone escrow"}),f.jsx("h2",{children:"Projects"}),f.jsx("p",{className:"muted",children:"This restores the supplied project/milestone structure while keeping every amount and action simulated."}),f.jsxs("div",{className:"project-card",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Community water monitoring pilot"}),f.jsx("p",{children:"Simulated project record · concept, team audit and delivery evidence linked."})]}),f.jsx("span",{className:"tag",children:"Sandbox"})]}),f.jsxs("div",{className:"milestone-list",children:[f.jsxs("div",{children:[f.jsx("span",{children:"✓"}),f.jsx("b",{children:"SkillsCanvas team audit & MVP"}),f.jsx("small",{children:"30% · simulated verified state"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"2"}),f.jsx("b",{children:"500 test deliveries"}),f.jsx("small",{children:"30% · in progress · 342 of 500 simulated"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"3"}),f.jsx("b",{children:"Independent field review"}),f.jsx("small",{children:"20% · upcoming simulation"})]}),f.jsxs("div",{children:[f.jsx("span",{children:"4"}),f.jsx("b",{children:"Scale handoff"}),f.jsx("small",{children:"20% · upcoming simulation"})]})]}),f.jsxs("div",{className:"position-preview",children:[f.jsxs("div",{children:[f.jsx("b",{children:"Position preview"}),f.jsx("p",{children:"Choose a simulated outcome to test the interaction design. This never creates a financial position."})]}),f.jsx("button",{className:"primary",onClick:()=>C("Project position"),children:"Preview simulated position"})]}),f.jsxs("div",{className:"handoff-card",children:[f.jsx("i",{className:"mark coral",children:"B"}),f.jsxs("div",{children:[f.jsx("b",{children:"Watch the work, not the pitch"}),f.jsx("p",{children:"Stage progress is represented by CollaBoard artifacts and delivery receipts."})]}),f.jsx("button",{className:"secondary",onClick:()=>it("collaboard","app"),children:"Open capsule preview"})]}),_&&f.jsxs("p",{className:"inline-result",children:[_," interaction completed locally. No money, escrow release or payout is possible here."]})]})}function Mr({product:m}){return f.jsxs("footer",{children:[f.jsxs("span",{children:[m.name," is a Fixars product preview."]}),f.jsx("button",{onClick:()=>it(m.key),children:"Product home"}),f.jsx("a",{href:"https://fixars.ai",target:"_blank",rel:"noreferrer",children:"Fixars.ai ↗"})]})}function Tv(){const[m,E]=Tt.useState(Nr());Tt.useEffect(()=>{const h=()=>E(Nr());return addEventListener("hashchange",h),location.hash||it(hf()),()=>removeEventListener("hashchange",h)},[]);const _=Tt.useMemo(()=>Qn[m.product],[m.product]);return m.view==="app"?f.jsx(yv,{product:_}):f.jsx(rv,{product:_})}ov.createRoot(document.getElementById("root")).render(f.jsx(Tv,{})); diff --git a/subapps/dist-products/vestden/deployment.json b/subapps/dist-products/vestden/deployment.json new file mode 100644 index 0000000..0a03ae4 --- /dev/null +++ b/subapps/dist-products/vestden/deployment.json @@ -0,0 +1,7 @@ +{ + "key": "vestden", + "name": "VestDen", + "canonical": "https://vestden.co/", + "connector": "https://vest.fixars.ai/", + "path": "https://fixars.ai/vest" +} diff --git a/subapps/dist-products/vestden/index.html b/subapps/dist-products/vestden/index.html new file mode 100644 index 0000000..fe8db8a --- /dev/null +++ b/subapps/dist-products/vestden/index.html @@ -0,0 +1,18 @@ + + + + + + + VestDen — Fixars + + + + + + + + +
+ + diff --git a/subapps/index.html b/subapps/index.html new file mode 100644 index 0000000..b997d8a --- /dev/null +++ b/subapps/index.html @@ -0,0 +1,16 @@ + + + + + + + Fixars product previews + + + + + +
+ + + diff --git a/subapps/package-lock.json b/subapps/package-lock.json new file mode 100644 index 0000000..9b7d652 --- /dev/null +++ b/subapps/package-lock.json @@ -0,0 +1,1725 @@ +{ + "name": "fixars-subapps-preview", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "fixars-subapps-preview", + "version": "0.1.0", + "dependencies": { + "@vitejs/plugin-react": "5.0.4", + "react": "19.2.0", + "react-dom": "19.2.0", + "vite": "6.4.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "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==", + "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" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.38", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz", + "integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.4.tgz", + "integrity": "sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.4.tgz", + "integrity": "sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.4.tgz", + "integrity": "sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.4.tgz", + "integrity": "sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.4.tgz", + "integrity": "sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.4.tgz", + "integrity": "sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.4.tgz", + "integrity": "sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.4.tgz", + "integrity": "sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==", + "cpu": [ + "arm" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.4.tgz", + "integrity": "sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.4.tgz", + "integrity": "sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.4.tgz", + "integrity": "sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==", + "cpu": [ + "loong64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.4.tgz", + "integrity": "sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==", + "cpu": [ + "loong64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.4.tgz", + "integrity": "sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.4.tgz", + "integrity": "sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==", + "cpu": [ + "ppc64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.4.tgz", + "integrity": "sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.4.tgz", + "integrity": "sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.4.tgz", + "integrity": "sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.4.tgz", + "integrity": "sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.4.tgz", + "integrity": "sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.4.tgz", + "integrity": "sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.4.tgz", + "integrity": "sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.4.tgz", + "integrity": "sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.4.tgz", + "integrity": "sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.4.tgz", + "integrity": "sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.4.tgz", + "integrity": "sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.4.tgz", + "integrity": "sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.38", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.13", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.13.tgz", + "integrity": "sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", + "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.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001809", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", + "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", + "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/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.402", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.402.tgz", + "integrity": "sha512-/oOpMaPT6Yg+6/1XQhyIPlzgj7Ye9zf+nNM2Uh6OcE2G2oNptWazFa+qB2Pdqqbsc9KnIDzgAntoYN0dbwOXwA==", + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "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.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", + "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "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.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz", + "integrity": "sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==", + "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.62.4", + "@rollup/rollup-android-arm64": "4.62.4", + "@rollup/rollup-darwin-arm64": "4.62.4", + "@rollup/rollup-darwin-x64": "4.62.4", + "@rollup/rollup-freebsd-arm64": "4.62.4", + "@rollup/rollup-freebsd-x64": "4.62.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.4", + "@rollup/rollup-linux-arm-musleabihf": "4.62.4", + "@rollup/rollup-linux-arm64-gnu": "4.62.4", + "@rollup/rollup-linux-arm64-musl": "4.62.4", + "@rollup/rollup-linux-loong64-gnu": "4.62.4", + "@rollup/rollup-linux-loong64-musl": "4.62.4", + "@rollup/rollup-linux-ppc64-gnu": "4.62.4", + "@rollup/rollup-linux-ppc64-musl": "4.62.4", + "@rollup/rollup-linux-riscv64-gnu": "4.62.4", + "@rollup/rollup-linux-riscv64-musl": "4.62.4", + "@rollup/rollup-linux-s390x-gnu": "4.62.4", + "@rollup/rollup-linux-x64-gnu": "4.62.4", + "@rollup/rollup-linux-x64-musl": "4.62.4", + "@rollup/rollup-openbsd-x64": "4.62.4", + "@rollup/rollup-openharmony-arm64": "4.62.4", + "@rollup/rollup-win32-arm64-msvc": "4.62.4", + "@rollup/rollup-win32-ia32-msvc": "4.62.4", + "@rollup/rollup-win32-x64-gnu": "4.62.4", + "@rollup/rollup-win32-x64-msvc": "4.62.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "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/update-browserslist-db": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.0.tgz", + "integrity": "sha512-x/M6q3w4Ybp91CNaS4S69UnliqR3BzRpOT6LWbksjth0S/+jhfaPJsWjt/TewpT8j9eLIojUf5jr29WextHroA==", + "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/vite": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", + "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "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/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + } + } +} diff --git a/subapps/package.json b/subapps/package.json new file mode 100644 index 0000000..341a542 --- /dev/null +++ b/subapps/package.json @@ -0,0 +1,18 @@ +{ + "name": "fixars-subapps-preview", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "build:products": "node scripts/build-products.mjs", + "architecture:validate": "node scripts/validate-architecture.mjs" + }, + "dependencies": { + "@vitejs/plugin-react": "5.0.4", + "vite": "6.4.3", + "react": "19.2.0", + "react-dom": "19.2.0" + } +} diff --git a/subapps/scripts/build-products.mjs b/subapps/scripts/build-products.mjs new file mode 100644 index 0000000..13bd6cc --- /dev/null +++ b/subapps/scripts/build-products.mjs @@ -0,0 +1,82 @@ +import { mkdir, readFile, rm, writeFile } from "node:fs/promises"; +import { fileURLToPath } from "node:url"; +import path from "node:path"; +import { build } from "vite"; + +const projectRoot = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + "..", +); +const outputRoot = path.join(projectRoot, "dist-products"); +// Each artifact is independently deployable and indexable only at its standalone +// canonical domain; Fixars connector hosts and paths are configured as edge redirects. +const products = [ + { + key: "skillscanvas", + name: "SkillsCanvas", + canonical: "https://skillscanvas.co/", + connector: "https://skills.fixars.ai/", + path: "https://fixars.ai/skills", + }, + { + key: "conceptnexus", + name: "ConceptsNexus", + canonical: "https://conceptsnexus.co/", + connector: "https://concepts.fixars.ai/", + path: "https://fixars.ai/concepts", + }, + { + key: "collaboard", + name: "CollaBoard", + canonical: "https://collaboard.co/", + connector: "https://collab.fixars.ai/", + path: "https://fixars.ai/collab", + }, + { + key: "vestden", + name: "VestDen", + canonical: "https://vestden.co/", + connector: "https://vest.fixars.ai/", + path: "https://fixars.ai/vest", + }, +]; + +await rm(outputRoot, { recursive: true, force: true }); +await mkdir(outputRoot, { recursive: true }); + +for (const product of products) { + const outputDir = path.join(outputRoot, product.key); + await build({ + root: projectRoot, + configFile: path.join(projectRoot, "vite.config.mjs"), + define: { + "import.meta.env.VITE_DEFAULT_PRODUCT": JSON.stringify(product.key), + }, + build: { + outDir: outputDir, + emptyOutDir: true, + }, + }); + + const indexPath = path.join(outputDir, "index.html"); + const indexHtml = await readFile(indexPath, "utf8"); + const productHtml = indexHtml + .replace( + "Fixars product previews", + `${product.name} — Fixars\n `, + ) + .replace( + 'content="Fixars connected product previews"', + `content="${product.name}, part of the connected Fixars ecosystem"`, + ); + await writeFile(indexPath, productHtml, "utf8"); + await writeFile( + path.join(outputDir, "deployment.json"), + `${JSON.stringify(product, null, 2)}\n`, + "utf8", + ); +} + +console.log( + `Built ${products.length} isolated product artifacts in ${outputRoot}.`, +); diff --git a/subapps/scripts/validate-architecture.mjs b/subapps/scripts/validate-architecture.mjs new file mode 100644 index 0000000..c4ebcfd --- /dev/null +++ b/subapps/scripts/validate-architecture.mjs @@ -0,0 +1,45 @@ +import { readFile } from "node:fs/promises"; + +const base = new URL("../contracts/events/", import.meta.url); +const [catalog, envelope] = await Promise.all([ + readFile(new URL("catalog.v1.json", base), "utf8").then(JSON.parse), + readFile(new URL("event-envelope.schema.json", base), "utf8").then(JSON.parse), +]); + +const failures = []; +const products = new Set(catalog.products ?? []); +const eventTypes = new Set(); + +if (catalog.catalog_version !== "1.0.0") failures.push("catalog_version must be 1.0.0"); +if (envelope.properties?.specversion?.const !== "1.0") failures.push("event envelope must use CloudEvents specversion 1.0"); + +for (const event of catalog.events ?? []) { + if (!/^ai\.fixars\.[a-z0-9.]+\.v[1-9][0-9]*$/.test(event.type ?? "")) { + failures.push(`invalid or unversioned event type: ${event.type}`); + } + if (eventTypes.has(event.type)) failures.push(`duplicate event type: ${event.type}`); + eventTypes.add(event.type); + if (!products.has(event.producer)) failures.push(`unknown producer for ${event.type}: ${event.producer}`); + if (!Array.isArray(event.consumers) || event.consumers.length === 0) { + failures.push(`event has no consumers: ${event.type}`); + } + for (const consumer of event.consumers ?? []) { + if (!products.has(consumer)) failures.push(`unknown consumer for ${event.type}: ${consumer}`); + } + if (!event.description) failures.push(`event has no description: ${event.type}`); +} + +// A cross-product event may request verification, but it must never be wired +// directly to a payment, position, payout, or escrow-release consumer. +const releaseEvent = catalog.events?.find((event) => event.type === "ai.fixars.vest.escrow.release.requested.v1"); +if (!releaseEvent || releaseEvent.consumers.join(",") !== "vest-den-verification") { + failures.push("escrow release requests must route only to vest-den-verification"); +} + +if (failures.length) { + console.error("Architecture contract validation failed:"); + for (const failure of failures) console.error(`- ${failure}`); + process.exit(1); +} + +console.log(`Architecture contracts valid: ${catalog.events.length} versioned events across ${products.size} bounded products/services.`); diff --git a/subapps/src/main.jsx b/subapps/src/main.jsx new file mode 100644 index 0000000..03c086b --- /dev/null +++ b/subapps/src/main.jsx @@ -0,0 +1,1364 @@ +import { useEffect, useMemo, useState } from "react"; +import { createRoot } from "react-dom/client"; +import "./styles.css"; + +const products = { + conceptnexus: { + key: "conceptnexus", + name: "ConceptsNexus", + mark: "C", + accent: "violet", + domain: "Planned route · concepts.fixars.ai", + eyebrow: "Idea refinement & certification", + headline: "Every certified idea started as a hunch", + description: + "Submit in plain words. AI triage sharpens it and flags the gaps, the community validates it, experts certify it with an IIVS score. What comes out the other end is fund-ready — with receipts, not vibes.", + primary: "Submit an idea", + secondary: "Become a validator", + stats: [ + ["~2 hrs", "to an AI triage report — free"], + ["IIVS", "innovation · impact · viability · scalability"], + ["512", "supporters on the top concept this month"], + ], + preview: [ + "Smart waste sorting micro-commission", + "Certified · CN-2044 · quorum 100%", + "IIVS breakdown", + "Handed off to CollaBoard with legal pack + skill brief", + ], + features: [ + [ + "AI triage & synthesis", + "A structured brief, a draft IIVS and named gaps before human review.", + ], + [ + "Community + validator quorum", + "Support signals and independent validation make demand visible.", + ], + [ + "Certification that carries over", + "The concept receipt and skill brief travel into a CollaBoard capsule.", + ], + ], + steps: [ + "Submit plainly", + "AI triage", + "Community validation", + "Certified & handed off", + ], + dashboardTitle: "Every certified idea started here", + dashboardSub: + "Explore an idea, shape its evidence and prepare a usable build brief.", + }, + skillscanvas: { + key: "skillscanvas", + name: "SkillsCanvas", + mark: "S", + accent: "cyan", + domain: "Planned route · skills.fixars.ai", + eyebrow: "Verified skills marketplace", + headline: "Prove it. Get paid for it.", + description: + "Your CV says “detail-oriented”. Your SkillsCanvas passport says 1,240 labeled datasets at 99.1% accuracy — and every claim comes with receipts. Do paid micro-work, level real skills, apply to full work with one tap.", + primary: "Create your canvas", + secondary: "See how it works", + stats: [ + ["₦900–2,900", "per micro-task, paid same day"], + ["4 tiers", "self-reported → ecosystem-proven"], + ["94%", "top job fit, computed from receipts"], + ], + preview: [ + "Attention to detail — Lv 8", + "Ecosystem-proven", + "Identify UI bugs (mobile)", + "Junior QA engineer · TechFlow", + ], + features: [ + [ + "Micro-work that pays same day", + "Short tasks matched to the skills you are levelling.", + ], + [ + "Four tiers, no shortcuts", + "Top-tier proof comes from assessed and shipped work.", + ], + [ + "The passport is the application", + "Fit is based on verified levels, not keyword bingo.", + ], + ], + steps: [ + "Claim your skills", + "Do micro-work", + "Get assessed", + "Ship real work", + ], + dashboardTitle: "Good afternoon, Adaeze", + dashboardSub: "Every skill on your canvas is provable, with receipts.", + }, + collaboard: { + key: "collaboard", + name: "CollaBoard", + mark: "B", + accent: "coral", + domain: "Planned route · collab.fixars.ai", + eyebrow: "Escrowed project execution", + headline: "Build with strangers, safely", + description: + "A capsule is a sealed workspace: team, tasks, artifacts and a signed legal pack travel together. Ownership, licensing and data consent are settled before the first task — while everyone still likes each other.", + primary: "Start a capsule", + secondary: "See how it works", + stats: [ + ["Day 0", "legal pack signed before work starts"], + ["5 gates", "product · legal · team · market · safety"], + ["Receipts", "approved artifacts are traceable"], + ], + preview: [ + "Smart Irrigation Bundle", + "AgriTech-NGR-2024 · week 3 · capsule health", + "JDA signed · iCLA · NDPA", + "System architecture diagram v1.2", + ], + features: [ + [ + "Legal engine, not legal fees", + "A clear collaboration pack from the first day of work.", + ], + [ + "Teams from passports", + "Recruit against verified SkillsCanvas evidence, not promises.", + ], + [ + "Artifacts become receipts", + "Approved work becomes clear project evidence.", + ], + ], + steps: [ + "Open a capsule", + "Sign the pack", + "Build in sprints", + "Ship receipts", + ], + dashboardTitle: "Smart Irrigation Bundle", + dashboardSub: + "A shared project capsule with people, work, evidence and clear handoffs.", + }, + vestden: { + key: "vestden", + name: "VestDen", + mark: "V", + accent: "green", + domain: "Planned route · vest.fixars.ai", + eyebrow: "Demo project diligence", + headline: "Watch the work, not the pitch", + description: + "Explore how a project’s concept, team evidence and delivery receipts can be understood together. This temporary workspace uses a dummy profile and simulated data only — no funds are held and no financial actions are available.", + primary: "Explore the pipeline", + secondary: "See how it works", + stats: [ + ["Demo only", "simulated project information"], + ["3 signals", "concept · skills · delivery"], + ["No funds", "financial actions are disabled"], + ], + preview: [ + "Community water monitoring pilot", + "Simulated project brief · Stage 2", + "Concept · skills · delivery signals", + "Escrow available at regulated launch", + ], + features: [ + [ + "Structured project diligence", + "See the signals that would support a transparent project brief.", + ], + [ + "Evidence from the ecosystem", + "Concept, skills and delivery information remain traceable.", + ], + [ + "Demo-first by design", + "Learn the workflow without deposits, payouts or investment actions.", + ], + ], + steps: [ + "Review a brief", + "Inspect evidence", + "Follow milestones", + "Regulated launch later", + ], + dashboardTitle: "Community water monitoring pilot", + dashboardSub: + "Simulated project record for exploration and evaluation only.", + }, +}; + +const productList = Object.values(products); +// Host detection supports local previews and direct canonical deployments. In production, +// *.fixars.ai and fixars.ai/ are redirect connectors, not duplicate app origins. +const productForHost = () => { + const host = location.hostname.toLowerCase().replace(/^www\./, ""); + if (["skillscanvas.co", "skills.fixars.ai"].includes(host)) + return "skillscanvas"; + if (["collaboard.co", "collab.fixars.ai"].includes(host)) return "collaboard"; + if (["vestden.co", "vest.fixars.ai"].includes(host)) return "vestden"; + if (["conceptsnexus.co", "concepts.fixars.ai"].includes(host)) + return "conceptnexus"; + const configuredProduct = import.meta.env.VITE_DEFAULT_PRODUCT; + return products[configuredProduct] ? configuredProduct : "conceptnexus"; +}; +const routeFromHash = () => { + const [product = productForHost(), view = "home"] = location.hash + .replace(/^#\/?/, "") + .split("/"); + return { + product: products[product] ? product : productForHost(), + view: view === "app" ? "app" : "home", + }; +}; +const go = (product, view = "home") => { + location.hash = `#/${product}/${view}`; +}; + +function Ecosystem({ active }) { + return ( +
+ + ✦ fixars.ai ecosystem + + + one account, one profile, connected evidence + + +
+ ); +} +function ProductNav({ product, app }) { + return ( +
+ + {product.domain} + +
+ ); +} +function ProductPreview({ product }) { + return ( +
+
+ {product.preview[0]} + {product.preview[1]} +
+
+ {product.preview[2]} + + {product.key === "skillscanvas" + ? "3 min · +15 XP · Technical ops" + : product.key === "vestden" + ? "No financial actions" + : "Evidence attached"} + +
+
+ {product.preview[3]} + {product.key === "vestden" ? "Locked" : "Ready"} +
+
+ ); +} +function Landing({ product }) { + return ( +
+ + +
+
+
+

{product.eyebrow}

+

{product.headline}

+

{product.description}

+
+ + +
+
+ {product.stats.map(([value, label]) => ( +
+ {value} + {label} +
+ ))} +
+
+ +
+ + + +
+
+

+ {product.key === "vestden" + ? "Explore the demo workspace" + : `Open ${product.name}`} +

+

+ {product.key === "vestden" + ? "Use the dummy profile to follow simulated project evidence. Financial actions stay disabled." + : "Start with the source workflow, then let the connected ecosystem carry the evidence forward."} +

+
+ +
+
+
+
+ ); +} +function FeatureSection({ product }) { + return ( +
+

Why this product exists

+

+ {product.key === "skillscanvas" + ? "Skills that carry their own evidence" + : product.key === "conceptnexus" + ? "An idea with a score travels further" + : product.key === "collaboard" + ? "Handshakes don’t scale. Receipts do." + : "A clear view of project evidence."} +

+
+ {product.features.map(([title, copy], index) => ( +
+ {String(index + 1).padStart(2, "0")} +

{title}

+

{copy}

+
+ ))} +
+
+ ); +} +function Steps({ product }) { + return ( +
+

How it works

+

+ {product.key === "conceptnexus" + ? "One pipeline, four gates" + : product.key === "skillscanvas" + ? "From claim to proof in four moves" + : product.key === "collaboard" + ? "From certified idea to shipped milestone" + : "A demo trail, not a financial service"} +

+
+ {product.steps.map((step, i) => ( +
+ {String(i + 1).padStart(2, "0")} +

{step}

+

+ {i === 0 + ? "Start with clear context and a shared record." + : i === 3 + ? "The next state becomes a transparent handoff." + : "Progress through a focused, evidence-led step."} +

+
+ ))} +
+
+ ); +} +function EcosystemSection({ product }) { + return ( +
+

Part of fixars.ai

+

+ {product.key === "skillscanvas" + ? "Your passport works everywhere" + : product.key === "conceptnexus" + ? "Certification is the first receipt" + : product.key === "collaboard" + ? "The capsule is the source of truth" + : "Every signal has a source"} +

+
+ {productList + .filter((p) => p.key !== product.key) + .map((p) => ( + + ))} +
+
+ ); +} +function Dashboard({ product }) { + const workflowTabs = { + conceptnexus: ["Discover", "Submit", "Validator desk"], + skillscanvas: ["Dashboard", "Skill passport", "Full work"], + collaboard: ["Overview", "Tasks", "Artifacts", "Legal"], + vestden: ["Ideas", "Teams", "Projects"], + }; + const [tab, setTab] = useState(workflowTabs[product.key][0]); + const [notice, setNotice] = useState(""); + const [tasks, setTasks] = useState([false, false, false]); + const action = (message) => { + setNotice(message); + window.setTimeout(() => setNotice(""), 2600); + }; + return ( +
+ + +
+ {product.key === "vestden" && ( +
+ Demo workspace + + Simulated data. No funds, deposits, payouts or financial actions. + +
+ )} +
+
+

+ {product.key === "vestden" + ? "Dummy profile · demo mode" + : `${product.name} workspace`} +

+

{product.dashboardTitle}

+

{product.dashboardSub}

+
+ +
+
+ {workflowTabs[product.key].map((item) => ( + + ))} +
+ +
+
+ {notice} +
+
+
+ ); +} +function ProductWorkflow({ product, tab, action, tasks, setTasks }) { + if (product.key === "conceptnexus") + return ; + if (product.key === "skillscanvas") + return ( + + ); + if (product.key === "collaboard") + return ; + return ; +} + +function ConceptNexusWorkflow({ tab, action }) { + const [idea, setIdea] = useState({ title: "", problem: "", proposal: "" }); + const [submitted, setSubmitted] = useState(false); + const submit = (event) => { + event.preventDefault(); + if (!idea.title.trim()) return action("Give the concept a title first."); + setSubmitted(true); + action("Local concept queued for simulated AI triage."); + }; + if (tab === "Submit") + return ( +
+

Stage 01 · submit plainly

+

Submit an idea

+

+ Title, problem and proposal. This preview keeps the submission in this + browser only. +

+
+ +