build: the two builds that were red, and the Tailwind the root only pretended to have

`pnpm build` failed twice before reaching a single app:

  @hanzo/commerce  index.ts re-exported CardTokenizeRequest/CardTokenizeResult
                   from ./client, which 5022535ec deleted along with tokenizeCard.
                   The PCI removal took the types; the barrel kept naming them.
  cd               vite.config.ts aliased @hanzo/cd to ../../pkgs/gitops, a path
                   the package left when it was renamed to pkgs/cd, and typed its
                   `test` block through vite's defineConfig, which has no such key.

Both are now green, so `turbo run build` reaches all 21 tasks for the first time
on this line.

The root's Tailwind was never real. tailwind.config.cjs requires
@tailwindcss/container-queries, which is not installed — the config throws on
load, so nothing has read it in a long time. Its only referent was
.eslintrc.json, which ESLint 10 does not support at all (app/ and apps/v4 each
carry their own flat config, and neither mentions Tailwind). postcss.config.cjs
sat next to them for a root that has no build step. components.json pointed at
tailwind.config.js — a filename that has never existed here — and declared the
same "@hanzo" registry key twice.

So the root drops tailwindcss, @tailwindcss/oxide, tailwindcss-animate,
eslint-plugin-tailwindcss, autoprefixer and postcss. app/ and apps/v4 are
untouched: they declare every one of those themselves, which is why they still
build. This removes the pretence, not the styling.

While in package.json: --filter=hanzo, --filter=hanzo-ui, --filter=www and
--filter=app match no workspace project ("No projects matched the filters"), so
~20 scripts could only fail. The survivors are re-pointed at @hanzo/ui-web, the
name the app/ directory actually publishes under.

Verified: pnpm build → 21 successful, 21 total.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
This commit is contained in:
hanzo-dev
2026-08-03 17:46:10 -07:00
parent ae86ec8df7
commit c98de82ae1
10 changed files with 1104 additions and 2225 deletions
-8
View File
@@ -1,8 +0,0 @@
node_modules/
target/
.next/
build/
dist/
/templates/
/fixtures/
-32
View File
@@ -1,32 +0,0 @@
{
"$schema": "https://json.schemastore.org/eslintrc",
"root": true,
"extends": [
"next/core-web-vitals",
"turbo",
"prettier",
"plugin:tailwindcss/recommended"
],
"plugins": ["tailwindcss"],
"ignorePatterns": ["**/fixtures/**"],
"rules": {
"@next/next/no-html-link-for-pages": "off",
"tailwindcss/no-custom-classname": "off",
"tailwindcss/classnames-order": "error"
},
"settings": {
"tailwindcss": {
"callees": ["cn", "cva"],
"config": "tailwind.config.cjs"
},
"next": {
"rootDir": ["apps/*/"]
}
},
"overrides": [
{
"files": ["*.ts", "*.tsx"],
"parser": "@typescript-eslint/parser"
}
]
}
-1
View File
@@ -7,7 +7,6 @@
{ "pattern": "pkgs/*/" },
{ "pattern": "pkgs/*/" }
],
"tailwindCSS.classFunctions": ["cva", "cn"],
"vitest.debugExclude": [
"<node_internals>/**",
"**/node_modules/**",
+2 -3
View File
@@ -1,8 +1,7 @@
/// <reference types="vitest/config" />
import { fileURLToPath, URL } from "node:url"
import react from "@vitejs/plugin-react"
import { defineConfig } from "vite"
import { defineConfig } from "vitest/config"
/**
* Hanzo CD — a static SPA served at cd.hanzo.ai from the shared static plane
@@ -23,7 +22,7 @@ export default defineConfig({
resolve: {
dedupe: ["react", "react-dom"],
alias: {
"@hanzo/cd": r("../../pkgs/gitops/dist/index.mjs"),
"@hanzo/cd": r("../../pkgs/cd/dist/index.mjs"),
"@hanzo/canvas/pure": r("../../pkgs/canvas/src/pure.ts"),
},
},
-36
View File
@@ -1,36 +0,0 @@
{
"$schema": "https://ui.hanzo.ai/schema.json",
"style": "default",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.js",
"css": "app/globals.css",
"baseColor": "slate",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {
"@hanzo": "https://ui.hanzo.ai/r/{name}.json",
"@hanzo": "https://ui.hanzo.com/r/{name}.json",
"@acme": "https://ui.hanzo.ai/r/acme/{name}.json"
},
"resolvedPaths": {
"cwd": ".",
"path": ".",
"tailwindConfig": "./tailwind.config.js",
"tailwindCss": "./app/globals.css",
"utils": "./lib/utils",
"components": "./components",
"lib": "./lib",
"hooks": "./hooks",
"ui": "./components/ui"
}
}
+3 -27
View File
@@ -16,32 +16,16 @@
],
"scripts": {
"build": "turbo run build",
"build:cli": "turbo --filter=hanzo build",
"build:registry": "pnpm --filter=app build:registry && pnpm --filter=app lint:fix && pnpm format:write -- --loglevel silent",
"registry:build": "pnpm --filter=app registry:build && pnpm lint:fix && pnpm format:write -- --loglevel silent",
"registry:build": "pnpm --filter=@hanzo/ui-web registry:build && pnpm lint:fix && pnpm format:write -- --loglevel silent",
"registry": "turbo run registry",
"registry:capture": "pnpm --filter=app registry:capture",
"registry:capture": "pnpm --filter=@hanzo/ui-web registry:capture",
"examples:build": "pnpm --filter=v4 examples:build",
"dev": "turbo run dev --parallel",
"hanzo-ui:dev": "turbo --filter=hanzo-ui dev",
"hanzo-ui": "pnpm --filter=hanzo-ui start:dev",
"hanzo-ui:test": "pnpm --filter=hanzo-ui test",
"cli:dev": "turbo --filter=hanzo-ui dev",
"cli:start": "pnpm --filter=hanzo-ui start:dev",
"cli:build": "pnpm --filter=hanzo-ui build",
"hanzo:dev": "turbo --filter=hanzo dev",
"hanzo": "pnpm --filter=hanzo start:dev",
"hanzo:prod": "pnpm --filter=hanzo start:prod",
"hanzo:build": "pnpm --filter=hanzo build",
"hanzo:test": "pnpm --filter=hanzo test",
"shadcn:dev": "turbo --filter=shadcn dev",
"shadcn": "pnpm --filter=shadcn start:dev",
"shadcn:prod": "pnpm --filter=shadcn start:prod",
"shadcn:build": "pnpm --filter=shadcn build",
"shadcn:test": "pnpm --filter=shadcn test",
"docs:build": "pnpm --filter=www build:docs",
"www:dev": "pnpm --filter=www dev",
"www:build": "pnpm --filter=www build",
"v4:dev": "pnpm --filter=v4 dev",
"v4:build": "pnpm --filter=v4 build",
"lint": "turbo run lint",
@@ -52,9 +36,7 @@
"format:check": "turbo run format:check",
"sync:templates": "./scripts/sync-templates.sh \"templates/*\"",
"check": "bash scripts/check-no-brand-pkg.sh && turbo lint typecheck format:check",
"pub:beta": "cd pkgs/hanzo && pnpm pub:beta",
"pub:release": "cd pkgs/hanzo && pnpm pub:release",
"test:dev": "turbo run test --filter=!hanzo-ui --force",
"test:dev": "turbo run test --force",
"test": "start-server-and-test v4:dev http://localhost:4000 test:dev",
"validate:registries": "pnpm --filter=v4 validate:registries",
"test:apps": "pnpm --filter=v4 test:apps",
@@ -79,7 +61,6 @@
"@manypkg/cli": "^0.25.1",
"@tanstack/react-table": "^8.21.3",
"@typescript-eslint/parser": "^8.60.1",
"autoprefixer": "^10.5.0",
"chrono-node": "^2.9.1",
"eslint": "^10.4.1",
"eslint-config-next": "16.2.7",
@@ -88,17 +69,14 @@
"eslint-plugin-react": "^7.37.5",
"little-date": "^1.2.1",
"motion": "^12.40.0",
"postcss": "^8.5.15",
"puppeteer": "^25.1.0",
"recharts": "^3.8.1",
"tailwindcss-animate": "^1.0.7",
"tsx": "^4.22.4",
"vite-tsconfig-paths": "^6.1.1"
},
"devDependencies": {
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
"@playwright/test": "^1.60.0",
"@tailwindcss/oxide": "^4.3.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
@@ -112,7 +90,6 @@
"chalk": "^5.6.2",
"concurrently": "^10.0.3",
"cross-env": "^10.1.0",
"eslint-plugin-tailwindcss": "3.18.3",
"happy-dom": "^20.9.0",
"jest-axe": "^10.0.0",
"jsdom": "^29.1.1",
@@ -123,7 +100,6 @@
"react": "19.2.7",
"react-dom": "19.2.7",
"start-server-and-test": "^3.0.6",
"tailwindcss": "4.3.0",
"tsup": "^8.5.1",
"turbo": "^2.9.16",
"typescript": "^5.9.3",
-2
View File
@@ -30,8 +30,6 @@ export type {
CheckoutItem,
CheckoutSessionRequest,
CheckoutSessionResponse,
CardTokenizeRequest,
CardTokenizeResult,
PaymentMethod,
PaymentMethodType,
Referral,
+1099 -2021
View File
File diff suppressed because it is too large Load Diff
-6
View File
@@ -1,6 +0,0 @@
module.exports = {
plugins: {
'@tailwindcss/postcss': {},
autoprefixer: {},
},
}
-89
View File
@@ -1,89 +0,0 @@
const { fontFamily } = require("tailwindcss/defaultTheme")
/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: ["class"],
content: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}"],
theme: {
extend: {
fontFamily: {
sans: ["var(--font-basel-sans)", ...fontFamily.sans],
mono: ["var(--font-geist-mono)", ...fontFamily.mono],
},
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
primary: {
DEFAULT: "hsl(var(--primary))",
foreground: "hsl(var(--primary-foreground))",
},
secondary: {
DEFAULT: "hsl(var(--secondary))",
foreground: "hsl(var(--secondary-foreground))",
},
destructive: {
DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-foreground))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
sidebar: {
DEFAULT: "hsl(var(--sidebar-background))",
foreground: "hsl(var(--sidebar-foreground))",
primary: "hsl(var(--sidebar-primary))",
"primary-foreground": "hsl(var(--sidebar-primary-foreground))",
accent: "hsl(var(--sidebar-accent))",
"accent-foreground": "hsl(var(--sidebar-accent-foreground))",
border: "hsl(var(--sidebar-border))",
ring: "hsl(var(--sidebar-ring))",
},
},
borderRadius: {
xl: "calc(var(--radius) + 4px)",
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
keyframes: {
"accordion-down": {
from: { height: "0" },
to: { height: "var(--radix-accordion-content-height)" },
},
"accordion-up": {
from: { height: "var(--radix-accordion-content-height)" },
to: { height: "0" },
},
"caret-blink": {
"0%,70%,100%": { opacity: "1" },
"20%,50%": { opacity: "0" },
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
"caret-blink": "caret-blink 1.25s ease-out infinite",
},
},
},
plugins: [
require("tailwindcss-animate"),
require("@tailwindcss/container-queries"),
],
}