Files
esign/apps/remix/package.json
T
zeekay 597cfae467 Set the app in Zen on hanzo.ai's palette, with pill buttons
The theme takes @hanzo/ui DESIGN.md's values: a true-black page, #0a0a0a
surfaces, #171717 raised, #ededf1 ink and white-alpha hairlines in dark;
white, #0a0a0a ink and black-alpha hairlines in light. Each is an opaque
triplet, so Tailwind's alpha modifiers still apply.

Type is Zen and Zen Mono from @hanzo/font, at Zen's own weights. Buttons
are pills, the primary in the ink colour; the option cards built from a
Button keep a card's corners, and the folder actions wrap on a phone
rather than breaking a pill over two lines.
2026-10-20 12:47:20 -07:00

111 lines
3.6 KiB
JSON

{
"name": "@hanzo/esign-remix",
"private": true,
"type": "module",
"scripts": {
"build": "./.bin/build.sh",
"build:app": "npm run typecheck && cross-env NODE_ENV=production react-router build",
"build:server": "cross-env NODE_ENV=production rollup -c rollup.config.mjs",
"dev": "npm run with:env -- react-router dev",
"start": "npm run with:env -- cross-env NODE_ENV=production node build/server/main.js",
"clean": "rimraf .react-router && rimraf node_modules",
"typecheck": "react-router typegen && node ../../node_modules/tsgo/bin/tsc",
"with:env": "dotenv -e ../../.env -e ../../.env.local --"
},
"dependencies": {
"@cantoo/pdf-lib": "^2.9.1",
"@hanzo/esign-api": "*",
"@hanzo/esign-assets": "*",
"@hanzo/esign-auth": "*",
"@hanzo/esign-lib": "*",
"@hanzo/esign-prisma": "*",
"@hanzo/esign-tailwind-config": "*",
"@hanzo/esign-trpc": "*",
"@hanzo/esign-ui": "*",
"@hanzo/font": "1.9.3",
"@zap-proto/zap": "^1.6.0",
"@zap-proto/web": "^1.0.0",
"ws": "^8.21.3",
"@epic-web/remember": "^1.1.0",
"@faker-js/faker": "^10.6.0",
"@hono/node-server": "^2.1.1",
"@hono/standard-validator": "^0.4.0",
"@hookform/resolvers": "^5.9.1",
"@lingui/core": "^6.6.0",
"@lingui/detect-locale": "^6.6.0",
"@lingui/macro": "^5.9.5",
"@lingui/react": "^6.6.0",
"@oslojs/crypto": "^1.0.1",
"@oslojs/encoding": "^1.1.0",
"@react-router/node": "^7.15.1",
"@react-router/serve": "^7.15.1",
"@simplewebauthn/browser": "^13.3.0",
"@simplewebauthn/server": "^13.3.3",
"@tanstack/react-query": "^5.102.8",
"autoprefixer": "^10.5.4",
"colord": "^2.10.0",
"content-disposition": "^3.0.0",
"framer-motion": "^13.1.1",
"hono": "^4.13.5",
"hono-react-router-adapter": "^0.6.5",
"input-otp": "^1.5.0",
"isbot": "^5.1.40",
"konva": "^10.3.2",
"lucide-react": "^1.33.0",
"luxon": "^3.7.2",
"nanoid": "^6.0.1",
"papaparse": "^5.7.0",
"@hanzo/insights": "1.358.2",
"@hanzo/insights-node": "5.26.2",
"react": "19.2.8",
"react-call": "^2.0.2",
"react-dom": "19.2.8",
"react-dropzone": "^20.1.1",
"react-hook-form": "^7.86.0",
"react-hotkeys-hook": "^5.3.3",
"react-icons": "^5.7.0",
"react-rnd": "^10.5.3",
"react-router": "^7.15.1",
"recharts": "^3.10.1",
"remeda": "^2.45.0",
"remix-themes": "^2.0.4",
"satori": "^0.33.4",
"tailwindcss": "^3.4.19",
"ts-pattern": "^5.9.0",
"ua-parser-js": "^2.0.10",
"uqr": "^0.1.3"
},
"devDependencies": {
"@babel/core": "^8.0.1",
"@babel/preset-react": "^8.0.1",
"@babel/preset-typescript": "^8.0.1",
"@lingui/babel-plugin-lingui-macro": "^6.6.0",
"@lingui/vite-plugin": "^6.6.0",
"@react-router/dev": "^7.15.1",
"@react-router/remix-routes-option-adapter": "^8.3.1",
"@rollup/plugin-babel": "^7.1.0",
"@rollup/plugin-commonjs": "^29.0.3",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^16.0.3",
"@rollup/plugin-typescript": "^12.3.0",
"@types/content-disposition": "^0.5.9",
"@types/formidable": "^3.5.1",
"@types/luxon": "^3.7.5",
"@types/node": "26.4.0",
"@types/papaparse": "^5.5.2",
"@types/react": "19.2.18",
"@types/react-dom": "19.2.5",
"@types/ua-parser-js": "^0.7.39",
"cross-env": "^10.1.0",
"esbuild": "^0.28.2",
"remix-flat-routes": "^0.8.5",
"rollup": "^4.63.1",
"tsx": "^4.23.12",
"typescript": "6.0.3",
"vite": "^8.2.2",
"vite-plugin-babel-macros": "^1.0.6",
"vite-tsconfig-paths": "^6.1.1"
},
"version": "2.7.1"
}