Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7abdbd2
chore: Rename package from `@codebridger/lib-vue-components` to `pilo…
navidshad Mar 4, 2026
f894c51
feat: Enhance documentation generation with improved Puppeteer stabil…
navidshad Mar 4, 2026
5e9a073
Merge branch 'main' into dev
navidshad Mar 4, 2026
e977f8d
chore: remove `@semantic-release/github` plugin from release configur…
navidshad Mar 4, 2026
bdf5fe3
ci: Add dynamic environment selection and conditional NPM token handl…
navidshad Mar 4, 2026
dee81ce
ci: Simplify release workflow environment and NPM token usage by remo…
navidshad Mar 4, 2026
cd1fa01
ci: Add `id-token: write` permission for OIDC/Trusted Publishing.
navidshad Mar 4, 2026
ffb0016
ci: Configure OIDC Trusted Publishing for npm releases by removing `N…
navidshad Mar 4, 2026
f3be029
chore: Update Node.js to v22 and remove registry-url to enable OIDC T…
navidshad Mar 4, 2026
159e6ff
chore: Remove `@semantic-release/github` and update `@semantic-releas…
navidshad Mar 4, 2026
c562985
chore: update semantic-release to version 25.0.3
navidshad Mar 4, 2026
2553550
chore(release): 1.17.0-dev.39 [skip ci]
semantic-release-bot Mar 4, 2026
213d196
chore: Add repository URL to package.json.
navidshad Mar 4, 2026
9f88d77
Merge branch 'dev' of https://github.com/tiny-ideas-ir/lib-vue-compon…
navidshad Mar 4, 2026
c943183
fix: modernization of readme and metadata
navidshad Mar 4, 2026
80aa953
chore(release): 1.17.0-dev.40 [skip ci]
semantic-release-bot Mar 4, 2026
51bdbcd
feat: Register and mock Popper and PerfectScrollbar for testing, adju…
navidshad Mar 4, 2026
56aa6d9
Merge branch 'dev' of https://github.com/tiny-ideas-ir/lib-vue-compon…
navidshad Mar 4, 2026
36bc1fa
Remove custom tag format for dev branch releases in the CI workflow.
navidshad Mar 4, 2026
f5d355a
chore(release): 1.29.0-dev.1 [skip ci]
semantic-release-bot Mar 4, 2026
c1e3041
chore: update yarn.lock file
navidshad Mar 4, 2026
1f48bed
Merge branch 'dev' of https://github.com/tiny-ideas-ir/lib-vue-compon…
navidshad Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Release

env:
package_name: "@codebridger/lib-vue-components"
package_name: "pilotui"

on:
push:
Expand All @@ -14,11 +14,13 @@ permissions:
issues: write
pull-requests: write
packages: write
id-token: write # Required for Trusted Publishing/OIDC

jobs:
release:
name: Release
runs-on: ubuntu-latest
# environment: production # Optional: keep if you want UI tracking, but ensure it's not branch-restricted
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -29,9 +31,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
registry-url: "https://npm.pkg.github.com"
scope: ${{ env.package_name }}
node-version: "22" # Required for stable npm OIDC / Trusted Publishing

- name: Install dependencies
run: yarn install
Expand All @@ -42,11 +42,10 @@ jobs:
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# NPM_TOKEN intentionally removed to enable OIDC / Trusted Publishing
run: |
if [ "${{ github.ref }}" == "refs/heads/dev" ]; then
yarn semantic-release --branch dev --tag-format "dev-\${version}"
yarn semantic-release --branch dev
else
yarn semantic-release
fi
7 changes: 5 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,14 @@ jobs:
run: yarn playwright install --with-deps

- name: Start Storybook
run: yarn storybook &
run: |
yarn storybook &
# Give it some initial time to start
sleep 5

- name: Wait for Storybook to be ready
run: |
timeout 60 bash -c 'until curl -s http://localhost:6006 > /dev/null; do sleep 1; done'
timeout 120 bash -c 'until curl -s http://localhost:6006 > /dev/null; do sleep 2; done'

- name: Run Storybook tests
run: yarn test:storybook
Expand Down
2 changes: 1 addition & 1 deletion .releaserc.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ export default {
{
npmPublish: true,
tag: isMainBranch ? "latest" : currentBranch,
provenance: true,
},
],
"@semantic-release/github",
[
"@semantic-release/git",
{
Expand Down
32 changes: 32 additions & 0 deletions CHANGELOG-DEV.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
# [1.29.0-dev.1](https://github.com/codebridger/lib-vue-components/compare/v1.28.1...v1.29.0-dev.1) (2026-03-04)


### Bug Fixes

* modernization of readme and metadata ([c943183](https://github.com/codebridger/lib-vue-components/commit/c943183fa9b59e306083ea99f538cc7a15175a57))


### Features

* Enhance documentation generation with improved Puppeteer stability, 'Show code' button handling, and structured LLM-friendly output including a header, instructions, and TOC. ([f894c51](https://github.com/codebridger/lib-vue-components/commit/f894c519615e955487a0c19d2183562ffc57fbd8))
* Register and mock Popper and PerfectScrollbar for testing, adjust Vitest function coverage, and enhance Storybook CI startup reliability. ([51bdbcd](https://github.com/codebridger/lib-vue-components/commit/51bdbcdba6134e22386578f1f2679b8c33c8a60b))

# [1.17.0-dev.40](https://github.com/codebridger/lib-vue-components/compare/dev-1.17.0-dev.39...dev-1.17.0-dev.40) (2026-03-04)


### Bug Fixes

* modernization of readme and metadata ([c943183](https://github.com/codebridger/lib-vue-components/commit/c943183fa9b59e306083ea99f538cc7a15175a57))

# [1.17.0-dev.39](https://github.com/codebridger/lib-vue-components/compare/dev-1.17.0-dev.38...dev-1.17.0-dev.39) (2026-03-04)


### Bug Fixes

* **Select:** Change v-show to v-if for improved rendering logic ([d0fb03e](https://github.com/codebridger/lib-vue-components/commit/d0fb03ef1685033f197918f99e06387a1573139e))


### Features

* Enhance documentation generation with improved Puppeteer stability, 'Show code' button handling, and structured LLM-friendly output including a header, instructions, and TOC. ([f894c51](https://github.com/codebridger/lib-vue-components/commit/f894c519615e955487a0c19d2183562ffc57fbd8))

# [1.17.0-dev.38](https://github.com/codebridger/lib-vue-components/compare/dev-1.17.0-dev.37...dev-1.17.0-dev.38) (2025-11-16)


Expand Down
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 CodeBridger

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
164 changes: 76 additions & 88 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,135 +1,123 @@
## PilotUI
# 🚀 PilotUI

> A comprehensive Vue 3 + TypeScript component library featuring 50+ UI components, shell layouts, icon system, and utilities. Built with Tailwind CSS, includes Storybook documentation, theme customization, and Nuxt 3 support.
**Assemble modern web applications and dashboards fast with PilotUI.**

### Quick links
- **Live Storybook**: [codebridger.github.io/lib-vue-components](https://codebridger.github.io/lib-vue-components)
PilotUI is a comprehensive Vue 3 + TypeScript component library featuring **50+ UI components**, custom shell layouts, a robust icon system, and specialized utilities. Built with **Tailwind CSS**, it's designed to provide consistent aesthetics and premium developer experience.

### What is PilotUI?
PilotUI is a reusable component library for Vue 3 projects. It ships a curated set of building blocks to assemble modern web applications and dashboards fast, with consistent design and strong TypeScript types. The published package name is `@codebridger/lib-vue-components`.
[![Version](https://img.shields.io/npm/v/pilotui?color=blue&style=flat-square)](https://www.npmjs.com/package/pilotui)
[![License](https://img.shields.io/npm/l/pilotui?color=green&style=flat-square)](https://github.com/codebridger/lib-vue-components/blob/main/LICENSE)
[![Vue](https://img.shields.io/badge/Vue-3.x-brightgreen?style=flat-square&logo=vue.js)](https://vuejs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)

### Features
- **Rich components**: buttons, inputs, text areas, selects, checkboxes, modals, pagination, avatars, tabs, tooltips, progress, cards, and more
- **Application shells**: `DashboardShell`, `Sidebar`, `HorizontalMenu`, `AppRoot`, `ThemeCustomizer`, `Footer`
- **Icon system**: 150+ single, variant, and menu icons
- **Utilities**: toast notifications, Pinia store integration, shared types
- **Styling**: Tailwind CSS-based theme and ready-to-use styles
- **Docs & tests**: Storybook 8 docs, Vitest coverage
- **Nuxt 3 support**: first-class plugin and transpile config
---

## 🔗 Quick Links

- 📖 **Live Documentation**: [Storybook Showcase](https://codebridger.github.io/lib-vue-components/)
- 🤖 **AI-Ready Docs**: [llm.md](https://codebridger.github.io/lib-vue-components/llm.md) *(Optimized for Claude, Gemini, ChatGPT)*
- 📦 **NPM Package**: [`pilotui`](https://www.npmjs.com/package/pilotui)

---

## Installation
## ✨ Key Features

### Prerequisites
- Vue 3 or Nuxt 3 project
- Node.js and yarn
- GitHub account with access to GitHub Packages (for installation)
- 🏗️ **Shell Scaffolding**: Pre-built `DashboardShell`, `AppRoot`, and navigation menus (Vertical/Horizontal).
- 🎨 **Dynamic Theming**: Integrated theme customizer with Dark/Light/System modes via Pinia.
- 🍱 **50+ Components**: From basic buttons and inputs to complex data tables and modals.
- 🌍 **RTL & I18n Ready**: Full support for Right-to-Left layouts and multi-language setups.
- ⚡ **Vite Powered**: Ultra-fast development and optimized production builds.
- 🧱 **Nuxt 3 Compatible**: Includes specific entry points for seamless Nuxt integration.

### 1) Authenticate to GitHub Packages
Create an `.npmrc` file in your project root with a GitHub token that has `read:packages`:
---

```bash
@codebridger:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
```
## 🚀 Quick Start

### 2) Install the package
### 1. Installation

```bash
yarn add @codebridger/lib-vue-components
yarn add pilotui

# or install the dev tag
yarn add @codebridger/lib-vue-components@dev
# or using npm
npm install pilotui
```

## Usage
### 2. Setup
Add the required styles and Pinia configuration (if using state-dependent components like `DashboardShell`):

### Vue 3 (Vite) quick start
```ts
// main.ts
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import PilotUI from 'pilotui'
import 'pilotui/style.css'
import App from './App.vue'
import PilotUI from '@codebridger/lib-vue-components'
import '@codebridger/lib-vue-components/style.css'

const app = createApp(App)

app.use(PilotUI, {
prefix: 'CL',
dontInstallPinia: true,
dontInstallPopper: false,
dontInstallPerfectScrollbar: false,
})

app.use(createPinia())
app.use(PilotUI) // Optional: sets up default themes & internal utilities
app.mount('#app')
```

Use components immediately (default prefix `CL`):
### 3. Usage
PilotUI is designed for explicit component imports. This ensures better tree-shaking and type safety:

```vue
<template>
<CLButton>Click me</CLButton>
<CLInput placeholder="Type here" />
<CLToast />
<!-- and many more... -->

<AppRoot colorScheme="dark">
<Button variant="primary">Launch Dashboard</Button>
</AppRoot>
</template>

<script setup>
import { AppRoot, Button } from 'pilotui'
</script>
```

### Nuxt 3 setup
Create a client plugin, for example `plugins/pilotui.client.ts`:
---

```ts
import { defineNuxtPlugin as init } from '@codebridger/lib-vue-components/nuxt'

export default defineNuxtPlugin({
name: '@codebridger/lib-vue-components',
enforce: 'pre',
async setup(nuxtApp) {
const options = {
prefix: 'CL',
dontInstallPinia: true,
dontInstallPopper: false,
dontInstallPerfectScrollbar: false,
}

return init(nuxtApp, options)
},
})
```
## 🍱 Component Showcase

Add configuration to `nuxt.config.ts`:
| Category | Key Components |
| :--- | :--- |
| **Shell** | `AppRoot`, `DashboardShell`, `SidebarMenu`, `HorizontalMenu` |
| **Elements** | `Button`, `Card`, `Avatar`, `Dropdown`, `Tabs`, `Progress` |
| **Form** | `Input`, `Select`, `Checkbox`, `Switch`, `Textarea` |
| **Complex** | `Modal`, `Pagination`, `DataTable`, `Toast` |
| **Icons** | Custom `Icon` component with multi-pack support |

```ts
export default defineNuxtConfig({
build: {
transpile: ['@codebridger/lib-vue-components'],
},
css: ['@codebridger/lib-vue-components/style.css'],
})
```
---

## 🤖 AI-Native Documentation

PilotUI includes a specialized `llm.md` file designed specifically for Large Language Models. If you are using an AI assistant (like Cursor or GitHub Copilot) to build your app, point it to:
👉 [**https://codebridger.github.io/lib-vue-components/llm.md**](https://codebridger.github.io/lib-vue-components/llm.md)

This file contains flat, metadata-rich descriptions of every component, property, and slot, enabling AI to generate accurate PilotUI code for you instantly.

---

## Local development
## 🛠️ Local Development

```bash
# install dependencies
yarn
# Install dependencies
yarn install

# run Storybook locally
# Run Storybook for live development
yarn storybook

# run tests
yarn test
# Generate LLM documentation
yarn generate-docs

# build the library
yarn build
# Run unit tests
yarn test
```

## Links
- **Storybook**: [codebridger.github.io/lib-vue-components](https://codebridger.github.io/lib-vue-components)
- **Package**: `@codebridger/lib-vue-components`

---

If you like PilotUI, consider starring the repo and pinning it on your GitHub profile.
## 🤝 Community & Support

- **Contribute**: Feel free to open issues or submit PRs to improve the library.
- **Star us**: If you find PilotUI useful, please consider giving it a ⭐ on GitHub!

Built with ❤️ by the **CodeBridger** team.
2 changes: 1 addition & 1 deletion docs/global-confige.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Import and use the `useAppStore` in your components to access and modify the glo
### Importing the Store

```typescript
import { useAppStore } from '@codebridger/lib-vue-components/store.ts';
import { useAppStore } from 'pilotui/store.ts';
```

### Accessing State
Expand Down
Loading