Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
584fbf8
feat: base ui
codeagus11 Jun 10, 2025
3add397
Refine Surface component
AgustinOberg Jun 10, 2025
812104a
Merge pull request #1 from AgustinOberg/codex/crear-componente-surfac…
AgustinOberg Jun 10, 2025
0bb771b
feat(ui): add forwardRef and memo to components
AgustinOberg Jun 10, 2025
ff79e9b
Clean comments and update refs
AgustinOberg Jun 10, 2025
6f89378
Merge pull request #2 from AgustinOberg/codex/mejorar-performance-y-d…
AgustinOberg Jun 10, 2025
04fcc4e
docs: update instructions and theme base
AgustinOberg Jun 10, 2025
c37c321
Merge pull request #3 from AgustinOberg/codex/crear-documentación-y-r…
AgustinOberg Jun 10, 2025
d6594e3
feat: ui components
codeagus11 Jun 11, 2025
6844dbc
feat: components
codeagus11 Jun 11, 2025
01f8f26
Organize packages and add RN component showcase
AgustinOberg Jun 12, 2025
abf7041
docs: add agent guidelines and rename unistyles pkg
AgustinOberg Jun 12, 2025
d12a7ac
fix: app import
codeagus11 Jun 12, 2025
3e5ba44
Merge pull request #5 from AgustinOberg/codex/crear-versión-sin-unist…
AgustinOberg Jun 12, 2025
10c922a
use hsl palette for themes
AgustinOberg Jun 12, 2025
b6add2a
feat: integrate Inter font family and update theme styles
codeagus11 Jun 12, 2025
633572a
Merge pull request #6 from AgustinOberg/codex/refactorizar-tema-y-lim…
AgustinOberg Jun 12, 2025
6977be7
rn bare ui themes
codeagus11 Jun 13, 2025
3306b94
feat(unistyles): add theme provider and hooks
AgustinOberg Jun 13, 2025
de99816
feat: unistyles
codeagus11 Jun 13, 2025
e8612f1
Merge pull request #7 from AgustinOberg/codex/implementar-sistema-de-…
AgustinOberg Jun 13, 2025
83262f7
feat: dialog + alert dialog
codeagus11 Jun 13, 2025
fd70133
feat: demo
codeagus11 Jun 13, 2025
66add3e
feat: add demo screens for components and examples
AgustinOberg Jun 13, 2025
0f4ab99
Improve demo component screens and examples
AgustinOberg Jun 13, 2025
03fccec
Merge pull request #9 from AgustinOberg/codex/create-demo-project-ui-…
AgustinOberg Jun 13, 2025
d6e615f
feat: add Divider component
AgustinOberg Jun 23, 2025
57fdd80
Merge pull request #11 from AgustinOberg/codex/crear-divider-similar-…
AgustinOberg Jun 23, 2025
e1455ad
feat: expo upgrade
codeagus11 Jun 23, 2025
42f49a8
feat: modal
codeagus11 Jun 23, 2025
34dc238
feat(dialogs): extend modal props
AgustinOberg Jun 23, 2025
eaa3c4f
Merge pull request #13 from AgustinOberg/codex/modificar-props-y-esti…
AgustinOberg Jun 23, 2025
75213aa
feat: cli
codeagus11 Jun 24, 2025
5c3b99d
feat: ci
codeagus11 Jun 24, 2025
16204f4
fix: ci
codeagus11 Jun 24, 2025
1129dbf
chore: bump version
invalid-email-address Jun 24, 2025
c36ef14
fix: ci
codeagus11 Jun 24, 2025
a2b6df1
fix: ci
codeagus11 Jun 24, 2025
c0d4bea
fix: ci
codeagus11 Jun 24, 2025
33a38ba
1.0.2
invalid-email-address Jun 24, 2025
1a6da03
fix: imports
codeagus11 Jun 24, 2025
378aa6e
1.1.1
invalid-email-address Jun 24, 2025
3dfc24c
feat(demo): center content for web
AgustinOberg Jun 24, 2025
6df0620
Merge pull request #14 from AgustinOberg/codex/ajustar-diseño-web-par…
AgustinOberg Jun 24, 2025
251dc97
feat: add radio group component
AgustinOberg Jun 24, 2025
9decf34
fix dialog typings
AgustinOberg Jun 24, 2025
868376c
Merge pull request #15 from AgustinOberg/codex/add-radio-component-fo…
AgustinOberg Jun 24, 2025
dff9d7b
Merge pull request #16 from AgustinOberg/development
AgustinOberg Jun 24, 2025
a0a2985
fix: remove logs and hardcoded colors
AgustinOberg Jun 24, 2025
fcda127
Merge pull request #17 from AgustinOberg/codex/refactorizar-código-y-…
AgustinOberg Jun 24, 2025
40baf66
feat(theme): add multiple color palettes
AgustinOberg Jun 24, 2025
e4c7014
Merge pull request #18 from AgustinOberg/codex/add-multiple-theme-col…
AgustinOberg Jun 24, 2025
105272e
Merge pull request #19 from AgustinOberg/development
AgustinOberg Jun 24, 2025
f370a2c
1.1.2
invalid-email-address Jun 24, 2025
6cac393
feat(cli): init only light and dark themes
AgustinOberg Jun 24, 2025
3d1e790
Merge pull request #20 from AgustinOberg/codex/agregar-soporte-de-tem…
AgustinOberg Jun 24, 2025
267a436
1.1.3
invalid-email-address Jun 24, 2025
6f1961e
fix: ci
codeagus11 Jun 24, 2025
03e5b76
1.1.4
invalid-email-address Jun 24, 2025
3134345
fix: ci
codeagus11 Jun 24, 2025
64d3d87
1.1.5
invalid-email-address Jun 24, 2025
77bfe58
Rename unistiyles folder and references
AgustinOberg Jun 24, 2025
c26edaf
Merge pull request #21 from AgustinOberg/codex/renombrar-unistiyles-a…
AgustinOberg Jun 24, 2025
471d1f5
refactor: split theme files
AgustinOberg Jun 24, 2025
f16d474
Merge pull request #22 from AgustinOberg/codex/revisar-exportación-de…
AgustinOberg Jun 24, 2025
749e856
Merge pull request #23 from AgustinOberg/development
AgustinOberg Jun 24, 2025
25674fe
fix: ci
codeagus11 Jun 24, 2025
6bb7d67
fix: ci
codeagus11 Jun 24, 2025
b0a66ce
fix: ci
codeagus11 Jun 24, 2025
1bd08da
1.1.6
invalid-email-address Jun 24, 2025
3781836
fix theme import name
AgustinOberg Jun 24, 2025
3a865dc
Merge pull request #24 from AgustinOberg/codex/fix-cli-import-naming-…
AgustinOberg Jun 24, 2025
c65a799
fix: cli
codeagus11 Jun 24, 2025
4e14424
feat: alias
AgustinOberg Jul 2, 2025
1580206
fix: alias
AgustinOberg Jul 2, 2025
0966c7a
refactor: remove jest configuration, update theme types and add creat…
AgustinOberg Jul 2, 2025
230cea4
fix: update branch names in CI configuration for consistency
AgustinOberg Jul 2, 2025
60373e9
feat: spinner
AgustinOberg Jul 2, 2025
a339e61
feat: accordion
AgustinOberg Jul 2, 2025
e80c22e
merge: integrate feature/import-alias with accordion components
AgustinOberg Jul 2, 2025
e62ab1d
Merge branch 'development' into accordion
AgustinOberg Jul 2, 2025
0d790d0
resolve: merge conflicts with development
AgustinOberg Jul 2, 2025
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
388 changes: 194 additions & 194 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

37 changes: 37 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
<<<<<<< HEAD
name: Release

on:
push:
branches:
- main
=======
name: Manual Release to NPM

on:
Expand All @@ -22,11 +30,39 @@ on:
- beta
- next
- dev
>>>>>>> feature/import-alias

permissions:
contents: write

jobs:
<<<<<<< HEAD
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- run: bun install

- run: git restore bun.lockb || echo "no bun.lockb changed"

- run: git config user.name "github-actions"
- run: git config user.email "github-actions@github.com"

- run: npm version patch

- run: git push --follow-tags

- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc

- run: npm publish
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
=======
release:
name: Release to NPM
runs-on: ubuntu-latest
Expand Down Expand Up @@ -151,3 +187,4 @@ jobs:
echo "📦 NPM: https://www.npmjs.com/package/leshi-ui"
echo "🏷️ Tag: v${{ inputs.version }}"
echo "🚀 Install with: npx leshi-ui@${{ inputs.tag }}"
>>>>>>> feature/import-alias
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,8 @@ dist

# Finder (MacOS) folder config
.DS_Store
<<<<<<< HEAD
=======

# CLI Test projects - ignore generated files
cli/test-projects/*/components/
Expand Down Expand Up @@ -202,3 +204,4 @@ cli/test-cli-integration/react-native-unistyles/.expo/

# Temporary test directories
temp-test/
>>>>>>> feature/import-alias
32 changes: 31 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
<<<<<<< HEAD
# Repo Guidelines

## Directory structure
- Unistyles components live under `packages/unistiyles`.
- Plain React Native StyleSheet components live under `packages/rn`.
- Keep both implementations; do not delete Unistyles files when working on the RN version.

## tsconfig
- Avoid modifying any `tsconfig.json` files unless compilation fails.

## Demo app
- `apps/demo/App.tsx` must display every component with each available variant and size. Update it whenever you add a new component or variant.

## Package names
- `packages/unistiyles/package.json` must use the name `@leshi/ui-unistyles`.
- `packages/rn/package.json` must use the name `@leshi/ui-rn`.

## Documentation
- `packages/rn/README.md` should explain how variants and theming work and mention that plain objects don't impact performance.

## Checks
Run the following after making changes:

```bash
npx tsc -p packages/unistiyles/tsconfig.json
npx tsc -p packages/rn/tsconfig.json
```
=======
# 🤖 AI Agent Guidelines

Welcome to Leshi UI! This file provides essential guidance for AI agents and coding assistants when working with this repository.
Expand Down Expand Up @@ -237,4 +266,5 @@ When users encounter issues:
6. **Professional UX**: Colors, emojis, progress indicators in CLI
7. **Zero Config**: No config files needed, works immediately

Remember: Leshi UI is about empowering React Native developers with beautiful, production-ready components they can own and customize completely! 🚀
Remember: Leshi UI is about empowering React Native developers with beautiful, production-ready components they can own and customize completely! 🚀
>>>>>>> feature/import-alias
15 changes: 15 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Contributing to Leshi CLI

Thank you for wanting to contribute! Please follow these guidelines:

1. Fork the repository and create your branch from `main`.
2. Install dependencies using `bun install`.
3. Add or update tests when appropriate.
4. Run `bun test` and the TypeScript checks before submitting a pull request:
```bash
npm run test
npx tsc -p packages/unistyles/tsconfig.json
npx tsc -p packages/rn/tsconfig.json
```
5. Ensure your code follows existing style conventions.
6. Submit a pull request with a clear description of your changes.
139 changes: 139 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,141 @@
<<<<<<< HEAD
# Leshi CLI

> A **powerful CLI** for managing themes and UI components in React Native and Unistyles projects. Quickly bootstrap themes, scaffold styled components, and maintain a clean, standardized design system.

---

![npm](https://img.shields.io/npm/v/leshi-ui?color=%2332C037&label=npm) ![license](https://img.shields.io/badge/license-MIT-blue) ![node version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen) ![bun version](https://img.shields.io/badge/bun-%3E%3D1.0.0-orange)

---

## ⚡️ Features

✅ **Theme initialization** — Quickly bootstrap `theme` files for React Native or Unistyles
✅ **Add components** — Quickly scaffold styled components
✅ **Add themes** — Create new theme files and auto‑register them
✅ **Easy to use** — Simple CLI syntax with meaningful commands
✅ **Works with** — **Bun**, **npm**, and any Node.js environment

---

## 🚀 Install

With **Bun**:

```bash
bun add -g leshi-ui
```

With **npm**:

```bash
npm install -g leshi-ui
```

---

## 🛠️ Usage

### Initialize Themes

| Command | Description |
| ------------------------------ | ------------------------------ |
| `bunx leshi-ui init` | Copy base theme files (light & dark) |
| `bunx leshi-ui init rn` | Explicit RN theme init |
| `bunx leshi-ui init unistyles` | Copy Unistyles theme files |

---

### Add Components

| Command | Description |
| ------------------------------------------------ | -------------------------------------- |
| `bunx leshi-ui add component <name>` | Add a RN component in `components/ui/` |
| `bunx leshi-ui add component <name> --unistyles` | Add a Unistyles component |

---

### Add Themes

| Command | Description |
| -------------------------------------------- | ------------------------------------ |
| `bunx leshi-ui add theme <name>` | Add RN theme file to `theme/themes/` |
| `bunx leshi-ui add theme <name> --unistyles` | Add Unistyles theme file |
| `bunx leshi-ui themes` | List available themes |

---

### Others

| Command | Description |
| -------------------- | --------------------------- |
| `bunx leshi-ui help` | List all available commands |

---

## 🧑‍💻 Examples

#### Initialize RN Themes

```bash
bunx leshi-ui init
```
This copies only the **light** and **dark** themes. Use `bunx leshi-ui add theme <name>` to add more.

#### Add a Button Component

```bash
bunx leshi-ui add component button
```

#### Add a New Unistyles Theme

```bash
bunx leshi-ui add theme spotify --unistyles
```

#### See All Available Commands

```bash
bunx leshi-ui help
```

---

## ⚡️ Notes

Some added components will print post‑install messages like:

```
bunx leshi-ui add component modal
# -> message about installing react-native-modal
```

These messages guide you to install optional dependencies or configure related features.

Edit `component-notes.json` if you’d like to customize these messages.

---

## 👥 Contributing

Contributions are always welcome!
If you’d like to help:

1. Fork the repo
2. Create your branch (`git checkout -b feature/my-new-command`)
3. Commit your changes (`git commit -m "feat: add new command"`)
4. Push to the branch (`git push origin feature/my-new-command`)
5. Open a Pull Request

---

## 👤 About the Author

Built with ❤️ by **Agustin Oberg**
[LinkedIn → linkedin.com/in/oberg-agustin](https://www.linkedin.com/in/oberg-agustin)
=======
# 🐱 Leshi UI

> **Modern CLI for React Native** — Build beautiful React Native apps with copy-paste components, comprehensive theming, and excellent developer experience.
Expand Down Expand Up @@ -381,3 +519,4 @@ npx leshi-ui@latest init
```

Join the community of developers building beautiful React Native apps with leshi-ui! 🚀
>>>>>>> feature/import-alias
7 changes: 7 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Roadmap

1. **Polish component APIs** – review props and add missing variants
2. **Improve documentation** – add examples and usage guides
3. **Automated testing** – set up unit and snapshot tests
4. **CI/CD** – automate lint, build and release flows

50 changes: 50 additions & 0 deletions USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Leshi CLI Usage

Install globally using **Bun**:

```bash
bun add -g leshi-ui
```

## Commands

| Command | Description |
|---------|-------------|
| `bunx leshi-ui init` | Copy base themes (light & dark) |
| `bunx leshi-ui init rn` | Same as `init` (explicit React Native) |
| `bunx leshi-ui init unistyles` | Copy Unistyles themes |
| `bunx leshi-ui add component <name>` | Add a RN component to `components/ui/` |
| `bunx leshi-ui add component <name> --unistyles` | Add a Unistyles component |
| `bunx leshi-ui add theme <name>` | Add RN theme file to `theme/themes/` and update index |
| `bunx leshi-ui add theme <name> --unistyles` | Add Unistyles theme file and update index |
| `bunx leshi-ui themes` | List available themes |
| `bunx leshi-ui help` | Show help information |

## Examples

```bash
# Initialize RN themes
bunx leshi-ui init

# Add a button component
bunx leshi-ui add component button

# Add the Spotify theme for Unistyles
bunx leshi-ui add theme spotify --unistyles

# See help
bunx leshi-ui help
```
The `init` command installs only the **light** and **dark** themes. Run `bunx leshi-ui add theme <name>` to add more.

Certain components print extra notes after installation. For example:

```
bunx leshi-ui add component modal
# -> message about installing react-native-modal
```

These notes highlight optional dependencies or related components.

You can customise the messages by editing the `component-notes.json` file in the
CLI package.
Loading