{"_id":"alixan-ui-nuxt","_rev":"121-2bfb2d84f419b021f8d8d920ed2a7a21","name":"alixan-ui-nuxt","dist-tags":{"latest":"3.2.4"},"versions":{"3.2.3":{"name":"alixan-ui-nuxt","version":"3.2.3","_id":"alixan-ui-nuxt@3.2.3","maintainers":[{"name":"alixan-engineer","email":"alixan.engineer@gmail.com"}],"bin":{"alixan-ui-nuxt":"cli/index.js"},"dist":{"shasum":"99160acc6dd5241c8319c6bfdcde0f5e48c0a181","tarball":"https://registry.npmjs.org/alixan-ui-nuxt/-/alixan-ui-nuxt-3.2.3.tgz","fileCount":320,"integrity":"sha512-3CGAVlNihYNWl6PykWKsD12ysQ46uOqBID0xbZgExELVLgvjq2qjDJuhOxVE0E5TVxwSc/DmZ0PCvpb3TGSIdg==","signatures":[{"sig":"MEYCIQCsp80u5mKQcUAR6edMW/mRMf9KdvrG49TGeTKbCwa+4AIhAPkC6BeQZopuoSI2hZb+vudz3aGgbzJ+1QOSVkr6ABs1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":532306},"type":"module","gitHead":"83e7bea96c1ffa10c48753fe9922cd736befe689","private":false,"scripts":{"dev":"nuxt dev","build":"nuxt build","preview":"nuxt preview","generate":"nuxt generate"},"_npmUser":{"name":"alixan-engineer","email":"alixan.engineer@gmail.com"},"_npmVersion":"11.19.0","description":"Modern, minimal, copy-paste UI components for Nuxt 4, Vue 3, TypeScript and Tailwind CSS.","directories":{},"_nodeVersion":"24.12.0","allowScripts":{"esbuild@0.27.7":true,"esbuild@0.28.0":true,"esbuild@0.25.12":true,"@parcel/watcher@2.5.6":true},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.33","nuxt":"^4.4.7","sass":"^1.99.0","typescript":"^6.0.3","vue-router":"^5.0.6","@lucide/vue":"^1.17.0","nuxt-lottie":"^1.0.8","tailwindcss":"^4.3.0","@nuxtjs/i18n":"^10.4.0","@nuxtjs/sitemap":"^8.0.15","@tailwindcss/vite":"^4.3.0","@nuxtjs/color-mode":"^4.0.0","@nuxtjs/google-fonts":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/alixan-ui-nuxt_3.2.3_1787561655463_0.762942660978515","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"alixan-ui-nuxt","version":"3.2.4","type":"module","private":false,"bin":{"alixan-ui-nuxt":"cli/index.js"},"scripts":{"build":"nuxt build","dev":"nuxt dev","generate":"nuxt generate","preview":"nuxt preview"},"devDependencies":{"@lucide/vue":"^1.17.0","@nuxtjs/color-mode":"^4.0.0","@nuxtjs/google-fonts":"^3.2.0","@nuxtjs/i18n":"^10.4.0","@nuxtjs/sitemap":"^8.0.15","@tailwindcss/vite":"^4.3.0","nuxt":"^4.4.7","nuxt-lottie":"^1.0.8","sass":"^1.99.0","tailwindcss":"^4.3.0","typescript":"^6.0.3","vue":"^3.5.33","vue-router":"^5.0.6"},"allowScripts":{"esbuild@0.25.12":true,"esbuild@0.28.0":true,"esbuild@0.27.7":true,"@parcel/watcher@2.5.6":true},"gitHead":"55fa595f0d27e09b917ca9f3c639dd6960472a94","_id":"alixan-ui-nuxt@3.2.4","description":"Modern, minimal, copy-paste UI components for Nuxt 4, Vue 3, TypeScript and Tailwind CSS.","_nodeVersion":"24.12.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-NEH3TmkbIo57TtJPcrzO4+YZCocOj3ZrsNrMdU2YezWcuZoDAw84gVzF/6xVqf0j9iDGrP9VxDEIG04DhHd4XA==","shasum":"b2e9a5021608c91cd6a136fea0ad7de7e54d17c7","tarball":"https://registry.npmjs.org/alixan-ui-nuxt/-/alixan-ui-nuxt-3.2.4.tgz","fileCount":320,"unpackedSize":533395,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDQW30Va/w0OlO4fawsLRuEtqLB9WkHHaUN98Bj7tC2xAiEAvqtJ/pkPuwzi9qOgGAfcbJhhiOYrOoabz3Yl42DA4ig="}]},"_npmUser":{"name":"alixan-engineer","email":"alixan.engineer@gmail.com"},"directories":{},"maintainers":[{"name":"alixan-engineer","email":"alixan.engineer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/alixan-ui-nuxt_3.2.4_1788077294931_0.390223690245306"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T19:51:43.294Z","modified":"2026-08-30T08:08:15.272Z","0.1.1":"2026-05-30T19:51:43.576Z","0.1.2":"2026-06-02T08:09:50.282Z","0.1.3":"2026-06-02T08:12:13.781Z","0.1.4":"2026-06-02T09:47:58.681Z","0.1.5":"2026-06-06T12:07:24.189Z","0.1.6":"2026-06-06T15:03:00.226Z","0.1.7":"2026-06-06T15:03:02.501Z","0.1.8":"2026-06-06T15:03:04.259Z","0.1.9":"2026-06-06T15:03:05.866Z","0.1.10":"2026-06-06T15:03:07.618Z","0.1.11":"2026-06-06T15:03:09.295Z","0.1.12":"2026-06-06T15:03:11.667Z","0.1.13":"2026-06-06T15:03:13.667Z","0.1.14":"2026-06-06T15:03:15.383Z","0.1.15":"2026-06-06T15:03:17.435Z","0.1.16":"2026-06-06T15:03:19.184Z","0.1.17":"2026-06-06T15:03:20.937Z","0.1.18":"2026-06-06T15:03:22.618Z","0.1.19":"2026-06-06T15:03:24.631Z","0.1.20":"2026-06-06T15:03:26.332Z","0.1.21":"2026-06-06T15:04:12.694Z","0.1.22":"2026-06-06T15:04:14.623Z","0.1.23":"2026-06-06T15:04:16.475Z","0.1.24":"2026-06-06T15:04:18.318Z","0.1.25":"2026-06-06T15:04:20.191Z","0.1.26":"2026-06-06T15:04:22.042Z","0.1.27":"2026-06-06T15:04:23.876Z","0.1.28":"2026-06-06T15:04:25.605Z","0.1.29":"2026-06-06T15:04:27.570Z","0.1.30":"2026-06-06T15:04:29.590Z","0.1.32":"2026-06-06T15:05:20.053Z","0.1.33":"2026-06-06T15:12:27.684Z","0.1.34":"2026-06-07T12:30:15.124Z","0.1.35":"2026-06-07T12:37:36.684Z","0.1.36":"2026-06-07T12:40:10.341Z","0.1.37":"2026-06-07T13:15:02.579Z","0.1.38":"2026-06-07T13:20:49.256Z","0.1.39":"2026-06-07T13:33:28.742Z","1.0.0":"2026-06-07T21:19:15.381Z","1.0.1":"2026-06-07T21:34:59.367Z","1.0.2":"2026-06-07T21:41:30.232Z","1.0.3":"2026-06-09T16:37:32.748Z","1.0.4":"2026-06-09T20:21:20.116Z","1.0.5":"2026-06-09T20:48:13.591Z","1.0.6":"2026-06-10T20:57:11.075Z","1.0.7":"2026-06-13T00:59:30.659Z","1.0.8":"2026-06-14T21:34:30.182Z","1.0.9":"2026-06-15T03:07:18.692Z","1.0.10":"2026-06-18T23:29:07.528Z","1.0.11":"2026-06-20T08:10:50.081Z","1.0.12":"2026-06-20T08:32:29.330Z","2.0.0":"2026-06-21T05:12:55.026Z","2.0.1":"2026-06-21T07:25:45.678Z","2.0.2":"2026-06-23T03:39:47.453Z","3.1.0":"2026-07-29T15:36:15.896Z","3.1.1":"2026-07-30T10:45:45.402Z","3.2.0":"2026-08-01T14:44:54.531Z","3.2.1":"2026-08-01T14:46:38.880Z","3.2.2":"2026-08-10T22:33:28.984Z","3.2.3":"2026-08-24T08:54:15.660Z","3.2.4":"2026-08-30T08:08:15.084Z"},"description":"Modern, minimal, copy-paste UI components for Nuxt 4, Vue 3, TypeScript and Tailwind CSS.","maintainers":[{"name":"alixan-engineer","email":"alixan.engineer@gmail.com"}],"readme":"# Alixan UI Nuxt\n\nModern, minimal, copy-paste UI components for Nuxt 4, Vue 3, TypeScript and Tailwind CSS.\n\nAlixan UI Nuxt is not a runtime component package. The CLI copies component source files into your project, so you own the code, can edit it freely, and keep only the pieces you actually use.\n\n<p>\n  <a href=\"https://nuxt.ui.alixan.kz/\">📖 DOCS</a>\n  &nbsp;&nbsp;&nbsp;\n  <a href=\"https://github.com/alixan-engineer/alixan-ui-nuxt\">⭐ GITHUB</a>\n  &nbsp;&nbsp;&nbsp;\n  <a href=\"https://www.npmjs.com/package/alixan-ui-nuxt\">📦 NPM</a>\n</p>\n\n## ✨ Features\n\n- 🎯 Built for Nuxt 4 and Vue 3\n- 🎨 Tailwind CSS v4 tokens, CSS variables and dark mode support\n- 🧩 Copy components directly into your project\n- 🧠 TypeScript-first component APIs\n- 🌍 i18n-ready documentation patterns\n- 🌓 Nuxt Color Mode examples\n- 🔎 SEO, favicon, sitemap and robots.txt guide files\n- 🧰 Small CLI with npm, pnpm, yarn and bun command output\n- 📦 No hidden component runtime dependency\n\n## 🚀 Quick Start\n\nAdd one or more components from your project root:\n\n```bash\nnpx alixan-ui-nuxt add button icon-button input\n```\n\nThis copies the component and required utilities into your app:\n\n```txt\ncomponents/ui/button/Button.vue\nutils/cn.ts\n```\n\nThen use it in any Vue template:\n\n```vue\n<template>\n\t<Button>Save changes</Button>\n</template>\n```\n\n## 📦 Installation Setup\n\nAlixan UI components expect Tailwind CSS and the shared CSS tokens from the documentation.\n\nInstall Tailwind CSS:\n\n```bash\nnpm install tailwindcss @tailwindcss/vite -D\n```\n\nRegister Tailwind in `nuxt.config.ts`:\n\n```ts\nimport tailwindcss from '@tailwindcss/vite';\n\nexport default defineNuxtConfig({\n\tcss: ['~/assets/css/tailwind.css'],\n\tvite: {\n\t\tplugins: [tailwindcss()],\n\t},\n});\n```\n\nUse the documented `app/assets/css/tailwind.css` file for theme tokens, color variables, base styles and shared utilities.\n\n## 🧩 Components\n\nEvery registry item is source code that becomes part of your application. Start with\nthe smallest component that matches the interaction, then compose larger flows from\nthe same tokens and states.\n\n### Actions and navigation\n\n| Component | Use it for |\n| --- | --- |\n| `button` | Primary, secondary and destructive text actions. Choose one visually dominant action per surface and use quieter variants for alternatives. |\n| `icon-button` | Compact actions whose icon is universally recognizable. Always provide an accessible label and use a text Button when the meaning could be ambiguous. |\n| `text-link` | Inline navigation inside paragraphs, hints and documentation. It preserves reading flow without adding button padding. |\n| `app-bar` | Page-level navigation and actions. Compact keeps a stable 56px bar; Silver adds a large title that collapses while its own content container scrolls. |\n| `sidebar` | Responsive application shells with persistent desktop navigation, a mobile overlay and an independently scrolling router outlet. |\n| `bottom-navigation-bar` | Three to five primary mobile destinations. Keep it fixed below the router outlet and use the selected destination as the Compact App Bar title. |\n| `tabs` | Switching between closely related views without changing the page hierarchy. Avoid tabs for sequential workflows. |\n\n### Forms and selection\n\n| Component | Use it for |\n| --- | --- |\n| `input` | General text entry with floating labels, masks and validation. Create an `XControl` for every field to own its value and form state. |\n| `email-input` | Email entry with the Input interaction model and email-format validation. |\n| `password-input` | Secret text entry with a built-in visibility action and optional length rules. |\n| `phone-input` | Kazakhstan-friendly phone entry with a visible country prefix and formatted national number. |\n| `username-input` | Account names restricted to letters and numbers with sensible default length limits. |\n| `iin-input` | Kazakhstan IIN entry with numeric masking and a 12-digit validation rule. |\n| `otp` | Short one-time verification codes split into predictable character cells. Use it only for codes, not passwords or recovery phrases. |\n| `checkbox` | Independent boolean choices or selection of several values from a group. |\n| `switch` | Settings that take effect immediately when turned on or off. Use Checkbox when a value is submitted as part of a form. |\n| `select` | Choosing one predefined option when displaying every option inline would consume too much space. |\n| `autocomplete` | Selecting one predefined option while filtering a longer list by text. It is not a free-form Input. |\n| `calendar` | Selecting a day or date range with month/year navigation and common range presets. |\n| `search` | Search queries that benefit from debounce, a search affordance and a clear action. |\n\n### Content and data display\n\n| Component | Use it for |\n| --- | --- |\n| `accordion` | Progressive disclosure of secondary information. Keep labels descriptive so users can predict the hidden content. |\n| `avatar` | A user image with an initials fallback. Supply a meaningful name even when an image URL is available. |\n| `card` | A self-contained content preview with media, supporting information and one main action. |\n| `chip` | Compact filters, selected values and removable metadata. Do not use it as the primary page action. |\n| `divider` | A subtle boundary between related content groups when spacing alone is insufficient. |\n| `info-box` | Supporting notes, constraints and guidance that should remain visible without interrupting the flow. |\n| `island` | A grouped content surface with an optional inside or outside header. Use it to establish page rhythm, not to wrap every element. |\n| `list` | Repeated rows with consistent leading, content and trailing regions, including interactive rows and trailing actions. |\n| `status` | Short semantic states such as success, warning, information and error. Keep labels concise. |\n| `table` | Structured records whose columns need explicit labels and value mapping. Prefer List for narrow mobile summaries. |\n| `tooltip` | Brief clarification for icon actions or unfamiliar controls. Essential information must remain visible outside a tooltip. |\n\n### Feedback and overlays\n\n| Component | Use it for |\n| --- | --- |\n| `dialog` | Focused forms and decisions that must be completed or dismissed before returning to the page. |\n| `alert-dialog` | Blocking information with one acknowledgement action. It should not ask the user to make a choice. |\n| `confirm-dialog` | Explicit confirmation of consequential actions with clear cancel and submit labels. |\n| `drawer` | Secondary workflows and supporting details that benefit from more vertical space, especially on mobile. |\n| `dropdown-menu` | A compact set of contextual actions anchored to a trigger. Keep frequent actions directly visible instead. |\n| `empty` | No-data, no-results and recoverable error states with a useful explanation and next action. |\n| `global-loader` | Blocking application work during which navigation or duplicate actions would be unsafe. |\n| `spinner` | Local loading inside a bounded region where the rest of the interface remains usable. |\n| `toast` | Non-blocking feedback after an action. Use Dialog for information that requires acknowledgement. |\n\n### Project integration\n\n| Registry item | Use it for |\n| --- | --- |\n| `seo` | Shared site metadata, localized page metadata, favicon links and social previews. |\n\nExample:\n\n```bash\nnpx alixan-ui-nuxt add dialog toast seo\n```\n\n## 🧰 CLI\n\nThe package exposes one CLI command:\n\n```bash\nnpx alixan-ui-nuxt add <component...>\n```\n\nThe CLI reads the registry, copies source files into your project, and keeps component paths folder-based:\n\n```txt\ncomponents/ui/button/Button.vue\ncomponents/ui/alert-dialog/AlertDialog.vue\ncomponents/ui/dropdown-menu/DropdownMenu.vue\n```\n\n## 🎨 Theming\n\nTheme values are powered by CSS variables in `app/assets/css/tailwind.css`.\n\nThe docs include examples for:\n\n- Tailwind CSS setup\n- dark mode with Nuxt Color Mode\n- accent colors\n- the shared `backdrop` utility for overlays\n- copying generated theme CSS\n\nInstall Nuxt Color Mode with:\n\n```bash\nnpx nuxt module add color-mode\n```\n\n## 🌍 i18n\n\nThe documentation uses `@nuxtjs/i18n` with locale files in:\n\n```txt\ni18n/locales/en.json\ni18n/locales/ru.json\ni18n/locales/kk.json\n```\n\nInstall Nuxt i18n with:\n\n```bash\nnpx nuxt module add i18n\n```\n\nComponents and docs use Nuxt i18n's built-in `$t`. Set `missingWarn: false` in i18n config if plain values can pass through `$t`.\n\nThe Nuxt module points to a separate Vue i18n config file:\n\n```ts\nexport default defineNuxtConfig({\n\tmodules: ['@nuxtjs/i18n'],\n\ti18n: {\n\t\tvueI18n: './configs/i18n.config.ts',\n\t\tdefaultLocale: 'en',\n\t\tstrategy: 'prefix_except_default',\n\t\tdetectBrowserLanguage: false,\n\t\tlocales: [\n\t\t\t{ code: 'en', name: 'English', file: 'en.json' },\n\t\t\t{ code: 'ru', name: 'Русский', file: 'ru.json' },\n\t\t\t{ code: 'kk', name: 'Қазақша', file: 'kk.json' },\n\t\t],\n\t},\n});\n```\n\n```ts\n// i18n/configs/i18n.config.ts\nexport default {\n\t// Disable warnings because some UI props intentionally pass plain strings through $t.\n\tmissingWarn: false,\n\tfallbackWarn: false,\n};\n```\n\n## 🪟 Client-only overlays\n\n`DialogHost`, `DrawerHost` and `ToastHost` should be mounted once near the root of the app. These hosts render their overlay content through `ClientOnly`, so dialog, drawer and toast UI is client-side only.\n\n## 🔎 SEO\n\nThe `seo` registry item includes:\n\n- `app/config/site/site.ts`\n- `app/config/site/favicon.ts`\n- `app/composables/usePageMeta.ts`\n\nIt gives you a shared place for site URL, title, description, Open Graph image and page-level SEO metadata.\n`usePageMeta` resolves page title and description through `useI18n().t`, so values can be translation keys or plain strings when `missingWarn` is disabled.\n\nFor sitemap support:\n\n```bash\nnpx nuxt module add @nuxtjs/sitemap\n```\n\n## 🛠 Development\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nStart the documentation app:\n\n```bash\nnpm run dev\n```\n\nBuild for production:\n\n```bash\nnpm run build\n```\n\nGenerate a static site:\n\n```bash\nnpm run generate\n```\n\nPreview the production build:\n\n```bash\nnpm run preview\n```\n\n## 📁 Project Structure\n\n```txt\napp/\n  assets/css/tailwind.css\n  components/ui/\n  composables/\n  config/site/\n  plugins/\n  types/\n  pages/\ncli/\n  index.js\nregistry/\n  *.json\ni18n/\n  configs/i18n.config.ts\n  locales/*.json\n```\n\n## 📄 License\n\nMIT\n","readmeFilename":"README.md"}