From df4c1d3e7dacbd385c888d9682585e23190278cc Mon Sep 17 00:00:00 2001 From: Ajay Ghanwat Date: Sun, 19 Jul 2026 13:38:23 +0530 Subject: [PATCH] release: WRNexusJS 0.2.51 --- .publish/ai/package.json | 2 +- .publish/authz/package.json | 2 +- .publish/cli/package.json | 22 ++++++------ .publish/compiler/package.json | 2 +- .publish/core/package.json | 2 +- .publish/csr/package.json | 4 +-- .publish/db/package.json | 2 +- .publish/dev-server/package.json | 26 +++++++------- .publish/encryption/package.json | 2 +- .publish/helpers/package.json | 4 +-- .publish/i18n/package.json | 4 +-- .publish/jwt/package.json | 2 +- .publish/mobile/package.json | 4 +-- .publish/native/package.json | 2 +- .publish/oauth/package.json | 2 +- .publish/pubsub/package.json | 2 +- .publish/queue/package.json | 2 +- .publish/reactive/package.json | 2 +- .publish/router/package.json | 6 ++-- .publish/ssr/package.json | 4 +-- .publish/styles/package.json | 4 +-- .publish/test/package.json | 2 +- .publish/tracking/package.json | 2 +- .publish/ui/components/ApiEndpointCard.wrn | 34 ++++++++++++++++++- .publish/ui/components/Banner.wrn | 12 ++++++- .publish/ui/components/Breadcrumbs.wrn | 11 +++++- .publish/ui/components/CTASection.wrn | 15 +++++++- .publish/ui/components/Cluster.wrn | 10 +++++- .publish/ui/components/CodeBlock.wrn | 12 ++++++- .publish/ui/components/CookieBanner.wrn | 12 ++++++- .publish/ui/components/DateInput.wrn | 14 +++++++- .publish/ui/components/DatePicker.wrn | 15 +++++++- .publish/ui/components/DateRangePicker.wrn | 11 +++++- .publish/ui/components/DateTimeInput.wrn | 14 +++++++- .publish/ui/components/Drawer.wrn | 12 ++++++- .publish/ui/components/DropdownMenu.wrn | 10 +++++- .publish/ui/components/EmailInput.wrn | 14 +++++++- .publish/ui/components/EmptyState.wrn | 13 ++++++- .publish/ui/components/ErrorState.wrn | 13 ++++++- .publish/ui/components/FeatureCard.wrn | 12 ++++++- .publish/ui/components/FeatureGrid.wrn | 10 +++++- .publish/ui/components/FileUpload.wrn | 14 +++++++- .publish/ui/components/FormErrorSummary.wrn | 10 +++++- .publish/ui/components/FormField.wrn | 12 ++++++- .publish/ui/components/Hero.wrn | 17 +++++++++- .publish/ui/components/IconButton.wrn | 7 +++- .publish/ui/components/Inline.wrn | 10 +++++- .../ui/components/LegalDocumentLayout.wrn | 11 +++++- .publish/ui/components/Link.wrn | 12 ++++++- .publish/ui/components/LogoCloud.wrn | 9 ++++- .publish/ui/components/Modal.wrn | 14 +++++++- .publish/ui/components/NumberInput.wrn | 14 +++++++- .publish/ui/components/OtpInput.wrn | 11 +++++- .publish/ui/components/PageShell.wrn | 9 ++++- .publish/ui/components/Pagination.wrn | 12 ++++++- .publish/ui/components/PasswordInput.wrn | 14 +++++++- .publish/ui/components/PhoneInput.wrn | 14 +++++++- .publish/ui/components/PricingPlanCard.wrn | 15 +++++++- .publish/ui/components/ProgressBar.wrn | 12 ++++++- .publish/ui/components/PublicFooter.wrn | 11 +++++- .publish/ui/components/PublicHeader.wrn | 14 +++++++- .publish/ui/components/RadioGroup.wrn | 10 +++++- .publish/ui/components/SchedulePicker.wrn | 9 ++++- .publish/ui/components/SearchInput.wrn | 14 +++++++- .publish/ui/components/Section.wrn | 7 +++- .publish/ui/components/SectionHeader.wrn | 12 ++++++- .publish/ui/components/StatCard.wrn | 12 ++++++- .publish/ui/components/StatusBadge.wrn | 9 ++++- .publish/ui/components/Tabs.wrn | 10 +++++- .publish/ui/components/TestimonialCard.wrn | 13 ++++++- .publish/ui/components/TextInput.wrn | 14 +++++++- .publish/ui/components/TimeInput.wrn | 14 +++++++- .publish/ui/components/Timeline.wrn | 9 ++++- .publish/ui/components/TimelineItem.wrn | 12 ++++++- .publish/ui/components/TimezoneSelector.wrn | 11 +++++- .publish/ui/components/Toast.wrn | 13 ++++++- .publish/ui/components/UrlInput.wrn | 14 +++++++- .publish/ui/components/VisuallyHidden.wrn | 9 ++++- .publish/ui/components/avatar.wrn | 12 ++++++- .publish/ui/components/badge.wrn | 10 +++++- .publish/ui/components/button.wrn | 11 +++++- .publish/ui/components/card.wrn | 12 ++++++- .publish/ui/components/checkbox.wrn | 14 +++++++- .publish/ui/components/container.wrn | 5 ++- .publish/ui/components/divider.wrn | 9 ++++- .publish/ui/components/grid.wrn | 10 +++++- .publish/ui/components/radio.wrn | 15 +++++++- .publish/ui/components/select.wrn | 15 +++++++- .publish/ui/components/skeleton.wrn | 11 +++++- .publish/ui/components/spinner.wrn | 10 +++++- .publish/ui/components/stack.wrn | 10 +++++- .publish/ui/components/switch.wrn | 15 +++++++- .publish/ui/components/table.wrn | 10 +++++- .publish/ui/components/textarea.wrn | 18 +++++++++- .publish/ui/components/tooltip.wrn | 10 +++++- .publish/ui/package.json | 4 +-- .publish/uploader/package.json | 4 +-- .publish/validation/package.json | 2 +- README.md | 4 +-- docs/GUIDE.md | 4 +-- examples/basic-app/wrnexus.config.ts | 4 +-- packages/ai/package.json | 2 +- packages/authz/package.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/create.ts | 4 +-- packages/cli/src/update.ts | 8 +++++ packages/compiler/package.json | 2 +- packages/core/package.json | 2 +- packages/csr/package.json | 2 +- packages/db/package.json | 2 +- packages/dev-server/package.json | 2 +- packages/encryption/package.json | 2 +- packages/helpers/package.json | 2 +- packages/i18n/package.json | 2 +- packages/jwt/package.json | 2 +- packages/mobile/package.json | 2 +- packages/native/package.json | 2 +- packages/oauth/package.json | 2 +- packages/pubsub/package.json | 2 +- packages/queue/package.json | 2 +- packages/reactive/package.json | 2 +- packages/router/package.json | 2 +- packages/ssr/package.json | 2 +- packages/styles/package.json | 2 +- packages/test/package.json | 2 +- packages/tracking/package.json | 2 +- packages/ui/components/ApiEndpointCard.wrn | 34 ++++++++++++++++++- packages/ui/components/Banner.wrn | 12 ++++++- packages/ui/components/Breadcrumbs.wrn | 11 +++++- packages/ui/components/CTASection.wrn | 15 +++++++- packages/ui/components/Cluster.wrn | 10 +++++- packages/ui/components/CodeBlock.wrn | 12 ++++++- packages/ui/components/CookieBanner.wrn | 12 ++++++- packages/ui/components/DateInput.wrn | 14 +++++++- packages/ui/components/DatePicker.wrn | 15 +++++++- packages/ui/components/DateRangePicker.wrn | 11 +++++- packages/ui/components/DateTimeInput.wrn | 14 +++++++- packages/ui/components/Drawer.wrn | 12 ++++++- packages/ui/components/DropdownMenu.wrn | 10 +++++- packages/ui/components/EmailInput.wrn | 14 +++++++- packages/ui/components/EmptyState.wrn | 13 ++++++- packages/ui/components/ErrorState.wrn | 13 ++++++- packages/ui/components/FeatureCard.wrn | 12 ++++++- packages/ui/components/FeatureGrid.wrn | 10 +++++- packages/ui/components/FileUpload.wrn | 14 +++++++- packages/ui/components/FormErrorSummary.wrn | 10 +++++- packages/ui/components/FormField.wrn | 12 ++++++- packages/ui/components/Hero.wrn | 17 +++++++++- packages/ui/components/IconButton.wrn | 7 +++- packages/ui/components/Inline.wrn | 10 +++++- .../ui/components/LegalDocumentLayout.wrn | 11 +++++- packages/ui/components/Link.wrn | 12 ++++++- packages/ui/components/LogoCloud.wrn | 9 ++++- packages/ui/components/Modal.wrn | 14 +++++++- packages/ui/components/NumberInput.wrn | 14 +++++++- packages/ui/components/OtpInput.wrn | 11 +++++- packages/ui/components/PageShell.wrn | 9 ++++- packages/ui/components/Pagination.wrn | 12 ++++++- packages/ui/components/PasswordInput.wrn | 14 +++++++- packages/ui/components/PhoneInput.wrn | 14 +++++++- packages/ui/components/PricingPlanCard.wrn | 15 +++++++- packages/ui/components/ProgressBar.wrn | 12 ++++++- packages/ui/components/PublicFooter.wrn | 11 +++++- packages/ui/components/PublicHeader.wrn | 14 +++++++- packages/ui/components/RadioGroup.wrn | 10 +++++- packages/ui/components/SchedulePicker.wrn | 9 ++++- packages/ui/components/SearchInput.wrn | 14 +++++++- packages/ui/components/Section.wrn | 7 +++- packages/ui/components/SectionHeader.wrn | 12 ++++++- packages/ui/components/StatCard.wrn | 12 ++++++- packages/ui/components/StatusBadge.wrn | 9 ++++- packages/ui/components/Tabs.wrn | 10 +++++- packages/ui/components/TestimonialCard.wrn | 13 ++++++- packages/ui/components/TextInput.wrn | 14 +++++++- packages/ui/components/TimeInput.wrn | 14 +++++++- packages/ui/components/Timeline.wrn | 9 ++++- packages/ui/components/TimelineItem.wrn | 12 ++++++- packages/ui/components/TimezoneSelector.wrn | 11 +++++- packages/ui/components/Toast.wrn | 13 ++++++- packages/ui/components/UrlInput.wrn | 14 +++++++- packages/ui/components/VisuallyHidden.wrn | 9 ++++- packages/ui/components/avatar.wrn | 12 ++++++- packages/ui/components/badge.wrn | 10 +++++- packages/ui/components/button.wrn | 11 +++++- packages/ui/components/card.wrn | 12 ++++++- packages/ui/components/checkbox.wrn | 14 +++++++- packages/ui/components/container.wrn | 5 ++- packages/ui/components/divider.wrn | 9 ++++- packages/ui/components/grid.wrn | 10 +++++- packages/ui/components/radio.wrn | 15 +++++++- packages/ui/components/select.wrn | 15 +++++++- packages/ui/components/skeleton.wrn | 11 +++++- packages/ui/components/spinner.wrn | 10 +++++- packages/ui/components/stack.wrn | 10 +++++- packages/ui/components/switch.wrn | 15 +++++++- packages/ui/components/table.wrn | 10 +++++- packages/ui/components/textarea.wrn | 18 +++++++++- packages/ui/components/tooltip.wrn | 10 +++++- packages/ui/package.json | 2 +- packages/ui/test/ui.test.ts | 6 ++++ packages/uploader/package.json | 2 +- packages/validation/package.json | 2 +- update-package-versions.mjs | 2 +- 203 files changed, 1713 insertions(+), 237 deletions(-) diff --git a/.publish/ai/package.json b/.publish/ai/package.json index 558456b9..694ef9be 100644 --- a/.publish/ai/package.json +++ b/.publish/ai/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ai", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "Zero-dependency Claude (Anthropic) client for WrNexus apps.", "license": "MIT", diff --git a/.publish/authz/package.json b/.publish/authz/package.json index b84f5142..84404d72 100644 --- a/.publish/authz/package.json +++ b/.publish/authz/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/authz", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/authz — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/cli/package.json b/.publish/cli/package.json index db9d1bd2..3662e500 100644 --- a/.publish/cli/package.json +++ b/.publish/cli/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/cli", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/cli — part of the WrNexus framework.", "license": "MIT", @@ -28,16 +28,16 @@ "wrnexus": "./dist/index.js" }, "dependencies": { - "@wrnexus/core": "^0.2.50", - "@wrnexus/router": "^0.2.50", - "@wrnexus/csr": "^0.2.50", - "@wrnexus/compiler": "^0.2.50", - "@wrnexus/styles": "^0.2.50", - "@wrnexus/dev-server": "^0.2.50", - "@wrnexus/ui": "^0.2.50", - "@wrnexus/validation": "^0.2.50", - "@wrnexus/i18n": "^0.2.50", - "@wrnexus/db": "^0.2.50" + "@wrnexus/core": "^0.2.51", + "@wrnexus/router": "^0.2.51", + "@wrnexus/csr": "^0.2.51", + "@wrnexus/compiler": "^0.2.51", + "@wrnexus/styles": "^0.2.51", + "@wrnexus/dev-server": "^0.2.51", + "@wrnexus/ui": "^0.2.51", + "@wrnexus/validation": "^0.2.51", + "@wrnexus/i18n": "^0.2.51", + "@wrnexus/db": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/compiler/package.json b/.publish/compiler/package.json index f06b3a7a..e8ec989c 100644 --- a/.publish/compiler/package.json +++ b/.publish/compiler/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/compiler", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/compiler — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/core/package.json b/.publish/core/package.json index fd712234..eefaf8a4 100644 --- a/.publish/core/package.json +++ b/.publish/core/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/core", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/core — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/csr/package.json b/.publish/csr/package.json index 431fa052..2d1815bd 100644 --- a/.publish/csr/package.json +++ b/.publish/csr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/csr", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/csr — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.2.50" + "@wrnexus/core": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/db/package.json b/.publish/db/package.json index 57e4a0c5..eb3e530a 100644 --- a/.publish/db/package.json +++ b/.publish/db/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/db", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/db — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/dev-server/package.json b/.publish/dev-server/package.json index 2356ae9f..488d7442 100644 --- a/.publish/dev-server/package.json +++ b/.publish/dev-server/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-server", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/dev-server — part of the WrNexus framework.", "license": "MIT", @@ -25,18 +25,18 @@ } }, "dependencies": { - "@wrnexus/core": "^0.2.50", - "@wrnexus/router": "^0.2.50", - "@wrnexus/ssr": "^0.2.50", - "@wrnexus/csr": "^0.2.50", - "@wrnexus/compiler": "^0.2.50", - "@wrnexus/styles": "^0.2.50", - "@wrnexus/ui": "^0.2.50", - "@wrnexus/validation": "^0.2.50", - "@wrnexus/i18n": "^0.2.50", - "@wrnexus/db": "^0.2.50", - "@wrnexus/pubsub": "^0.2.50", - "@wrnexus/uploader": "^0.2.50" + "@wrnexus/core": "^0.2.51", + "@wrnexus/router": "^0.2.51", + "@wrnexus/ssr": "^0.2.51", + "@wrnexus/csr": "^0.2.51", + "@wrnexus/compiler": "^0.2.51", + "@wrnexus/styles": "^0.2.51", + "@wrnexus/ui": "^0.2.51", + "@wrnexus/validation": "^0.2.51", + "@wrnexus/i18n": "^0.2.51", + "@wrnexus/db": "^0.2.51", + "@wrnexus/pubsub": "^0.2.51", + "@wrnexus/uploader": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/encryption/package.json b/.publish/encryption/package.json index d1884c15..4613833a 100644 --- a/.publish/encryption/package.json +++ b/.publish/encryption/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/encryption", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/encryption — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/helpers/package.json b/.publish/helpers/package.json index 97245cfe..ae15bb32 100644 --- a/.publish/helpers/package.json +++ b/.publish/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/helpers", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "Safe convenience helpers for WrNexus request contexts and common application flows.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.2.50" + "@wrnexus/core": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/i18n/package.json b/.publish/i18n/package.json index c7356425..7d8c48a7 100644 --- a/.publish/i18n/package.json +++ b/.publish/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/i18n", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/i18n — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.2.50" + "@wrnexus/core": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/jwt/package.json b/.publish/jwt/package.json index 9a3dd56e..256ab1e4 100644 --- a/.publish/jwt/package.json +++ b/.publish/jwt/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/jwt", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/jwt — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/mobile/package.json b/.publish/mobile/package.json index 6ce3d643..e1893d0b 100644 --- a/.publish/mobile/package.json +++ b/.publish/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/mobile", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/mobile — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/native": "^0.2.50" + "@wrnexus/native": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/native/package.json b/.publish/native/package.json index 149eb19a..1f8192b2 100644 --- a/.publish/native/package.json +++ b/.publish/native/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/native", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/native — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/oauth/package.json b/.publish/oauth/package.json index 8d3d29fd..23b563bc 100644 --- a/.publish/oauth/package.json +++ b/.publish/oauth/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/oauth", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/oauth — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/pubsub/package.json b/.publish/pubsub/package.json index 1204ad18..ca709f38 100644 --- a/.publish/pubsub/package.json +++ b/.publish/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/pubsub", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/pubsub — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/queue/package.json b/.publish/queue/package.json index a2a61b2d..835c6c9b 100644 --- a/.publish/queue/package.json +++ b/.publish/queue/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/queue", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/queue — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/reactive/package.json b/.publish/reactive/package.json index e6473330..255afb24 100644 --- a/.publish/reactive/package.json +++ b/.publish/reactive/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/reactive", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/reactive — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/router/package.json b/.publish/router/package.json index 61057843..b7f621d8 100644 --- a/.publish/router/package.json +++ b/.publish/router/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/router", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/router — part of the WrNexus framework.", "license": "MIT", @@ -21,8 +21,8 @@ } }, "dependencies": { - "@wrnexus/compiler": "^0.2.50", - "@wrnexus/core": "^0.2.50" + "@wrnexus/compiler": "^0.2.51", + "@wrnexus/core": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/ssr/package.json b/.publish/ssr/package.json index e37805d3..63997d61 100644 --- a/.publish/ssr/package.json +++ b/.publish/ssr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ssr", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/ssr — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.2.50" + "@wrnexus/core": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/styles/package.json b/.publish/styles/package.json index 830a3be3..066b454c 100644 --- a/.publish/styles/package.json +++ b/.publish/styles/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/styles", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/styles — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/uploader": "^0.2.50" + "@wrnexus/uploader": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/test/package.json b/.publish/test/package.json index 3e3ab1e3..3463d98c 100644 --- a/.publish/test/package.json +++ b/.publish/test/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/test", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/test — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/tracking/package.json b/.publish/tracking/package.json index 233549ec..2dba0a11 100644 --- a/.publish/tracking/package.json +++ b/.publish/tracking/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/tracking", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/tracking — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/ui/components/ApiEndpointCard.wrn b/.publish/ui/components/ApiEndpointCard.wrn index 61c7cc70..b0e222bc 100644 --- a/.publish/ui/components/ApiEndpointCard.wrn +++ b/.publish/ui/components/ApiEndpointCard.wrn @@ -1 +1,33 @@ -component ApiEndpointCard { props { method = "GET" path = "/api/example" description = "" } view {
{method}{path}

{description}

} } +component ApiEndpointCard { + props { + method = "GET" + path = "/api/example" + description = "" + } + + view { +
+
+ + {method} + + + {path} + +
+

+ {description} +

+
+ +
+
+ } +} diff --git a/.publish/ui/components/Banner.wrn b/.publish/ui/components/Banner.wrn index 48b6dbff..efa864fa 100644 --- a/.publish/ui/components/Banner.wrn +++ b/.publish/ui/components/Banner.wrn @@ -1 +1,11 @@ -component Banner { props { text = "Announcement" href = "" actionLabel = "Learn more" variant = "brand" } view { } } +component Banner { + props { + text = "Announcement" + href = "" + actionLabel = "Learn more" + variant = "brand" + } + view { + + } +} diff --git a/.publish/ui/components/Breadcrumbs.wrn b/.publish/ui/components/Breadcrumbs.wrn index f82d47a1..e0fe271f 100644 --- a/.publish/ui/components/Breadcrumbs.wrn +++ b/.publish/ui/components/Breadcrumbs.wrn @@ -1 +1,10 @@ -component Breadcrumbs { props { homeLabel = "Home" homeHref = "/" current = "Current page" } view { } } +component Breadcrumbs { + props { + homeLabel = "Home" + homeHref = "/" + current = "Current page" + } + view { + + } +} diff --git a/.publish/ui/components/CTASection.wrn b/.publish/ui/components/CTASection.wrn index 345d4fec..19014e22 100644 --- a/.publish/ui/components/CTASection.wrn +++ b/.publish/ui/components/CTASection.wrn @@ -1 +1,14 @@ -component CTASection { props { eyebrow = "Ready?" title = "Start building today" description = "" primaryLabel = "Get started" primaryHref = "#" secondaryLabel = "Contact sales" secondaryHref = "#" } view {

{eyebrow}

{title}

{description}

} } +component CTASection { + props { + eyebrow = "Ready?" + title = "Start building today" + description = "" + primaryLabel = "Get started" + primaryHref = "#" + secondaryLabel = "Contact sales" + secondaryHref = "#" + } + view { +

{eyebrow}

{title}

{description}

+ } +} diff --git a/.publish/ui/components/Cluster.wrn b/.publish/ui/components/Cluster.wrn index 0eacf0fa..a5cbd6dd 100644 --- a/.publish/ui/components/Cluster.wrn +++ b/.publish/ui/components/Cluster.wrn @@ -1 +1,9 @@ -component Cluster { props { gap = "4" className = "" } view {
} } +component Cluster { + props { + gap = "4" + className = "" + } + view { +
+ } +} diff --git a/.publish/ui/components/CodeBlock.wrn b/.publish/ui/components/CodeBlock.wrn index 7d986a71..9e5f5bbe 100644 --- a/.publish/ui/components/CodeBlock.wrn +++ b/.publish/ui/components/CodeBlock.wrn @@ -1 +1,11 @@ -component CodeBlock { props { language = "text" filename = "" code = "" } state copied = false view {
{filename || language}
{code}
} } +component CodeBlock { + props { + language = "text" + filename = "" + code = "" + } + state copied = false + view { +
{filename || language}
{code}
+ } +} diff --git a/.publish/ui/components/CookieBanner.wrn b/.publish/ui/components/CookieBanner.wrn index 22105f13..0d52ec67 100644 --- a/.publish/ui/components/CookieBanner.wrn +++ b/.publish/ui/components/CookieBanner.wrn @@ -1 +1,11 @@ -component CookieBanner { props { title = "We use cookies" description = "We use essential cookies and optional analytics to improve your experience." privacyHref = "/privacy" } state visible = true view { } } +component CookieBanner { + props { + title = "We use cookies" + description = "We use essential cookies and optional analytics to improve your experience." + privacyHref = "/privacy" + } + state visible = true + view { + + } +} diff --git a/.publish/ui/components/DateInput.wrn b/.publish/ui/components/DateInput.wrn index 9080cd6c..30dfdcb7 100644 --- a/.publish/ui/components/DateInput.wrn +++ b/.publish/ui/components/DateInput.wrn @@ -1,5 +1,17 @@ component DateInput { - props { id = "" name = "" label = "Date" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Date" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/DatePicker.wrn b/.publish/ui/components/DatePicker.wrn index 81d01061..cc21325b 100644 --- a/.publish/ui/components/DatePicker.wrn +++ b/.publish/ui/components/DatePicker.wrn @@ -1 +1,14 @@ -component DatePicker { props { id = "date" name = "date" label = "Date" value = "" min = "" max = "" required = false } view { } } +component DatePicker { + props { + id = "date" + name = "date" + label = "Date" + value = "" + min = "" + max = "" + required = false + } + view { + + } +} diff --git a/.publish/ui/components/DateRangePicker.wrn b/.publish/ui/components/DateRangePicker.wrn index d4b1e135..9d51a33e 100644 --- a/.publish/ui/components/DateRangePicker.wrn +++ b/.publish/ui/components/DateRangePicker.wrn @@ -1 +1,10 @@ -component DateRangePicker { props { label = "Date range" startName = "startDate" endName = "endDate" } view {
{label}
} } +component DateRangePicker { + props { + label = "Date range" + startName = "startDate" + endName = "endDate" + } + view { +
{label}
+ } +} diff --git a/.publish/ui/components/DateTimeInput.wrn b/.publish/ui/components/DateTimeInput.wrn index 45d08b5f..7c27351b 100644 --- a/.publish/ui/components/DateTimeInput.wrn +++ b/.publish/ui/components/DateTimeInput.wrn @@ -1,5 +1,17 @@ component DateTimeInput { - props { id = "" name = "" label = "DateTime" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "DateTime" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/Drawer.wrn b/.publish/ui/components/Drawer.wrn index 1ade407e..7d249ead 100644 --- a/.publish/ui/components/Drawer.wrn +++ b/.publish/ui/components/Drawer.wrn @@ -1 +1,11 @@ -component Drawer { props { title = "Panel" open = false side = "right" } state visible = open view { } } +component Drawer { + props { + title = "Panel" + open = false + side = "right" + } + state visible = open + view { + + } +} diff --git a/.publish/ui/components/DropdownMenu.wrn b/.publish/ui/components/DropdownMenu.wrn index b94eab50..ed27afbb 100644 --- a/.publish/ui/components/DropdownMenu.wrn +++ b/.publish/ui/components/DropdownMenu.wrn @@ -1 +1,9 @@ -component DropdownMenu { props { label = "Menu" } state open = false view {
} } +component DropdownMenu { + props { + label = "Menu" + } + state open = false + view { +
+ } +} diff --git a/.publish/ui/components/EmailInput.wrn b/.publish/ui/components/EmailInput.wrn index 172bfc66..b35d84d3 100644 --- a/.publish/ui/components/EmailInput.wrn +++ b/.publish/ui/components/EmailInput.wrn @@ -1,5 +1,17 @@ component EmailInput { - props { id = "" name = "" label = "Email" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Email" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/EmptyState.wrn b/.publish/ui/components/EmptyState.wrn index 709f8a2b..f1bd4a73 100644 --- a/.publish/ui/components/EmptyState.wrn +++ b/.publish/ui/components/EmptyState.wrn @@ -1 +1,12 @@ -component EmptyState { props { icon = "◇" title = "Nothing here yet" description = "" actionLabel = "" actionHref = "#" } view {
{icon}

{title}

{description}

{actionLabel}
} } +component EmptyState { + props { + icon = "◇" + title = "Nothing here yet" + description = "" + actionLabel = "" + actionHref = "#" + } + view { +
{icon}

{title}

{description}

{actionLabel}
+ } +} diff --git a/.publish/ui/components/ErrorState.wrn b/.publish/ui/components/ErrorState.wrn index ff3c12e1..a04c3bf1 100644 --- a/.publish/ui/components/ErrorState.wrn +++ b/.publish/ui/components/ErrorState.wrn @@ -1 +1,12 @@ -component ErrorState { props { code = "500" title = "Something went wrong" description = "Please try again." actionLabel = "Try again" actionHref = "/" } view {
{code}

{title}

{description}

{actionLabel}
} } +component ErrorState { + props { + code = "500" + title = "Something went wrong" + description = "Please try again." + actionLabel = "Try again" + actionHref = "/" + } + view { +
{code}

{title}

{description}

{actionLabel}
+ } +} diff --git a/.publish/ui/components/FeatureCard.wrn b/.publish/ui/components/FeatureCard.wrn index fd33286c..03b0e8ee 100644 --- a/.publish/ui/components/FeatureCard.wrn +++ b/.publish/ui/components/FeatureCard.wrn @@ -1 +1,11 @@ -component FeatureCard { props { icon = "✦" title = "Feature" description = "" href = "" } view { } } +component FeatureCard { + props { + icon = "✦" + title = "Feature" + description = "" + href = "" + } + view { + + } +} diff --git a/.publish/ui/components/FeatureGrid.wrn b/.publish/ui/components/FeatureGrid.wrn index a660073c..c3b19a2f 100644 --- a/.publish/ui/components/FeatureGrid.wrn +++ b/.publish/ui/components/FeatureGrid.wrn @@ -1 +1,9 @@ -component FeatureGrid { props { columns = 3 className = "" } view {
} } +component FeatureGrid { + props { + columns = 3 + className = "" + } + view { +
+ } +} diff --git a/.publish/ui/components/FileUpload.wrn b/.publish/ui/components/FileUpload.wrn index f65c5e5b..505e14a4 100644 --- a/.publish/ui/components/FileUpload.wrn +++ b/.publish/ui/components/FileUpload.wrn @@ -1 +1,13 @@ -component FileUpload { props { id = "file" name = "file" label = "Upload file" accept = "" multiple = false help = "Drag and drop or browse" } view { } } +component FileUpload { + props { + id = "file" + name = "file" + label = "Upload file" + accept = "" + multiple = false + help = "Drag and drop or browse" + } + view { + + } +} diff --git a/.publish/ui/components/FormErrorSummary.wrn b/.publish/ui/components/FormErrorSummary.wrn index 5538bcb4..de99a058 100644 --- a/.publish/ui/components/FormErrorSummary.wrn +++ b/.publish/ui/components/FormErrorSummary.wrn @@ -1 +1,9 @@ -component FormErrorSummary { props { title = "Please fix the following" visible = true } view { } } +component FormErrorSummary { + props { + title = "Please fix the following" + visible = true + } + view { + + } +} diff --git a/.publish/ui/components/FormField.wrn b/.publish/ui/components/FormField.wrn index 0500b8e7..4ab7a609 100644 --- a/.publish/ui/components/FormField.wrn +++ b/.publish/ui/components/FormField.wrn @@ -1 +1,11 @@ -component FormField { props { label = "Field" help = "" error = "" required = false } view {
{label}*

{help}

} } +component FormField { + props { + label = "Field" + help = "" + error = "" + required = false + } + view { +
{label}*

{help}

+ } +} diff --git a/.publish/ui/components/Hero.wrn b/.publish/ui/components/Hero.wrn index 7116d775..2008458d 100644 --- a/.publish/ui/components/Hero.wrn +++ b/.publish/ui/components/Hero.wrn @@ -1 +1,16 @@ -component Hero { props { eyebrow = "" title = "Build faster with WRNexusJS" highlight = "" description = "" primaryLabel = "Get started" primaryHref = "#" secondaryLabel = "Learn more" secondaryHref = "#" align = "center" } view {

{title} {highlight}

{description}

} } +component Hero { + props { + eyebrow = "" + title = "Build faster with WRNexusJS" + highlight = "" + description = "" + primaryLabel = "Get started" + primaryHref = "#" + secondaryLabel = "Learn more" + secondaryHref = "#" + align = "center" + } + view { +

{title} {highlight}

{description}

+ } +} diff --git a/.publish/ui/components/IconButton.wrn b/.publish/ui/components/IconButton.wrn index af222dd9..6f42850e 100644 --- a/.publish/ui/components/IconButton.wrn +++ b/.publish/ui/components/IconButton.wrn @@ -1,4 +1,9 @@ component IconButton { - props { label = "Action" icon = "•" variant = "ghost" disabled = false } + props { + label = "Action" + icon = "•" + variant = "ghost" + disabled = false + } view { } } diff --git a/.publish/ui/components/Inline.wrn b/.publish/ui/components/Inline.wrn index 36184c48..43cc7fbd 100644 --- a/.publish/ui/components/Inline.wrn +++ b/.publish/ui/components/Inline.wrn @@ -1 +1,9 @@ -component Inline { props { gap = "4" className = "" } view {
} } +component Inline { + props { + gap = "4" + className = "" + } + view { +
+ } +} diff --git a/.publish/ui/components/LegalDocumentLayout.wrn b/.publish/ui/components/LegalDocumentLayout.wrn index 850d3cda..f2866f3f 100644 --- a/.publish/ui/components/LegalDocumentLayout.wrn +++ b/.publish/ui/components/LegalDocumentLayout.wrn @@ -1 +1,10 @@ -component LegalDocumentLayout { props { title = "Legal document" effectiveDate = "" updatedDate = "" } view {

{title}

Effective: {effectiveDate}Updated: {updatedDate}
} } +component LegalDocumentLayout { + props { + title = "Legal document" + effectiveDate = "" + updatedDate = "" + } + view { +

{title}

Effective: {effectiveDate}Updated: {updatedDate}
+ } +} diff --git a/.publish/ui/components/Link.wrn b/.publish/ui/components/Link.wrn index a5d42625..cde2a1cb 100644 --- a/.publish/ui/components/Link.wrn +++ b/.publish/ui/components/Link.wrn @@ -1 +1,11 @@ -component Link { props { href = "#" label = "Link" external = false className = "" } view { {label} } } +component Link { + props { + href = "#" + label = "Link" + external = false + className = "" + } + view { + {label} + } +} diff --git a/.publish/ui/components/LogoCloud.wrn b/.publish/ui/components/LogoCloud.wrn index 4f640904..1d367671 100644 --- a/.publish/ui/components/LogoCloud.wrn +++ b/.publish/ui/components/LogoCloud.wrn @@ -1 +1,8 @@ -component LogoCloud { props { title = "Trusted by modern teams" } view {

{title}

} } +component LogoCloud { + props { + title = "Trusted by modern teams" + } + view { +

{title}

+ } +} diff --git a/.publish/ui/components/Modal.wrn b/.publish/ui/components/Modal.wrn index 44f99872..3c0217da 100644 --- a/.publish/ui/components/Modal.wrn +++ b/.publish/ui/components/Modal.wrn @@ -1 +1,13 @@ -component Modal { props { title = "Dialog" description = "" open = false size = "md" closeLabel = "Close" } state visible = open view { } } +component Modal { + props { + title = "Dialog" + description = "" + open = false + size = "md" + closeLabel = "Close" + } + state visible = open + view { + + } +} diff --git a/.publish/ui/components/NumberInput.wrn b/.publish/ui/components/NumberInput.wrn index 8c21268a..592150b4 100644 --- a/.publish/ui/components/NumberInput.wrn +++ b/.publish/ui/components/NumberInput.wrn @@ -1,5 +1,17 @@ component NumberInput { - props { id = "" name = "" label = "Number" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Number" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/OtpInput.wrn b/.publish/ui/components/OtpInput.wrn index 6a4aeb78..7cc19d47 100644 --- a/.publish/ui/components/OtpInput.wrn +++ b/.publish/ui/components/OtpInput.wrn @@ -1 +1,10 @@ -component OtpInput { props { name = "otp" length = 6 label = "Verification code" } view {
{label}
} } +component OtpInput { + props { + name = "otp" + length = 6 + label = "Verification code" + } + view { +
{label}
+ } +} diff --git a/.publish/ui/components/PageShell.wrn b/.publish/ui/components/PageShell.wrn index 28a6ec31..e228102e 100644 --- a/.publish/ui/components/PageShell.wrn +++ b/.publish/ui/components/PageShell.wrn @@ -1 +1,8 @@ -component PageShell { props { className = "" } view {
} } +component PageShell { + props { + className = "" + } + view { +
+ } +} diff --git a/.publish/ui/components/Pagination.wrn b/.publish/ui/components/Pagination.wrn index 56fc5563..e5853b8b 100644 --- a/.publish/ui/components/Pagination.wrn +++ b/.publish/ui/components/Pagination.wrn @@ -1 +1,11 @@ -component Pagination { props { page = 1 totalPages = 1 previousHref = "#" nextHref = "#" } view { } } +component Pagination { + props { + page = 1 + totalPages = 1 + previousHref = "#" + nextHref = "#" + } + view { + + } +} diff --git a/.publish/ui/components/PasswordInput.wrn b/.publish/ui/components/PasswordInput.wrn index 3c9f401a..7761b3bf 100644 --- a/.publish/ui/components/PasswordInput.wrn +++ b/.publish/ui/components/PasswordInput.wrn @@ -1,5 +1,17 @@ component PasswordInput { - props { id = "" name = "" label = "Password" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Password" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/PhoneInput.wrn b/.publish/ui/components/PhoneInput.wrn index accd7386..8a61a4f7 100644 --- a/.publish/ui/components/PhoneInput.wrn +++ b/.publish/ui/components/PhoneInput.wrn @@ -1,5 +1,17 @@ component PhoneInput { - props { id = "" name = "" label = "Phone" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Phone" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/PricingPlanCard.wrn b/.publish/ui/components/PricingPlanCard.wrn index 1e583db9..c40bc9d3 100644 --- a/.publish/ui/components/PricingPlanCard.wrn +++ b/.publish/ui/components/PricingPlanCard.wrn @@ -1 +1,14 @@ -component PricingPlanCard { props { name = "Starter" description = "" price = "₹0" period = "/month" featured = false ctaLabel = "Choose plan" ctaHref = "#" } view { } } +component PricingPlanCard { + props { + name = "Starter" + description = "" + price = "₹0" + period = "/month" + featured = false + ctaLabel = "Choose plan" + ctaHref = "#" + } + view { + + } +} diff --git a/.publish/ui/components/ProgressBar.wrn b/.publish/ui/components/ProgressBar.wrn index e64fd37c..112c7ba1 100644 --- a/.publish/ui/components/ProgressBar.wrn +++ b/.publish/ui/components/ProgressBar.wrn @@ -1 +1,11 @@ -component ProgressBar { props { value = 0 max = 100 label = "Progress" showValue = true } view {
{label}{value}%
} } +component ProgressBar { + props { + value = 0 + max = 100 + label = "Progress" + showValue = true + } + view { +
{label}{value}%
+ } +} diff --git a/.publish/ui/components/PublicFooter.wrn b/.publish/ui/components/PublicFooter.wrn index a98e8da6..d78dd08b 100644 --- a/.publish/ui/components/PublicFooter.wrn +++ b/.publish/ui/components/PublicFooter.wrn @@ -1 +1,10 @@ -component PublicFooter { props { brand = "WRNexusJS" description = "SSR-first, Bun-native full-stack framework." copyright = "© 2026 WorkRoot Workspace" } view {
{brand}

{description}

{copyright}
} } +component PublicFooter { + props { + brand = "WRNexusJS" + description = "SSR-first, Bun-native full-stack framework." + copyright = "© 2026 WorkRoot Workspace" + } + view { +
{brand}

{description}

{copyright}
+ } +} diff --git a/.publish/ui/components/PublicHeader.wrn b/.publish/ui/components/PublicHeader.wrn index 03d2244b..7af3caf2 100644 --- a/.publish/ui/components/PublicHeader.wrn +++ b/.publish/ui/components/PublicHeader.wrn @@ -1 +1,13 @@ -component PublicHeader { props { brand = "WRNexusJS" homeHref = "/" signInHref = "/signin" ctaHref = "/start" ctaLabel = "Get started" } state mobileOpen = false view {
} } +component PublicHeader { + props { + brand = "WRNexusJS" + homeHref = "/" + signInHref = "/signin" + ctaHref = "/start" + ctaLabel = "Get started" + } + state mobileOpen = false + view { +
+ } +} diff --git a/.publish/ui/components/RadioGroup.wrn b/.publish/ui/components/RadioGroup.wrn index 0b47c681..f0332343 100644 --- a/.publish/ui/components/RadioGroup.wrn +++ b/.publish/ui/components/RadioGroup.wrn @@ -1 +1,9 @@ -component RadioGroup { props { label = "Choose one" name = "choice" } view {
{label}
} } +component RadioGroup { + props { + label = "Choose one" + name = "choice" + } + view { +
{label}
+ } +} diff --git a/.publish/ui/components/SchedulePicker.wrn b/.publish/ui/components/SchedulePicker.wrn index 0e2524c3..c3a64bd2 100644 --- a/.publish/ui/components/SchedulePicker.wrn +++ b/.publish/ui/components/SchedulePicker.wrn @@ -1 +1,8 @@ -component SchedulePicker { props { label = "Schedule" } view {
{label}
} } +component SchedulePicker { + props { + label = "Schedule" + } + view { +
{label}
+ } +} diff --git a/.publish/ui/components/SearchInput.wrn b/.publish/ui/components/SearchInput.wrn index 68db6c7d..d74df598 100644 --- a/.publish/ui/components/SearchInput.wrn +++ b/.publish/ui/components/SearchInput.wrn @@ -1,5 +1,17 @@ component SearchInput { - props { id = "" name = "" label = "Search" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Search" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/Section.wrn b/.publish/ui/components/Section.wrn index 979096d9..81cf8331 100644 --- a/.publish/ui/components/Section.wrn +++ b/.publish/ui/components/Section.wrn @@ -1,5 +1,10 @@ component Section { - props { id = "" size = "default" surface = "default" className = "" } + props { + id = "" + size = "default" + surface = "default" + className = "" + } view {
} diff --git a/.publish/ui/components/SectionHeader.wrn b/.publish/ui/components/SectionHeader.wrn index 1f75bdb7..41313925 100644 --- a/.publish/ui/components/SectionHeader.wrn +++ b/.publish/ui/components/SectionHeader.wrn @@ -1 +1,11 @@ -component SectionHeader { props { eyebrow = "" title = "Section title" description = "" align = "left" } view {

{eyebrow}

{title}

{description}

} } +component SectionHeader { + props { + eyebrow = "" + title = "Section title" + description = "" + align = "left" + } + view { +

{eyebrow}

{title}

{description}

+ } +} diff --git a/.publish/ui/components/StatCard.wrn b/.publish/ui/components/StatCard.wrn index c68cc41e..c29c69a6 100644 --- a/.publish/ui/components/StatCard.wrn +++ b/.publish/ui/components/StatCard.wrn @@ -1 +1,11 @@ -component StatCard { props { label = "Metric" value = "0" change = "" trend = "neutral" } view {

{label}

{value}

{trend === 'up' ? '↑' : trend === 'down' ? '↓' : ''} {change}
} } +component StatCard { + props { + label = "Metric" + value = "0" + change = "" + trend = "neutral" + } + view { +

{label}

{value}

{trend === 'up' ? '↑' : trend === 'down' ? '↓' : ''} {change}
+ } +} diff --git a/.publish/ui/components/StatusBadge.wrn b/.publish/ui/components/StatusBadge.wrn index aea0c8d2..cfbaeda7 100644 --- a/.publish/ui/components/StatusBadge.wrn +++ b/.publish/ui/components/StatusBadge.wrn @@ -1 +1,8 @@ -component StatusBadge { props { status = "operational" } view { {status} } } +component StatusBadge { + props { + status = "operational" + } + view { + {status} + } +} diff --git a/.publish/ui/components/Tabs.wrn b/.publish/ui/components/Tabs.wrn index 9197f888..a4a5b832 100644 --- a/.publish/ui/components/Tabs.wrn +++ b/.publish/ui/components/Tabs.wrn @@ -1 +1,9 @@ -component Tabs { props { active = "first" } state current = active view {
} } +component Tabs { + props { + active = "first" + } + state current = active + view { +
+ } +} diff --git a/.publish/ui/components/TestimonialCard.wrn b/.publish/ui/components/TestimonialCard.wrn index 9ecafd0b..d18622a9 100644 --- a/.publish/ui/components/TestimonialCard.wrn +++ b/.publish/ui/components/TestimonialCard.wrn @@ -1 +1,12 @@ -component TestimonialCard { props { quote = "Great product." name = "Customer" role = "" company = "" avatar = "" } view {
“{quote}”
{name}
{role} · {company}
} } +component TestimonialCard { + props { + quote = "Great product." + name = "Customer" + role = "" + company = "" + avatar = "" + } + view { +
“{quote}”
{name}
{role} · {company}
+ } +} diff --git a/.publish/ui/components/TextInput.wrn b/.publish/ui/components/TextInput.wrn index 16cf6adf..d764d29a 100644 --- a/.publish/ui/components/TextInput.wrn +++ b/.publish/ui/components/TextInput.wrn @@ -1,5 +1,17 @@ component TextInput { - props { id = "" name = "" label = "Text" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Text" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/TimeInput.wrn b/.publish/ui/components/TimeInput.wrn index 744b73c4..db359c80 100644 --- a/.publish/ui/components/TimeInput.wrn +++ b/.publish/ui/components/TimeInput.wrn @@ -1,5 +1,17 @@ component TimeInput { - props { id = "" name = "" label = "Time" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Time" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
diff --git a/.publish/ui/components/Timeline.wrn b/.publish/ui/components/Timeline.wrn index c53511da..67383575 100644 --- a/.publish/ui/components/Timeline.wrn +++ b/.publish/ui/components/Timeline.wrn @@ -1 +1,8 @@ -component Timeline { props { title = "Timeline" } view {

{title}

} } +component Timeline { + props { + title = "Timeline" + } + view { +

{title}

+ } +} diff --git a/.publish/ui/components/TimelineItem.wrn b/.publish/ui/components/TimelineItem.wrn index 60ae1571..bee45a78 100644 --- a/.publish/ui/components/TimelineItem.wrn +++ b/.publish/ui/components/TimelineItem.wrn @@ -1 +1,11 @@ -component TimelineItem { props { title = "Event" date = "" description = "" status = "default" } view {
  • {title}

    {description}

  • } } +component TimelineItem { + props { + title = "Event" + date = "" + description = "" + status = "default" + } + view { +
  • {title}

    {description}

  • + } +} diff --git a/.publish/ui/components/TimezoneSelector.wrn b/.publish/ui/components/TimezoneSelector.wrn index 95292cab..5c99e272 100644 --- a/.publish/ui/components/TimezoneSelector.wrn +++ b/.publish/ui/components/TimezoneSelector.wrn @@ -1 +1,10 @@ -component TimezoneSelector { props { id = "timezone" name = "timezone" label = "Timezone" } view { } } +component TimezoneSelector { + props { + id = "timezone" + name = "timezone" + label = "Timezone" + } + view { + + } +} diff --git a/.publish/ui/components/Toast.wrn b/.publish/ui/components/Toast.wrn index 7fc6fec1..36e4ca6c 100644 --- a/.publish/ui/components/Toast.wrn +++ b/.publish/ui/components/Toast.wrn @@ -1 +1,12 @@ -component Toast { props { title = "Saved" description = "" variant = "success" duration = 5000 } state visible = true view {
    {variant === 'success' ? '✓' : variant === 'danger' ? '!' : 'i'}

    {title}

    {description}

    } } +component Toast { + props { + title = "Saved" + description = "" + variant = "success" + duration = 5000 + } + state visible = true + view { +
    {variant === 'success' ? '✓' : variant === 'danger' ? '!' : 'i'}

    {title}

    {description}

    + } +} diff --git a/.publish/ui/components/UrlInput.wrn b/.publish/ui/components/UrlInput.wrn index 5b50c4d9..2fdb643a 100644 --- a/.publish/ui/components/UrlInput.wrn +++ b/.publish/ui/components/UrlInput.wrn @@ -1,5 +1,17 @@ component UrlInput { - props { id = "" name = "" label = "Url" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Url" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/.publish/ui/components/VisuallyHidden.wrn b/.publish/ui/components/VisuallyHidden.wrn index 1023aa08..6d093b9c 100644 --- a/.publish/ui/components/VisuallyHidden.wrn +++ b/.publish/ui/components/VisuallyHidden.wrn @@ -1 +1,8 @@ -component VisuallyHidden { props { className = "" } view {
    } } +component VisuallyHidden { + props { + className = "" + } + view { +
    + } +} diff --git a/.publish/ui/components/avatar.wrn b/.publish/ui/components/avatar.wrn index 31d858b6..0dd934e5 100644 --- a/.publish/ui/components/avatar.wrn +++ b/.publish/ui/components/avatar.wrn @@ -1 +1,11 @@ -component Avatar { props { src = "" alt = "" initials = "WR" size = "md" } view { {alt} } } +component Avatar { + props { + src = "" + alt = "" + initials = "WR" + size = "md" + } + view { + {alt} + } +} diff --git a/.publish/ui/components/badge.wrn b/.publish/ui/components/badge.wrn index edc169f7..7bd696b5 100644 --- a/.publish/ui/components/badge.wrn +++ b/.publish/ui/components/badge.wrn @@ -1 +1,9 @@ -component Badge { props { label = "Badge" variant = "neutral" } view { {label} } } +component Badge { + props { + label = "Badge" + variant = "neutral" + } + view { + {label} + } +} diff --git a/.publish/ui/components/button.wrn b/.publish/ui/components/button.wrn index 8a7187e9..d20ff2a5 100644 --- a/.publish/ui/components/button.wrn +++ b/.publish/ui/components/button.wrn @@ -1,5 +1,14 @@ component Button { - props { label = "Button" type = "button" variant = "primary" size = "md" disabled = false loading = false icon = "" className = "" } + props { + label = "Button" + type = "button" + variant = "primary" + size = "md" + disabled = false + loading = false + icon = "" + className = "" + } view { } } +component Switch { + props { + id = "" + name = "" + label = "Switch" + description = "" + checked = false + disabled = false + } + state on = checked + view { + + } +} diff --git a/.publish/ui/components/table.wrn b/.publish/ui/components/table.wrn index 00e7c083..a9820020 100644 --- a/.publish/ui/components/table.wrn +++ b/.publish/ui/components/table.wrn @@ -1 +1,9 @@ -component Table { props { caption = "Data table" responsive = true } view {
    {caption}
    } } +component Table { + props { + caption = "Data table" + responsive = true + } + view { +
    {caption}
    + } +} diff --git a/.publish/ui/components/textarea.wrn b/.publish/ui/components/textarea.wrn index 2cf1bcd6..1c81bb9e 100644 --- a/.publish/ui/components/textarea.wrn +++ b/.publish/ui/components/textarea.wrn @@ -1 +1,17 @@ -component Textarea { props { id = "" name = "" label = "Message" value = "" placeholder = "" rows = 5 help = "" error = "" required = false disabled = false } view {

    {help}

    } } +component Textarea { + props { + id = "" + name = "" + label = "Message" + value = "" + placeholder = "" + rows = 5 + help = "" + error = "" + required = false + disabled = false + } + view { +

    {help}

    + } +} diff --git a/.publish/ui/components/tooltip.wrn b/.publish/ui/components/tooltip.wrn index 828b27e6..58c1b613 100644 --- a/.publish/ui/components/tooltip.wrn +++ b/.publish/ui/components/tooltip.wrn @@ -1 +1,9 @@ -component Tooltip { props { text = "Helpful information" position = "top" } view { {text} } } +component Tooltip { + props { + text = "Helpful information" + position = "top" + } + view { + {text} + } +} diff --git a/.publish/ui/package.json b/.publish/ui/package.json index e5910ad2..0c861e73 100644 --- a/.publish/ui/package.json +++ b/.publish/ui/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ui", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/ui — part of the WrNexus framework.", "license": "MIT", @@ -23,7 +23,7 @@ "./ui.css": "./ui.css" }, "dependencies": { - "@wrnexus/core": "^0.2.50" + "@wrnexus/core": "^0.2.51" }, "files": [ "dist", diff --git a/.publish/uploader/package.json b/.publish/uploader/package.json index 2dd5a856..1e836b17 100644 --- a/.publish/uploader/package.json +++ b/.publish/uploader/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/uploader", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/uploader — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.2.50" + "@wrnexus/core": "^0.2.51" }, "files": [ "dist" diff --git a/.publish/validation/package.json b/.publish/validation/package.json index 2aff8cff..90ddfb11 100644 --- a/.publish/validation/package.json +++ b/.publish/validation/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/validation", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "description": "@wrnexus/validation — part of the WrNexus framework.", "license": "MIT", diff --git a/README.md b/README.md index 423aa502..690383a9 100644 --- a/README.md +++ b/README.md @@ -666,8 +666,8 @@ runs at dev-serve time and at `wrnexus build`, and returns the final CSS: const config: AppConfig = { styles: { entry: "app/styles/global.css", - process: async ({ entryPath }) => - await Bun.$`bunx @tailwindcss/cli -i ${entryPath} --minify`.text(), + process: async ({ entryPath, appRoot }) => + await Bun.$.cwd(appRoot)`bunx @tailwindcss/cli -i ${entryPath} --minify`.text(), }, }; ``` diff --git a/docs/GUIDE.md b/docs/GUIDE.md index 0c45d378..3f9eb10d 100644 --- a/docs/GUIDE.md +++ b/docs/GUIDE.md @@ -532,10 +532,10 @@ Add a CSS framework two ways: ```ts styles: { entry: "app/styles/global.css", - process: async ({ entryPath, mode }) => { + process: async ({ entryPath, appRoot, mode }) => { const args = ["@tailwindcss/cli", "-i", entryPath!]; if (mode === "production") args.push("--minify"); - return await Bun.$`bunx ${args}`.text(); + return await Bun.$.cwd(appRoot)`bunx ${args}`.text(); }, } ``` diff --git a/examples/basic-app/wrnexus.config.ts b/examples/basic-app/wrnexus.config.ts index 78935286..b5316c99 100644 --- a/examples/basic-app/wrnexus.config.ts +++ b/examples/basic-app/wrnexus.config.ts @@ -54,10 +54,10 @@ const config: AppConfig = { // Real Tailwind v4 build. Runs once at dev-serve time (cached, re-run on a // restart) and at `wrnexus build`. `@tailwindcss/cli` writes to stdout by // default, so we just capture and return the final CSS string. - process: async ({ entryPath, mode }) => { + process: async ({ entryPath, appRoot, mode }) => { const args = ["@tailwindcss/cli", "-i", entryPath!]; if (mode === "production") args.push("--minify"); - return await Bun.$`bunx ${args}`.text(); + return await Bun.$.cwd(appRoot)`bunx ${args}`.text(); }, }, diff --git a/packages/ai/package.json b/packages/ai/package.json index fb3b6ab2..1e7eed9f 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ai", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "description": "Zero-dependency Claude (Anthropic) client for WrNexus apps.", diff --git a/packages/authz/package.json b/packages/authz/package.json index fee6cb55..0b1f8614 100644 --- a/packages/authz/package.json +++ b/packages/authz/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/authz", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/cli/package.json b/packages/cli/package.json index 70fdf4b9..73d28dae 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/cli", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts index 258aa29a..0f5e7f90 100644 --- a/packages/cli/src/create.ts +++ b/packages/cli/src/create.ts @@ -253,10 +253,10 @@ const config: AppConfig = { // and at \`wrnexus build\`. \`@tailwindcss/cli\` writes to stdout, so we capture // and return the final CSS. Delete this hook to drop Tailwind — global.css is // still bundled and served as-is. - process: async ({ entryPath, mode }) => { + process: async ({ entryPath, appRoot, mode }) => { const args = ["@tailwindcss/cli", "-i", entryPath!]; if (mode === "production") args.push("--minify"); - return await Bun.$\`bunx \${args}\`.text(); + return await Bun.$.cwd(appRoot)\`bunx \${args}\`.text(); }, }, diff --git a/packages/cli/src/update.ts b/packages/cli/src/update.ts index a3065a81..16591c07 100644 --- a/packages/cli/src/update.ts +++ b/packages/cli/src/update.ts @@ -525,6 +525,14 @@ const MIGRATIONS: Migration[] = [ // No generated application files require automatic migration. }, }, + { + version: "0.2.51", + id: "ui-package-repair", + description: "Repairs bundled UI component syntax and app-local stylesheet processing.", + apply() { + // No generated application files require automatic migration. + }, + }, ]; /** Release tooling uses this to require an explicit migration entry per version. */ diff --git a/packages/compiler/package.json b/packages/compiler/package.json index 88f3c4ec..72c7de50 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/compiler", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/core/package.json b/packages/core/package.json index 6ced0c2b..035d10e8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/core", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/csr/package.json b/packages/csr/package.json index bffe0247..efe7758d 100644 --- a/packages/csr/package.json +++ b/packages/csr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/csr", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/db/package.json b/packages/db/package.json index 9409aa3c..3673e882 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/db", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/dev-server/package.json b/packages/dev-server/package.json index 5dde08ca..f1ec8c4e 100644 --- a/packages/dev-server/package.json +++ b/packages/dev-server/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-server", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/encryption/package.json b/packages/encryption/package.json index 8482d5d4..e8df45c8 100644 --- a/packages/encryption/package.json +++ b/packages/encryption/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/encryption", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/helpers/package.json b/packages/helpers/package.json index 0e46834e..c049b1d1 100644 --- a/packages/helpers/package.json +++ b/packages/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/helpers", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "description": "Safe convenience helpers for WrNexus request contexts and common application flows.", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 234461a6..8a163abf 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/i18n", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/jwt/package.json b/packages/jwt/package.json index c718d02e..d4f833f6 100644 --- a/packages/jwt/package.json +++ b/packages/jwt/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/jwt", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/mobile/package.json b/packages/mobile/package.json index ca001a6b..4d6b6d07 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/mobile", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/native/package.json b/packages/native/package.json index 1b26e8a9..4fd8dd48 100644 --- a/packages/native/package.json +++ b/packages/native/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/native", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/oauth/package.json b/packages/oauth/package.json index 50e8aef0..2fd7c03a 100644 --- a/packages/oauth/package.json +++ b/packages/oauth/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/oauth", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index d9447c65..13aa3d9d 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/pubsub", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/queue/package.json b/packages/queue/package.json index f99c8593..77b641d6 100644 --- a/packages/queue/package.json +++ b/packages/queue/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/queue", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/reactive/package.json b/packages/reactive/package.json index 406f214a..f93b08c5 100644 --- a/packages/reactive/package.json +++ b/packages/reactive/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/reactive", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/router/package.json b/packages/router/package.json index bda677b9..2060649d 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/router", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/ssr/package.json b/packages/ssr/package.json index ed0e26eb..91302234 100644 --- a/packages/ssr/package.json +++ b/packages/ssr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ssr", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/styles/package.json b/packages/styles/package.json index 48bca8ed..91b646ab 100644 --- a/packages/styles/package.json +++ b/packages/styles/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/styles", - "version": "0.2.50", + "version": "0.2.51", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/test/package.json b/packages/test/package.json index 93909cd0..90ee93ca 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/test", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/tracking/package.json b/packages/tracking/package.json index f7167c6b..e0c309d6 100644 --- a/packages/tracking/package.json +++ b/packages/tracking/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/tracking", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/ui/components/ApiEndpointCard.wrn b/packages/ui/components/ApiEndpointCard.wrn index 61c7cc70..b0e222bc 100644 --- a/packages/ui/components/ApiEndpointCard.wrn +++ b/packages/ui/components/ApiEndpointCard.wrn @@ -1 +1,33 @@ -component ApiEndpointCard { props { method = "GET" path = "/api/example" description = "" } view {
    {method}{path}

    {description}

    } } +component ApiEndpointCard { + props { + method = "GET" + path = "/api/example" + description = "" + } + + view { +
    +
    + + {method} + + + {path} + +
    +

    + {description} +

    +
    + +
    +
    + } +} diff --git a/packages/ui/components/Banner.wrn b/packages/ui/components/Banner.wrn index 48b6dbff..efa864fa 100644 --- a/packages/ui/components/Banner.wrn +++ b/packages/ui/components/Banner.wrn @@ -1 +1,11 @@ -component Banner { props { text = "Announcement" href = "" actionLabel = "Learn more" variant = "brand" } view { } } +component Banner { + props { + text = "Announcement" + href = "" + actionLabel = "Learn more" + variant = "brand" + } + view { + + } +} diff --git a/packages/ui/components/Breadcrumbs.wrn b/packages/ui/components/Breadcrumbs.wrn index f82d47a1..e0fe271f 100644 --- a/packages/ui/components/Breadcrumbs.wrn +++ b/packages/ui/components/Breadcrumbs.wrn @@ -1 +1,10 @@ -component Breadcrumbs { props { homeLabel = "Home" homeHref = "/" current = "Current page" } view { } } +component Breadcrumbs { + props { + homeLabel = "Home" + homeHref = "/" + current = "Current page" + } + view { + + } +} diff --git a/packages/ui/components/CTASection.wrn b/packages/ui/components/CTASection.wrn index 345d4fec..19014e22 100644 --- a/packages/ui/components/CTASection.wrn +++ b/packages/ui/components/CTASection.wrn @@ -1 +1,14 @@ -component CTASection { props { eyebrow = "Ready?" title = "Start building today" description = "" primaryLabel = "Get started" primaryHref = "#" secondaryLabel = "Contact sales" secondaryHref = "#" } view {

    {eyebrow}

    {title}

    {description}

    } } +component CTASection { + props { + eyebrow = "Ready?" + title = "Start building today" + description = "" + primaryLabel = "Get started" + primaryHref = "#" + secondaryLabel = "Contact sales" + secondaryHref = "#" + } + view { +

    {eyebrow}

    {title}

    {description}

    + } +} diff --git a/packages/ui/components/Cluster.wrn b/packages/ui/components/Cluster.wrn index 0eacf0fa..a5cbd6dd 100644 --- a/packages/ui/components/Cluster.wrn +++ b/packages/ui/components/Cluster.wrn @@ -1 +1,9 @@ -component Cluster { props { gap = "4" className = "" } view {
    } } +component Cluster { + props { + gap = "4" + className = "" + } + view { +
    + } +} diff --git a/packages/ui/components/CodeBlock.wrn b/packages/ui/components/CodeBlock.wrn index 7d986a71..9e5f5bbe 100644 --- a/packages/ui/components/CodeBlock.wrn +++ b/packages/ui/components/CodeBlock.wrn @@ -1 +1,11 @@ -component CodeBlock { props { language = "text" filename = "" code = "" } state copied = false view {
    {filename || language}
    {code}
    } } +component CodeBlock { + props { + language = "text" + filename = "" + code = "" + } + state copied = false + view { +
    {filename || language}
    {code}
    + } +} diff --git a/packages/ui/components/CookieBanner.wrn b/packages/ui/components/CookieBanner.wrn index 22105f13..0d52ec67 100644 --- a/packages/ui/components/CookieBanner.wrn +++ b/packages/ui/components/CookieBanner.wrn @@ -1 +1,11 @@ -component CookieBanner { props { title = "We use cookies" description = "We use essential cookies and optional analytics to improve your experience." privacyHref = "/privacy" } state visible = true view { } } +component CookieBanner { + props { + title = "We use cookies" + description = "We use essential cookies and optional analytics to improve your experience." + privacyHref = "/privacy" + } + state visible = true + view { + + } +} diff --git a/packages/ui/components/DateInput.wrn b/packages/ui/components/DateInput.wrn index 9080cd6c..30dfdcb7 100644 --- a/packages/ui/components/DateInput.wrn +++ b/packages/ui/components/DateInput.wrn @@ -1,5 +1,17 @@ component DateInput { - props { id = "" name = "" label = "Date" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Date" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/DatePicker.wrn b/packages/ui/components/DatePicker.wrn index 81d01061..cc21325b 100644 --- a/packages/ui/components/DatePicker.wrn +++ b/packages/ui/components/DatePicker.wrn @@ -1 +1,14 @@ -component DatePicker { props { id = "date" name = "date" label = "Date" value = "" min = "" max = "" required = false } view { } } +component DatePicker { + props { + id = "date" + name = "date" + label = "Date" + value = "" + min = "" + max = "" + required = false + } + view { + + } +} diff --git a/packages/ui/components/DateRangePicker.wrn b/packages/ui/components/DateRangePicker.wrn index d4b1e135..9d51a33e 100644 --- a/packages/ui/components/DateRangePicker.wrn +++ b/packages/ui/components/DateRangePicker.wrn @@ -1 +1,10 @@ -component DateRangePicker { props { label = "Date range" startName = "startDate" endName = "endDate" } view {
    {label}
    } } +component DateRangePicker { + props { + label = "Date range" + startName = "startDate" + endName = "endDate" + } + view { +
    {label}
    + } +} diff --git a/packages/ui/components/DateTimeInput.wrn b/packages/ui/components/DateTimeInput.wrn index 45d08b5f..7c27351b 100644 --- a/packages/ui/components/DateTimeInput.wrn +++ b/packages/ui/components/DateTimeInput.wrn @@ -1,5 +1,17 @@ component DateTimeInput { - props { id = "" name = "" label = "DateTime" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "DateTime" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/Drawer.wrn b/packages/ui/components/Drawer.wrn index 1ade407e..7d249ead 100644 --- a/packages/ui/components/Drawer.wrn +++ b/packages/ui/components/Drawer.wrn @@ -1 +1,11 @@ -component Drawer { props { title = "Panel" open = false side = "right" } state visible = open view { } } +component Drawer { + props { + title = "Panel" + open = false + side = "right" + } + state visible = open + view { + + } +} diff --git a/packages/ui/components/DropdownMenu.wrn b/packages/ui/components/DropdownMenu.wrn index b94eab50..ed27afbb 100644 --- a/packages/ui/components/DropdownMenu.wrn +++ b/packages/ui/components/DropdownMenu.wrn @@ -1 +1,9 @@ -component DropdownMenu { props { label = "Menu" } state open = false view {
    } } +component DropdownMenu { + props { + label = "Menu" + } + state open = false + view { +
    + } +} diff --git a/packages/ui/components/EmailInput.wrn b/packages/ui/components/EmailInput.wrn index 172bfc66..b35d84d3 100644 --- a/packages/ui/components/EmailInput.wrn +++ b/packages/ui/components/EmailInput.wrn @@ -1,5 +1,17 @@ component EmailInput { - props { id = "" name = "" label = "Email" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Email" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/EmptyState.wrn b/packages/ui/components/EmptyState.wrn index 709f8a2b..f1bd4a73 100644 --- a/packages/ui/components/EmptyState.wrn +++ b/packages/ui/components/EmptyState.wrn @@ -1 +1,12 @@ -component EmptyState { props { icon = "◇" title = "Nothing here yet" description = "" actionLabel = "" actionHref = "#" } view {
    {icon}

    {title}

    {description}

    {actionLabel}
    } } +component EmptyState { + props { + icon = "◇" + title = "Nothing here yet" + description = "" + actionLabel = "" + actionHref = "#" + } + view { +
    {icon}

    {title}

    {description}

    {actionLabel}
    + } +} diff --git a/packages/ui/components/ErrorState.wrn b/packages/ui/components/ErrorState.wrn index ff3c12e1..a04c3bf1 100644 --- a/packages/ui/components/ErrorState.wrn +++ b/packages/ui/components/ErrorState.wrn @@ -1 +1,12 @@ -component ErrorState { props { code = "500" title = "Something went wrong" description = "Please try again." actionLabel = "Try again" actionHref = "/" } view {
    {code}

    {title}

    {description}

    {actionLabel}
    } } +component ErrorState { + props { + code = "500" + title = "Something went wrong" + description = "Please try again." + actionLabel = "Try again" + actionHref = "/" + } + view { +
    {code}

    {title}

    {description}

    {actionLabel}
    + } +} diff --git a/packages/ui/components/FeatureCard.wrn b/packages/ui/components/FeatureCard.wrn index fd33286c..03b0e8ee 100644 --- a/packages/ui/components/FeatureCard.wrn +++ b/packages/ui/components/FeatureCard.wrn @@ -1 +1,11 @@ -component FeatureCard { props { icon = "✦" title = "Feature" description = "" href = "" } view { } } +component FeatureCard { + props { + icon = "✦" + title = "Feature" + description = "" + href = "" + } + view { + + } +} diff --git a/packages/ui/components/FeatureGrid.wrn b/packages/ui/components/FeatureGrid.wrn index a660073c..c3b19a2f 100644 --- a/packages/ui/components/FeatureGrid.wrn +++ b/packages/ui/components/FeatureGrid.wrn @@ -1 +1,9 @@ -component FeatureGrid { props { columns = 3 className = "" } view {
    } } +component FeatureGrid { + props { + columns = 3 + className = "" + } + view { +
    + } +} diff --git a/packages/ui/components/FileUpload.wrn b/packages/ui/components/FileUpload.wrn index f65c5e5b..505e14a4 100644 --- a/packages/ui/components/FileUpload.wrn +++ b/packages/ui/components/FileUpload.wrn @@ -1 +1,13 @@ -component FileUpload { props { id = "file" name = "file" label = "Upload file" accept = "" multiple = false help = "Drag and drop or browse" } view { } } +component FileUpload { + props { + id = "file" + name = "file" + label = "Upload file" + accept = "" + multiple = false + help = "Drag and drop or browse" + } + view { + + } +} diff --git a/packages/ui/components/FormErrorSummary.wrn b/packages/ui/components/FormErrorSummary.wrn index 5538bcb4..de99a058 100644 --- a/packages/ui/components/FormErrorSummary.wrn +++ b/packages/ui/components/FormErrorSummary.wrn @@ -1 +1,9 @@ -component FormErrorSummary { props { title = "Please fix the following" visible = true } view { } } +component FormErrorSummary { + props { + title = "Please fix the following" + visible = true + } + view { + + } +} diff --git a/packages/ui/components/FormField.wrn b/packages/ui/components/FormField.wrn index 0500b8e7..4ab7a609 100644 --- a/packages/ui/components/FormField.wrn +++ b/packages/ui/components/FormField.wrn @@ -1 +1,11 @@ -component FormField { props { label = "Field" help = "" error = "" required = false } view {
    {label}*

    {help}

    } } +component FormField { + props { + label = "Field" + help = "" + error = "" + required = false + } + view { +
    {label}*

    {help}

    + } +} diff --git a/packages/ui/components/Hero.wrn b/packages/ui/components/Hero.wrn index 7116d775..2008458d 100644 --- a/packages/ui/components/Hero.wrn +++ b/packages/ui/components/Hero.wrn @@ -1 +1,16 @@ -component Hero { props { eyebrow = "" title = "Build faster with WRNexusJS" highlight = "" description = "" primaryLabel = "Get started" primaryHref = "#" secondaryLabel = "Learn more" secondaryHref = "#" align = "center" } view {

    {title} {highlight}

    {description}

    } } +component Hero { + props { + eyebrow = "" + title = "Build faster with WRNexusJS" + highlight = "" + description = "" + primaryLabel = "Get started" + primaryHref = "#" + secondaryLabel = "Learn more" + secondaryHref = "#" + align = "center" + } + view { +

    {title} {highlight}

    {description}

    + } +} diff --git a/packages/ui/components/IconButton.wrn b/packages/ui/components/IconButton.wrn index af222dd9..6f42850e 100644 --- a/packages/ui/components/IconButton.wrn +++ b/packages/ui/components/IconButton.wrn @@ -1,4 +1,9 @@ component IconButton { - props { label = "Action" icon = "•" variant = "ghost" disabled = false } + props { + label = "Action" + icon = "•" + variant = "ghost" + disabled = false + } view { } } diff --git a/packages/ui/components/Inline.wrn b/packages/ui/components/Inline.wrn index 36184c48..43cc7fbd 100644 --- a/packages/ui/components/Inline.wrn +++ b/packages/ui/components/Inline.wrn @@ -1 +1,9 @@ -component Inline { props { gap = "4" className = "" } view {
    } } +component Inline { + props { + gap = "4" + className = "" + } + view { +
    + } +} diff --git a/packages/ui/components/LegalDocumentLayout.wrn b/packages/ui/components/LegalDocumentLayout.wrn index 850d3cda..f2866f3f 100644 --- a/packages/ui/components/LegalDocumentLayout.wrn +++ b/packages/ui/components/LegalDocumentLayout.wrn @@ -1 +1,10 @@ -component LegalDocumentLayout { props { title = "Legal document" effectiveDate = "" updatedDate = "" } view {

    {title}

    Effective: {effectiveDate}Updated: {updatedDate}
    } } +component LegalDocumentLayout { + props { + title = "Legal document" + effectiveDate = "" + updatedDate = "" + } + view { +

    {title}

    Effective: {effectiveDate}Updated: {updatedDate}
    + } +} diff --git a/packages/ui/components/Link.wrn b/packages/ui/components/Link.wrn index a5d42625..cde2a1cb 100644 --- a/packages/ui/components/Link.wrn +++ b/packages/ui/components/Link.wrn @@ -1 +1,11 @@ -component Link { props { href = "#" label = "Link" external = false className = "" } view { {label} } } +component Link { + props { + href = "#" + label = "Link" + external = false + className = "" + } + view { + {label} + } +} diff --git a/packages/ui/components/LogoCloud.wrn b/packages/ui/components/LogoCloud.wrn index 4f640904..1d367671 100644 --- a/packages/ui/components/LogoCloud.wrn +++ b/packages/ui/components/LogoCloud.wrn @@ -1 +1,8 @@ -component LogoCloud { props { title = "Trusted by modern teams" } view {

    {title}

    } } +component LogoCloud { + props { + title = "Trusted by modern teams" + } + view { +

    {title}

    + } +} diff --git a/packages/ui/components/Modal.wrn b/packages/ui/components/Modal.wrn index 44f99872..3c0217da 100644 --- a/packages/ui/components/Modal.wrn +++ b/packages/ui/components/Modal.wrn @@ -1 +1,13 @@ -component Modal { props { title = "Dialog" description = "" open = false size = "md" closeLabel = "Close" } state visible = open view { } } +component Modal { + props { + title = "Dialog" + description = "" + open = false + size = "md" + closeLabel = "Close" + } + state visible = open + view { + + } +} diff --git a/packages/ui/components/NumberInput.wrn b/packages/ui/components/NumberInput.wrn index 8c21268a..592150b4 100644 --- a/packages/ui/components/NumberInput.wrn +++ b/packages/ui/components/NumberInput.wrn @@ -1,5 +1,17 @@ component NumberInput { - props { id = "" name = "" label = "Number" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Number" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/OtpInput.wrn b/packages/ui/components/OtpInput.wrn index 6a4aeb78..7cc19d47 100644 --- a/packages/ui/components/OtpInput.wrn +++ b/packages/ui/components/OtpInput.wrn @@ -1 +1,10 @@ -component OtpInput { props { name = "otp" length = 6 label = "Verification code" } view {
    {label}
    } } +component OtpInput { + props { + name = "otp" + length = 6 + label = "Verification code" + } + view { +
    {label}
    + } +} diff --git a/packages/ui/components/PageShell.wrn b/packages/ui/components/PageShell.wrn index 28a6ec31..e228102e 100644 --- a/packages/ui/components/PageShell.wrn +++ b/packages/ui/components/PageShell.wrn @@ -1 +1,8 @@ -component PageShell { props { className = "" } view {
    } } +component PageShell { + props { + className = "" + } + view { +
    + } +} diff --git a/packages/ui/components/Pagination.wrn b/packages/ui/components/Pagination.wrn index 56fc5563..e5853b8b 100644 --- a/packages/ui/components/Pagination.wrn +++ b/packages/ui/components/Pagination.wrn @@ -1 +1,11 @@ -component Pagination { props { page = 1 totalPages = 1 previousHref = "#" nextHref = "#" } view { } } +component Pagination { + props { + page = 1 + totalPages = 1 + previousHref = "#" + nextHref = "#" + } + view { + + } +} diff --git a/packages/ui/components/PasswordInput.wrn b/packages/ui/components/PasswordInput.wrn index 3c9f401a..7761b3bf 100644 --- a/packages/ui/components/PasswordInput.wrn +++ b/packages/ui/components/PasswordInput.wrn @@ -1,5 +1,17 @@ component PasswordInput { - props { id = "" name = "" label = "Password" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Password" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/PhoneInput.wrn b/packages/ui/components/PhoneInput.wrn index accd7386..8a61a4f7 100644 --- a/packages/ui/components/PhoneInput.wrn +++ b/packages/ui/components/PhoneInput.wrn @@ -1,5 +1,17 @@ component PhoneInput { - props { id = "" name = "" label = "Phone" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Phone" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/PricingPlanCard.wrn b/packages/ui/components/PricingPlanCard.wrn index 1e583db9..c40bc9d3 100644 --- a/packages/ui/components/PricingPlanCard.wrn +++ b/packages/ui/components/PricingPlanCard.wrn @@ -1 +1,14 @@ -component PricingPlanCard { props { name = "Starter" description = "" price = "₹0" period = "/month" featured = false ctaLabel = "Choose plan" ctaHref = "#" } view { } } +component PricingPlanCard { + props { + name = "Starter" + description = "" + price = "₹0" + period = "/month" + featured = false + ctaLabel = "Choose plan" + ctaHref = "#" + } + view { + + } +} diff --git a/packages/ui/components/ProgressBar.wrn b/packages/ui/components/ProgressBar.wrn index e64fd37c..112c7ba1 100644 --- a/packages/ui/components/ProgressBar.wrn +++ b/packages/ui/components/ProgressBar.wrn @@ -1 +1,11 @@ -component ProgressBar { props { value = 0 max = 100 label = "Progress" showValue = true } view {
    {label}{value}%
    } } +component ProgressBar { + props { + value = 0 + max = 100 + label = "Progress" + showValue = true + } + view { +
    {label}{value}%
    + } +} diff --git a/packages/ui/components/PublicFooter.wrn b/packages/ui/components/PublicFooter.wrn index a98e8da6..d78dd08b 100644 --- a/packages/ui/components/PublicFooter.wrn +++ b/packages/ui/components/PublicFooter.wrn @@ -1 +1,10 @@ -component PublicFooter { props { brand = "WRNexusJS" description = "SSR-first, Bun-native full-stack framework." copyright = "© 2026 WorkRoot Workspace" } view {
    {brand}

    {description}

    {copyright}
    } } +component PublicFooter { + props { + brand = "WRNexusJS" + description = "SSR-first, Bun-native full-stack framework." + copyright = "© 2026 WorkRoot Workspace" + } + view { +
    {brand}

    {description}

    {copyright}
    + } +} diff --git a/packages/ui/components/PublicHeader.wrn b/packages/ui/components/PublicHeader.wrn index 03d2244b..7af3caf2 100644 --- a/packages/ui/components/PublicHeader.wrn +++ b/packages/ui/components/PublicHeader.wrn @@ -1 +1,13 @@ -component PublicHeader { props { brand = "WRNexusJS" homeHref = "/" signInHref = "/signin" ctaHref = "/start" ctaLabel = "Get started" } state mobileOpen = false view {
    } } +component PublicHeader { + props { + brand = "WRNexusJS" + homeHref = "/" + signInHref = "/signin" + ctaHref = "/start" + ctaLabel = "Get started" + } + state mobileOpen = false + view { +
    + } +} diff --git a/packages/ui/components/RadioGroup.wrn b/packages/ui/components/RadioGroup.wrn index 0b47c681..f0332343 100644 --- a/packages/ui/components/RadioGroup.wrn +++ b/packages/ui/components/RadioGroup.wrn @@ -1 +1,9 @@ -component RadioGroup { props { label = "Choose one" name = "choice" } view {
    {label}
    } } +component RadioGroup { + props { + label = "Choose one" + name = "choice" + } + view { +
    {label}
    + } +} diff --git a/packages/ui/components/SchedulePicker.wrn b/packages/ui/components/SchedulePicker.wrn index 0e2524c3..c3a64bd2 100644 --- a/packages/ui/components/SchedulePicker.wrn +++ b/packages/ui/components/SchedulePicker.wrn @@ -1 +1,8 @@ -component SchedulePicker { props { label = "Schedule" } view {
    {label}
    } } +component SchedulePicker { + props { + label = "Schedule" + } + view { +
    {label}
    + } +} diff --git a/packages/ui/components/SearchInput.wrn b/packages/ui/components/SearchInput.wrn index 68db6c7d..d74df598 100644 --- a/packages/ui/components/SearchInput.wrn +++ b/packages/ui/components/SearchInput.wrn @@ -1,5 +1,17 @@ component SearchInput { - props { id = "" name = "" label = "Search" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Search" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/Section.wrn b/packages/ui/components/Section.wrn index 979096d9..81cf8331 100644 --- a/packages/ui/components/Section.wrn +++ b/packages/ui/components/Section.wrn @@ -1,5 +1,10 @@ component Section { - props { id = "" size = "default" surface = "default" className = "" } + props { + id = "" + size = "default" + surface = "default" + className = "" + } view {
    } diff --git a/packages/ui/components/SectionHeader.wrn b/packages/ui/components/SectionHeader.wrn index 1f75bdb7..41313925 100644 --- a/packages/ui/components/SectionHeader.wrn +++ b/packages/ui/components/SectionHeader.wrn @@ -1 +1,11 @@ -component SectionHeader { props { eyebrow = "" title = "Section title" description = "" align = "left" } view {

    {eyebrow}

    {title}

    {description}

    } } +component SectionHeader { + props { + eyebrow = "" + title = "Section title" + description = "" + align = "left" + } + view { +

    {eyebrow}

    {title}

    {description}

    + } +} diff --git a/packages/ui/components/StatCard.wrn b/packages/ui/components/StatCard.wrn index c68cc41e..c29c69a6 100644 --- a/packages/ui/components/StatCard.wrn +++ b/packages/ui/components/StatCard.wrn @@ -1 +1,11 @@ -component StatCard { props { label = "Metric" value = "0" change = "" trend = "neutral" } view {

    {label}

    {value}

    {trend === 'up' ? '↑' : trend === 'down' ? '↓' : ''} {change}
    } } +component StatCard { + props { + label = "Metric" + value = "0" + change = "" + trend = "neutral" + } + view { +

    {label}

    {value}

    {trend === 'up' ? '↑' : trend === 'down' ? '↓' : ''} {change}
    + } +} diff --git a/packages/ui/components/StatusBadge.wrn b/packages/ui/components/StatusBadge.wrn index aea0c8d2..cfbaeda7 100644 --- a/packages/ui/components/StatusBadge.wrn +++ b/packages/ui/components/StatusBadge.wrn @@ -1 +1,8 @@ -component StatusBadge { props { status = "operational" } view { {status} } } +component StatusBadge { + props { + status = "operational" + } + view { + {status} + } +} diff --git a/packages/ui/components/Tabs.wrn b/packages/ui/components/Tabs.wrn index 9197f888..a4a5b832 100644 --- a/packages/ui/components/Tabs.wrn +++ b/packages/ui/components/Tabs.wrn @@ -1 +1,9 @@ -component Tabs { props { active = "first" } state current = active view {
    } } +component Tabs { + props { + active = "first" + } + state current = active + view { +
    + } +} diff --git a/packages/ui/components/TestimonialCard.wrn b/packages/ui/components/TestimonialCard.wrn index 9ecafd0b..d18622a9 100644 --- a/packages/ui/components/TestimonialCard.wrn +++ b/packages/ui/components/TestimonialCard.wrn @@ -1 +1,12 @@ -component TestimonialCard { props { quote = "Great product." name = "Customer" role = "" company = "" avatar = "" } view {
    “{quote}”
    {name}
    {role} · {company}
    } } +component TestimonialCard { + props { + quote = "Great product." + name = "Customer" + role = "" + company = "" + avatar = "" + } + view { +
    “{quote}”
    {name}
    {role} · {company}
    + } +} diff --git a/packages/ui/components/TextInput.wrn b/packages/ui/components/TextInput.wrn index 16cf6adf..d764d29a 100644 --- a/packages/ui/components/TextInput.wrn +++ b/packages/ui/components/TextInput.wrn @@ -1,5 +1,17 @@ component TextInput { - props { id = "" name = "" label = "Text" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Text" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/TimeInput.wrn b/packages/ui/components/TimeInput.wrn index 744b73c4..db359c80 100644 --- a/packages/ui/components/TimeInput.wrn +++ b/packages/ui/components/TimeInput.wrn @@ -1,5 +1,17 @@ component TimeInput { - props { id = "" name = "" label = "Time" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Time" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/Timeline.wrn b/packages/ui/components/Timeline.wrn index c53511da..67383575 100644 --- a/packages/ui/components/Timeline.wrn +++ b/packages/ui/components/Timeline.wrn @@ -1 +1,8 @@ -component Timeline { props { title = "Timeline" } view {

    {title}

    } } +component Timeline { + props { + title = "Timeline" + } + view { +

    {title}

    + } +} diff --git a/packages/ui/components/TimelineItem.wrn b/packages/ui/components/TimelineItem.wrn index 60ae1571..bee45a78 100644 --- a/packages/ui/components/TimelineItem.wrn +++ b/packages/ui/components/TimelineItem.wrn @@ -1 +1,11 @@ -component TimelineItem { props { title = "Event" date = "" description = "" status = "default" } view {
  • {title}

    {description}

  • } } +component TimelineItem { + props { + title = "Event" + date = "" + description = "" + status = "default" + } + view { +
  • {title}

    {description}

  • + } +} diff --git a/packages/ui/components/TimezoneSelector.wrn b/packages/ui/components/TimezoneSelector.wrn index 95292cab..5c99e272 100644 --- a/packages/ui/components/TimezoneSelector.wrn +++ b/packages/ui/components/TimezoneSelector.wrn @@ -1 +1,10 @@ -component TimezoneSelector { props { id = "timezone" name = "timezone" label = "Timezone" } view { } } +component TimezoneSelector { + props { + id = "timezone" + name = "timezone" + label = "Timezone" + } + view { + + } +} diff --git a/packages/ui/components/Toast.wrn b/packages/ui/components/Toast.wrn index 7fc6fec1..36e4ca6c 100644 --- a/packages/ui/components/Toast.wrn +++ b/packages/ui/components/Toast.wrn @@ -1 +1,12 @@ -component Toast { props { title = "Saved" description = "" variant = "success" duration = 5000 } state visible = true view {
    {variant === 'success' ? '✓' : variant === 'danger' ? '!' : 'i'}

    {title}

    {description}

    } } +component Toast { + props { + title = "Saved" + description = "" + variant = "success" + duration = 5000 + } + state visible = true + view { +
    {variant === 'success' ? '✓' : variant === 'danger' ? '!' : 'i'}

    {title}

    {description}

    + } +} diff --git a/packages/ui/components/UrlInput.wrn b/packages/ui/components/UrlInput.wrn index 5b50c4d9..2fdb643a 100644 --- a/packages/ui/components/UrlInput.wrn +++ b/packages/ui/components/UrlInput.wrn @@ -1,5 +1,17 @@ component UrlInput { - props { id = "" name = "" label = "Url" value = "" placeholder = "" help = "" error = "" required = false disabled = false readonly = false autocomplete = "" } + props { + id = "" + name = "" + label = "Url" + value = "" + placeholder = "" + help = "" + error = "" + required = false + disabled = false + readonly = false + autocomplete = "" + } view {
    diff --git a/packages/ui/components/VisuallyHidden.wrn b/packages/ui/components/VisuallyHidden.wrn index 1023aa08..6d093b9c 100644 --- a/packages/ui/components/VisuallyHidden.wrn +++ b/packages/ui/components/VisuallyHidden.wrn @@ -1 +1,8 @@ -component VisuallyHidden { props { className = "" } view {
    } } +component VisuallyHidden { + props { + className = "" + } + view { +
    + } +} diff --git a/packages/ui/components/avatar.wrn b/packages/ui/components/avatar.wrn index 31d858b6..0dd934e5 100644 --- a/packages/ui/components/avatar.wrn +++ b/packages/ui/components/avatar.wrn @@ -1 +1,11 @@ -component Avatar { props { src = "" alt = "" initials = "WR" size = "md" } view { {alt} } } +component Avatar { + props { + src = "" + alt = "" + initials = "WR" + size = "md" + } + view { + {alt} + } +} diff --git a/packages/ui/components/badge.wrn b/packages/ui/components/badge.wrn index edc169f7..7bd696b5 100644 --- a/packages/ui/components/badge.wrn +++ b/packages/ui/components/badge.wrn @@ -1 +1,9 @@ -component Badge { props { label = "Badge" variant = "neutral" } view { {label} } } +component Badge { + props { + label = "Badge" + variant = "neutral" + } + view { + {label} + } +} diff --git a/packages/ui/components/button.wrn b/packages/ui/components/button.wrn index 8a7187e9..d20ff2a5 100644 --- a/packages/ui/components/button.wrn +++ b/packages/ui/components/button.wrn @@ -1,5 +1,14 @@ component Button { - props { label = "Button" type = "button" variant = "primary" size = "md" disabled = false loading = false icon = "" className = "" } + props { + label = "Button" + type = "button" + variant = "primary" + size = "md" + disabled = false + loading = false + icon = "" + className = "" + } view { } } +component Switch { + props { + id = "" + name = "" + label = "Switch" + description = "" + checked = false + disabled = false + } + state on = checked + view { + + } +} diff --git a/packages/ui/components/table.wrn b/packages/ui/components/table.wrn index 00e7c083..a9820020 100644 --- a/packages/ui/components/table.wrn +++ b/packages/ui/components/table.wrn @@ -1 +1,9 @@ -component Table { props { caption = "Data table" responsive = true } view {
    {caption}
    } } +component Table { + props { + caption = "Data table" + responsive = true + } + view { +
    {caption}
    + } +} diff --git a/packages/ui/components/textarea.wrn b/packages/ui/components/textarea.wrn index 2cf1bcd6..1c81bb9e 100644 --- a/packages/ui/components/textarea.wrn +++ b/packages/ui/components/textarea.wrn @@ -1 +1,17 @@ -component Textarea { props { id = "" name = "" label = "Message" value = "" placeholder = "" rows = 5 help = "" error = "" required = false disabled = false } view {

    {help}

    } } +component Textarea { + props { + id = "" + name = "" + label = "Message" + value = "" + placeholder = "" + rows = 5 + help = "" + error = "" + required = false + disabled = false + } + view { +

    {help}

    + } +} diff --git a/packages/ui/components/tooltip.wrn b/packages/ui/components/tooltip.wrn index 828b27e6..58c1b613 100644 --- a/packages/ui/components/tooltip.wrn +++ b/packages/ui/components/tooltip.wrn @@ -1 +1,9 @@ -component Tooltip { props { text = "Helpful information" position = "top" } view { {text} } } +component Tooltip { + props { + text = "Helpful information" + position = "top" + } + view { + {text} + } +} diff --git a/packages/ui/package.json b/packages/ui/package.json index 2241a6ae..ca5953a9 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ui", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/ui/test/ui.test.ts b/packages/ui/test/ui.test.ts index b278ab41..39e27fe1 100644 --- a/packages/ui/test/ui.test.ts +++ b/packages/ui/test/ui.test.ts @@ -1,6 +1,7 @@ import { expect, test } from "bun:test"; import { readFileSync } from "node:fs"; import { join } from "node:path"; +import { compileWireFile } from "../../compiler/src/index.ts"; import { uiComponentNames, uiComponentsDir, uiCss } from "../src/index.ts"; test("bundled UI assets are discoverable and readable", () => { @@ -8,3 +9,8 @@ test("bundled UI assets are discoverable and readable", () => { expect(readFileSync(join(uiComponentsDir(), "Button.wrn"), "utf8")).toContain("component Button"); expect(uiCss()).toContain("--wire-"); }); + +test.each(uiComponentNames())("bundled UI component %s compiles", (name) => { + const path = join(uiComponentsDir(), `${name}.wrn`); + expect(() => compileWireFile(readFileSync(path, "utf8"), path)).not.toThrow(); +}); diff --git a/packages/uploader/package.json b/packages/uploader/package.json index 63619b7f..82ca40bc 100644 --- a/packages/uploader/package.json +++ b/packages/uploader/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/uploader", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/validation/package.json b/packages/validation/package.json index 78fb2c9e..f18249f2 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/validation", - "version": "0.2.50", + "version": "0.2.51", "private": true, "type": "module", "main": "src/index.ts", diff --git a/update-package-versions.mjs b/update-package-versions.mjs index c7f9dac4..2835856e 100644 --- a/update-package-versions.mjs +++ b/update-package-versions.mjs @@ -1,7 +1,7 @@ import { existsSync, readdirSync, readFileSync, writeFileSync } from "node:fs"; import { join } from "node:path"; -const version = "0.2.50"; +const version = "0.2.51"; const dependencyGroups = [ "dependencies",