From d13d253c2f58c45a160e15add44b359f1d494245 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Sun, 9 Aug 2026 16:27:08 +0200 Subject: [PATCH] =?UTF-8?q?chore(web):=20@unom/ui=200.8.16=20=E2=86=92=200?= =?UTF-8?q?.9.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Brings the console onto the current design system. 0.9.x adds the Badge, Spinner, Skeleton, Switch, Table, EmptyState and CodeBlock primitives, and 0.9.2 carries the form fixes found while overhauling the rom-manager plugin UI: - Select's border and focus ring resolved to `--main`, which is the FOREGROUND here (`--main: var(--foreground)` in web/src/styles.css), so the trigger wore a near-white border and a 3px near-white focus ring. Its chevron and placeholder were painted `--secondary`, a SURFACE colour, and all but vanished. Now on `--input`/`--ring`, the same tokens InputText already used. - InputNumber declares a color-scheme, so the browser-drawn spinner arrows stop being near-black on a near-black field. Both defects were live in this console too — the console palette is what exposes them. Verified: codegen + vite build clean, `tsc --noEmit` clean, `bun test server/` 9/9, Storybook builds, 31/31 screenshots. A probe over all 61 stories reports ZERO page errors, and the two stories containing a Select now render it at h-input-height with `border: rgb(42, 33, 72)` (the input token) and a muted-foreground chevron. Note: the console's components/ui/ wrapper layer is unchanged and still required — @unom/ui's DialogContent remains a surface with no Portal or placement, which is exactly what web/src/components/ui/dialog.tsx supplies. --- web/bun.lock | 4 +- web/bun.nix | 8 +-- web/package.json | 146 +++++++++++++++++++++++------------------------ 3 files changed, 79 insertions(+), 79 deletions(-) diff --git a/web/bun.lock b/web/bun.lock index e1c2d0ff..40291304 100644 --- a/web/bun.lock +++ b/web/bun.lock @@ -10,7 +10,7 @@ "@tanstack/react-router": "^1.170.18", "@tanstack/react-start": "^1.168.32", "@unom/style": "^0.4.4", - "@unom/ui": "^0.8.16", + "@unom/ui": "^0.9.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.469.0", @@ -982,7 +982,7 @@ "@unom/style": ["@unom/style@0.4.4", "https://git.unom.io/api/packages/unom/npm/%40unom%2Fstyle/-/0.4.4/style-0.4.4.tgz", { "peerDependencies": { "motion": "^12" } }, "sha512-M45nihK+LGyxwy2mmHYRKggaocTt+EKNVFNaMpTvTaIUpozi7bmKIkbM2/enMYS0/UYTaZrBSZs/a0nPXqkAKw=="], - "@unom/ui": ["@unom/ui@0.8.16", "https://git.unom.io/api/packages/unom/npm/%40unom%2Fui/-/0.8.16/ui-0.8.16.tgz", { "dependencies": { "@tanstack/react-router": "^1.170.11", "@tsdown/css": "^0.22.1", "clsx": "^2.1.1", "howler": "^2.2.4", "sonner": "^2.0.7", "tailwind-merge": "^3.6.0" }, "peerDependencies": { "@payloadcms/richtext-lexical": "^3.85.0", "@tanstack/react-virtual": "^3.14.2", "@unom/style": "^0.4.4", "class-variance-authority": "^0.7.1", "embla-carousel-react": "^8.6.0", "lucide-react": "^1.17.0", "motion": "^12.40.0", "radix-ui": "^1.4.3", "react": "^19.2.7", "react-dom": "^19.2.7", "typescript": "^6.0.3", "zod": "^4.4.3" } }, "sha512-ZH7VOyaRDT81VY8nm1hmx8a4CeObykP8egZbnV4Nju6kE8rQ28wdpBo0X+Zsdu8WvTEmHZGwPR53NHWJULyciw=="], + "@unom/ui": ["@unom/ui@0.9.2", "https://git.unom.io/api/packages/unom/npm/%40unom%2Fui/-/0.9.2/ui-0.9.2.tgz", { "dependencies": { "@tanstack/react-router": "^1.170.11", "@tsdown/css": "^0.22.1", "clsx": "^2.1.1", "howler": "^2.2.4", "sonner": "^2.0.7", "tailwind-merge": "^3.6.0" }, "peerDependencies": { "@payloadcms/richtext-lexical": "^3.85.0", "@tanstack/react-virtual": "^3.14.2", "@unom/style": "^0.4.4", "class-variance-authority": "^0.7.1", "embla-carousel-react": "^8.6.0", "lucide-react": "^1.17.0", "motion": "^12.40.0", "radix-ui": "^1.4.3", "react": "^19.2.7", "react-dom": "^19.2.7", "typescript": "^6.0.3", "zod": "^4.4.3" } }, "sha512-UbpNQEu6zRNMkAxsINRj6HvT53ty7+/QxN3TZv6WgQd/rLiLe767mjz4Zh765ASc3NY7EguHqVNuWX6L7V9TLA=="], "@vercel/nft": ["@vercel/nft@1.10.2", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", "acorn": "^8.6.0", "acorn-import-attributes": "^1.9.5", "async-sema": "^3.1.1", "bindings": "^1.4.0", "estree-walker": "2.0.2", "glob": "^13.0.0", "graceful-fs": "^4.2.9", "node-gyp-build": "^4.2.2", "picomatch": "^4.0.2", "resolve-from": "^5.0.0" }, "bin": { "nft": "out/cli.js" } }, "sha512-w+WyX5Ulmj4dtTZrxaulqrjaLZHSbnPzx75SJsTNYmotKsqn1JlLnDJa+lz5hn90HJofhl/2MAtw0mCrgM3qYw=="], diff --git a/web/bun.nix b/web/bun.nix index 12f9df09..5fa68eb2 100644 --- a/web/bun.nix +++ b/web/bun.nix @@ -1902,10 +1902,10 @@ hash = "sha512-M45nihK+LGyxwy2mmHYRKggaocTt+EKNVFNaMpTvTaIUpozi7bmKIkbM2/enMYS0/UYTaZrBSZs/a0nPXqkAKw=="; name = "style-0.4.4.tgz"; }; - "@unom/ui@0.8.16" = fetchurl { - url = "https://git.unom.io/api/packages/unom/npm/%40unom%2Fui/-/0.8.16/ui-0.8.16.tgz"; - hash = "sha512-ZH7VOyaRDT81VY8nm1hmx8a4CeObykP8egZbnV4Nju6kE8rQ28wdpBo0X+Zsdu8WvTEmHZGwPR53NHWJULyciw=="; - name = "ui-0.8.16.tgz"; + "@unom/ui@0.9.2" = fetchurl { + url = "https://git.unom.io/api/packages/unom/npm/%40unom%2Fui/-/0.9.2/ui-0.9.2.tgz"; + hash = "sha512-UbpNQEu6zRNMkAxsINRj6HvT53ty7+/QxN3TZv6WgQd/rLiLe767mjz4Zh765ASc3NY7EguHqVNuWX6L7V9TLA=="; + name = "ui-0.9.2.tgz"; }; "@vercel/nft@1.10.2" = fetchurl { url = "https://registry.npmjs.org/@vercel/nft/-/nft-1.10.2.tgz"; diff --git a/web/package.json b/web/package.json index 9d18da1b..e16fcd06 100644 --- a/web/package.json +++ b/web/package.json @@ -1,75 +1,75 @@ { - "name": "punktfunk-web", - "private": true, - "type": "module", - "description": "punktfunk management console \u2014 TanStack Start + React Query (orval) + @unom/ui + Paraglide i18n", - "scripts": { - "prepare": "bun run codegen", - "postinstall": "bun2nix -o bun.nix", - "codegen": "orval --config orval.config.ts && paraglide-js compile --project ./project.inlang --outdir ./src/paraglide && node tools/check-i18n.mjs", - "predev": "orval --config orval.config.ts", - "dev": "vite dev --port 47992", - "prebuild": "orval --config orval.config.ts", - "build": "vite build", - "postbuild": "node tools/check-i18n.mjs", - "start": "bun run .output/server/index.mjs", - "api:gen": "orval --config orval.config.ts", - "lint": "tsc --noEmit", - "test": "bun test server/", - "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build", - "screenshots": "node tools/screenshots.mjs", - "screenshots:build": "bun run build-storybook && node tools/screenshots.mjs" - }, - "dependencies": { - "@fontsource-variable/geist": "^5.3.0", - "@tanstack/react-query": "^5.101.4", - "@tanstack/react-router": "^1.170.18", - "@tanstack/react-start": "^1.168.32", - "@unom/style": "^0.4.4", - "@unom/ui": "^0.8.16", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "lucide-react": "^0.469.0", - "motion": "^12.42.2", - "radix-ui": "^1.6.4", - "react": "^19.2.8", - "react-dom": "^19.2.8", - "recharts": "^3.10.0", - "tailwind-merge": "^2.6.1", - "zod": "^4.4.3" - }, - "devDependencies": { - "@biomejs/biome": "^2.5.5", - "@inlang/paraglide-js": "^2.22.0", - "@inlang/plugin-message-format": "^4.4.0", - "@storybook/react-vite": "^10.5.3", - "@tailwindcss/vite": "^4.3.3", - "@tanstack/nitro-v2-vite-plugin": "^1.155.0", - "@types/node": "^22.20.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^5.2.0", - "bun2nix": "2.1.2", - "orval": "^8.22.0", - "playwright": "^1.61.1", - "storybook": "^10.5.3", - "tailwindcss": "^4.3.3", - "tw-animate-css": "^1.4.0", - "typescript": "^5.9.3", - "vite": "^7.3.6", - "vite-tsconfig-paths": "^5.1.4" - }, - "overrides": { - "tar": "^7.5.21", - "dompurify": "^3.4.12", - "linkify-it": "^5.0.2", - "sharp": "^0.35.3", - "fast-uri": "^3.1.5", - "immutable": "^4.3.9", - "undici": "^7.29.0", - "postcss": "^8.5.25", - "js-yaml": "^4.3.0", - "brace-expansion": "^5.0.9" - } + "name": "punktfunk-web", + "private": true, + "type": "module", + "description": "punktfunk management console — TanStack Start + React Query (orval) + @unom/ui + Paraglide i18n", + "scripts": { + "prepare": "bun run codegen", + "postinstall": "bun2nix -o bun.nix", + "codegen": "orval --config orval.config.ts && paraglide-js compile --project ./project.inlang --outdir ./src/paraglide && node tools/check-i18n.mjs", + "predev": "orval --config orval.config.ts", + "dev": "vite dev --port 47992", + "prebuild": "orval --config orval.config.ts", + "build": "vite build", + "postbuild": "node tools/check-i18n.mjs", + "start": "bun run .output/server/index.mjs", + "api:gen": "orval --config orval.config.ts", + "lint": "tsc --noEmit", + "test": "bun test server/", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build", + "screenshots": "node tools/screenshots.mjs", + "screenshots:build": "bun run build-storybook && node tools/screenshots.mjs" + }, + "dependencies": { + "@fontsource-variable/geist": "^5.3.0", + "@tanstack/react-query": "^5.101.4", + "@tanstack/react-router": "^1.170.18", + "@tanstack/react-start": "^1.168.32", + "@unom/style": "^0.4.4", + "@unom/ui": "^0.9.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.469.0", + "motion": "^12.42.2", + "radix-ui": "^1.6.4", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "recharts": "^3.10.0", + "tailwind-merge": "^2.6.1", + "zod": "^4.4.3" + }, + "devDependencies": { + "@biomejs/biome": "^2.5.5", + "@inlang/paraglide-js": "^2.22.0", + "@inlang/plugin-message-format": "^4.4.0", + "@storybook/react-vite": "^10.5.3", + "@tailwindcss/vite": "^4.3.3", + "@tanstack/nitro-v2-vite-plugin": "^1.155.0", + "@types/node": "^22.20.1", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.2.0", + "bun2nix": "2.1.2", + "orval": "^8.22.0", + "playwright": "^1.61.1", + "storybook": "^10.5.3", + "tailwindcss": "^4.3.3", + "tw-animate-css": "^1.4.0", + "typescript": "^5.9.3", + "vite": "^7.3.6", + "vite-tsconfig-paths": "^5.1.4" + }, + "overrides": { + "tar": "^7.5.21", + "dompurify": "^3.4.12", + "linkify-it": "^5.0.2", + "sharp": "^0.35.3", + "fast-uri": "^3.1.5", + "immutable": "^4.3.9", + "undici": "^7.29.0", + "postcss": "^8.5.25", + "js-yaml": "^4.3.0", + "brace-expansion": "^5.0.9" + } }