# Vue Adapter Release Checklist

Run this checklist before publishing or consuming a new Vue adapter version.

Full release flow: [Release Flow](../release.md).

## Build Checks

```bash
npm run release:check
```

Expected Vite warnings:

```text
/assets/fonts/... didn't resolve at build time
```

These are acceptable while `kit.css` uses the `/assets` runtime contract.

## Pack Validation

The package smoke script automates this section:

```bash
npm run test:vue-package
```

Create a package tarball:

```bash
npm pack
```

Check that the tarball contains `dist/css/kit.css`, `dist/js/gnexus-ui-kit.js`,
`dist/vue/index.js`, and `dist/assets/`. The package uses the `files` whitelist
in `package.json`; keep it in sync with exported runtime assets.

Install the tarball into a temporary Vue app and verify:

```bash
npm install /path/to/gnexus-ui-kit-0.2.0.tgz
npm run build
```

The app should import:

```js
import "gnexus-ui-kit/dist/css/kit.css";
import "gnexus-ui-kit/dist/assets/fonts/phosphor-icons/src/css/icons.css";
import { GnButton } from "gnexus-ui-kit/vue";
```

## API Checks

- New components are exported from `src/vue/index.js`.
- New components are registered in `src/vue/plugin.js`.
- `docs/vue/component-map.md` lists the component.
- `docs/vue/ai-usage-guide.md` explains when to use it.
- Interactive components do not require legacy `GNexusUIKit.*.init()` calls.

## Compatibility Checks

- No prop, emit, or slot is renamed without a migration note.
- Rendered classes still match `src/scss/components/`.
- Vue remains external; do not bundle Vue into `dist/vue/index.js`.
- `GnModal` and `GnDrawer` keep Escape, focus return, and focus trap behavior.
- `GnToastProvider` remains single-toast unless docs and API are changed.
