mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 16:02:32 +00:00
* feat(design-system): gate renderer UI with @shadcn/lint Wires shadcn-ui/lint's Oxlint plugin into the two places this repo already ratchets: the changed-lines PR gate for rules the renderer can't satisfy today, and `pnpm lint` for the one that is already at zero. - config/oxlint-design-system.json: no-restyle (layout allowed), no-raw-colors, require-static-classes -- scoped to src/renderer/**/*.tsx, run over added lines only. Measured at 10 findings across the last 60 commits (771 changed files), so it holds the line without a migration. - config/oxlint-dead-classes.json: no-unknown-classes repo-wide, with the renderer's plain-CSS hook namespaces allow-listed. Now at zero. - no-inline-styles and no-arbitrary-values stay off; STYLEGUIDE says why. Fixes the three live bugs the linter found: - `--editor-surface` never reached `@theme inline`, so `bg-editor-surface` generated no CSS -- 12 editor/artifact/notebook panes fell through to the page background instead of #1e1e1e in dark mode. - `scrollbar-none` is not a Tailwind utility and was declared nowhere, so the remote file browser breadcrumbs showed the scrollbar they meant to hide. Declared as a real `@utility`. - Notebook markdown cells used `markdown-preview-body`, which no stylesheet defines; the styled class is `markdown-body`. They rendered unstyled. * ci: run the dead-class gate in PR CI `pnpm lint` gained check:dead-classes, and pr-workflow-lint-parity requires every `pnpm lint` step to have a matching step in pr.yml. * fix(notebook): keep markdown theme selectors working
55 lines
1.2 KiB
JSON
55 lines
1.2 KiB
JSON
{
|
|
"$schema": "../node_modules/oxlint/configuration_schema.json",
|
|
"plugins": [],
|
|
"categories": {
|
|
"correctness": "off",
|
|
"suspicious": "off",
|
|
"pedantic": "off",
|
|
"perf": "off",
|
|
"style": "off",
|
|
"restriction": "off",
|
|
"nursery": "off"
|
|
},
|
|
"jsPlugins": [
|
|
{
|
|
"name": "shadcn",
|
|
"specifier": "@shadcn/lint"
|
|
}
|
|
],
|
|
"settings": {
|
|
"shadcn": {
|
|
"note": "See docs/STYLEGUIDE.md for the role each token and primitive plays."
|
|
}
|
|
},
|
|
"rules": {},
|
|
"overrides": [
|
|
{
|
|
"files": ["**/src/renderer/**/*.tsx"],
|
|
"rules": {
|
|
"shadcn/no-restyle": [
|
|
"error",
|
|
{
|
|
"allow": ["layout"]
|
|
}
|
|
],
|
|
"shadcn/no-raw-colors": [
|
|
"error",
|
|
{
|
|
"allow": ["shadow-floating"]
|
|
}
|
|
],
|
|
"shadcn/require-static-classes": "error"
|
|
}
|
|
},
|
|
{
|
|
"files": ["**/*.test.tsx"],
|
|
"rules": {
|
|
"shadcn/no-restyle": "off",
|
|
"shadcn/no-raw-colors": "off",
|
|
"shadcn/require-static-classes": "off"
|
|
}
|
|
}
|
|
],
|
|
"ignorePatterns": ["**/node_modules", "**/dist", "**/out", "cloud/**", "mobile/**"]
|
|
}
|