Skip to content

feat(theme-dynamical-vue): tailadmin-vue integration + dep bumps - #87

Merged
marioserrano09 merged 2 commits into
mainfrom
feature/theme-dynamical-vue-tailadmin
Sep 22, 2026
Merged

marioserrano09 merged 2 commits into
mainfrom
feature/theme-dynamical-vue-tailadmin

Conversation

@marioserrano09

Copy link
Copy Markdown
Contributor

Summary

  • Makes theme-dynamical-vue a client of @dynamia-tools/tailadmin-vue.
  • Bumps vue/vite/tailwindcss/@vitejs/plugin-vue to their latest patch/minor within already-declared semver ranges.
  • Fixes two pre-existing vue-tsc type errors (not caused by the bump, verified via git stash):
    • platform/packages/vue: align its own vue devDependency to ^3.5.43 so pnpm dedupes to a single install — the mismatch (^3.5.42 vs the theme's ^3.5.43) made TS treat App/Plugin/ObjectPlugin from the workspace package and the theme as nominally distinct types, breaking app.use(DynamiaVue, options) inference in main.ts.
    • AppShell.vue: use a getter (() => nodes.value) instead of passing the ComputedRef directly as a watch source, fixing tuple type inference in the multi-source watch().

Notes

  • typescript/vue-tsc intentionally stay on 6.x/2.x: TS 7's native (Go) compiler dropped the typescript/lib/tsc exports subpath that vue-tsc 3.x still requires, so pairing TS 7 with vue-tsc 3.3.11 fails outright (ERR_PACKAGE_PATH_NOT_EXPORTED). No compatible vue-tsc release exists yet.

Verification

  • pnpm typecheck → 0 errors
  • pnpm build → OK
  • Dev-server screenshot of the app shell (topbar/sidebar/skin selector render correctly without a backend)

🤖 Generated with Claude Code

https://claude.ai/code/session_01UcARdenC1Sk5EVpkzboH9W

marioserrano09 and others added 2 commits September 21, 2026 15:57
…tailadmin-vue

The UI shell is no longer written in this theme: layout, sidebar, header, user menu, breadcrumb,
dark mode and the login layout come from the published @dynamia-tools/tailadmin-vue package,
used as-is. The theme keeps only what is Dynamia-specific:

- navMenu.ts maps the navigation tree onto the package's MenuGroup model; AppShell.vue wires
  AdminLayout/AppSidebar/AppHeader/UserMenu and the CrudPage/embed content + flow-step hosts.
- vue-router (a required peer of the package) with hash history and one catch-all route; the
  router is the source of truth for the current page, so links, back/forward and deep links work.
- Skins stay the same contract (data-skin + `skin` cookie) but are now just the brand color the
  package's brand-* palette derives from; "dark" is the package's dark mode, kept in sync both
  ways with the header's theme toggle.
- app.css (Dynamia component styling) moves to the package's gray palette and gains dark: variants.
- Login uses the package's AuthSplit; index/login.html get the dark body background the package
  leaves to consumers.
- vite: publicDir points at the package's public/ (logos, avatars) and the package is excluded from
  dev dep pre-bundling (otherwise provide/inject keys stop matching in `pnpm dev`).
- vue bumped to ^3.5.42 to match the workspace: the duplicate vue copies were the root cause of the
  4 pre-existing vue-tsc errors, so `pnpm typecheck` is green again.

Also fixes resolveEmbedSrc using a ConfigPage's `file` (a bean name such as "discountsCfg") as a
relative URL instead of falling back to /page-embed/{path} as documented.

Verified in a browser against demo-zk-books (production jar): CrudPage, INPUT flow step, ZK
embed, sidebar/deep links, skin<->dark sync, login page.

Part of #86, #84.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YVHiaZhzpsb76wK2CibjPo
… errors

- Bump vue/vite/tailwindcss/@vitejs-plugin-vue to their latest patch/minor
  within already-declared semver ranges.
- Leave typescript/vue-tsc on 6.x/2.x: TS 7's native (Go) compiler dropped
  the `typescript/lib/tsc` exports subpath that vue-tsc 3.x still requires,
  so pairing TS 7 with vue-tsc 3.3.11 fails outright (ERR_PACKAGE_PATH_NOT_EXPORTED).
- Fix vue-tsc type errors, both pre-existing (not caused by the bump,
  verified via git stash):
  - platform/packages/vue: align its own `vue` devDependency to ^3.5.43 so
    pnpm dedupes to a single vue install. The mismatched pinned version
    (^3.5.42) made TS treat App/Plugin/ObjectPlugin from the workspace
    package and from the theme as nominally distinct types, breaking
    app.use(DynamiaVue, options) inference in main.ts.
  - AppShell.vue: use a getter (() => nodes.value) instead of passing the
    ComputedRef directly as a watch source, fixing tuple type inference
    in the multi-source watch().

Verified: pnpm typecheck (0 errors), pnpm build, and a dev-server screenshot
of the app shell (topbar/sidebar/skin selector render correctly without a
backend).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UcARdenC1Sk5EVpkzboH9W
@marioserrano09
marioserrano09 merged commit b917fd6 into main Sep 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant