diff --git a/.cursor/rules/brutxui.mdc b/.cursor/rules/brutxui.mdc deleted file mode 100644 index 02c5438..0000000 --- a/.cursor/rules/brutxui.mdc +++ /dev/null @@ -1,31 +0,0 @@ ---- -description: Custom styling, component blueprints, and architectural safety rules for BrutxUI components and CLI packages. -globs: packages/ui/src/components/**/*.tsx, packages/registry/registry.json, packages/cli/src/commands/**/*.ts ---- - -# BrutxUI AI & Coding Rules - -Always follow these rules when developing in this monorepo: - -## Core Visual System Rules -- **Outline Thickness:** Use `border-3 border-black` (or `dark:border-white`). Avoid soft outlines like `border-slate-100`. -- **Dropshadows:** Saturated, unblurred flat shadows only: - - `shadow-brutal` (which resolves to `box-shadow: 4px 4px 0px 0px #000`) - - `shadow-brutal-sm` (2px) - - `shadow-brutal-lg` (6px) -- **Angles:** Razor-sharp unrounded corners via `rounded-none`, or global parameter classes like `rounded-brutal`. -- **Interactive translation:** Active elements translate down and right: `active:translate-x-[2px] active:translate-y-[2px] active:shadow-[2px_2px_0px_0px_#000] transition-all`. -- **Palette Highlights:** Saturated neon yellow (`#FFE66D`), mint teal (`#4ECDC4`), and coral red (`#FF6B6B`). - -## Code Blueprints -- **Class Mergers:** Merge incoming classes using `cn` (from `@/lib/utils` or `../lib/utils`). -- **Variants:** Set styles through CVA. For atomic components (e.g. `button.tsx`), define variant properties for easy custom overriding. -- **Radix UI Accessibility:** Retain screen reader compatibility, ARIA tags, and outline highlights. - -## Security Controls -- **Path Sanitization:** When editing CLI scripts (e.g. `add.ts` or `init.ts`), always check that file destinations are validated inside safe workspaces using `isSafePath`. Normalize the paths and filter out traversing sequences (`..`). - -## Manifest Compiler -- When adding a component or layout block, describe it in `packages/registry/registry.json`. Execute the compiler and validator before finishing: - - `pnpm --filter brutx-registry build` - - `pnpm --filter brutx-registry validate` diff --git a/.cursorrules b/.cursorrules deleted file mode 100644 index ad2b89f..0000000 --- a/.cursorrules +++ /dev/null @@ -1,22 +0,0 @@ -# BrutxUI Cursor Rules - -Always adhere to these guidelines when authoring React components, layout blocks, or styling custom elements in the BrutxUI codebase: - -## Visual Style Guide -- **Borders:** Always use `border-3 border-black` (or `dark:border-white`). Never use default light slate/gray borders. -- **Shadows:** Hard offset shadows only. Use `shadow-brutal` (4px offset), `shadow-brutal-sm` (2px offset), or `shadow-brutal-lg` (6px offset). Never use standard blurred shadows (`shadow-md`, `shadow-lg`). -- **Radii:** Sharp 0px corners via `rounded-none`, or global parameter classes like `rounded-brutal`. -- **Transitions:** Buttons and interactive elements translate on press: `active:translate-x-[2px] active:translate-y-[2px] active:shadow-[2px_2px_0px_0px_#000] transition-all`. -- **Color Accents:** Use saturated high-contrast colors: Coral `#FF6B6B` (`bg-brutal-primary`), Mint Teal `#4ECDC4` (`bg-brutal-secondary`), Saturated Yellow `#FFE66D` (`bg-brutal-accent`). - -## Component Guidelines -- Use standard `class-variance-authority` (CVA) to define styling variants. -- Merge custom layout inputs using the local class merger helper `cn` from `@/lib/utils` or equivalent path. -- Follow Radix UI guidelines for modals, dialogs, popovers, and inputs to keep markup robust and fully accessible. -- Declare correct `displayName` for every component file. - -## Safe Path Resolving -- When authoring CLI tools, normalize all directory inputs. Check and reject any relative traversals (`..`) or absolute path structures that escape safe workspaces. - -## Registry Schema -- When creating a new component or pricing block, always append its configuration schema to `packages/registry/registry.json`. Then compile and validate schemas via `pnpm --filter brutx-registry build` and `pnpm --filter brutx-registry validate`. diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 0d2fabf..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,5 +0,0 @@ -# These are supported funding model platforms - -github: [dev-snake] -buy_me_a_coffee: devsnake -ko_fi: devsnake diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 547b1f8..a83bf89 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,33 +1,36 @@ -# GitHub Copilot System Rules for BrutxUI +# GitHub Copilot BrutxUI 系统规则 -You are an expert React and Tailwind CSS developer tasked with generating high-fidelity components, pricing blocks, and utility CLI commands for the BrutxUI codebase. Follow these guidelines closely: +你是一名精通 Vue 3 和 Tailwind CSS 的开发者,负责为 BrutxUI 代码库生成高保真组件、定价块和实用 CLI 命令。请严格遵循以下准则: --- -## 🎨 Visual System Constraints +## 视觉系统约束 -Every element in BrutxUI is modeled on a high-contrast Neo-Brutalist design language: -- **Thick Outlines:** Outlines must use `border-3 border-black` (or `dark:border-white`). Never drop down to thin slate lines. -- **Flat Shadow Offsets:** Saturated, unblurred flat shadows only: - - `shadow-brutal` (4px offset) - - `shadow-brutal-sm` (2px offset) - - `shadow-brutal-lg` (6px offset) -- **Sharp Corners:** Default to sharp unrounded edges via `rounded-none`, or global parameter classes like `rounded-brutal`. -- **Physical Press Feedback:** Buttons translate down and right when active: `active:translate-x-[2px] active:translate-y-[2px] active:shadow-[2px_2px_0px_0px_#000] transition-all`. -- **Contrast Accents:** Use saturated high-contrast colors: Coral `#FF6B6B`, Mint Teal `#4ECDC4`, Saturated Yellow `#FFE66D`. +BrutxUI 中的每个元素都基于高对比度 Neo-Brutalist 设计语言: +- **粗边框:** 边框必须使用 `border-3 border-brutal`(使用 CSS 变量 `--brutal-border-color`,暗色模式自动切换)。切勿降级为细浅色线条。 +- **扁平阴影偏移:** 仅使用饱和、无模糊的扁平阴影: + - `shadow-brutal`(4px 偏移) + - `shadow-brutal-sm`(2px 偏移) + - `shadow-brutal-lg`(6px 偏移) + - `shadow-brutal-xl`(8px 偏移) +- **锐利圆角:** 默认通过 `rounded-none` 实现锐利无圆角边缘,或使用全局参数类如 `rounded-brutal`。 +- **物理按压反馈:** 按钮在激活时向下位移:`active:translate-y-[var(--brutal-pressed-offset,2px)] active:shadow-none transition-all`。 +- **对比强调色:** 通过 CSS 变量使用饱和高对比度颜色:珊瑚红 `#FF6B6B`(`bg-brutal-primary`)、薄荷青 `#4ECDC4`(`bg-brutal-secondary`)、饱和黄 `#FFE66D`(`bg-brutal-accent`)。 --- -## 🧩 Component Blueprints & Architecture +## 组件蓝图与架构 -1. **Class Variance Authority:** Define all variants via CVA. -2. **Merge Helper:** Merge external classes via `cn(...)` from `@/lib/utils` or equivalent nesting depths. -3. **Accessibility:** Keep Radix modal traps, focus loops, ARIA tags, and keyboard outline rings. -4. **Display Name:** Declare displays on all exports (e.g. `Button.displayName = 'Button'`). +1. **Vue 3 SFC:** 所有组件使用 ` + + +``` diff --git a/LICENSE b/LICENSE index 49f4258..b2b9e5d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Dang Van Hau +Copyright (c) 2025 lidaixingchen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index e7108a2..006f8cb 100644 --- a/README.md +++ b/README.md @@ -1,163 +1,173 @@
Brutx Logo - + # BrutxUI - - **A copy-paste Neo-Brutalist component registry for React and Tailwind CSS.** - - Use it when you want visible borders, strong shadows, accessible primitives, and component code you can edit directly. - - ### Component Registry (`brutx-ui`) - [![npm version](https://img.shields.io/npm/v/brutx-ui.svg?style=flat-square&color=FF6B6B)](https://www.npmjs.com/package/brutx-ui) - [![npm downloads](https://img.shields.io/npm/dm/brutx-ui.svg?style=flat-square&color=4ECDC4)](https://www.npmjs.com/package/brutx-ui) - - ### CLI Tool (`brutx`) - [![npm version](https://img.shields.io/npm/v/brutx.svg?style=flat-square&color=FFE66D)](https://www.npmjs.com/package/brutx) - [![npm downloads](https://img.shields.io/npm/dm/brutx.svg?style=flat-square&color=4ECDC4)](https://www.npmjs.com/package/brutx) - - ### Project Health & Sponsors + + **面向 Vue 3 + Tailwind CSS 的复制粘贴式新粗野主义组件注册表。** + + 当你需要可见边框、强烈阴影、无障碍原语以及可直接编辑的组件代码时,就用它。 + + ### 组件注册表 (`brutx-ui-vue`) + [![npm version](https://img.shields.io/npm/v/brutx-ui-vue.svg?style=flat-square&color=FF6B6B)](https://www.npmjs.com/package/brutx-ui-vue) + [![npm downloads](https://img.shields.io/npm/dm/brutx-ui-vue.svg?style=flat-square&color=4ECDC4)](https://www.npmjs.com/package/brutx-ui-vue) + + ### CLI 工具 (`brutx-vue`) + [![npm version](https://img.shields.io/npm/v/brutx-vue.svg?style=flat-square&color=FFE66D)](https://www.npmjs.com/package/brutx-vue) + [![npm downloads](https://img.shields.io/npm/dm/brutx-vue.svg?style=flat-square&color=4ECDC4)](https://www.npmjs.com/package/brutx-vue) + + ### 项目健康度 [![License: MIT](https://img.shields.io/badge/License-MIT-4ECDC4.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![TypeScript](https://img.shields.io/badge/TypeScript-5.7+-FFE66D.svg?style=flat-square)](https://www.typescriptlang.org/) - [![React](https://img.shields.io/badge/React-19+-61DAFB.svg?style=flat-square)](https://reactjs.org/) - [![Next.js](https://img.shields.io/badge/Next.js-15+-000000.svg?style=flat-square&logo=nextdotjs&logoColor=white)](https://nextjs.org/) - [![Sponsor](https://img.shields.io/badge/Sponsor-FF6B6B?style=flat-square&logo=github&logoColor=white)](https://github.com/sponsors/dev-snake) + [![Vue 3](https://img.shields.io/badge/Vue_3-3.5+-4FC08D.svg?style=flat-square&logo=vuedotjs&logoColor=white)](https://vuejs.org/) + [![Vite](https://img.shields.io/badge/Vite-6+-646CFF.svg?style=flat-square&logo=vite&logoColor=white)](https://vitejs.dev/) +
- [Documentation & Previews](https://brutxui.site) · [NPM Library](https://www.npmjs.com/package/brutx-ui) · [NPM CLI](https://www.npmjs.com/package/brutx) · [Report Bug](https://github.com/dev-snake/brutxui/issues) + [文档与预览](https://lidaixingchen.github.io/brutxui-vue3/) · [NPM 组件库](https://www.npmjs.com/package/brutx-ui-vue) · [NPM CLI](https://www.npmjs.com/package/brutx-vue) · [报告问题](https://github.com/lidaixingchen/brutxui-vue3/issues)
--- -## What is BrutxUI? +## BrutxUI 是什么? -BrutxUI is a Neo-Brutalist design registry for SaaS apps, indie tools, dashboards, developer portfolios, landing pages, and product interfaces that need a stronger visual tone. +BrutxUI 是一个面向 SaaS 应用、独立工具、仪表盘、开发者作品集、落地页和产品界面的新粗野主义设计注册表,适用于需要更强视觉冲击力的场景。 -Instead of shipping as a single npm dependency that hides the implementation, **BrutxUI is copy-paste-first**. It follows the workflow popularized by `shadcn/ui`: components are generated into your project, built on **Radix UI** primitives and **Tailwind CSS**, so you can own the code and change it freely. +与作为单一 npm 依赖隐藏实现细节的方式不同,**BrutxUI 以复制粘贴为首要原则**。它遵循 `shadcn/ui` 推广的工作流:组件生成到你的项目中,基于 **reka-ui** 无障碍原语和 **Tailwind CSS** 构建,让你拥有代码并自由修改。 --- -## When to Use BrutxUI +## 何时使用 BrutxUI -- **Good fit:** SaaS products, analytics dashboards, developer utilities, landing pages, web3 portals, and creative portfolios that can support a bold interface style. -- **Use with care:** Conservative enterprise dashboards, patient-facing healthcare records, and traditional banking apps. The **Pastel** and **Monochrome** presets can soften the contrast when the default style feels too loud. +- **适合:** SaaS 产品、分析仪表盘、开发者工具、落地页、Web3 门户,以及能承载大胆界面风格的创意作品集。 +- **谨慎使用:** 保守的企业仪表盘、面向患者的医疗记录、传统银行应用。当默认风格过于张扬时,**Pastel(柔和)** 和 **Monochrome(单色)** 预设可以柔化对比度。 --- -## Relationship with `shadcn/ui` +## 与 `shadcn/ui` 的关系 -BrutxUI is meant to work alongside `shadcn/ui`, not replace it: -* **Shared workflow:** BrutxUI uses the same `components.json` layout schema. -* **Co-existence:** You can use `shadcn/ui` components for quieter UI surfaces and BrutxUI components for buttons, headers, pricing sections, or other high-contrast areas in the same project. -* **Tailwind styling:** The generated files merge into standard Tailwind CSS layers. +BrutxUI 旨在与 `shadcn/ui` 协同工作,而非替代它: +* **共享工作流:** BrutxUI 使用相同的 `components.json` 布局模式。 +* **共存:** 你可以在同一项目中,对安静的 UI 表面使用 `shadcn/ui` 组件,对按钮、页头、定价区域或其他高对比度区域使用 BrutxUI 组件。 +* **Tailwind 样式:** 生成的文件合并到标准 Tailwind CSS 层中。 --- -## Installation and Registry Workflows +## 安装与注册表工作流 + +安装 BrutxUI 组件有两种常见方式: -There are two common ways to install BrutxUI components: +### 方式 A:Brutx-Vue CLI(推荐) -### Option A: Brutx CLI (Recommended) -The Brutx CLI handles Tailwind detection, CSS token injection, and package manager detection. +Brutx-Vue CLI 负责 Tailwind 检测、CSS 令牌注入和包管理器检测。 ```bash -# Initialize BrutxUI configs in your project -npx brutx@latest init +# 在项目中初始化 BrutxUI 配置 +npx brutx-vue@latest init -# Add specific components -npx brutx@latest add button card badge +# 添加指定组件 +npx brutx-vue@latest add button card badge -# Install all 29 components at once -npx brutx@latest add --all +# 一次性安装全部组件 +npx brutx-vue@latest add --all ``` -### Option B: Official `shadcn` CLI -Because BrutxUI follows the shadcn/ui JSON registry schema, you can install BrutxUI components with the official shadcn CLI: +### 方式 B:官方 `shadcn` CLI + +由于 BrutxUI 遵循 shadcn/ui JSON 注册表模式,你可以使用官方 shadcn CLI 安装 BrutxUI 组件: ```bash -# Install Brutx Button -npx shadcn@latest add https://brutxui.site/registry/button.json +# 安装 Brutx Button +npx shadcn@latest add https://lidaixingchen.github.io/brutxui-vue3/registry/button.json -# Install Brutx SaaS Pricing Block -npx shadcn@latest add https://brutxui.site/registry/saas-pricing.json +# 安装 Brutx SaaS 定价区块 +npx shadcn@latest add https://lidaixingchen.github.io/brutxui-vue3/registry/saas-pricing.json ``` --- -## Sizing System and Theme Presets +## 尺寸系统与主题预设 -BrutxUI exposes CSS custom properties in your stylesheet, so you can soften or strengthen the brutalist style globally: +BrutxUI 在样式表中暴露 CSS 自定义属性,你可以全局柔化或强化粗野主义风格: ```css :root { - --brutal-border-width: 3px; /* Thickness of layouts */ - --brutal-radius: 0px; /* Sharp rectangular corners */ - --brutal-shadow-offset: 4px; /* Normal card/button offset */ + --brutal-border-width: 3px; /* 布局边框粗细 */ + --brutal-radius: 0px; /* 锐利直角 */ + --brutal-shadow-offset: 4px; /* 常规卡片/按钮偏移 */ } ``` -There are three built-in visual presets: -1. **Classic Brutalism (`.theme-classic`):** Deep black shadows, neon accents, and sharp corners. -2. **Pastel Neo-Brut (`.theme-pastel`):** Softer colors, lighter contrast, and `8px` corners. -3. **Stark Monochrome (`.theme-mono`):** Grayscale colors and heavier black lines for minimal interfaces. +内置三种视觉预设: +1. **经典粗野主义 (`.theme-classic`):** 深黑阴影、霓虹强调色、锐利直角。 +2. **柔和新粗野 (`.theme-pastel`):** 柔和色彩、较轻对比度、`8px` 圆角。 +3. **纯粹单色 (`.theme-mono`):** 灰度色彩和更粗的黑色线条,适用于极简界面。 --- -## Supported Components and Blocks +## 多语言支持 -BrutxUI includes components and layout blocks for common product UI work: +BrutxUI 内置中文(`zh-CN`,默认)和英文(`en`)语言包,支持运行时切换、局部覆盖和自定义翻译,无需 `vue-i18n` 依赖: -### Layout Blocks and Templates -* **`saas-pricing`:** A responsive SaaS pricing section with monthly/yearly billing switches, checklist icons, highlighted plans, and CTA buttons. [Registry URL](https://brutxui.site/registry/saas-pricing.json) -* **`dashboard-stats`:** A responsive analytics panel for metrics such as revenue and conversion, with positive/negative trend badges. [Registry URL](https://brutxui.site/registry/dashboard-stats.json) +```ts +import { BrutxUIPlugin, en } from 'brutx-ui-vue' -### Atomic Components -* **Forms:** `Button`, `SubmitButton` (Server Component safe), `Input`, `Textarea`, `Checkbox`, `Switch`, `Select`, `Label` -* **Overlays:** `Dialog` (Modal), `Popover`, `Tooltip`, `DropdownMenu` -* **Data & Lists:** `Table`, `Tabs`, `Command` (spotlight search), `Combobox` (multi-picker), `Pagination`, `ScrollArea` -* **Feedback:** `Alert`, `Badge`, `Toast` (notifiers), `Spinner` (loaders), `Skeleton` -* **Display:** `Avatar`, `Calendar`, `Separator` +app.use(BrutxUIPlugin, { locale: en }) +``` --- -## Contribution and Development +## 支持的组件与区块 -To run, test, and package BrutxUI locally: +BrutxUI 包含常见产品 UI 所需的组件和布局区块: -### 1. Repository Setup +### 布局区块与模板 +* **`saas-pricing`:** 响应式 SaaS 定价区域,支持月付/年付切换、清单图标、高亮方案和 CTA 按钮。[注册表 URL](https://lidaixingchen.github.io/brutxui-vue3/registry/saas-pricing.json) +* **`dashboard-stats`:** 响应式分析面板,用于收入和转化等指标,带正/负趋势徽章。[注册表 URL](https://lidaixingchen.github.io/brutxui-vue3/registry/dashboard-stats.json) + +### 原子组件 +* **表单:** `Button`、`Input`、`Textarea`、`Checkbox`、`Switch`、`Select`、`Label` +* **浮层:** `Dialog`(模态框)、`Popover`、`Tooltip`、`DropdownMenu` +* **数据与列表:** `Table`、`Tabs`、`Command`(快速搜索)、`Combobox`(多选器)、`Pagination`、`ScrollArea` +* **反馈:** `Alert`、`Badge`、`Toast`(通知)、`Spinner`(加载)、`Skeleton` +* **展示:** `Avatar`、`Calendar`、`Separator` + +--- + +## 贡献与开发 + +在本地运行、测试和打包 BrutxUI: + +### 1. 仓库设置 ```bash -# Clone the repository -git clone https://github.com/dev-snake/brutxui.git -cd brutxui +# 克隆仓库 +git clone https://github.com/lidaixingchen/brutxui-vue3.git +cd brutxui-vue3 -# Install workspace dependencies +# 安装工作区依赖 pnpm install -# Build UI modules and CLI binaries -pnpm --filter brutx-ui build && pnpm --filter brutx build +# 构建 UI 模块和 CLI 二进制文件 +pnpm --filter brutx-ui-vue build && pnpm --filter brutx-vue build ``` -### 2. Run Test Suites +### 2. 运行测试套件 ```bash pnpm test ``` -### 3. Recompile Component JSON Registry -If you make changes to core components in `packages/ui/src/components/*.tsx`, compile and validate the schemas: +### 3. 重新编译组件 JSON 注册表 +如果你修改了 `packages/ui/src/components/*.vue` 中的核心组件,请编译并验证模式: ```bash -# Compile TS to registry JSON files -pnpm --filter brutx-registry build +# 编译为注册表 JSON 文件 +pnpm --filter brutx-registry-vue build -# Validate JSON files against shadcn CLI schema -pnpm --filter brutx-registry validate +# 根据 shadcn CLI 模式验证 JSON 文件 +pnpm --filter brutx-registry-vue validate ``` --- -## License - -BrutxUI is open-source software licensed under the [MIT License](LICENSE). +## 许可证 -
-

Built by dev-snake and contributors.

-
+BrutxUI 是基于 [MIT 许可证](LICENSE) 的开源软件。 diff --git a/apps/docs/.eslintrc.json b/apps/docs/.eslintrc.json deleted file mode 100644 index 580f3c9..0000000 --- a/apps/docs/.eslintrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "next/core-web-vitals", - "rules": { - "react/no-unescaped-entities": "off", - "@next/next/no-img-element": "off" - } -} diff --git a/apps/docs/.vitepress/config.ts b/apps/docs/.vitepress/config.ts new file mode 100644 index 0000000..118afdf --- /dev/null +++ b/apps/docs/.vitepress/config.ts @@ -0,0 +1,222 @@ +import { defineConfig } from 'vitepress' +import tailwindcss from 'tailwindcss' +import autoprefixer from 'autoprefixer' +import { resolve } from 'path' + +const tailwindConfig = resolve(__dirname, '../tailwind.config.cjs') + +export default defineConfig({ + title: 'BrutxUI', + description: 'Neo-Brutalism 风格 Vue 3 组件库', + base: '/brutxui-vue3/', + sitemap: { + hostname: 'https://lidaixingchen.github.io/brutxui-vue3/', + }, + head: [ + ['link', { rel: 'icon', type: 'image/svg+xml', href: '/brutxui-vue3/favicon.svg' }], + ['meta', { name: 'theme-color', content: '#FFE66D' }], + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:title', content: 'BrutxUI' }], + ['meta', { property: 'og:description', content: 'Neo-Brutalism 风格 Vue 3 组件库' }], + ['meta', { property: 'og:image', content: '/brutxui-vue3/og-image.svg' }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + ['meta', { name: 'twitter:title', content: 'BrutxUI' }], + ['meta', { name: 'twitter:description', content: 'Neo-Brutalism 风格 Vue 3 组件库' }], + ['link', { rel: 'preconnect', href: 'https://fonts.googleapis.com' }], + ['link', { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' }], + ['link', { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700;900&display=swap' }], + ['link', { rel: 'manifest', href: '/brutxui-vue3/manifest.json' }], + ], + transformHead(context) { + let pageUrl = context.page.replace(/\.md$/, '') + if (pageUrl === 'index') pageUrl = '' + const canonicalUrl = `https://lidaixingchen.github.io/brutxui-vue3/${pageUrl}` + + return [ + ['link', { rel: 'canonical', href: canonicalUrl }], + [ + 'script', + { type: 'application/ld+json' }, + JSON.stringify({ + '@context': 'https://schema.org', + '@type': 'SoftwareSourceCode', + name: 'BrutxUI', + description: 'Neo-Brutalism 风格 Vue 3 组件库', + url: 'https://lidaixingchen.github.io/brutxui-vue3/', + codeRepository: 'https://github.com/lidaixingchen/brutxui-vue3', + programmingLanguage: 'Vue', + license: 'MIT', + }), + ], + ] + }, + themeConfig: { + logo: '/favicon.svg', + nav: [ + { text: '指南', link: '/guide/getting-started' }, + { text: '组件', link: '/components/alert' }, + { + text: 'GitHub', + link: 'https://github.com/lidaixingchen/brutxui-vue3', + }, + ], + sidebar: [ + { + text: '快速开始', + link: '/guide/getting-started', + }, + { + text: '安装', + items: [ + { text: 'Vite', link: '/guide/installation-vite' }, + { text: '手动安装', link: '/guide/installation-manual' }, + ], + }, + { + text: 'CLI 工具', + link: '/guide/cli', + }, + { + text: '主题与令牌', + link: '/guide/theme', + }, + { + text: '国际化', + link: '/guide/locale', + }, + { + text: 'AI 集成', + link: '/guide/ai', + }, + { + text: '组件', + items: [ + { text: 'Accordion 折叠面板', link: '/components/accordion' }, + { text: 'Alert 提示', link: '/components/alert' }, + { text: 'Alert Dialog 提示对话框', link: '/components/alert-dialog' }, + { text: 'Avatar 头像', link: '/components/avatar' }, + { text: 'Badge 徽标', link: '/components/badge' }, + { text: 'BeforeAfter 对比滑块', link: '/components/before-after' }, + { text: 'Breadcrumb 面包屑', link: '/components/breadcrumb' }, + { text: 'Button 按钮', link: '/components/button' }, + { text: 'Calendar 日历', link: '/components/calendar' }, + { text: 'Card 卡片', link: '/components/card' }, + { text: 'Card3D 3D 悬浮卡片', link: '/components/card-3d' }, + { text: 'Checkbox 复选框', link: '/components/checkbox' }, + { text: 'CodeBlock 代码块', link: '/components/code-block' }, + { text: 'Combobox 组合框', link: '/components/combobox' }, + { text: 'Command 命令面板', link: '/components/command' }, + { text: 'CopyToClipboard 复制按钮', link: '/components/copy-to-clipboard' }, + { text: 'Dashboard Stats 仪表盘统计', link: '/components/dashboard-stats' }, + { text: 'Dialog 对话框', link: '/components/dialog' }, + { text: 'Dropdown Menu 下拉菜单', link: '/components/dropdown-menu' }, + { text: 'Form 表单', link: '/components/form' }, + { text: 'GlitchText 故障文本', link: '/components/glitch-text' }, + { text: 'HardcoreInput 硬核输入框', link: '/components/hardcore-input' }, + { text: 'Input 输入框', link: '/components/input' }, + { text: 'Carousel 轮播图', link: '/components/carousel' }, + { text: 'ChatBubble 聊天气泡', link: '/components/chat-bubble' }, + { text: 'Counter 数字滚动', link: '/components/counter' }, + { text: 'KanbanBoard 看板', link: '/components/kanban-board' }, + { text: 'Kbd 键盘按键', link: '/components/kbd' }, + { text: 'Label 标签', link: '/components/label' }, + { text: 'Marquee 跑马灯', link: '/components/marquee' }, + { text: 'NumberInput 数字输入框', link: '/components/number-input' }, + { text: 'Pagination 分页', link: '/components/pagination' }, + { text: 'Popover 弹出层', link: '/components/popover' }, + { text: 'Progress 进度条', link: '/components/progress' }, + { text: 'Radio Group 单选组', link: '/components/radio-group' }, + { text: 'SaaS Pricing 定价', link: '/components/saas-pricing' }, + { text: 'Scroll Area 滚动区域', link: '/components/scroll-area' }, + { text: 'ScratchCard 刮刮卡', link: '/components/scratch-card' }, + { text: 'SketchyChart 手绘图表', link: '/components/sketchy-chart' }, + { text: 'Select 选择器', link: '/components/select' }, + { text: 'Separator 分隔线', link: '/components/separator' }, + { text: 'Sheet 抽屉', link: '/components/sheet' }, + { text: 'Skeleton 骨架屏', link: '/components/skeleton' }, + { text: 'Slider 滑块', link: '/components/slider' }, + { text: 'Spinner 加载指示器', link: '/components/spinner' }, + { text: 'Submit Button 提交按钮', link: '/components/submit-button' }, + { text: 'Switch 开关', link: '/components/switch' }, + { text: 'Table 表格', link: '/components/table' }, + { text: 'Tabs 标签页', link: '/components/tabs' }, + { text: 'Stepper 步骤条', link: '/components/stepper' }, + { text: 'TagsInput 标签输入', link: '/components/tags-input' }, + { text: 'Textarea 文本域', link: '/components/textarea' }, + { text: 'Timeline 时间线', link: '/components/timeline' }, + { text: 'Toast 轻提示', link: '/components/toast' }, + { text: 'Toggle 切换', link: '/components/toggle' }, + { text: 'Toggle Group 切换组', link: '/components/toggle-group' }, + { text: 'Tooltip 工具提示', link: '/components/tooltip' }, + { text: 'TreeView 树形目录', link: '/components/tree-view' }, + ], + }, + { + text: '区块与模板', + items: [ + { text: '概览', link: '/blocks/' }, + { text: 'Brutalist Hero 英雄区', link: '/blocks/brutalist-hero' }, + { text: 'Pricing Section 定价区', link: '/blocks/pricing-section' }, + { text: 'Auth Card 认证卡片', link: '/blocks/auth-card' }, + { text: 'Dashboard Shell 仪表盘框架', link: '/blocks/dashboard-shell' }, + { text: 'Empty State 空状态', link: '/blocks/empty-state' }, + { text: 'Waitlist Page 等候列表页', link: '/blocks/waitlist-page' }, + { text: 'Not Found Page 404 页面', link: '/blocks/not-found-page' }, + { text: 'Loading Page 加载页', link: '/blocks/loading-page' }, + { text: 'Header Section 顶部导航', link: '/blocks/header-section' }, + { text: 'Footer Section 底部信息栏', link: '/blocks/footer-section' }, + { text: 'FAQ Section 常见问题', link: '/blocks/faq-section' }, + { text: 'Testimonial Card 评价卡片', link: '/blocks/testimonial-card' }, + { text: 'Blog Card 博客卡片', link: '/blocks/blog-card' }, + { text: 'File Card 文件卡片', link: '/blocks/file-card' }, + { text: 'Quick Actions 快捷操作', link: '/blocks/quick-actions' }, + { text: 'Tabs Nav 标签导航', link: '/blocks/tabs-nav' }, + { text: 'Data Table Section 数据表格', link: '/blocks/data-table-section' }, + { text: 'Settings Page 设置页', link: '/blocks/settings-page' }, + { text: 'Error Card 错误卡片', link: '/blocks/error-card' }, + { text: 'Success Card 成功卡片', link: '/blocks/success-card' }, + { text: 'Search Widget 搜索组件', link: '/blocks/search-widget' }, + { text: 'Feedback Form 反馈表单', link: '/blocks/feedback-form' }, + { text: 'Stepper Section 步骤导航', link: '/blocks/stepper-section' }, + { text: 'Cookie Consent Cookie 同意', link: '/blocks/cookie-consent' }, + { text: 'Blog List Page 博客列表页', link: '/blocks/blog-list-page' }, + { text: 'Chart Section 图表区', link: '/blocks/chart-section' }, + { text: 'Upload Card 上传卡片', link: '/blocks/upload-card' }, + { text: 'Gallery Section 画廊区', link: '/blocks/gallery-section' }, + { text: 'Overview Page 概览页', link: '/blocks/overview-page' }, + { text: 'Activity Log Page 活动日志页', link: '/blocks/activity-log-page' }, + { text: 'Profile Page 个人资料页', link: '/blocks/profile-page' }, + ], + }, + ], + search: { + provider: 'local', + }, + socialLinks: [ + { icon: 'github', link: 'https://github.com/lidaixingchen/brutxui-vue3' }, + ], + footer: { + message: 'Built with brute force.', + copyright: `© ${new Date().getFullYear()} BrutxUI · MIT License`, + }, + editLink: { + pattern: 'https://github.com/lidaixingchen/brutxui-vue3/edit/main/apps/docs/:path', + text: '在 GitHub 上编辑此页', + }, + }, + vite: { + resolve: { + alias: { + '@': new URL('./.vitepress', import.meta.url).pathname, + }, + }, + css: { + postcss: { + plugins: [ + tailwindcss(tailwindConfig), + autoprefixer(), + ], + }, + }, + }, +}) diff --git a/apps/docs/.vitepress/theme/components/CodeBlock.vue b/apps/docs/.vitepress/theme/components/CodeBlock.vue new file mode 100644 index 0000000..288d33c --- /dev/null +++ b/apps/docs/.vitepress/theme/components/CodeBlock.vue @@ -0,0 +1,57 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/ComponentPreview.vue b/apps/docs/.vitepress/theme/components/ComponentPreview.vue new file mode 100644 index 0000000..427076a --- /dev/null +++ b/apps/docs/.vitepress/theme/components/ComponentPreview.vue @@ -0,0 +1,49 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/CopyButton.vue b/apps/docs/.vitepress/theme/components/CopyButton.vue new file mode 100644 index 0000000..bc75e15 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/CopyButton.vue @@ -0,0 +1,50 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/InstallationTabs.vue b/apps/docs/.vitepress/theme/components/InstallationTabs.vue new file mode 100644 index 0000000..5e63677 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/InstallationTabs.vue @@ -0,0 +1,291 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/Logo.vue b/apps/docs/.vitepress/theme/components/Logo.vue new file mode 100644 index 0000000..c839f85 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/Logo.vue @@ -0,0 +1,69 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/ThemeToggle.vue b/apps/docs/.vitepress/theme/components/ThemeToggle.vue new file mode 100644 index 0000000..5509f10 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/ThemeToggle.vue @@ -0,0 +1,45 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/AccordionDemo.vue b/apps/docs/.vitepress/theme/components/demos/AccordionDemo.vue new file mode 100644 index 0000000..26fd3d3 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/AccordionDemo.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ActivityLogPageDemo.vue b/apps/docs/.vitepress/theme/components/demos/ActivityLogPageDemo.vue new file mode 100644 index 0000000..abe497c --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ActivityLogPageDemo.vue @@ -0,0 +1,53 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/AlertDemo.vue b/apps/docs/.vitepress/theme/components/demos/AlertDemo.vue new file mode 100644 index 0000000..e6180d8 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/AlertDemo.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/AlertDialogDemo.vue b/apps/docs/.vitepress/theme/components/demos/AlertDialogDemo.vue new file mode 100644 index 0000000..5df6a44 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/AlertDialogDemo.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/AuthCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/AuthCardDemo.vue new file mode 100644 index 0000000..6f19d05 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/AuthCardDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/AvatarDemo.vue b/apps/docs/.vitepress/theme/components/demos/AvatarDemo.vue new file mode 100644 index 0000000..fae0c5c --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/AvatarDemo.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/BadgeDemo.vue b/apps/docs/.vitepress/theme/components/demos/BadgeDemo.vue new file mode 100644 index 0000000..5b43f97 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/BadgeDemo.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/BeforeAfterDemo.vue b/apps/docs/.vitepress/theme/components/demos/BeforeAfterDemo.vue new file mode 100644 index 0000000..3080e90 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/BeforeAfterDemo.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/BlogCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/BlogCardDemo.vue new file mode 100644 index 0000000..eeefbcd --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/BlogCardDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/BlogListPageDemo.vue b/apps/docs/.vitepress/theme/components/demos/BlogListPageDemo.vue new file mode 100644 index 0000000..eab502f --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/BlogListPageDemo.vue @@ -0,0 +1,47 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/BreadcrumbDemo.vue b/apps/docs/.vitepress/theme/components/demos/BreadcrumbDemo.vue new file mode 100644 index 0000000..3d93b2d --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/BreadcrumbDemo.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/BrutalistHeroDemo.vue b/apps/docs/.vitepress/theme/components/demos/BrutalistHeroDemo.vue new file mode 100644 index 0000000..fdd7814 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/BrutalistHeroDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ButtonDemo.vue b/apps/docs/.vitepress/theme/components/demos/ButtonDemo.vue new file mode 100644 index 0000000..2d9f31b --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ButtonDemo.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CalendarDemo.vue b/apps/docs/.vitepress/theme/components/demos/CalendarDemo.vue new file mode 100644 index 0000000..1f44160 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CalendarDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/Card3DDemo.vue b/apps/docs/.vitepress/theme/components/demos/Card3DDemo.vue new file mode 100644 index 0000000..7ccecc0 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/Card3DDemo.vue @@ -0,0 +1,28 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CardDemo.vue b/apps/docs/.vitepress/theme/components/demos/CardDemo.vue new file mode 100644 index 0000000..8ef4b2b --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CardDemo.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CarouselDemo.vue b/apps/docs/.vitepress/theme/components/demos/CarouselDemo.vue new file mode 100644 index 0000000..447052a --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CarouselDemo.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ChartSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/ChartSectionDemo.vue new file mode 100644 index 0000000..ae9d6b7 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ChartSectionDemo.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ChatBubbleDemo.vue b/apps/docs/.vitepress/theme/components/demos/ChatBubbleDemo.vue new file mode 100644 index 0000000..1e67107 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ChatBubbleDemo.vue @@ -0,0 +1,49 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CheckboxDemo.vue b/apps/docs/.vitepress/theme/components/demos/CheckboxDemo.vue new file mode 100644 index 0000000..676fb8f --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CheckboxDemo.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CodeBlockDemo.vue b/apps/docs/.vitepress/theme/components/demos/CodeBlockDemo.vue new file mode 100644 index 0000000..e739188 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CodeBlockDemo.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ComboboxDemo.vue b/apps/docs/.vitepress/theme/components/demos/ComboboxDemo.vue new file mode 100644 index 0000000..e71144f --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ComboboxDemo.vue @@ -0,0 +1,24 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CommandDemo.vue b/apps/docs/.vitepress/theme/components/demos/CommandDemo.vue new file mode 100644 index 0000000..2da89a3 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CommandDemo.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CookieConsentDemo.vue b/apps/docs/.vitepress/theme/components/demos/CookieConsentDemo.vue new file mode 100644 index 0000000..2f35936 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CookieConsentDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CopyToClipboardDemo.vue b/apps/docs/.vitepress/theme/components/demos/CopyToClipboardDemo.vue new file mode 100644 index 0000000..28f3e37 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CopyToClipboardDemo.vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/CounterDemo.vue b/apps/docs/.vitepress/theme/components/demos/CounterDemo.vue new file mode 100644 index 0000000..d57eae3 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/CounterDemo.vue @@ -0,0 +1,44 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/DashboardShellDemo.vue b/apps/docs/.vitepress/theme/components/demos/DashboardShellDemo.vue new file mode 100644 index 0000000..bcc8212 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/DashboardShellDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/DashboardStatsDemo.vue b/apps/docs/.vitepress/theme/components/demos/DashboardStatsDemo.vue new file mode 100644 index 0000000..3f6caa1 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/DashboardStatsDemo.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/DataTableSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/DataTableSectionDemo.vue new file mode 100644 index 0000000..b94a7d4 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/DataTableSectionDemo.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/DialogDemo.vue b/apps/docs/.vitepress/theme/components/demos/DialogDemo.vue new file mode 100644 index 0000000..f4f93e7 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/DialogDemo.vue @@ -0,0 +1,39 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/DropdownMenuDemo.vue b/apps/docs/.vitepress/theme/components/demos/DropdownMenuDemo.vue new file mode 100644 index 0000000..a723bfc --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/DropdownMenuDemo.vue @@ -0,0 +1,33 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/EmptyStateDemo.vue b/apps/docs/.vitepress/theme/components/demos/EmptyStateDemo.vue new file mode 100644 index 0000000..eb0f726 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/EmptyStateDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ErrorCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/ErrorCardDemo.vue new file mode 100644 index 0000000..f6c1231 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ErrorCardDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/FaqSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/FaqSectionDemo.vue new file mode 100644 index 0000000..d387c18 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/FaqSectionDemo.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/FeedbackFormDemo.vue b/apps/docs/.vitepress/theme/components/demos/FeedbackFormDemo.vue new file mode 100644 index 0000000..eaad2a2 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/FeedbackFormDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/FileCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/FileCardDemo.vue new file mode 100644 index 0000000..6f59db1 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/FileCardDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/FooterSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/FooterSectionDemo.vue new file mode 100644 index 0000000..a4ed3bb --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/FooterSectionDemo.vue @@ -0,0 +1,47 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/FormDemo.vue b/apps/docs/.vitepress/theme/components/demos/FormDemo.vue new file mode 100644 index 0000000..a6c77d0 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/FormDemo.vue @@ -0,0 +1,57 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/GallerySectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/GallerySectionDemo.vue new file mode 100644 index 0000000..e87002b --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/GallerySectionDemo.vue @@ -0,0 +1,26 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/GlitchTextDemo.vue b/apps/docs/.vitepress/theme/components/demos/GlitchTextDemo.vue new file mode 100644 index 0000000..66fd6c5 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/GlitchTextDemo.vue @@ -0,0 +1,32 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/HardcoreInputDemo.vue b/apps/docs/.vitepress/theme/components/demos/HardcoreInputDemo.vue new file mode 100644 index 0000000..8ee2c0d --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/HardcoreInputDemo.vue @@ -0,0 +1,43 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/HeaderSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/HeaderSectionDemo.vue new file mode 100644 index 0000000..d4067a3 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/HeaderSectionDemo.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/InputDemo.vue b/apps/docs/.vitepress/theme/components/demos/InputDemo.vue new file mode 100644 index 0000000..98986ec --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/InputDemo.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/KanbanBoardDemo.vue b/apps/docs/.vitepress/theme/components/demos/KanbanBoardDemo.vue new file mode 100644 index 0000000..81bfd8c --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/KanbanBoardDemo.vue @@ -0,0 +1,40 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/KbdDemo.vue b/apps/docs/.vitepress/theme/components/demos/KbdDemo.vue new file mode 100644 index 0000000..100460b --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/KbdDemo.vue @@ -0,0 +1,42 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/LabelDemo.vue b/apps/docs/.vitepress/theme/components/demos/LabelDemo.vue new file mode 100644 index 0000000..3f5d461 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/LabelDemo.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/LoadingPageDemo.vue b/apps/docs/.vitepress/theme/components/demos/LoadingPageDemo.vue new file mode 100644 index 0000000..11a5158 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/LoadingPageDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/MarqueeDemo.vue b/apps/docs/.vitepress/theme/components/demos/MarqueeDemo.vue new file mode 100644 index 0000000..27dd365 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/MarqueeDemo.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/NotFoundPageDemo.vue b/apps/docs/.vitepress/theme/components/demos/NotFoundPageDemo.vue new file mode 100644 index 0000000..0aca03d --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/NotFoundPageDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/NumberInputDemo.vue b/apps/docs/.vitepress/theme/components/demos/NumberInputDemo.vue new file mode 100644 index 0000000..6235a31 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/NumberInputDemo.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/OverviewPageDemo.vue b/apps/docs/.vitepress/theme/components/demos/OverviewPageDemo.vue new file mode 100644 index 0000000..23de7ce --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/OverviewPageDemo.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/PaginationDemo.vue b/apps/docs/.vitepress/theme/components/demos/PaginationDemo.vue new file mode 100644 index 0000000..167852e --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/PaginationDemo.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/PopoverDemo.vue b/apps/docs/.vitepress/theme/components/demos/PopoverDemo.vue new file mode 100644 index 0000000..714b970 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/PopoverDemo.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/PricingSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/PricingSectionDemo.vue new file mode 100644 index 0000000..429edba --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/PricingSectionDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ProfilePageDemo.vue b/apps/docs/.vitepress/theme/components/demos/ProfilePageDemo.vue new file mode 100644 index 0000000..a89f966 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ProfilePageDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ProgressDemo.vue b/apps/docs/.vitepress/theme/components/demos/ProgressDemo.vue new file mode 100644 index 0000000..9585780 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ProgressDemo.vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/QuickActionsDemo.vue b/apps/docs/.vitepress/theme/components/demos/QuickActionsDemo.vue new file mode 100644 index 0000000..f74b013 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/QuickActionsDemo.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/RadioGroupDemo.vue b/apps/docs/.vitepress/theme/components/demos/RadioGroupDemo.vue new file mode 100644 index 0000000..7fcab7a --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/RadioGroupDemo.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SaaSPricingDemo.vue b/apps/docs/.vitepress/theme/components/demos/SaaSPricingDemo.vue new file mode 100644 index 0000000..ec018f6 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SaaSPricingDemo.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ScratchCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/ScratchCardDemo.vue new file mode 100644 index 0000000..785c7ff --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ScratchCardDemo.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/ScrollAreaDemo.vue b/apps/docs/.vitepress/theme/components/demos/ScrollAreaDemo.vue new file mode 100644 index 0000000..980c10d --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/ScrollAreaDemo.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SearchWidgetDemo.vue b/apps/docs/.vitepress/theme/components/demos/SearchWidgetDemo.vue new file mode 100644 index 0000000..ea93aee --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SearchWidgetDemo.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SelectDemo.vue b/apps/docs/.vitepress/theme/components/demos/SelectDemo.vue new file mode 100644 index 0000000..0bda2bb --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SelectDemo.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SeparatorDemo.vue b/apps/docs/.vitepress/theme/components/demos/SeparatorDemo.vue new file mode 100644 index 0000000..d4e946d --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SeparatorDemo.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SettingsPageDemo.vue b/apps/docs/.vitepress/theme/components/demos/SettingsPageDemo.vue new file mode 100644 index 0000000..715db0c --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SettingsPageDemo.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SheetDemo.vue b/apps/docs/.vitepress/theme/components/demos/SheetDemo.vue new file mode 100644 index 0000000..c9816fc --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SheetDemo.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SkeletonDemo.vue b/apps/docs/.vitepress/theme/components/demos/SkeletonDemo.vue new file mode 100644 index 0000000..3a16c2a --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SkeletonDemo.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SketchyChartDemo.vue b/apps/docs/.vitepress/theme/components/demos/SketchyChartDemo.vue new file mode 100644 index 0000000..209fce4 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SketchyChartDemo.vue @@ -0,0 +1,38 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SliderDemo.vue b/apps/docs/.vitepress/theme/components/demos/SliderDemo.vue new file mode 100644 index 0000000..d49524d --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SliderDemo.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SpinnerDemo.vue b/apps/docs/.vitepress/theme/components/demos/SpinnerDemo.vue new file mode 100644 index 0000000..a48b6a4 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SpinnerDemo.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/StepperDemo.vue b/apps/docs/.vitepress/theme/components/demos/StepperDemo.vue new file mode 100644 index 0000000..33511b0 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/StepperDemo.vue @@ -0,0 +1,50 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/StepperSectionDemo.vue b/apps/docs/.vitepress/theme/components/demos/StepperSectionDemo.vue new file mode 100644 index 0000000..edbf8eb --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/StepperSectionDemo.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SubmitButtonDemo.vue b/apps/docs/.vitepress/theme/components/demos/SubmitButtonDemo.vue new file mode 100644 index 0000000..724886f --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SubmitButtonDemo.vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SuccessCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/SuccessCardDemo.vue new file mode 100644 index 0000000..a84e37c --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SuccessCardDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/SwitchDemo.vue b/apps/docs/.vitepress/theme/components/demos/SwitchDemo.vue new file mode 100644 index 0000000..f720940 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/SwitchDemo.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/TableDemo.vue b/apps/docs/.vitepress/theme/components/demos/TableDemo.vue new file mode 100644 index 0000000..1a5c081 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/TableDemo.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/TabsDemo.vue b/apps/docs/.vitepress/theme/components/demos/TabsDemo.vue new file mode 100644 index 0000000..195adf5 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/TabsDemo.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/TabsNavDemo.vue b/apps/docs/.vitepress/theme/components/demos/TabsNavDemo.vue new file mode 100644 index 0000000..7b6e015 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/TabsNavDemo.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/TagsInputDemo.vue b/apps/docs/.vitepress/theme/components/demos/TagsInputDemo.vue new file mode 100644 index 0000000..8318515 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/TagsInputDemo.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/TestimonialCardDemo.vue b/apps/docs/.vitepress/theme/components/demos/TestimonialCardDemo.vue new file mode 100644 index 0000000..148a3b0 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/TestimonialCardDemo.vue @@ -0,0 +1,7 @@ + + + diff --git a/apps/docs/.vitepress/theme/components/demos/TextareaDemo.vue b/apps/docs/.vitepress/theme/components/demos/TextareaDemo.vue new file mode 100644 index 0000000..85682a0 --- /dev/null +++ b/apps/docs/.vitepress/theme/components/demos/TextareaDemo.vue @@ -0,0 +1,9 @@ + + +