mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-04 13:07:11 +00:00
* feat(studio): move every design value into one theme file Studio's design values lived in three places: a JS Tailwind preset, an inline @theme block, and raw hex and pixel literals in markup and CSS. theme.css is now the single owner. Tailwind v4 turns it into both the utility classes and the CSS custom properties, so markup, plain CSS and canvas code all read the same number. - semantic colour palette (background levels, surfaces, borders, text levels, accent, selection, playhead, danger, media, container), radii, control heights, the micro type scale, font stacks, shadows, easings and motion durations - the stock Tailwind palette is cleared with --color-*: initial, so a colour that is not a Studio token cannot be reached from markup; the entries Studio's markup still names are re-declared as deprecated aliases and removed once the sweep converts them - motion durations ship as @utility rules that zero themselves under prefers-reduced-motion, since Tailwind has no duration namespace - Phosphor icons get one default size and weight, read off the theme at the app root; icons that pass their own still win - published as @hyperframes/studio/theme.css; the JS preset export stays as a deprecated shim for v3 consumers, with a test that fails if the two drift apart * docs(studio): trim theme token comments to pass the comment-length gate * docs(studio): shorten theme test docblock to fit the comment gate * refactor(studio): collapse the duration utilities into one functional rule * refactor(studio): trim theme.css comments to three lines * test(studio): fail when a legacy palette entry is not a Tailwind default * fix(studio): keep the palette reset out of the exported theme.css * style(studio): format theme.css with the repo formatter * fix(studio): declare theme.css browser-only so the packed-consumer smoke does not import it in node
106 lines
3.1 KiB
JSON
106 lines
3.1 KiB
JSON
{
|
|
"name": "@hyperframes/studio",
|
|
"version": "0.8.50",
|
|
"description": "",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/heygen-com/hyperframes",
|
|
"directory": "packages/studio"
|
|
},
|
|
"files": [
|
|
"src",
|
|
"dist"
|
|
],
|
|
"type": "module",
|
|
"main": "./src/index.ts",
|
|
"types": "./src/index.ts",
|
|
"exports": {
|
|
".": {
|
|
"browser": "./src/index.ts",
|
|
"bun": "./src/index.ts",
|
|
"import": "./src/index.ts",
|
|
"types": "./src/index.ts"
|
|
},
|
|
"./tailwind-preset": {
|
|
"bun": "./src/styles/tailwind-preset.ts",
|
|
"import": "./src/styles/tailwind-preset.ts",
|
|
"types": "./src/styles/tailwind-preset.ts"
|
|
},
|
|
"./theme.css": "./src/styles/theme.css",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"publishConfig": {
|
|
"access": "public",
|
|
"exports": {
|
|
".": {
|
|
"import": "./dist/index.js",
|
|
"types": "./dist/index.d.ts"
|
|
},
|
|
"./tailwind-preset": {
|
|
"import": "./dist/styles/tailwind-preset.js",
|
|
"types": "./dist/styles/tailwind-preset.d.ts"
|
|
},
|
|
"./theme.css": "./src/styles/theme.css",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts"
|
|
},
|
|
"scripts": {
|
|
"dev": "bun --bun ./node_modules/.bin/vite --host 127.0.0.1",
|
|
"build": "vite build && tsup",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:webmcp-edit-loop": "node tests/e2e/webmcp-edit-loop.mjs",
|
|
"test:timeline-virtualization": "TIMELINE_ROW_VIRTUALIZATION=on TIMELINE_ELEMENT_COUNT=50000 node tests/e2e/timeline-virtualization.mjs",
|
|
"test:watch": "vitest",
|
|
"report:sdk-cutover": "bun src/utils/sdkCutoverPolicy.report.ts",
|
|
"test:timeline-default": "bun run test:timeline-virtualization"
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/autocomplete": "^6.20.1",
|
|
"@codemirror/commands": "^6.10.3",
|
|
"@codemirror/lang-css": "^6.3.1",
|
|
"@codemirror/lang-html": "^6.4.9",
|
|
"@codemirror/lang-javascript": "^6.2.2",
|
|
"@codemirror/lang-markdown": "^6.3.4",
|
|
"@codemirror/language": "^6.12.2",
|
|
"@codemirror/search": "^6.6.0",
|
|
"@codemirror/state": "^6.6.0",
|
|
"@codemirror/theme-one-dark": "^6.1.2",
|
|
"@codemirror/view": "6.40.0",
|
|
"@hyperframes/core": "workspace:*",
|
|
"@hyperframes/parsers": "workspace:*",
|
|
"@hyperframes/player": "workspace:*",
|
|
"@hyperframes/sdk": "workspace:*",
|
|
"@hyperframes/studio-server": "workspace:*",
|
|
"@mcp-b/global": "^5.0.1",
|
|
"@phosphor-icons/react": "^2.1.10",
|
|
"@tanstack/react-virtual": "^3.14.6",
|
|
"bpm-detective": "^2.0.5",
|
|
"gsap": "^3.13.0",
|
|
"mediabunny": "^1.45.3"
|
|
},
|
|
"devDependencies": {
|
|
"@hyperframes/producer": "workspace:*",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@types/react": "19",
|
|
"@types/react-dom": "19",
|
|
"@vitejs/plugin-react": "^4.0.0",
|
|
"chokidar": "^4.0.3",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"puppeteer-core": "^25.2.1",
|
|
"tailwindcss": "^4.3.3",
|
|
"tsup": "^8.0.0",
|
|
"typescript": "^5.0.0",
|
|
"vite": "^6.4.2",
|
|
"vitest": "^4.1.11",
|
|
"zustand": "^5.0.0"
|
|
},
|
|
"peerDependencies": {
|
|
"react": "19",
|
|
"react-dom": "19",
|
|
"zustand": "^4.0.0 || ^5.0.0"
|
|
}
|
|
}
|