Scaffold Nuxt and Vue clients on @fernandojvideira/vue-ui-kit (private Gitea npm registry) instead of Nuxt UI / shadcn-vue; the generated Docker build takes the registry token via --mount=type=secret instead of SSH forwarding
Pin typescript@~6.0.0 in the Nuxt scaffold, since TS 7 breaks the cross-file type resolution vue-ui-kit's interface Props extends … components rely on
Bump the assets/testdata/template submodule through the vue-ui-kit integration, the default-page redesign, the tabbed auth card, and the Nuxt Dialog/Select SSR fix (deduped vue/reka-ui via a workspace vue override)
## Summary
- Scaffold Nuxt and Vue clients on `@fernandojvideira/vue-ui-kit` (private Gitea npm registry) instead of Nuxt UI / shadcn-vue; the generated Docker build takes the registry token via `--mount=type=secret` instead of SSH forwarding
- Pin `typescript@~6.0.0` in the Nuxt scaffold, since TS 7 breaks the cross-file type resolution vue-ui-kit's `interface Props extends …` components rely on
- Bump the `assets/testdata/template` submodule through the vue-ui-kit integration, the default-page redesign, the tabbed auth card, and the Nuxt Dialog/Select SSR fix (deduped `vue`/`reka-ui` via a workspace `vue` override)
Brings `main` up to `dev` after #6.
## Test plan
- [x] `go run tools/sync_templates.go && go build .` succeeds
- [x] `draft new` (monorepo) yields a project where both clients install and build against the private registry
- [x] Generated client Docker builds succeed with the npm token secret mounted
🤖 Generated with [Claude Code](https://claude.com/claude-code)
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]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
@fernandojvideira/vue-ui-kit(private Gitea npm registry) instead of Nuxt UI / shadcn-vue; the generated Docker build takes the registry token via--mount=type=secretinstead of SSH forwardingtypescript@~6.0.0in the Nuxt scaffold, since TS 7 breaks the cross-file type resolution vue-ui-kit'sinterface Props extends …components rely onassets/testdata/templatesubmodule through the vue-ui-kit integration, the default-page redesign, the tabbed auth card, and the Nuxt Dialog/Select SSR fix (dedupedvue/reka-uivia a workspacevueoverride)Brings
mainup todevafter #6.Test plan
go run tools/sync_templates.go && go build .succeedsdraft new(monorepo) yields a project where both clients install and build against the private registry🤖 Generated with Claude Code