From d10ae1a393e80d6b9ae7c7e344b9a619a8ced22b Mon Sep 17 00:00:00 2001 From: JSONbored <49853598+JSONbored@users.noreply.github.com> Date: Thu, 23 Jul 2026 03:16:48 -0700 Subject: [PATCH] chore(ui): align prettier across all three UI workspaces and enforce it in the ui:lint chain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause of the #8182 docs mangling: prettier coverage differed between what 'npm run format' would rewrite locally and what CI checked (nothing). Now the three UI workspaces agree everywhere: - .prettierignore in every workspace covers the generated artifacts (openapi.json, routeTree.gen.ts, dist, CHANGELOG.md) and — deliberately — content/docs: prettier's mdx pass reformats the template-literal code inside attributes, destroying embedded YAML/compose indentation. Docs mdx stays formatter-free. - One mechanical reformat brings every remaining file to prettier-clean. - Each workspace gains format:check, wired into the root ui:lint chain that CI's validate job and npm run test:ci already run — local format runs and CI now enforce the identical surface, so drift of this class cannot land silently again. --- apps/loopover-miner-ui/.prettierignore | 6 + apps/loopover-miner-ui/package.json | 3 +- apps/loopover-ui/.prettierignore | 6 + apps/loopover-ui/package.json | 3 +- .../src/chat-ui-primitives-audit.md | 6 +- package.json | 2 +- packages/loopover-ui-kit/.prettierignore | 3 + packages/loopover-ui-kit/package.json | 4 +- .../src/components/accordion.tsx | 6 +- .../src/components/alert-dialog.tsx | 38 +- .../loopover-ui-kit/src/components/alert.tsx | 32 +- .../loopover-ui-kit/src/components/avatar.tsx | 5 +- .../loopover-ui-kit/src/components/badge.tsx | 14 +- .../src/components/breadcrumb.tsx | 76 ++-- .../loopover-ui-kit/src/components/button.tsx | 13 +- .../src/components/calendar.tsx | 58 ++- .../loopover-ui-kit/src/components/card.tsx | 106 ++++-- .../src/components/carousel.tsx | 330 ++++++++-------- .../loopover-ui-kit/src/components/chart.tsx | 146 ++++--- .../src/components/checkbox.tsx | 4 +- .../src/components/command.tsx | 16 +- .../src/components/context-menu.tsx | 19 +- .../loopover-ui-kit/src/components/dialog.tsx | 28 +- .../loopover-ui-kit/src/components/drawer.tsx | 30 +- .../src/components/dropdown-menu.tsx | 25 +- .../loopover-ui-kit/src/components/form.tsx | 34 +- .../loopover-ui-kit/src/components/label.tsx | 9 +- .../src/components/menubar.tsx | 71 ++-- .../src/components/navigation-menu.tsx | 16 +- .../src/components/pagination.tsx | 41 +- .../src/components/progress.tsx | 5 +- .../src/components/radio-group.tsx | 8 +- .../src/components/resizable.tsx | 10 +- .../src/components/scroll-area.tsx | 44 ++- .../loopover-ui-kit/src/components/select.tsx | 13 +- .../src/components/separator.tsx | 31 +- .../src/components/sidebar.tsx | 357 ++++++++++-------- .../src/components/skeleton.tsx | 15 +- .../loopover-ui-kit/src/components/slider.tsx | 5 +- .../loopover-ui-kit/src/components/sonner.tsx | 6 +- .../src/components/state-views.test.tsx | 19 +- .../src/components/state-views.tsx | 45 ++- .../loopover-ui-kit/src/components/table.tsx | 72 ++-- .../src/components/textarea.tsx | 29 +- .../src/components/toggle-group.tsx | 8 +- .../loopover-ui-kit/src/components/toggle.tsx | 3 +- .../src/hooks/use-mobile.test.tsx | 20 +- .../loopover-ui-kit/src/hooks/use-mobile.tsx | 4 +- packages/loopover-ui-kit/src/theme.css | 13 +- packages/loopover-ui-kit/src/utils.test.ts | 8 +- packages/loopover-ui-kit/src/utils.ts | 5 +- packages/loopover-ui-kit/tsconfig.json | 7 +- 52 files changed, 1207 insertions(+), 670 deletions(-) create mode 100644 apps/loopover-miner-ui/.prettierignore create mode 100644 packages/loopover-ui-kit/.prettierignore diff --git a/apps/loopover-miner-ui/.prettierignore b/apps/loopover-miner-ui/.prettierignore new file mode 100644 index 0000000000..7862a2a5ef --- /dev/null +++ b/apps/loopover-miner-ui/.prettierignore @@ -0,0 +1,6 @@ +node_modules +dist +.output +.vinxi +package-lock.json +routeTree.gen.ts diff --git a/apps/loopover-miner-ui/package.json b/apps/loopover-miner-ui/package.json index eaa28a924c..7ce04b2cf2 100644 --- a/apps/loopover-miner-ui/package.json +++ b/apps/loopover-miner-ui/package.json @@ -12,7 +12,8 @@ "typecheck": "tsc --noEmit", "lint": "eslint .", "test": "vitest run --coverage", - "format": "prettier --write ." + "format": "prettier --write .", + "format:check": "prettier --check ." }, "dependencies": { "@loopover/ui-kit": ">=0.1.0 <2.0.0", diff --git a/apps/loopover-ui/.prettierignore b/apps/loopover-ui/.prettierignore index be49b2655e..0638e2b4d2 100644 --- a/apps/loopover-ui/.prettierignore +++ b/apps/loopover-ui/.prettierignore @@ -6,3 +6,9 @@ pnpm-lock.yaml package-lock.json bun.lock routeTree.gen.ts +# Generated -- regenerated by npm run ui:openapi; formatting churn only creates drift-check noise. +public/openapi.json +# Hand-authored docs content: prettier's mdx pass reformats the template-literal code inside +# attributes, destroying embedded YAML/compose indentation (#8182 fallout, +# repaired once already). Docs mdx is deliberately formatter-free. +content/docs diff --git a/apps/loopover-ui/package.json b/apps/loopover-ui/package.json index 3dad8b8d37..ac1a9dcdae 100644 --- a/apps/loopover-ui/package.json +++ b/apps/loopover-ui/package.json @@ -19,7 +19,8 @@ "typecheck": "tsc --noEmit", "lint": "eslint .", "test": "vitest run", - "format": "prettier --write ." + "format": "prettier --write .", + "format:check": "prettier --check ." }, "dependencies": { "@loopover/ui-kit": ">=0.1.0 <2.0.0", diff --git a/apps/loopover-ui/src/chat-ui-primitives-audit.md b/apps/loopover-ui/src/chat-ui-primitives-audit.md index 1340b67bda..ad4648402e 100644 --- a/apps/loopover-ui/src/chat-ui-primitives-audit.md +++ b/apps/loopover-ui/src/chat-ui-primitives-audit.md @@ -37,7 +37,7 @@ against the four primitives #6230 will eventually need. No code changes accompan - **`apps/loopover-ui/src/components/site/command-palette.tsx`** (`CommandPalette`) has the only bare `` + live-filtered scrollable `