release: WRNexusJS 0.8.0
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-02 23:18:51 +05:30
parent 87507edf59
commit 586a6db8ff
625 changed files with 243608 additions and 11210 deletions
+8 -1
View File
@@ -315,11 +315,16 @@ identifiers, member/index access, calls, arrays/objects, `+ - * / %`, comparison
| `data-scope` | `data-scope="count: 0, name: 'x'"` | Declares reactive state on a subtree. The compiler emits this automatically when a page/component has state. A binding is owned by its **nearest** `data-scope` ancestor (nesting is safe). |
| `data-on-<event>` | `data-on-click="count++"` | Event handler (the compiled form of `@event`). |
| `data-text` | `data-text="count * 2"` | `textContent` follows the expression. Emitted by state interpolation; you can also handwrite it. |
| `data-show` | `data-show="open"` | Toggles `display` on truthiness. **Handauthored** (no `{}` sugar). |
| `data-show` | `data-show="open"` | Toggles visibility while preserving interactive state. **Hand-authored** (no `{}` sugar). |
| `data-for` | `data-for="item in items"`, optionally `key item.id` or `data-key="item.id"` | Repeats the element per list item. A stable key preserves DOM identity during reorder; unkeyed loops retain legacy full rerendering. Inside, item/index locals work in bindings and handlers. **Hand-authored.** |
| `data-component` | `data-component="counter"` | Mounts a component (serverrendered, then hydrated). See §12. |
| `data-slot` | `<div data-slot="header">…</div>` | Fills a named `<slot name="header">` of a component (see §8). |
`{#if}` and `<Component is={...}>` keep inactive elements out of the live DOM. `data-show` keeps
stateful controls mounted and only changes visibility. Client-side conditions are not
authorization: anything delivered to the browser can be recovered by the user. Enforce permissions
in server loaders and API handlers, and never send an unauthorized branch's sensitive data.
Example — a reactive list you write by hand:
```
@@ -1283,6 +1288,8 @@ wrnexus help | --help | -h
import type { AppConfig } from "@wrnexus/styles";
const config: AppConfig = {
compatibilityDate: "2026-08-02",
frameworkBehaviour: 1,
head: [ '<link rel="stylesheet" href="…">' ], // string | string[] → appended to every <head>
seo: { // SeoConfig (global defaults, merged per page)
+137
View File
@@ -0,0 +1,137 @@
# WRNexusJS quality, migration, and usability roadmap
This page is the authoritative implementation tracker for the repository-wide 0.8 audit. A
point is complete only when its acceptance criteria are executable in CI. Security and release
correctness take priority over new surface area.
## Release blockers
| Status | Area | Work | Acceptance criteria |
| -------- | ------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Complete | Dependencies | Remove high-severity `brace-expansion` and `fast-uri` advisories | Root `bun audit` and editor `npm audit` report no high/critical findings |
| Complete | Component showcase | Use the current `payload` output contract in generated examples and tests | Showcase generation and tests pass without a diff |
| Complete | Formatting | Normalize the package-kit audit and migration changes | `bun run format:check` passes |
| Complete | Examples | Resolve every runtime warning, including unregistered `theme-toggle` | Example tests fail on unexpected framework warnings |
| Complete | Application updates | Modernize all `.wrn` files during the 0.8 CLI update | Migration is backed up, idempotent, reports unresolved work, and has focused tests |
## Repository delivery and configuration
| Status | Work | Acceptance criteria |
| -------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| Complete | Add Linux and Windows CI for install, typecheck, lint, format, packages, examples, services, editor, audits, and staging | Required checks run on every pull request |
| Complete | Split generators from validators | Every `check:*` and `validate:*` command is read-only; `generate:*` owns writes |
| Complete | Add root `LICENSE`, `SECURITY.md`, `CONTRIBUTING.md`, `CHANGELOG.md`, and code of conduct | Release validation requires each document |
| Complete | Normalize all staged package manifests from one schema | Description, license, repository, exports, files, engines, side effects, and scripts are validated |
| Complete | Replace `latest` dependency ranges with controlled versions | Frozen-lockfile installs are reproducible |
| Complete | Test staged tarballs outside workspace aliases | Bun consumer, CLI binary, browser imports, assets, and declarations work from packed artifacts |
| Complete | Correct publishing documentation and package counts | Generated documentation matches the package inventory |
## Framework and package work
Delivered compiler/editor foundation:
- `@wrnexus/syntax` owns the typed canonical formatter API and publishable formatter subpath.
- The compiler, CLI updater, and VS Code extension consume the same implementation.
- The tracked editor compiler bundle has a read-only freshness gate.
- Formatter tests cover structured declarations, markup, comments, parsing, and idempotence.
- Compiler diagnostics are structured for CLI/editor/toolbar consumers, the dev
pipeline exposes incremental hit/miss/error/timing metrics, and
`wrnexus doctor --fix` applies conservative idempotent project repairs.
Delivered observability/operations foundation:
- Strict W3C `traceparent` propagation and correlated request/span identifiers.
- One request tracer shared with downstream framework spans and safe exporter failure isolation.
- OTLP/HTTP JSON trace and metric exporters with service resource attributes.
- Redacting structured JSON logs with correlated child loggers.
- Separate liveness and dependency readiness handlers backed by `HealthRegistry`.
- Production runtime `/healthz` and `/readyz` integration with configuration validation.
Delivered public API foundation:
- Every package root and declared subpath is resolved through the TypeScript
checker into a reviewed `0.8` export baseline.
- CI and production validation reject accidental export removals/renames.
- Intentional API evolution uses a separate generator command and the policy in
`docs/PUBLIC-API-POLICY.md`.
- Browser payload budgets cover reactive, navigation, and realtime runtimes.
- SSR/store hydration compatibility tests enforce bounded safe JSON, secret
redaction, script-breakout protection, and escaped CSP nonce attributes.
| Packages | Planned outcomes |
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `core`, `reactive`, `router`, `ssr`, `csr`, `store`, `realtime` | Stable public API policy; conditional exports; hydration/serialization compatibility; cancellation and disconnect tests; typed routes; one realtime contract; runtime-size budgets |
| `syntax`, `compiler`, `typecheck`, `dev-server`, `dev-toolbar`, editor | Shared formatter/compiler artifact; incremental cache metrics; structured diagnostics; fuzz and snapshot tests; code actions; rename/references; `doctor --fix` |
| `auth`, `authz`, `captcha`, `jwt`, `oauth`, `encryption`, `security` | WebAuthn/OIDC conformance; JWKS rotation; replay/rate-limit tests; built-app header checks; threat models; stable audit events and support matrix |
| `db`, `cache`, `queue`, `pubsub`, `observability`, `tracking` | Live database/Redis matrices; cancellation and pool lifecycle; migration locks/dry-run/rollback; distributed invalidation; DLQ/idempotency; OpenTelemetry; health primitives |
| `validation`, `i18n`, `image`, `uploader`, `ui`, `styles`, `helpers` | JSON Schema/OpenAPI; localized validation; locale extraction/pseudo-locales/RTL; image build optimization; resumable uploads; accessibility and visual regression; typed theme tokens; strict helper ownership |
| `ai` | Provider capabilities; structured output; tools; cancellation/retries; usage cost; redaction; deterministic test provider; circuit breakers |
| `mobile`, `native` | Generated Expo/Capacitor E2E builds; typed permissions; deep links; push; offline and secure storage; platform fallbacks |
| `cli`, `plugin`, `test`, `benchmark` | JSON/non-interactive commands; stable error codes; clean scaffold-to-production test; plugin compatibility; consumer test kit; tarball and benchmark budgets |
Queue/pub-sub reliability delivered in 0.8: bounded queue capacity,
idempotency keys, priorities, delayed/repeated jobs, exponential retries,
inspectable/retryable dead letters, AbortSignal cancellation, graceful/forced
shutdown, durable-store leases, bounded Redis offline writes, reconnect backoff,
subscription replay, awaited in-memory delivery, and idempotent pub/sub close.
Database deployment safety delivered in 0.8: idempotent close that drains active
queries/transactions, registry-wide all-settled pool shutdown, portable
cross-process migration locks with stale-lock recovery, dry-run planning,
between-migration cancellation, and lock-protected rollback.
Cache coherence delivered in 0.8: bounded tag-aware memory caching,
stampede-safe request deduplication, invalidation-safe in-flight loaders, and a
namespaced pub/sub bridge for cross-instance tag, key, and full-cache
invalidation with explicit failure and unsubscribe lifecycle.
AI reliability delivered in 0.8: explicit provider capability discovery,
validated structured output and tool execution, normalized token/cost usage,
abort-aware bounded retries, provider fallback and circuit breakers, metadata-only
attempt telemetry, and a deterministic offline provider for tests and examples.
Mobile portability delivered in 0.8: tested Capacitor and Expo generators, portable
WRN-to-Expo compilation, typed capability permissions, normalized deep-link and push
contracts, pluggable secure-storage and offline stores, and explicit SSR/browser/native
fallback behavior.
Security protocol hardening delivered in 0.8: bounded HTTPS RS256 JWKS caching
with immediate `kid` rotation refresh, strict OIDC discovery and ID-token claim
validation, stable authentication audit-event vocabulary, built production
response header assertions, and a framework/application responsibility matrix
in `docs/SECURITY-SUPPORT-MATRIX.md`.
Validation/localization interoperability delivered in 0.8: JSON Schema 2020-12
and OpenAPI request-body generation, shared localized validation descriptors,
static translation-key extraction, reference-locale missing/extra audits, and
placeholder-safe LTR/RTL pseudo-locales.
Asset and upload delivery delivered in 0.8: bounded deterministic AVIF/WebP/etc.
image build variants through optional Sharp or a custom processor, plus
checksum-verified resumable uploads with out-of-order/idempotent chunks,
expiry/cancel/prune, pluggable durable session state, and single final assembly.
## CLI update contract
The `0.8.0-02-current-wrn-source` migration applies one consistent upgrade point to every WRN
page, layout, component, and store beneath `app/`:
1. Create a complete pre-update backup under `.wrnexus/update-backups/`.
2. Convert legacy events, `$emit`, `event.detail`, function runtimes, dynamic attributes, and
inline prop declarations to the current syntax.
3. Convert string layouts to imported layout symbols.
4. Add deterministic imports for uniquely resolved application and UI components.
5. Normalize line endings, trailing whitespace, final newlines, and safe structural formatting.
6. Preserve ambiguous source and list it in
`.wrnexus/migrations/0.8.0-source-modernization.json` for manual review.
7. Run the application formatter, health checks, tests, and production build before committing
the new framework version marker.
The migration must remain idempotent: running it twice produces byte-identical application
source on the second run.
## Definition of done
A roadmap item may move to **Complete** only with tests, documentation, no high/critical audit
findings, no unexpected warnings, clean formatting, a clean generated-file check, and a staged
package consumer test where publishing behavior changes.
+25
View File
@@ -0,0 +1,25 @@
# WRNexusJS public API policy
The package root and every declared package export subpath are public API. During
the `0.8.x` release line, exported names are additive: removal or renaming needs
a deprecation cycle and a major/minor compatibility decision, not an incidental
refactor.
`bun run check:public-api` resolves TypeScript re-exports and compares all
publishable package/subpaths with `docs/public-api-0.8.json`. It is read-only and
runs in the production gate. When an intentional, reviewed API addition or
approved compatibility change occurs, update the baseline with:
```bash
bun run generate:public-api
```
The baseline guards exported names, while package tarball consumer tests guard
conditional export targets, declarations, runtime imports, browser bundling,
assets, and the CLI binary. Behavioral compatibility remains covered by package
tests and migration tests; the API baseline does not replace those contracts.
Browser runtime growth is also a reviewed compatibility concern. The read-only
security/performance gate caps source payloads at 150 kB for reactive hydration,
25 kB for navigation, and 15 kB for realtime. Production delivery additionally
uses Brotli; a budget increase requires an explicit performance review.
+1 -1
View File
@@ -1,6 +1,6 @@
# Publishing WrNexus to npm
All 26 `@wrnexus/*` packages are built and published to the **public npm registry**
All 39 `@wrnexus/*` packages are built and published to the **public npm registry**
(`registry.npmjs.org`), then installed on any machine with **Bun**.
## Prerequisites
+70
View File
@@ -0,0 +1,70 @@
# Roadmap implementation completion report
Date: 2026-08-02
## Scope and outcome
Every repository-actionable capability described by `ROADMAP-V1.md` and `ROADMAP.md` is now
implemented and represented by source, focused tests, examples, or generated artifacts. Two status
rows intentionally remain `Partial` because their final step cannot be performed or truthfully
certified by repository code:
- ROADMAP-V1 item 20: publishing the already deployable playground to an operator-owned public host.
- ROADMAP item 8: application/deployment-specific OWASP ASVS certification. The framework control
map, audit commands and abuse tests are delivered; business authorization and infrastructure
evidence must be assessed for each deployment.
## Final capability batch
- Plugin lifecycle: identical awaited AST/directive/code transforms and virtual modules in build and
development; generated plugin documentation and declaration aggregation.
- DevToolbar: dynamic SQL, queue, realtime, translation, CSS, memory/Web-Vitals and upgrade providers.
- Language tooling: workspace component/prop/slot/event, route, i18n, CSS/Tailwind and schema indexing;
extract-component and HTML-to-WRN refactors; refreshed VS Code/LSP bundles.
- Testing: managed Playwright installation and browser matrices, reports, screenshots/traces,
transaction rollback, factories and deterministic CI shards.
- Queue/realtime: Redis/PostgreSQL job stores, daemon/scheduler/dashboard, NATS/Kafka, database feeds,
file streaming and payload-free monitoring.
- Storage/tenancy: multipart acceleration, durable quotas, cleanup and video transcode hooks;
persistent tenant memberships/quotas and bounded tenant migrations.
- APIs/frontend/content/PWA: optional hardened GraphQL, OpenAPI webhook extraction, declarative
portals/transitions/dynamic components, timelines, registered MDX components, lazy highlighting,
Contentful/Sanity/Strapi adapters, IndexedDB migrations, persistent push subscriptions and offline
review UI.
## Executable examples
- `app/pages/server-actions.wrn`: schema-backed progressive server actions.
- `app/pages/partial-static.wrn`: build-time partial-static shell plus dynamic region.
- `app/pages/client-only.wrn`: true inert client-rendered template.
- `app/pages/async-data.wrn`: named server/client loading and async states.
- `app/pages/platform-showcase.wrn`: dynamic component, transition and portal syntax.
- `app/api/graphql-example.ts`: bounded GraphQL execution endpoint.
- `app/api/webhooks/payment.ts`: statically extracted webhook prose, schema and signature metadata.
- `app/types/generated-contracts.test.ts`: compile-time application contract assertions.
The production smoke check returned HTTP 200 for `platform-showcase`, confirmed portal and dynamic
component markers in rendered output, and returned `{"data":{"example":"Example"}}` from the
GraphQL example.
## Validation evidence
| Gate | Result |
| ----------------------------------------- | ---------------------------------------------------------------------------------------- |
| Repository TypeScript | Passed (`tsc --noEmit`) |
| Package tests | 972 passed, 1 optional live-DB skip, 0 failed |
| Example tests | 45 passed, 0 failed |
| Service tests | 5 passed, 0 failed |
| Example page compiler/formatter/a11y gate | 181 pages passed |
| VS Code extension | 29 tests passed; compiler/LSP/extension bundles match source; manifest validation passed |
| Basic application production build | 16 pages, 10 APIs, 2 realtime routes, 3 middleware; passed |
| CLI application typecheck | Passed after workspace-package resolver validation |
| Dependency audit | No vulnerabilities found |
| Application abuse suite | 7 passed, 0 failed |
| Security audit/header commands | ASVS framework controls passed; hardened headers emitted |
| Updater | Full dry-run completed with 0 parse failures |
| Doctor | 22 WRN files, 0 errors, 0 warnings; configuration/routes/plugins valid |
The optional live PostgreSQL/MySQL integration test remains skipped unless
`WRNEXUS_PG_URL`/`WRNEXUS_MYSQL_URL` are supplied. This is an environment-dependent integration
gate, not an unimplemented framework capability.
+1009
View File
File diff suppressed because it is too large Load Diff
+1041
View File
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
# WRNexusJS Security Control Map — OWASP ASVS 5.0.0
This is a framework-control map, not an ASVS certification of applications built with WRNexusJS. Application authorization, business logic, deployment, infrastructure, and operational controls must still be verified for each deployment.
The canonical requirement identifiers come from the [OWASP ASVS 5.0.0 release](https://github.com/OWASP/ASVS/tree/v5.0.0/5.0). Run `bun run security:asvs` to verify that this governed map and its evidence files remain present, and run `wrnexus security audit`, `wrnexus security headers`, and `wrnexus security test` for an application-level baseline.
| Framework control | ASVS 5.0.0 requirements | Implementation evidence | Verification evidence |
| ---------------------------------------------------------------- | ---------------------------------------------- | ---------------------------------------- | ---------------------------------------------- |
| Contextual HTML, attribute, JavaScript, and JSON output encoding | `v5.0.0-1.1.2`, `v5.0.0-1.2.1`, `v5.0.0-1.2.3` | `packages/compiler/src/codegen.ts` | `packages/compiler/test/compiler.test.ts` |
| Parameterized database operations | `v5.0.0-1.2.4` | `packages/db/src/query.ts` | `packages/db/test/bunsql-placeholders.test.ts` |
| SSRF allowlists and private-network blocking | `v5.0.0-1.3.6` | `packages/security/src/url.ts` | `packages/security/test/security.test.ts` |
| Secure, HttpOnly, SameSite cookie defaults | `v5.0.0-3.3.1`, `v5.0.0-3.3.2`, `v5.0.0-3.3.4` | `packages/security/src/cookies.ts` | `packages/security/test/security.test.ts` |
| HSTS and restrictive response headers | `v5.0.0-3.4.1` | `packages/core/src/headers.ts` | `packages/core/test/headers.test.ts` |
| Explicit CORS origins | `v5.0.0-3.4.2` | `packages/core/src/headers.ts` | `packages/core/test/headers.test.ts` |
| CSP frame protection and per-response nonces | `v5.0.0-3.4.6` | `packages/core/src/headers.ts` | `packages/core/test/headers.test.ts` |
| CSRF tokens for unsafe requests | `v5.0.0-3.5.1` | `packages/core/src/csrf.ts` | `packages/core/test/csrf.test.ts` |
| External redirect allowlists | `v5.0.0-3.7.2` | `packages/security/src/url.ts` | `packages/security/test/security.test.ts` |
| Secret masking in diagnostics and logs | `v5.0.0-16.2.5` | `packages/security/src/serialization.ts` | `packages/security/test/security.test.ts` |
| Authentication and authorization security events | `v5.0.0-16.3.1`, `v5.0.0-16.3.2` | `packages/auth/src/engine.ts` | `packages/auth/test/engine.test.ts` |
Controls including tenant policy, API-key lifecycle, malware-engine integration, and application-specific authorization remain application/deployment responsibilities. The CLI reports framework defaults and detectable unsafe configuration; it does not claim full ASVS conformance.
+28
View File
@@ -0,0 +1,28 @@
# Security support and threat model matrix
WRNexus security controls are defense layers, not substitutes for TLS, secret
management, database isolation, or operational monitoring. This matrix defines
the supported 0.8 contracts and the boundary application owners retain.
| Area | Framework guarantee | Application/operator responsibility |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Sessions and passwords | Rotating sessions, idle/absolute expiry, revocation, password hashing policy, trusted-device controls | TLS, durable session storage, breach response, account recovery policy |
| MFA and passkeys | One-use OTP/recovery state, TOTP counter replay defense, WebAuthn challenge consumption, RP/origin provider inputs, signature-counter regression checks | Use a conformant WebAuthn provider, configure the exact public origin/RP ID, transactional credential storage |
| OAuth/OIDC | State consumption, PKCE, safe return URLs, strict issuer discovery, HTTPS endpoints, RS256 JWKS rotation, nonce/audience/`azp`/`at_hash` validation | Register exact redirect URIs, protect client secrets, select trusted issuers and scopes |
| JWT | HS256 local keyrings and bounded HTTPS RS256 JWKS caches with `kid` rollover | Rotate/retire keys deliberately, set issuer/audience/expiry/max-age, revoke refresh families |
| CAPTCHA and rate limits | Expiring one-use challenges, action/session binding, bounded create/verify endpoints | Treat CAPTCHA as one signal and keep route/account/network rate limits |
| Encrypted HTTP | AEAD, request context binding, age checks, optional one-use replay stores | Keep HTTPS, use a shared replay store across instances, rotate server-managed keys |
| Authorization | Explicit policies/roles and deny responses | Model tenant/object ownership and test privilege boundaries |
| Browser/runtime | Production CSP, HSTS, MIME-sniffing, referrer/permissions policies and safe hydration serialization | Configure allowed origins/sources, terminate TLS correctly, review third-party scripts |
`AUTH_SECURITY_EVENT_TYPES` is the stable machine-readable authentication audit
event vocabulary. Events include an ID, timestamp, severity and available actor,
user, session, IP, user-agent and structured data. Consumers should alert on
critical events and retain warning/critical records according to their policy;
never place credentials or raw tokens in event data.
Protocol and adversarial tests cover replay, expired state, counter regression,
key rotation, algorithm/key-type confusion, issuer/audience/nonce mismatch,
unsafe return URLs, request binding, rate limiting, and built production response
headers. Live provider certification remains an integration responsibility
because provider metadata and credential policies are deployment-specific.
File diff suppressed because it is too large Load Diff
+115
View File
@@ -0,0 +1,115 @@
{
"schemaVersion": 1,
"releaseLine": "0.8",
"artifacts": {
"packages/ui/components/Accordion.wrn": "e74433d405767edd50e58237ac3986e08e14a893450d712f69679c8361485734",
"packages/ui/components/AdvancedDatePicker.wrn": "b9b5b08e9464544837a5400bbf9a2cb25724fac037fe196a219b42e5841ad672",
"packages/ui/components/AdvancedRangeSlider.wrn": "e78b5cf825503d0cd306c6e490d71317ee3db1844882d13b500df1f7f1c408e1",
"packages/ui/components/AdvancedSelect.wrn": "29d43f8019a3e0e98af7cf12440f41523665535a39a973441b4faea78e67114a",
"packages/ui/components/AnnouncementBar.wrn": "5946ef5eb646f7414056f59d9cfe14680aa3c935acc9a1ca6528dc53b23caa48",
"packages/ui/components/AuthForm.wrn": "5441adc5c4fd94621633f3a178442fd7970de3afb0dd3827b7aae6cd43545e40",
"packages/ui/components/AuthSplitLayout.wrn": "72b82495dd14d40a2d594ccdcf3adc925d1567c155750fb1072347b8845aab7b",
"packages/ui/components/AvatarGroup.wrn": "9c583f567213f8e1ad4506a7d2abc3fb462d11679fd2196d3828030f28a28964",
"packages/ui/components/BackToTop.wrn": "b12c56ec8b7aabad68cbdc47f4b3237e2c21a61398f0aa51f9add6229b7357cd",
"packages/ui/components/Badge.wrn": "6b55b4d85100d605cf168857aec1dc57da62c1f6a0a5cd6dd877023f24b189cc",
"packages/ui/components/Blockquote.wrn": "6016dd4450de7cbf5c3cb413599baa2e502321e8eedef54439a0df6d0aae8bcb",
"packages/ui/components/Breadcrumb.wrn": "8bf6239b95b382ce68f8411aac0d364f67a1c278dfbbf08f1501cd0482751e30",
"packages/ui/components/ButtonGroup.wrn": "0d97fbeed531d1d8ef4b59531923b47b34100d0de71d7bf524b02c668920b3d8",
"packages/ui/components/CTASection.wrn": "2d2241d4f1018cfd2f8ea1ddd5fa8c8fcb8d1bbb2d4e4498cb9f39ff47a3801c",
"packages/ui/components/Card.wrn": "4370df341235819b8a968a3f812209c2e6c29e4471d06578aaa5b577fb6e2dc8",
"packages/ui/components/Chart.wrn": "841def6b024720bd24898975a1434a1cb39c89e1272d42db431d35d27c98c553",
"packages/ui/components/ChatBubble.wrn": "0da2bc86830ac712481559bd2fe7214d26f25101f2e8c2e4629e25c004388b52",
"packages/ui/components/Checkbox.wrn": "45e6046e3ad4acb1c1805b51fd5bf0b95b346d3d53973ededc5e43ea2fd91f70",
"packages/ui/components/Clipboard.wrn": "bb8651c7e44517db827603d0c0e546b6891093d7e6589c0b6e45d91b6187591b",
"packages/ui/components/Collapse.wrn": "c537239831c6938f3c39be0ca3ae8ba928c2490e21cfe5853c10f7221a4678ca",
"packages/ui/components/ColorPicker.wrn": "6940b7ae48f1358008b8c3ae6dc7da31f96a1aefadeef18252568b2cda0b5cbf",
"packages/ui/components/Columns.wrn": "449a427c2f4dd846b5239b73efe5b8d15ad4f20fa28598802a5eb57c33332391",
"packages/ui/components/Combobox.wrn": "62a7d861b0e536ceb088cea3552c59acbafaea5184101e3651dc8f4976b99dbc",
"packages/ui/components/Confetti.wrn": "22d687beefd5047055f65e806b4e39f81e18887532ec18d439ac364a044b230a",
"packages/ui/components/Container.wrn": "be8fce140043eced8b78c8dd14ff85ace4ed2d91671251641ef83e0fe4da8f2a",
"packages/ui/components/ContextMenu.wrn": "2b5153f3acec3b11e5f20d7ea219f4e7b92569340fac09279e6a51bff0e7b235",
"packages/ui/components/CopyMarkup.wrn": "8d57a7d72e02c126f855a181fc36e1b969edb90f683dce6b6ffe546d49d2b29b",
"packages/ui/components/CustomScrollbar.wrn": "4c1f7758b9cd47e20ecf922403e12b5b15b8127a2744383c6bd280ee20e5fdd1",
"packages/ui/components/DataMap.wrn": "65552d73ecd1a148427dbb10d611f9352ca36bd490f595ab1e1a47e173445ba1",
"packages/ui/components/DataTable.wrn": "a147aef9840ac1ed9e97921b8ff81b4f8a5afe66dd6ccb6d26947b8f7ffc760f",
"packages/ui/components/DatePicker.wrn": "18b07e59c27c2720bf960e9c04ad70d9e422ddcf0817fede74e71899811bb387",
"packages/ui/components/DeviceFrame.wrn": "a881cf2cc1f859b43cc3c7a1e1ca0fb40cea7a9e530ab5bdcb985aa9592d11c0",
"packages/ui/components/Divider.wrn": "e377f8005249cf4f6c51dd4d04ff9c6a70a3f4e3a79d2c02a8ab601754c8553a",
"packages/ui/components/DragAndDrop.wrn": "9a403ce9ed20d36211d8916911871875c9c7d0952a7de1a21a433eaa0b3c3324",
"packages/ui/components/Drawer.wrn": "7ecfc54494402e8758eb3f648418df70b6cde598f38836a620a1fa179d1bb1bd",
"packages/ui/components/Dropdown.wrn": "703c354dfb304ad640a600398317b0a5eefeea326df8a1fc51c87e0ed3c26ebc",
"packages/ui/components/FeatureCard.wrn": "cf122df37d5de72a9556fea501b13b8bfad49ee4a5e88daec2a32d204ee9e784",
"packages/ui/components/FeatureGrid.wrn": "b9c793e47f6a86fddc0f42c010544002509a11256c92c030ae29743ab0083a55",
"packages/ui/components/FeatureIconCard.wrn": "7d053cf642ab572a254383a72fb60323118a6b41b433696cf6ac62857dea7d5e",
"packages/ui/components/FileInput.wrn": "8b63811deb90a03763620bedf0d5d3c7d05a20b8ae34292eaface9b756b32ecd",
"packages/ui/components/FileUpload.wrn": "3346d8978e134c3a1e6bc742201a3fbb0cffb89da40da6fcd856a2adbb971393",
"packages/ui/components/FileUploadProgress.wrn": "83bcc8558c70fbe0e0670642f65998abd222c235f1031be46bd7c65e6b5c5154",
"packages/ui/components/Footer.wrn": "a5dfaa5f9548b7fdd4b556c63428e0ea8d22e5e776a5714d76619999438cf618",
"packages/ui/components/Grid.wrn": "b5546b899c509c1f3e8f5edad801bc59acf9fe3008a627f0e4476cd61b5b672e",
"packages/ui/components/Hero.wrn": "c7608d8a81df53ffcde5d857abc06c2eff813d4a10223a47a70602a68e7b025c",
"packages/ui/components/HeroActions.wrn": "8f5d2d86c928c7499610f58a8b5c078e368d67f8924311472357a70c5d1dae1a",
"packages/ui/components/Image.wrn": "4294358e2eddf06ae4384217dbff7693b609c16bf6549f54d6ad27df74d7ae27",
"packages/ui/components/Input.wrn": "9ad394eed60f1b05bbd2ccd50dc2de7b78245c52c87afd46055d772c38b7b0c9",
"packages/ui/components/InputGroup.wrn": "0e23ea541a60e893c9d9e6f95113911ee459468d8d6105bf03aeb55395359123",
"packages/ui/components/InputNumber.wrn": "a0aa4f4566bf54ffbef54c99648eab05b5f9870be6ea07639a4ecf3930afb631",
"packages/ui/components/Kbd.wrn": "d51fa614b36f971f885410785b481c2e6900b2416e6e7c8868dfda1ebd5f3b4c",
"packages/ui/components/LayoutSplitter.wrn": "dac5a80acb76bf58dfd25233c68190c67d1aa1b3b0d4250a0957ea40912cf722",
"packages/ui/components/LegendIndicator.wrn": "6a7607b27a17196f899132eb952203a1073e4077365a94935f485e700cbac665",
"packages/ui/components/Link.wrn": "935ac24e8ebd067860dc9709ea9121710315ad6e02ce95cd5e982ae4d5978a02",
"packages/ui/components/List.wrn": "02f960a8e82fa049aac477bac9c1d9371394c86d9c47513138f61bffc79dc7d8",
"packages/ui/components/ListGroup.wrn": "37e2ec61ceab20ed020a834da03208c493702b41abcf586816e29f2e50d8ee11",
"packages/ui/components/Map.wrn": "7b8a0d5412a464fd7cab8977d816542c506d8c5dab8230a3c984c2caee407c91",
"packages/ui/components/MarketingSectionHeader.wrn": "5147f3d86f18404c66111a52cccb44be56ca4cbfd7a7f4e885e41f82c1212c1e",
"packages/ui/components/Marquee.wrn": "b2b35eedf3297ba12ab3776385a9f3eab001027648d87a2a1968f576eee6c025",
"packages/ui/components/MegaMenu.wrn": "4a084eaf6aae77bb9023d2f3589bc6b80119b9be63982a90a80f9d280cc9c0a5",
"packages/ui/components/MetricCard.wrn": "6451182739298691908f68258c0250cce2a78b0dc27c97115579ece30d7d9f92",
"packages/ui/components/MetricGrid.wrn": "49742c27d988755316be54eae3722bb88600dd1add8c851fc95d4b4498db80a8",
"packages/ui/components/Modal.wrn": "1821428492e510403dd029c4766e71272899299f65141ae4fdaf09c4a26719e5",
"packages/ui/components/Nav.wrn": "78f215c94caf68e0968449a23e23bd3409a689e0c52a6c1770aa8373c767d080",
"packages/ui/components/Navbar.wrn": "e68f9d3643e500e43124e9c7a6d4c7f6722657377ea7313f3e3cf5093a81b360",
"packages/ui/components/PageHeader.wrn": "e9f6c4c2b8723f3f035aa840ba8232f393a4038fae20c55dcd2a78276ac6738c",
"packages/ui/components/Pagination.wrn": "9169e724f89992dacd10e9492a95438c8016affb39c0fd17a4f6fe26bd21d8b4",
"packages/ui/components/PinInput.wrn": "5196f584de8d548a5dfa03688c3c95da3c948cead2662b05e927386ccea74299",
"packages/ui/components/Popover.wrn": "fd9982f60e37e500586f788470f41a8510d6b96d3a85c80d2859fa01cac6731e",
"packages/ui/components/PortalDashboard.wrn": "037d4300b59c7d60543abc7d4aba5c738efc143e9b61abc48aad0ddfcfe6845b",
"packages/ui/components/PreferenceSwitcher.wrn": "2cc186d4dcb6580b4b152e3a265d9ed5ad210d3fdc76330b9092db21894465f0",
"packages/ui/components/PublicPageShell.wrn": "507baad0e83dc05c24db42b8af8bd45b18f4e32e418843d77ec906428c687199",
"packages/ui/components/Radio.wrn": "0b2d38a5aee3e859280e4590fa1d509d789cc2239082054872fa342817735f1b",
"packages/ui/components/RangeSlider.wrn": "21eb7a5df0ee2cb5e78f628eb920265998eb9f1a4933d4e5c57db0323fd66b41",
"packages/ui/components/Rating.wrn": "a2d74dc748fc7d98892684c760518b87fa65411b1102e3611252b87245b3ffcb",
"packages/ui/components/Scrollspy.wrn": "bbe0788f63c2bc8850649c1dee78391d485a1c93876015bc536d838273d5fae4",
"packages/ui/components/SearchBox.wrn": "315f54f1feaaa47a815d1e2d7a35b492f09fbfadfc6d37228e1009e19e0652ad",
"packages/ui/components/Section.wrn": "dc18952a6342f3af04fdab6a44a5755b6767e65bf37a11528fd9e67dde39802e",
"packages/ui/components/SectionHeader.wrn": "512cb96636ee1f0540a0f4b4c75603fc0fe7536e7ed7ed7dc82173a16f48a4d3",
"packages/ui/components/Select.wrn": "7f046bb11b7c2470dae26d91a4b2261c66a40ae054d0e04c69b6748912d1e204",
"packages/ui/components/Sidebar.wrn": "05f4bd216ae8bfcee2460fe638e431174d5f3c8e10003f346644e5a2939e7ce5",
"packages/ui/components/SplitHero.wrn": "70e843565ff869bcf413b11b6d9830b2e2bd229863a00904596f71e2dff0e76d",
"packages/ui/components/StatsBar.wrn": "c7d1df3895f25b6d3a2e1012a18b97592c7f33e65418b880d486f20c2d490686",
"packages/ui/components/Stepper.wrn": "4fec0c91a9006319ec27f3198d1176acdfd93abf62d76159aa55c0879bb081d9",
"packages/ui/components/StrongPassword.wrn": "c7c5ef26ece6170dd7db9882f0dc98cb2e4607f1e5d43eb3fd39e5d15bbd3a2e",
"packages/ui/components/StyledIcon.wrn": "4a4504e357dee9dd0418edbe85fc90b824ccdb3752123a2125da95b77bf0b336",
"packages/ui/components/Switch.wrn": "ccb74599fab72b0d68b09a7f1f90b7732cb2f9cbed67a84219e897575ce30c28",
"packages/ui/components/Tabs.wrn": "8a1b98c7395b27b09f16f0ebdc14d3d84473b06023ec2b3ed0af495cc2f076bb",
"packages/ui/components/TextLink.wrn": "30782039293eb36d63b7b3a4f32a71a47177a3a68c7e90184be7cf7b4385eb19",
"packages/ui/components/Textarea.wrn": "ddf0b4f124b2cf0c0ab3d820d3ac0085f7c20466e977231949be264cd0cee8cf",
"packages/ui/components/TimePicker.wrn": "2e8e7a90f6b6069a07e7ffd2725ba1e1031e84d55a4f1254025befbb314fa695",
"packages/ui/components/Timeline.wrn": "5708c656eefd12f31c93490075ee482bf527059028844bd58cdcddc88461e2b5",
"packages/ui/components/Toast.wrn": "f37c584d1c1a66401deb53d915c8ee0c70aaf7baa1d3c297fa74c5bdb914dd1d",
"packages/ui/components/ToastNotifications.wrn": "33ff76b2a0a129ff896baea8979b4be97f7ec4471a92a2da970403a5c46e8b03",
"packages/ui/components/ToggleCount.wrn": "70a75b2bdcc89103f8ca300ee6d21cd61baf8c6a4aeade9b68d1dc529f77064b",
"packages/ui/components/TogglePassword.wrn": "405a85cbfa3d0ff0185b52d2805fba88497a5f25501f01b2438ed3a28591a38d",
"packages/ui/components/Tooltip.wrn": "fe663c153e5239f37a298273662b16a8a77928be9376a823cd6f4e62fbaf2ee5",
"packages/ui/components/TreeView.wrn": "1791a10135595b17b5c746af9e0476e8520d516ba46d64c79dc4efe0af2b500d",
"packages/ui/components/Typography.wrn": "a667e800e11d23da74b00047bd9c560a65a5920e5394f58f66a6e0b32572ce8e",
"packages/ui/components/WysiwygEditor.wrn": "636e60b9f9be7a5807cca7ad20e0b0f370ee1ec6c1ecba5d0a577726cc86bc98",
"packages/ui/components/alert.wrn": "a6020b3fbf02481f76cea4cfa563a7165c7ccc2920492f6f6b79e98cbf2cf0fa",
"packages/ui/components/avatar.wrn": "571b70790aff28a5b7d6adbf0196e77ece1ce153a95b384148cb2bb5f74ab2e9",
"packages/ui/components/button.wrn": "647af3918142fd9151e46555345532980633cc3677ec26d0940c253ea789bc31",
"packages/ui/components/carousel.wrn": "37bdde82de59e90cf02c9fed0ee11f5ddd2979246932701dad9412c4fd358a6a",
"packages/ui/components/progress.wrn": "ba6f4dfcc00f04f34e9533be675bb4a6200c3cdcd7d03fc597377e48520fdec7",
"packages/ui/components/skeleton.wrn": "ceec8af147b8be08155500e378393ac7c72d819da61b62191c076c80e943d5a9",
"packages/ui/components/spinner.wrn": "abc4ee3ede2e019289257e9009eee012c880a85839cc220fac6dbe1b780caf52",
"packages/ui/components/table.wrn": "96126772e82fbd401787600aba7a095ef097282d9bdb4df22f3e06016c677210",
"packages/ui/ui.css": "a72e839e6cccbe01483507f9d9ba913962aca2b9f866bb6e136f023d6ea2013d"
}
}