Scaffold clients with vue-ui-kit; API/client/monorepo scaffolding fixes #6

Merged
FernandoJVideira merged 4 commits from chore/refactor into dev 2026-09-16 11:51:57 +00:00
Owner

Summary

  • Scaffold Nuxt and Vue clients on @fernandojvideira/vue-ui-kit (Gitea npm registry) instead of Nuxt UI / shadcn-vue, including the Docker build using a --mount=type=secret npm token rather than SSH forwarding
  • Pin typescript@~6.0.0 in the Nuxt scaffold: TS 7 breaks @vue/compiler-sfc's cross-file type resolution that vue-ui-kit's interface Props extends … components need
  • Bump the assets/testdata/template submodule through the vue-ui-kit integration, page redesign, tabbed auth card, and the Nuxt Dialog/Select SSR fix
  • Smaller fixes picked up along the way: draft key registered on the root command with a working --size, duplicated binary in the Makefile, help text, stray debug print in the service generator, README updates
## Summary - Scaffold Nuxt and Vue clients on `@fernandojvideira/vue-ui-kit` (Gitea npm registry) instead of Nuxt UI / shadcn-vue, including the Docker build using a `--mount=type=secret` npm token rather than SSH forwarding - Pin `typescript@~6.0.0` in the Nuxt scaffold: TS 7 breaks `@vue/compiler-sfc`'s cross-file type resolution that vue-ui-kit's `interface Props extends …` components need - Bump the `assets/testdata/template` submodule through the vue-ui-kit integration, page redesign, tabbed auth card, and the Nuxt Dialog/Select SSR fix - Smaller fixes picked up along the way: `draft key` registered on the root command with a working `--size`, duplicated binary in the Makefile, help text, stray debug print in the service generator, README updates
FernandoJVideira added 4 commits 2026-09-16 11:44:20 +00:00
Both `draft new client` and `draft new monorepo` (which reuses the same
client scaffolding for apps/client) now wire up @fernandojvideira/vue-ui-kit
as the component library on both frameworks, installed from its Gitea npm
registry.

Vue: drops the shadcn-vue init/add steps entirely - vue-ui-kit's theme.css
is imported directly instead of a generated one, and the overlay's one
shadcn Button usage now comes from vue-ui-kit.

Nuxt: switches the nuxi starter from "ui" (Nuxt UI) to "minimal", wiring
Tailwind v4 + vue-ui-kit by hand instead (mirrors vue-ui-kit's own Nuxt
INSTALL.md instructions). Needed one real fix: the "minimal" starter has
no typescript devDependency, and pnpm resolving it unpinned lands on
TypeScript 7, which breaks @vue/compiler-sfc's cross-file type resolution
that vue-ui-kit's components rely on - pinned to ~6.0.0 to match
create-vue's own default for the Vue flow.

The actual overlay content changes (token renames, icon swaps, a new
useToast() composable for Nuxt, etc.) live in the project-template
submodule, bumped here to its latest commit.

Verified end-to-end: both frameworks install, typecheck, and build clean
from a fresh `draft new client`, and were checked live in the browser.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
No change to draft's own generated output - this commit only touches
files outside what tools/sync_templates.go pulls into assets/embedded
(package.json, main.css, and the shadcn-vue-generated files it deletes
are all excluded from the client-vue/client-nuxt sync jobs already).
Keeps the reference project itself buildable and free of dead
dependencies now that both clients use vue-ui-kit.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Fable 5.1 <[email protected]>
FernandoJVideira merged commit 35b88b4dcf into dev 2026-09-16 11:51:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: FernandoJVideira/draft#6