{"owner":"nuxt","repo":"ui","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\nThis file provides guidance for AI coding agents working on the Nuxt UI repository.\n\n## Project Overview\n\nNuxt UI is a component library built on [Reka UI](https://reka-ui.com/), [Tailwind CSS](https://tailwindcss.com/), and [Tailwind Variants](https://www.tailwind-variants.org/). It provides accessible, themeable components for both Nuxt and Vue applications.\n\n## Project Structure\n\n```\nsrc/\n├── runtime/\n│   ├── components/     # Vue components (PascalCase.vue)\n│   ├── composables/    # Composables (use*.ts)\n│   ├── types/          # TypeScript types\n│   └── utils/          # Utility functions\n├── theme/              # Tailwind Variants themes (kebab-case.ts)\n└── module.ts\ntest/\n├── components/         # Component tests (*.spec.ts)\n│   └── __snapshots__/  # Auto-generated snapshots\n└── component-render.ts\ndocs/\n└── content/docs/2.components/  # Documentation (*.md)\nplaygrounds/\n└── nuxt/app/pages/components/  # Playground pages\n```\n\n## Commands\n\n```bash\npnpm run dev:prepare  # Generate type stubs (run after install)\npnpm run dev          # Nuxt playground\npnpm run dev:vue      # Vue playground\npnpm run dev:repl     # REPL playground\npnpm run docs         # Documentation site\npnpm run lint         # Check linting\npnpm run lint:fix     # Fix linting\npnpm run typecheck    # Type checking\npnpm run test         # Run tests\n```\n\n## CLI for Scaffolding\n\nLink the CLI first (one-time setup):\n\n```bash\nnpm link\n```\n\nThen use it to create new components:\n\n```bash\nnuxt-ui make component <name> [options]\n```\n\nOptions:\n- `--primitive` - Primitive component (uses Reka UI Primitive)\n- `--prose` - Prose/typography component\n- `--content` - Content component\n- `--template` - Generate specific template only (`playground`, `docs`, `test`, `theme`, `component`)\n\n## Key Conventions\n\n- **Conventional commits**: All commit messages must follow [conventional commits](https://conventionalcommits.org) (e.g. `fix(Button): resolve hover state`, `feat(Modal): add fullscreen prop`).\n- **Semantic colors**: Use `text-default`, `bg-elevated`, etc. — never raw Tailwind palette colors like `text-gray-500`.\n- **`Soon` badge on docs headings**: PRs that introduce a new feature or fix often add `:badge{label=\"Soon\" class=\"align-text-top\"}` to the relevant docs heading. This is intentional: the docs site redeploys on merge, but the feature only ships on the next npm release — the badge bridges that gap. Do NOT flag this as inconsistent in reviews. See [documentation.md](.github/contributing/documentation.md) for details.\n\n## Library Source (`src/` and `test/`)\n\nThe following conventions and references apply **only** when working on files in `src/` or `test/`. They do not apply to `docs/`, `playgrounds/`, or other directories.\n\n### References\n\nLoad these based on your task. **Do not load all files at once** — only load what's relevant.\n\n| File | Topics |\n|------|--------|\n| **[.github/contributing/component-structure.md](.github/contributing/component-structure.md)** | Vue component file patterns, props/slots/emits interfaces, script setup |\n| **[.github/contributing/theme-structure.md](.github/contributing/theme-structure.md)** | Tailwind Variants theme files, slots, variants, compoundVariants |\n| **[.github/contributing/testing.md](.github/contributing/testing.md)** | Vitest patterns, snapshot testing, accessibility testing |\n| **[.github/contributing/documentation.md](.github/contributing/documentation.md)** | Component docs structure, MDC syntax, examples |\n\n### Code Conventions\n\n| Convention | Description |\n|------------|-------------|\n| Type imports | Always separate: `import type { X }` on its own line |\n| Props defaults | Use `withDefaults()` for runtime, JSDoc `@defaultValue` for docs |\n| Template slots | Add `data-slot=\"name\"` attributes on all elements |\n| `data-slot` on root | A caller-supplied `data-slot` must win on the component's **root** (component's own value as fallback); inner elements keep theirs. Single-root components with default `inheritAttrs` get this free via Vue fallthrough. For `inheritAttrs: false`, place the default before the root's `v-bind` (`data-slot=\"root\" v-bind=\"$attrs\"`), or read `($attrs['data-slot'] as string \\| undefined) ?? 'root'` on the root when `$attrs` is forwarded to an inner element. See [component-structure.md](.github/contributing/component-structure.md#data-slot-on-the-root). |\n| Computed ui | Always use `computed(() => tv(...))` for reactive theming |\n| Theme defaults | Wrap raw props with `useComponentProps(name, _props)` to resolve the priority chain (explicit prop > `<UTheme :props>` > `withDefaults` > `app.config.ui.<name>.defaultVariants`). The proxy deep-merges `ui` automatically — read `props.ui?.<slot>` in templates. `theme.defaultVariants` is **not** read by the proxy — it only feeds `tv()` class resolution. Pass the **raw** `_props` (not the proxy) to `useFormField` / `useFieldGroup` / `useAvatarGroup` so their injection precedence (closer context wins) stays correct. |\n| Form/group fallback | When consuming `size` / `color` / `highlight` from `useFormField`, `useFieldGroup`, or `useAvatarGroup`, always fall back to the proxy in `tv()` calls: `size: size.value ?? props.size`, `color: color.value ?? props.color`, `highlight: highlight.value ?? props.highlight`. This gives the full precedence `explicit > group/formField > <UTheme :props> > undefined`. Without the `?? props.X` fallback, `<UTheme :props>` is silently dropped when the closer context (FormField/FieldGroup/AvatarGroup) is absent. |\n| Semantic colors | Use `text-default`, `bg-elevated`, etc. - never Tailwind palette |\n| Logical properties (RTL) | Use logical utilities (`ms/me`, `ps/pe`, `start/end`, `text-start/end`, `border-s/e`, `rounded-s/e`) not physical (`ml/mr`, `left/right`, `text-left/right`) so components work in RTL by default. `transform`/`cursor`/gradients/transitions need explicit `rtl:` counterparts. See [theme-structure.md](.github/contributing/theme-structure.md#logical-properties-rtl). |\n| Reka UI props | Use `reactivePick` + `useForwardProps(source, emits?)` from `composables/useForwardProps` to forward props (proxy-aware; reka-ui's `useForwardProps` / `useForwardPropsEmits` filter out `<UTheme :props>` defaults) |\n| Form components | Use `useFormField` and `useFieldGroup` composables |\n\n## Component Creation Workflow\n\nCopy this checklist and track progress when creating a new component:\n\n```\nComponent: [name]\nProgress:\n- [ ] 1. Scaffold with CLI: nuxt-ui make component <name>\n- [ ] 2. Implement component in src/runtime/components/\n- [ ] 3. Create theme in src/theme/\n- [ ] 4. Export types from src/runtime/types/index.ts\n- [ ] 5. Register in ThemeDefaults interface (src/runtime/composables/useComponentProps.ts)\n- [ ] 6. Write tests in test/components/\n- [ ] 7. Create docs in docs/content/docs/2.components/\n- [ ] 8. Add playground page\n- [ ] 9. Run pnpm run lint\n- [ ] 10. Run pnpm run typecheck\n- [ ] 11. Run pnpm run test\n```\n\n### PR Review Checklist\n\nWhen reviewing PRs that touch `src/` or `test/`, verify:\n\n```\nPR Review:\n- [ ] Component follows existing patterns (see .github/contributing/)\n- [ ] Theme uses semantic colors, not Tailwind palette\n- [ ] Tests cover props, slots, and accessibility\n- [ ] Documentation includes Usage, Examples, and API sections\n- [ ] Conventional commit message format\n- [ ] All checks pass (lint, typecheck, test)\n```\n\n**Do NOT flag as issues:**\n- `:badge{label=\"Soon\"}` on docs headings in PRs adding new features/fixes (intentional — bridges the gap between docs deploy on merge and feature shipping on next npm release).\n\n## Before Submitting\n\n- [ ] `pnpm run lint` passes\n- [ ] `pnpm run typecheck` passes\n- [ ] `pnpm run test` passes\n- [ ] Documentation is updated if applicable\n- [ ] Commit message follows conventional commits\n- [ ] PR description follows [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) (linked issue, type of change, description, checklist)\n\nMultiple commits are fine — PRs are squash merged, so no need to rebase or force push.\n\n## Resources\n\n- [Contribution Guide](https://ui.nuxt.com/getting-started/contribution)\n- [Nuxt UI GitHub](https://github.com/nuxt/ui)\n"},"files":{"AGENTS.md":"# AGENTS.md\n\nThis file provides guidance for AI coding agents working on the Nuxt UI repository.\n\n## Project Overview\n\nNuxt UI is a component library built on [Reka UI](https://reka-ui.com/), [Tailwind CSS](https://tailwindcss.com/), and [Tailwind Variants](https://www.tailwind-variants.org/). It provides accessible, themeable components for both Nuxt and Vue applications.\n\n## Project Structure\n\n```\nsrc/\n├── runtime/\n│   ├── components/     # Vue components (PascalCase.vue)\n│   ├── composables/    # Composables (use*.ts)\n│   ├── types/          # TypeScript types\n│   └── utils/          # Utility functions\n├── theme/              # Tailwind Variants themes (kebab-case.ts)\n└── module.ts\ntest/\n├── components/         # Component tests (*.spec.ts)\n│   └── __snapshots__/  # Auto-generated snapshots\n└── component-render.ts\ndocs/\n└── content/docs/2.components/  # Documentation (*.md)\nplaygrounds/\n└── nuxt/app/pages/components/  # Playground pages\n```\n\n## Commands\n\n```bash\npnpm run dev:prepare  # Generate type stubs (run after install)\npnpm run dev          # Nuxt playground\npnpm run dev:vue      # Vue playground\npnpm run dev:repl     # REPL playground\npnpm run docs         # Documentation site\npnpm run lint         # Check linting\npnpm run lint:fix     # Fix linting\npnpm run typecheck    # Type checking\npnpm run test         # Run tests\n```\n\n## CLI for Scaffolding\n\nLink the CLI first (one-time setup):\n\n```bash\nnpm link\n```\n\nThen use it to create new components:\n\n```bash\nnuxt-ui make component <name> [options]\n```\n\nOptions:\n- `--primitive` - Primitive component (uses Reka UI Primitive)\n- `--prose` - Prose/typography component\n- `--content` - Content component\n- `--template` - Generate specific template only (`playground`, `docs`, `test`, `theme`, `component`)\n\n## Key Conventions\n\n- **Conventional commits**: All commit messages must follow [conventional commits](https://conventionalcommits.org) (e.g. `fix(Button): resolve hover state`, `feat(Modal): add fullscreen prop`).\n- **Semantic colors**: Use `text-default`, `bg-elevated`, etc. — never raw Tailwind palette colors like `text-gray-500`.\n- **`Soon` badge on docs headings**: PRs that introduce a new feature or fix often add `:badge{label=\"Soon\" class=\"align-text-top\"}` to the relevant docs heading. This is intentional: the docs site redeploys on merge, but the feature only ships on the next npm release — the badge bridges that gap. Do NOT flag this as inconsistent in reviews. See [documentation.md](.github/contributing/documentation.md) for details.\n\n## Library Source (`src/` and `test/`)\n\nThe following conventions and references apply **only** when working on files in `src/` or `test/`. They do not apply to `docs/`, `playgrounds/`, or other directories.\n\n### References\n\nLoad these based on your task. **Do not load all files at once** — only load what's relevant.\n\n| File | Topics |\n|------|--------|\n| **[.github/contributing/component-structure.md](.github/contributing/component-structure.md)** | Vue component file patterns, props/slots/emits interfaces, script setup |\n| **[.github/contributing/theme-structure.md](.github/contributing/theme-structure.md)** | Tailwind Variants theme files, slots, variants, compoundVariants |\n| **[.github/contributing/testing.md](.github/contributing/testing.md)** | Vitest patterns, snapshot testing, accessibility testing |\n| **[.github/contributing/documentation.md](.github/contributing/documentation.md)** | Component docs structure, MDC syntax, examples |\n\n### Code Conventions\n\n| Convention | Description |\n|------------|-------------|\n| Type imports | Always separate: `import type { X }` on its own line |\n| Props defaults | Use `withDefaults()` for runtime, JSDoc `@defaultValue` for docs |\n| Template slots | Add `data-slot=\"name\"` attributes on all elements |\n| `data-slot` on root | A caller-supplied `data-slot` must win on the component's **root** (component's own value as fallback); inner elements keep theirs. Single-root components with default `inheritAttrs` get this free via Vue fallthrough. For `inheritAttrs: false`, place the default before the root's `v-bind` (`data-slot=\"root\" v-bind=\"$attrs\"`), or read `($attrs['data-slot'] as string \\| undefined) ?? 'root'` on the root when `$attrs` is forwarded to an inner element. See [component-structure.md](.github/contributing/component-structure.md#data-slot-on-the-root). |\n| Computed ui | Always use `computed(() => tv(...))` for reactive theming |\n| Theme defaults | Wrap raw props with `useComponentProps(name, _props)` to resolve the priority chain (explicit prop > `<UTheme :props>` > `withDefaults` > `app.config.ui.<name>.defaultVariants`). The proxy deep-merges `ui` automatically — read `props.ui?.<slot>` in templates. `theme.defaultVariants` is **not** read by the proxy — it only feeds `tv()` class resolution. Pass the **raw** `_props` (not the proxy) to `useFormField` / `useFieldGroup` / `useAvatarGroup` so their injection precedence (closer context wins) stays correct. |\n| Form/group fallback | When consuming `size` / `color` / `highlight` from `useFormField`, `useFieldGroup`, or `useAvatarGroup`, always fall back to the proxy in `tv()` calls: `size: size.value ?? props.size`, `color: color.value ?? props.color`, `highlight: highlight.value ?? props.highlight`. This gives the full precedence `explicit > group/formField > <UTheme :props> > undefined`. Without the `?? props.X` fallback, `<UTheme :props>` is silently dropped when the closer context (FormField/FieldGroup/AvatarGroup) is absent. |\n| Semantic colors | Use `text-default`, `bg-elevated`, etc. - never Tailwind palette |\n| Logical properties (RTL) | Use logical utilities (`ms/me`, `ps/pe`, `start/end`, `text-start/end`, `border-s/e`, `rounded-s/e`) not physical (`ml/mr`, `left/right`, `text-left/right`) so components work in RTL by default. `transform`/`cursor`/gradients/transitions need explicit `rtl:` counterparts. See [theme-structure.md](.github/contributing/theme-structure.md#logical-properties-rtl). |\n| Reka UI props | Use `reactivePick` + `useForwardProps(source, emits?)` from `composables/useForwardProps` to forward props (proxy-aware; reka-ui's `useForwardProps` / `useForwardPropsEmits` filter out `<UTheme :props>` defaults) |\n| Form components | Use `useFormField` and `useFieldGroup` composables |\n\n## Component Creation Workflow\n\nCopy this checklist and track progress when creating a new component:\n\n```\nComponent: [name]\nProgress:\n- [ ] 1. Scaffold with CLI: nuxt-ui make component <name>\n- [ ] 2. Implement component in src/runtime/components/\n- [ ] 3. Create theme in src/theme/\n- [ ] 4. Export types from src/runtime/types/index.ts\n- [ ] 5. Register in ThemeDefaults interface (src/runtime/composables/useComponentProps.ts)\n- [ ] 6. Write tests in test/components/\n- [ ] 7. Create docs in docs/content/docs/2.components/\n- [ ] 8. Add playground page\n- [ ] 9. Run pnpm run lint\n- [ ] 10. Run pnpm run typecheck\n- [ ] 11. Run pnpm run test\n```\n\n### PR Review Checklist\n\nWhen reviewing PRs that touch `src/` or `test/`, verify:\n\n```\nPR Review:\n- [ ] Component follows existing patterns (see .github/contributing/)\n- [ ] Theme uses semantic colors, not Tailwind palette\n- [ ] Tests cover props, slots, and accessibility\n- [ ] Documentation includes Usage, Examples, and API sections\n- [ ] Conventional commit message format\n- [ ] All checks pass (lint, typecheck, test)\n```\n\n**Do NOT flag as issues:**\n- `:badge{label=\"Soon\"}` on docs headings in PRs adding new features/fixes (intentional — bridges the gap between docs deploy on merge and feature shipping on next npm release).\n\n## Before Submitting\n\n- [ ] `pnpm run lint` passes\n- [ ] `pnpm run typecheck` passes\n- [ ] `pnpm run test` passes\n- [ ] Documentation is updated if applicable\n- [ ] Commit message follows conventional commits\n- [ ] PR description follows [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) (linked issue, type of change, description, checklist)\n\nMultiple commits are fine — PRs are squash merged, so no need to rebase or force push.\n\n## Resources\n\n- [Contribution Guide](https://ui.nuxt.com/getting-started/contribution)\n- [Nuxt UI GitHub](https://github.com/nuxt/ui)\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\nThis file provides guidance for AI coding agents working on the Nuxt UI repository.\n\n## Project Overview\n\nNuxt UI is a component library built on [Reka UI](https://reka-ui.com/), [Tailwind CSS](https://tailwindcss.com/), and [Tailwind Variants](https://www.tailwind-variants.org/). It provides accessible, themeable components for both Nuxt and Vue applications.\n\n## Project Structure\n\n```\nsrc/\n├── runtime/\n│   ├── components/     # Vue components (PascalCase.vue)\n│   ├── composables/    # Composables (use*.ts)\n│   ├── types/          # TypeScript types\n│   └── utils/          # Utility functions\n├── theme/              # Tailwind Variants themes (kebab-case.ts)\n└── module.ts\ntest/\n├── components/         # Component tests (*.spec.ts)\n│   └── __snapshots__/  # Auto-generated snapshots\n└── component-render.ts\ndocs/\n└── content/docs/2.components/  # Documentation (*.md)\nplaygrounds/\n└── nuxt/app/pages/components/  # Playground pages\n```\n\n## Commands\n\n```bash\npnpm run dev:prepare  # Generate type stubs (run after install)\npnpm run dev          # Nuxt playground\npnpm run dev:vue      # Vue playground\npnpm run dev:repl     # REPL playground\npnpm run docs         # Documentation site\npnpm run lint         # Check linting\npnpm run lint:fix     # Fix linting\npnpm run typecheck    # Type checking\npnpm run test         # Run tests\n```\n\n## CLI for Scaffolding\n\nLink the CLI first (one-time setup):\n\n```bash\nnpm link\n```\n\nThen use it to create new components:\n\n```bash\nnuxt-ui make component <name> [options]\n```\n\nOptions:\n- `--primitive` - Primitive component (uses Reka UI Primitive)\n- `--prose` - Prose/typography component\n- `--content` - Content component\n- `--template` - Generate specific template only (`playground`, `docs`, `test`, `theme`, `component`)\n\n## Key Conventions\n\n- **Conventional commits**: All commit messages must follow [conventional commits](https://conventionalcommits.org) (e.g. `fix(Button): resolve hover state`, `feat(Modal): add fullscreen prop`).\n- **Semantic colors**: Use `text-default`, `bg-elevated`, etc. — never raw Tailwind palette colors like `text-gray-500`.\n- **`Soon` badge on docs headings**: PRs that introduce a new feature or fix often add `:badge{label=\"Soon\" class=\"align-text-top\"}` to the relevant docs heading. This is intentional: the docs site redeploys on merge, but the feature only ships on the next npm release — the badge bridges that gap. Do NOT flag this as inconsistent in reviews. See [documentation.md](.github/contributing/documentation.md) for details.\n\n## Library Source (`src/` and `test/`)\n\nThe following conventions and references apply **only** when working on files in `src/` or `test/`. They do not apply to `docs/`, `playgrounds/`, or other directories.\n\n### References\n\nLoad these based on your task. **Do not load all files at once** — only load what's relevant.\n\n| File | Topics |\n|------|--------|\n| **[.github/contributing/component-structure.md](.github/contributing/component-structure.md)** | Vue component file patterns, props/slots/emits interfaces, script setup |\n| **[.github/contributing/theme-structure.md](.github/contributing/theme-structure.md)** | Tailwind Variants theme files, slots, variants, compoundVariants |\n| **[.github/contributing/testing.md](.github/contributing/testing.md)** | Vitest patterns, snapshot testing, accessibility testing |\n| **[.github/contributing/documentation.md](.github/contributing/documentation.md)** | Component docs structure, MDC syntax, examples |\n\n### Code Conventions\n\n| Convention | Description |\n|------------|-------------|\n| Type imports | Always separate: `import type { X }` on its own line |\n| Props defaults | Use `withDefaults()` for runtime, JSDoc `@defaultValue` for docs |\n| Template slots | Add `data-slot=\"name\"` attributes on all elements |\n| `data-slot` on root | A caller-supplied `data-slot` must win on the component's **root** (component's own value as fallback); inner elements keep theirs. Single-root components with default `inheritAttrs` get this free via Vue fallthrough. For `inheritAttrs: false`, place the default before the root's `v-bind` (`data-slot=\"root\" v-bind=\"$attrs\"`), or read `($attrs['data-slot'] as string \\| undefined) ?? 'root'` on the root when `$attrs` is forwarded to an inner element. See [component-structure.md](.github/contributing/component-structure.md#data-slot-on-the-root). |\n| Computed ui | Always use `computed(() => tv(...))` for reactive theming |\n| Theme defaults | Wrap raw props with `useComponentProps(name, _props)` to resolve the priority chain (explicit prop > `<UTheme :props>` > `withDefaults` > `app.config.ui.<name>.defaultVariants`). The proxy deep-merges `ui` automatically — read `props.ui?.<slot>` in templates. `theme.defaultVariants` is **not** read by the proxy — it only feeds `tv()` class resolution. Pass the **raw** `_props` (not the proxy) to `useFormField` / `useFieldGroup` / `useAvatarGroup` so their injection precedence (closer context wins) stays correct. |\n| Form/group fallback | When consuming `size` / `color` / `highlight` from `useFormField`, `useFieldGroup`, or `useAvatarGroup`, always fall back to the proxy in `tv()` calls: `size: size.value ?? props.size`, `color: color.value ?? props.color`, `highlight: highlight.value ?? props.highlight`. This gives the full precedence `explicit > group/formField > <UTheme :props> > undefined`. Without the `?? props.X` fallback, `<UTheme :props>` is silently dropped when the closer context (FormField/FieldGroup/AvatarGroup) is absent. |\n| Semantic colors | Use `text-default`, `bg-elevated`, etc. - never Tailwind palette |\n| Logical properties (RTL) | Use logical utilities (`ms/me`, `ps/pe`, `start/end`, `text-start/end`, `border-s/e`, `rounded-s/e`) not physical (`ml/mr`, `left/right`, `text-left/right`) so components work in RTL by default. `transform`/`cursor`/gradients/transitions need explicit `rtl:` counterparts. See [theme-structure.md](.github/contributing/theme-structure.md#logical-properties-rtl). |\n| Reka UI props | Use `reactivePick` + `useForwardProps(source, emits?)` from `composables/useForwardProps` to forward props (proxy-aware; reka-ui's `useForwardProps` / `useForwardPropsEmits` filter out `<UTheme :props>` defaults) |\n| Form components | Use `useFormField` and `useFieldGroup` composables |\n\n## Component Creation Workflow\n\nCopy this checklist and track progress when creating a new component:\n\n```\nComponent: [name]\nProgress:\n- [ ] 1. Scaffold with CLI: nuxt-ui make component <name>\n- [ ] 2. Implement component in src/runtime/components/\n- [ ] 3. Create theme in src/theme/\n- [ ] 4. Export types from src/runtime/types/index.ts\n- [ ] 5. Register in ThemeDefaults interface (src/runtime/composables/useComponentProps.ts)\n- [ ] 6. Write tests in test/components/\n- [ ] 7. Create docs in docs/content/docs/2.components/\n- [ ] 8. Add playground page\n- [ ] 9. Run pnpm run lint\n- [ ] 10. Run pnpm run typecheck\n- [ ] 11. Run pnpm run test\n```\n\n### PR Review Checklist\n\nWhen reviewing PRs that touch `src/` or `test/`, verify:\n\n```\nPR Review:\n- [ ] Component follows existing patterns (see .github/contributing/)\n- [ ] Theme uses semantic colors, not Tailwind palette\n- [ ] Tests cover props, slots, and accessibility\n- [ ] Documentation includes Usage, Examples, and API sections\n- [ ] Conventional commit message format\n- [ ] All checks pass (lint, typecheck, test)\n```\n\n**Do NOT flag as issues:**\n- `:badge{label=\"Soon\"}` on docs headings in PRs adding new features/fixes (intentional — bridges the gap between docs deploy on merge and feature shipping on next npm release).\n\n## Before Submitting\n\n- [ ] `pnpm run lint` passes\n- [ ] `pnpm run typecheck` passes\n- [ ] `pnpm run test` passes\n- [ ] Documentation is updated if applicable\n- [ ] Commit message follows conventional commits\n- [ ] PR description follows [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) (linked issue, type of change, description, checklist)\n\nMultiple commits are fine — PRs are squash merged, so no need to rebase or force push.\n\n## Resources\n\n- [Contribution Guide](https://ui.nuxt.com/getting-started/contribution)\n- [Nuxt UI GitHub](https://github.com/nuxt/ui)\n","category":"root","tokens":2047}]}