Some checks failed
CI / test (pull_request) Has been cancelled
New packages/display/ — Vue 3 primitives for products running a secondary 1920x480 landscape / 480x1920 portrait kiosk display, per the strip display spec. First non-Python module in this repo; published as its own npm package (not part of the Python circuitforge-core distribution) so products that don't use a strip display never pull in Vue as a dependency. - DisplayLayout — root wrapper: identity zone, orientation-aware grid (landscape/portrait), dark-default theme, #metrics/#alerts/#macros slots. - DisplayMetric — value/label tile with optional unit, severity colour, sparkline. - DisplayAlert — timestamped, severity-coloured alert row. - DisplayMacroButton — touch target (44px+ min) emitting a shell/url/api/display_switch action payload; execution stays product-side. - theme.ts — central theme file: CSS custom properties (dark/light) plus UnoCSS theme/shortcut fragments for products that already run UnoCSS (Turnstone, Robin) to spread into their own uno.config.ts. - launcher/launcher.html — static, framework-free product switcher reading a sibling launcher.config.json. 37 Vitest tests across all four components; vue-tsc type-checks clean; vite build produces ESM/CJS bundles + CSS + .d.ts. First consumer: Turnstone's sysadmin profile (turnstone#25, currently blocked on this ticket). Closes: #69
48 lines
1.3 KiB
JSON
48 lines
1.3 KiB
JSON
{
|
|
"name": "@circuitforge/display",
|
|
"version": "0.1.0",
|
|
"description": "Strip-display Vue primitives for CircuitForge products (1920x480 landscape / 480x1920 portrait kiosk displays)",
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://git.opensourcesolarpunk.com/Circuit-Forge/circuitforge-core.git",
|
|
"directory": "packages/display"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"launcher"
|
|
],
|
|
"main": "./dist/circuitforge-display.cjs",
|
|
"module": "./dist/circuitforge-display.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/circuitforge-display.js",
|
|
"require": "./dist/circuitforge-display.cjs"
|
|
},
|
|
"./style.css": "./dist/circuitforge-display.css"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vue-tsc --emitDeclarationOnly && vite build",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"peerDependencies": {
|
|
"vue": "^3.5.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^24.10.1",
|
|
"@vitejs/plugin-vue": "^6.0.2",
|
|
"@vue/test-utils": "^2.4.6",
|
|
"@vue/tsconfig": "^0.8.1",
|
|
"jsdom": "^25.0.1",
|
|
"typescript": "~5.9.3",
|
|
"vite": "^7.3.1",
|
|
"vitest": "^3.2.4",
|
|
"vue": "^3.5.25",
|
|
"vue-tsc": "^3.1.5"
|
|
}
|
|
}
|