fix(studio): deploy complete interactive gallery and rounded switches

This commit is contained in:
Clintchiz committed 2026-10-19 17:45:42 +05:30
1 parent a1dc8ecd91
commit 5da1e33ee1
5 files changed
+65 -37

No files matched your search

+6 -2
View File
@@ -150,7 +150,7 @@ The complete check includes mocked provider contract/error/lock tests and a
compiled-server deployment check. A real APIMart completion requires your key
and model access; it is not claimed by the mocked tests.
Studio 0.1.3 offers 13 presets and comparison choices: Square, Soft, Angular,
Studio 0.1.4 offers 13 presets and comparison choices: Square, Soft, Angular,
Swiss, Forest, Ocean, Rose, Violet, Ember, Editorial, Terminal, Brutalist and
Contrast. Each supports light and dark mode. The first valid generated proposal
appears in the large preview automatically; Review switches alternatives without
@@ -179,10 +179,14 @@ load failures instead of leaving the editor permanently at Checking.
### Linux component previews
Studio is pinned to 0.1.3, which resolves component files through the UI registry
Studio is pinned to 0.1.4, which resolves component files through the UI registry
instead of assuming a filename from the public component name. This fixes Linux
lookups such as Input -> input.wrn. Install the committed lockfile before
rebuilding and restarting; restarting a deployment still using Studio 0.1.0
cannot fix this error. Tests enforce exact casing for the installed package on
all platforms, and the production check renders the composed preview plus every
component gallery page.
### Interactive Studio gallery
Choose Component gallery in the preview Content menu, then select pages 1–7. Each of the 104 entries has populated sample data and local icons. Controls use their shipped browser functions; charts and workflow graphs include their real runtimes. Sample events appear below each example. Preview links stay in the demo; forms and uploads do not submit data. Switch tracks stay rounded across presets and existing drafts. The editor reports when the preview is rendering, ready or unable to load.
+10 -8
View File
@@ -6,14 +6,14 @@
"name": "component-showcase",
"dependencies": {
"@wrnexus/core": "0.8.25",
"@wrnexus/design-studio": "0.1.3",
"@wrnexus/design-system": "0.1.0",
"@wrnexus/design-studio": "0.1.4",
"@wrnexus/design-system": "0.1.1",
"@wrnexus/dev-server": "0.8.83",
"@wrnexus/helpers": "0.8.10",
"@wrnexus/plugin": "0.8.10",
"@wrnexus/styles": "0.8.27",
"@wrnexus/syntax": "0.8.20",
"@wrnexus/ui": "0.8.118",
"@wrnexus/ui": "0.8.120",
},
"devDependencies": {
"@iconify-json/lucide": "^1.2.123",
@@ -21,7 +21,7 @@
"@tailwindcss/cli": "^4.3.3",
"@types/bun": "^1.3.14",
"@wrnexus/cli": "0.8.77",
"@wrnexus/compiler": "0.8.44",
"@wrnexus/compiler": "0.8.45",
"happy-dom": "^20.11.6",
"prettier": "^3.6.2",
"tailwindcss": "^4.3.3",
@@ -156,7 +156,7 @@
"@wrnexus/cli": ["@wrnexus/cli@0.8.77", "https://registry.workroot.in/repository/npm/@wrnexus/cli/-/cli-0.8.77.tgz", { "dependencies": { "@wrnexus/authz": "^0.8.16", "@wrnexus/compiler": "^0.8.44", "@wrnexus/core": "^0.8.25", "@wrnexus/csr": "^0.8.74", "@wrnexus/db": "^0.8.24", "@wrnexus/design-system": "^0.1.0", "@wrnexus/dev-server": "^0.8.83", "@wrnexus/i18n": "^0.8.13", "@wrnexus/mcp": "^0.8.9", "@wrnexus/playground": "^0.8.9", "@wrnexus/plugin": "^0.8.10", "@wrnexus/react": "^0.8.10", "@wrnexus/router": "^0.8.11", "@wrnexus/security": "^0.8.10", "@wrnexus/styles": "^0.8.27", "@wrnexus/syntax": "^0.8.20", "@wrnexus/typecheck": "^0.8.18", "@wrnexus/ui": "^0.8.118", "@wrnexus/validation": "^0.8.14", "selfsigned": "^5.5.0" }, "bin": { "wrnexus": "dist/index.js" } }, "sha512-zFkifdFVwkcja9H8ctEZMPD5khBqmhp32yqSGjBvJnfuFCBdaRB9U5uCkqBbPCQUELrqTvCG2lafvQaptBo8xQ=="],
"@wrnexus/compiler": ["@wrnexus/compiler@0.8.44", "https://registry.workroot.in/repository/npm/@wrnexus/compiler/-/compiler-0.8.44.tgz", { "dependencies": { "@wrnexus/csr": "^0.8.74", "@wrnexus/store": "^0.8.13", "@wrnexus/syntax": "^0.8.20", "@wrnexus/validation": "^0.8.14" } }, "sha512-TJ3qPfD+2VsmpuVXgA6CUIlv2fqU2tW8xrIvHUFkGYJpVzF5jbSBUsoHNDfCT9/t5gw3CGazJnPqgzdcIm5XCg=="],
"@wrnexus/compiler": ["@wrnexus/compiler@0.8.45", "https://registry.workroot.in/repository/npm/@wrnexus/compiler/-/compiler-0.8.45.tgz", { "dependencies": { "@wrnexus/csr": "^0.8.74", "@wrnexus/store": "^0.8.13", "@wrnexus/syntax": "^0.8.20", "@wrnexus/validation": "^0.8.14" } }, "sha512-+VU+9XZibx1+vEUXCk//dacHloQq55MQsh+AZ9KnXVQjpC9Xa4bLHI7AEOTCLvJcNezaU+4k6mRbdEmmvT2Kdw=="],
"@wrnexus/core": ["@wrnexus/core@0.8.25", "https://registry.workroot.in/repository/npm/@wrnexus/core/-/core-0.8.25.tgz", {}, "sha512-od4TyDIKoX0RhjTDq+1HJ5fGQPID04Ao+BvWEkJU0beWRbXLZ6u5iRsh58+h/T2so8NSI9sW4rorC4N+BSMaqQ=="],
@@ -164,9 +164,9 @@
"@wrnexus/db": ["@wrnexus/db@0.8.24", "https://registry.workroot.in/repository/npm/@wrnexus/db/-/db-0.8.24.tgz", {}, "sha512-zLT7e+C1nWhYs3BnqEjEO0QSli0JNl5sSnSHObjSX0C+wty30ASWD1WyBnfu9xFjOFn1eucZGthzo1xdGGQ1TQ=="],
"@wrnexus/design-studio": ["@wrnexus/design-studio@0.1.3", "https://registry.workroot.in/repository/npm/@wrnexus/design-studio/-/design-studio-0.1.3.tgz", { "dependencies": { "@wrnexus/ai": "^0.8.10", "@wrnexus/compiler": "^0.8.44", "@wrnexus/core": "^0.8.25", "@wrnexus/csr": "^0.8.74", "@wrnexus/design-system": "^0.1.0", "@wrnexus/ssr": "^0.8.20", "@wrnexus/styles": "^0.8.27", "@wrnexus/ui": "^0.8.118" }, "bin": { "wrnexus-design-studio": "dist/cli.js" } }, "sha512-egL4uYsRxiVotuq63cakjSbay4z/uDfQr0rhPDoQa+SriIJHlkRFvPbNxv2p4d4Fy/9uMnGmmgqA6VsgeuFKaA=="],
"@wrnexus/design-studio": ["@wrnexus/design-studio@0.1.4", "https://registry.workroot.in/repository/npm/@wrnexus/design-studio/-/design-studio-0.1.4.tgz", { "dependencies": { "@iconify-json/lucide": "1.2.123", "@wrnexus/ai": "^0.8.10", "@wrnexus/compiler": "^0.8.45", "@wrnexus/core": "^0.8.25", "@wrnexus/csr": "^0.8.74", "@wrnexus/design-system": "^0.1.1", "@wrnexus/ssr": "^0.8.20", "@wrnexus/styles": "^0.8.27", "@wrnexus/ui": "^0.8.120" }, "bin": { "wrnexus-design-studio": "dist/cli.js" } }, "sha512-LWCyd/oe3IxR1HCr8T3mXgIGFc9uQiaZdAiNVikUk7IAIzPNK7v3ygFw2tcW01ZPqvtvonewWkeDzKRUI1tMiA=="],
"@wrnexus/design-system": ["@wrnexus/design-system@0.1.0", "https://registry.workroot.in/repository/npm/@wrnexus/design-system/-/design-system-0.1.0.tgz", {}, "sha512-gNH/B+kYYZy+Pvlvl3gXoQZlTS6iP/teXct2MoClmsGp6M1vKa8IEptVXKs7po3E83zj5kSh3FIXwcBJHtZqLg=="],
"@wrnexus/design-system": ["@wrnexus/design-system@0.1.1", "https://registry.workroot.in/repository/npm/@wrnexus/design-system/-/design-system-0.1.1.tgz", {}, "sha512-Vq1jq9x4ZBBGizE4r/ZiVyi5GnrejIezIFM3lLp21ES0DymaN8jMQawp1V2WdfgELhT/5PHqyK6iW9ZhiurLxg=="],
"@wrnexus/dev-server": ["@wrnexus/dev-server@0.8.83", "https://registry.workroot.in/repository/npm/@wrnexus/dev-server/-/dev-server-0.8.83.tgz", { "dependencies": { "@wrnexus/authz": "^0.8.16", "@wrnexus/cache": "^0.8.9", "@wrnexus/compiler": "^0.8.44", "@wrnexus/core": "^0.8.25", "@wrnexus/csr": "^0.8.74", "@wrnexus/db": "^0.8.24", "@wrnexus/dev-toolbar": "^0.8.19", "@wrnexus/i18n": "^0.8.13", "@wrnexus/observability": "^0.8.9", "@wrnexus/plugin": "^0.8.10", "@wrnexus/pubsub": "^0.8.10", "@wrnexus/pwa": "^0.8.13", "@wrnexus/queue": "^0.8.15", "@wrnexus/react": "^0.8.10", "@wrnexus/router": "^0.8.11", "@wrnexus/rpc": "^0.8.11", "@wrnexus/security": "^0.8.10", "@wrnexus/ssr": "^0.8.20", "@wrnexus/store": "^0.8.13", "@wrnexus/styles": "^0.8.27", "@wrnexus/ui": "^0.8.118", "@wrnexus/uploader": "^0.8.14", "@wrnexus/validation": "^0.8.14" } }, "sha512-Ue6Q2KF7nZycvghRvWQBC9PA0DZ2aE+8fC3FaIFMkbID9HLK64Xe+MgMnLDJvQ7mlBJlC+9Ztj8yOYqSavtq1g=="],
@@ -210,7 +210,7 @@
"@wrnexus/typecheck": ["@wrnexus/typecheck@0.8.18", "https://registry.workroot.in/repository/npm/@wrnexus/typecheck/-/typecheck-0.8.18.tgz", { "dependencies": { "@wrnexus/syntax": "^0.8.20", "typescript": "^6.0.3" } }, "sha512-oS5x6hUs6VUNEupDARzFTzXvvdRAV6l8nO3wi+5rdfeDIDSz/5QNeQfVwzJg7SDGVkuTVOHH8lqyiMtSW+8Nbg=="],
"@wrnexus/ui": ["@wrnexus/ui@0.8.118", "https://registry.workroot.in/repository/npm/@wrnexus/ui/-/ui-0.8.118.tgz", { "dependencies": { "@wrnexus/core": "^0.8.25", "@wrnexus/design-system": "^0.1.0", "@wrnexus/plugin": "^0.8.10", "chart.js": "^4.5.1", "drawflow": "0.0.60" } }, "sha512-a0RWv3P+Z0f19Pqvaq+mHcBrAYni1k8iXQKMf9r83rYp3m6V4e00Fahg661VcF4Y6o3SAn151YVTH3zrRwsaWw=="],
"@wrnexus/ui": ["@wrnexus/ui@0.8.120", "https://registry.workroot.in/repository/npm/@wrnexus/ui/-/ui-0.8.120.tgz", { "dependencies": { "@wrnexus/core": "^0.8.25", "@wrnexus/design-system": "^0.1.1", "@wrnexus/plugin": "^0.8.10", "chart.js": "^4.5.1", "drawflow": "0.0.60" } }, "sha512-4bzaxzv3mE2NnzdLmZnxUxvvMAlr64kLEmkw29ZpRBBDT9CpVGXQQwkBMBvlKCp9sR2y4Yk5+KwfzQMEUk7mOQ=="],
"@wrnexus/uploader": ["@wrnexus/uploader@0.8.14", "https://registry.workroot.in/repository/npm/@wrnexus/uploader/-/uploader-0.8.14.tgz", { "dependencies": { "@wrnexus/core": "^0.8.25", "@wrnexus/plugin": "^0.8.10", "@wrnexus/ui": "^0.8.118" } }, "sha512-LticgG17uYu65IYRNDGagtvjfdUNrVHR2drbv6r/J4pycNX6CcGGn0hbjZFPA1uSHfH/hp//hA+KTOcoE14aMQ=="],
@@ -370,6 +370,8 @@
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
"@wrnexus/design-studio/@iconify-json/lucide": ["@iconify-json/lucide@1.2.123", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-0CozmpKXEOEEhltrfT2zt+/t1hez67Y+hM2VJWoIcBKdBrb83VYuKf+b5A0QU9HfQm+RNn2GjFWlTOwi+Ss6IA=="],
"@wrnexus/typecheck/typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="],
"csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="],
+30 -21
View File
@@ -9,14 +9,14 @@
"version": "0.8.8",
"dependencies": {
"@wrnexus/core": "0.8.25",
"@wrnexus/design-studio": "0.1.3",
"@wrnexus/design-system": "0.1.0",
"@wrnexus/design-studio": "0.1.4",
"@wrnexus/design-system": "0.1.1",
"@wrnexus/dev-server": "0.8.83",
"@wrnexus/helpers": "0.8.10",
"@wrnexus/plugin": "0.8.10",
"@wrnexus/styles": "0.8.27",
"@wrnexus/syntax": "0.8.20",
"@wrnexus/ui": "0.8.118"
"@wrnexus/ui": "0.8.120"
},
"devDependencies": {
"@iconify-json/lucide": "^1.2.123",
@@ -24,7 +24,7 @@
"@tailwindcss/cli": "^4.3.3",
"@types/bun": "^1.3.14",
"@wrnexus/cli": "0.8.77",
"@wrnexus/compiler": "0.8.44",
"@wrnexus/compiler": "0.8.45",
"happy-dom": "^20.11.6",
"prettier": "^3.6.2",
"tailwindcss": "^4.3.3",
@@ -93,7 +93,6 @@
},
"node_modules/@iconify/types": {
"version": "2.0.0",
"dev": true,
"license": "MIT"
},
"node_modules/@iconify/utils": {
@@ -1141,9 +1140,9 @@
}
},
"node_modules/@wrnexus/compiler": {
"version": "0.8.44",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/compiler/-/compiler-0.8.44.tgz",
"integrity": "sha512-TJ3qPfD+2VsmpuVXgA6CUIlv2fqU2tW8xrIvHUFkGYJpVzF5jbSBUsoHNDfCT9/t5gw3CGazJnPqgzdcIm5XCg==",
"version": "0.8.45",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/compiler/-/compiler-0.8.45.tgz",
"integrity": "sha512-+VU+9XZibx1+vEUXCk//dacHloQq55MQsh+AZ9KnXVQjpC9Xa4bLHI7AEOTCLvJcNezaU+4k6mRbdEmmvT2Kdw==",
"license": "MIT",
"dependencies": {
"@wrnexus/csr": "^0.8.74",
@@ -1186,19 +1185,20 @@
}
},
"node_modules/@wrnexus/design-studio": {
"version": "0.1.3",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/design-studio/-/design-studio-0.1.3.tgz",
"integrity": "sha512-egL4uYsRxiVotuq63cakjSbay4z/uDfQr0rhPDoQa+SriIJHlkRFvPbNxv2p4d4Fy/9uMnGmmgqA6VsgeuFKaA==",
"version": "0.1.4",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/design-studio/-/design-studio-0.1.4.tgz",
"integrity": "sha512-LWCyd/oe3IxR1HCr8T3mXgIGFc9uQiaZdAiNVikUk7IAIzPNK7v3ygFw2tcW01ZPqvtvonewWkeDzKRUI1tMiA==",
"license": "MIT",
"dependencies": {
"@iconify-json/lucide": "1.2.123",
"@wrnexus/ai": "^0.8.10",
"@wrnexus/compiler": "^0.8.44",
"@wrnexus/compiler": "^0.8.45",
"@wrnexus/core": "^0.8.25",
"@wrnexus/csr": "^0.8.74",
"@wrnexus/design-system": "^0.1.0",
"@wrnexus/design-system": "^0.1.1",
"@wrnexus/ssr": "^0.8.20",
"@wrnexus/styles": "^0.8.27",
"@wrnexus/ui": "^0.8.118"
"@wrnexus/ui": "^0.8.120"
},
"bin": {
"wrnexus-design-studio": "dist/cli.js"
@@ -1207,10 +1207,19 @@
"bun": ">=1.3.0"
}
},
"node_modules/@wrnexus/design-studio/node_modules/@iconify-json/lucide": {
"version": "1.2.123",
"resolved": "https://registry.npmjs.org/@iconify-json/lucide/-/lucide-1.2.123.tgz",
"integrity": "sha512-0CozmpKXEOEEhltrfT2zt+/t1hez67Y+hM2VJWoIcBKdBrb83VYuKf+b5A0QU9HfQm+RNn2GjFWlTOwi+Ss6IA==",
"license": "ISC",
"dependencies": {
"@iconify/types": "*"
}
},
"node_modules/@wrnexus/design-system": {
"version": "0.1.0",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/design-system/-/design-system-0.1.0.tgz",
"integrity": "sha512-gNH/B+kYYZy+Pvlvl3gXoQZlTS6iP/teXct2MoClmsGp6M1vKa8IEptVXKs7po3E83zj5kSh3FIXwcBJHtZqLg==",
"version": "0.1.1",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/design-system/-/design-system-0.1.1.tgz",
"integrity": "sha512-Vq1jq9x4ZBBGizE4r/ZiVyi5GnrejIezIFM3lLp21ES0DymaN8jMQawp1V2WdfgELhT/5PHqyK6iW9ZhiurLxg==",
"license": "MIT",
"engines": {
"bun": ">=1.3.0"
@@ -1534,13 +1543,13 @@
}
},
"node_modules/@wrnexus/ui": {
"version": "0.8.118",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/ui/-/ui-0.8.118.tgz",
"integrity": "sha512-a0RWv3P+Z0f19Pqvaq+mHcBrAYni1k8iXQKMf9r83rYp3m6V4e00Fahg661VcF4Y6o3SAn151YVTH3zrRwsaWw==",
"version": "0.8.120",
"resolved": "https://registry.workroot.in/repository/npm/@wrnexus/ui/-/ui-0.8.120.tgz",
"integrity": "sha512-4bzaxzv3mE2NnzdLmZnxUxvvMAlr64kLEmkw29ZpRBBDT9CpVGXQQwkBMBvlKCp9sR2y4Yk5+KwfzQMEUk7mOQ==",
"license": "MIT",
"dependencies": {
"@wrnexus/core": "^0.8.25",
"@wrnexus/design-system": "^0.1.0",
"@wrnexus/design-system": "^0.1.1",
"@wrnexus/plugin": "^0.8.10",
"chart.js": "^4.5.1",
"drawflow": "0.0.60"
+4 -4
View File
@@ -27,9 +27,9 @@
"@wrnexus/plugin": "0.8.10",
"@wrnexus/styles": "0.8.27",
"@wrnexus/syntax": "0.8.20",
"@wrnexus/ui": "0.8.118",
"@wrnexus/design-studio": "0.1.3",
"@wrnexus/design-system": "0.1.0"
"@wrnexus/ui": "0.8.120",
"@wrnexus/design-studio": "0.1.4",
"@wrnexus/design-system": "0.1.1"
},
"devDependencies": {
"@iconify-json/lucide": "^1.2.123",
@@ -37,7 +37,7 @@
"@tailwindcss/cli": "^4.3.3",
"@types/bun": "^1.3.14",
"@wrnexus/cli": "0.8.77",
"@wrnexus/compiler": "0.8.44",
"@wrnexus/compiler": "0.8.45",
"happy-dom": "^20.11.6",
"prettier": "^3.6.2",
"tailwindcss": "^4.3.3",
+15 -2
View File
@@ -134,8 +134,21 @@ try {
`Component gallery page ${page + 1} failed: ${await gallery.text()}`,
);
const artifact = await gallery.json();
if (!(await fetch(origin + artifact.url)).ok)
throw Error(`Gallery page ${page + 1} did not render.`);
const rendered = await fetch(origin + artifact.url);
if (!rendered.ok) throw Error(`Gallery page ${page + 1} did not render.`);
const html = await rendered.text();
const count = (
html.match(/<section class="sample" data-gallery-component=/g) ?? []
).length;
if (
count !== (page === 6 ? 8 : 16) ||
!html.includes("bindPreview()") ||
/<div[^>]*data-component=/.test(html) ||
!html.includes("data:image/svg+xml,")
)
throw Error(
`Gallery page ${page + 1} is missing samples, icons or browser behavior.`,
);
}
console.log(
"Compiled server serves component pages, Studio assets, export-only APIs and previews on one port.",