Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
6f935eb
Enable global activation from root and update docs
jaypal1046 Jan 14, 2026
e24dbe2
chore: Add initial `node_modules` dependencies across flutterjs packa…
jaypal1046 Jan 15, 2026
d11bb0d
-- fix size import fix
jaypal1046 Jan 15, 2026
4813e21
feat: Introduce core FlutterJS project structure including Dart analy…
jaypal1046 Jan 15, 2026
0986c8e
feat: Scaffold initial FlutterJS packages including cupertino, gestur…
jaypal1046 Jan 16, 2026
43e1cb6
feat: Introduce `flutterjs_material` package with core Material Desig…
jaypal1046 Jan 16, 2026
0ab0642
feat: Add a comprehensive set of Material Design widgets and a new mu…
jaypal1046 Jan 17, 2026
f3577b6
Implement Material widgets (Batches 8-10) and add test examples
jaypal1046 Jan 17, 2026
abf1c57
feat: Implement Dart core libraries support (@flutterjs/dart)
jaypal1046 Jan 18, 2026
6ea478c
-- fix the wrong methos use
jaypal1046 Jan 18, 2026
e1e39eb
Fix multi-file demo issues: interaction, layout, and visual bugs
jaypal1046 Jan 18, 2026
8f37d65
feat: Implement Virtual DOM rendering and introduce core Material Des…
jaypal1046 Jan 19, 2026
ae1a492
feat: introduce core Material Design widgets including Checkbox, Text…
jaypal1046 Jan 20, 2026
13fa31e
-- workign on demo
jaypal1046 Jan 21, 2026
a920151
Fix icons rendering, gesture crashes, and engine templates
jaypal1046 Jan 22, 2026
9ad8df1
Update Material widgets to use theme color schemes
jaypal1046 Jan 23, 2026
6f88b74
Add flutterjs_seo package and integrate SEO support
jaypal1046 Jan 24, 2026
006199d
feat: Add GitHub templates and clean up codebase
jaypal1046 Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: πŸ› Bug Report
about: Report a bug to help us improve FlutterJS
title: '[BUG] '
labels: bug
assignees: ''

---

## πŸ› Bug Description
A clear and concise description of what the bug is.

## πŸ‘£ To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error

## πŸ‘ Expected Behavior
A clear and concise description of what you expected to happen.

## πŸ“Έ Screenshots
If applicable, add screenshots to help explain your problem.

## πŸ’» Code Sample
Please provide a minimal code sample that reproduces the issue.

```dart
// Your code here
```

## ⚠️ Error Message
If there is an error message, please paste it here.

```text
// Paste error message here
```

## 🌍 Environment
- **FlutterJS version**: [e.g. 0.0.1]
- **OS**: [e.g. macOS, Windows, Linux]
- **Node.js version**: [e.g. 18.0.0]
- **Dart version**: [e.g. 3.0.0]
- **Browser (if applicable)**: [e.g. Chrome 114]

## πŸ“‹ Additional Context
Add any other context about the problem here.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: πŸš€ Feature Request
about: Suggest a new feature or improvement
title: '[FEATURE] '
labels: enhancement
assignees: ''

---

## πŸš€ Feature Description
A clear and concise description of what the new feature is.

## πŸ’‘ Use Case
Describe the problem you are trying to solve or the scenario where this feature would be useful.

## πŸ› οΈ Proposed Solution
Describe your proposed solution or implementation.

## πŸ”„ Alternatives Considered
Describe any alternative solutions or features you've considered.

## πŸ’» Example Code
If applicable, show how the feature would be used.

```dart
// Example usage
```

## πŸ“‹ Additional Context
Add any other context or screenshots about the feature request here.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/widget_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: 🧩 Widget Request
about: Request support for a specific Flutter widget
title: '[WIDGET] '
labels: widget
assignees: ''

---

## 🧩 Widget Name
Name of the widget you want ported from Flutter.

## πŸ”— Reference URL
Link to the official Flutter widget documentation (api.flutter.dev).

## πŸ’‘ Use Case
Describe where and how you would use this widget in your web app.

## βš–οΈ Priority
- [ ] **Critical** (Blocks development)
- [ ] **High** (Needed soon)
- [ ] **Medium** (Nice to have)
- [ ] **Low** (Can wait)

## 🀝 Willing to Contribute?
- [ ] Yes, I can help implement this!
- [ ] No, just requesting it.

## πŸ“‹ Additional Context
Add any other context or screenshots covering the widget's visual appearance.
35 changes: 35 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## πŸ“ Description
Please include a summary of the change and which issue is fixed.

## πŸ”— Related Issue
Fixes # (issue)

## πŸ—οΈ Type of Change
- [ ] πŸ› Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] πŸ’₯ Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] πŸ“š Documentation update
- [ ] 🎨 Code style update (formatting, local variables)
- [ ] πŸ”¨ Refactoring (no functional changes, no api changes)
- [ ] πŸ§ͺ Tests
- [ ] βš™οΈ CI/CD

## πŸ“‹ Checklist
- [ ] I have read the [CONTRIBUTING](CONTRIBUTING.md) doc
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

## πŸ“Έ Screenshots (if applicable)
| Before | After |
| - | - |
| <img src="" width="300" /> | <img src="" width="300" /> |

## πŸ§ͺ How to Test
1.
2.
3.
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: "weekly"
31 changes: 31 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: FlutterJS CI

on:
push:
branches: [ "main", "master" ]
pull_request:
branches: [ "main", "master" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Dart SDK
uses: dart-lang/setup-dart@v1
with:
sdk: dev

- name: Install dependencies
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze project source
run: dart analyze

- name: Run tests
run: dart test
29 changes: 15 additions & 14 deletions QUICKSTART.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,20 @@ This guide shows you the **easiest ways** to run FlutterJS commands without typi

## 🎯 Quick Commands

### Option 1: Using Wrapper Scripts (Easiest!)
### Option 1: Global CLI (Recommended)

**PowerShell (Recommended for Windows):**
```powershell
# From the flutterjs root directory
.\flutterjs.ps1 run --to-js --serve
First, activate the CLI globally:
```bash
dart pub global activate --source path .
```

# With verbose logging
.\flutterjs.ps1 -v run --to-js --serve
Then run commands from anywhere:
```bash
# Run dev server
flutterjs run --to-js --serve

# Other commands
.\flutterjs.ps1 doctor
.\flutterjs.ps1 build
# Build for production
flutterjs build
```

**Command Prompt (cmd.exe):**
Expand Down Expand Up @@ -108,8 +109,8 @@ Most commands should be run from:

## πŸ’‘ Tips

1. **Use `.\flutterjs.ps1`** for the quickest development workflow on Windows.
2. **Access from anywhere**: Add `C:\Jay\_Plugin\flutterjs` to your PATH
1. **Use Global CLI**: `flutterjs` is the fastest way to work.
2. **Access from anywhere**: Provide full paths if running outside a project, or just cd in.
3. **Check logs**: Use `-v` if something goes wrong.

---
Expand All @@ -118,10 +119,10 @@ Most commands should be run from:

```bash
# Start development (simplest way)
.\flutterjs.ps1 run --to-js --serve
flutterjs run --to-js --serve

# Build (production)
.\flutterjs.ps1 build
flutterjs build

# Rebuild engine after changes
cd packages/flutterjs_engine
Expand Down
24 changes: 20 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,12 @@ FlutterJS compiles your Flutter/Dart code to **semantic HTML + CSS + JavaScript*
npm install -g flutterjs
```

### Option 2: From Source
### Option 2: From Source (Development)

```bash
git clone https://github.com/flutterjsdev/flutterjs.git
cd flutterjs/packages/flutterjs_engine
npm install
npm link
cd flutterjs
dart pub global activate --source path .
```

---
Expand Down Expand Up @@ -591,6 +590,7 @@ PHASES 4-6: Converting IR to JavaScript...
- [x] Engine Bridge (Dart CLI ↔ JS Runtime)
- [x] Incremental compilation
- [x] DevTools IR Viewer
- [x] Dart Core Libraries (`dart:math`, `dart:async`, `dart:convert`, etc.)
- [ ] Animation support
- [ ] Full Material 3 theming
- [ ] Route-based code splitting
Expand All @@ -600,6 +600,22 @@ PHASES 4-6: Converting IR to JavaScript...

---

## Known Limitations

### Method Tear-offs (Callback Context)
Currently, passing methods directly as callbacks (tear-offs) may causing binding issues where `this` becomes undefined.
**Workaround:** Wrap callbacks in a lambda to preserve context.

```dart
// ❌ Avoid (may fail based on transpiler version)
onPressed: _incrementCounter

// βœ… Recommended
onPressed: () => _incrementCounter()
```

---

## Initialization

To set up the project for development (both Dart and JavaScript packages), run the following command from the root directory:
Expand Down
43 changes: 43 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# πŸ›‘οΈ Security Policy

## πŸ“¦ Supported Versions

| Version | Supported | Notes |
| ------- | ------------------ | ----- |
| 0.0.x | :white_check_mark: | Current development version |
| < 0.0.x | :x: | No longer supported |

## 🐞 Reporting a Vulnerability

We take the security of FlutterJS seriously. If you have discovered a security vulnerability, we appreciate your help in disclosing it to us in a responsible manner.

> [!IMPORTANT]
> **Please DO NOT report security vulnerabilities through public GitHub issues.**

### How to Report

Please email a detailed report to **[info@flutterjs.dev](mailto:info@flutterjs.dev)**.

Include the following details:
- **Type of issue** (e.g., XSS, Injection, logical flaw)
- **Full paths** of source file(s) related to the manifestation of the issue
- **Location** of the affected source code (tag/branch/commit or direct URL)
- **Step-by-step instructions** to reproduce the issue
- **Proof-of-concept** or exploit code (if available)
- **Impact** of the issue, including how an attacker might exploit it

### Our Response Policy

1. **Response**: We will acknowledge receipt of your report within **48 hours**.
2. **Assessment**: We will investigate the issue and determine its impact.
3. **Fix**: If verified, we will work on a fix and release a patch as soon as possible.
4. **Disclosure**: We will coordinate the public disclosure of the vulnerability with you.

## πŸ”’ Security Best Practices

When using FlutterJS in your applications:

1. **Secrets Management**: Never commit API keys or secrets to version control. Use environment variables.
2. **Input Validation**: Always sanitize and validate user input to prevent injection attacks.
3. **Dependency Updates**: Keep your dependencies up to date using `dart pub upgrade` and `npm update`.
4. **Transport Security**: Always use HTTPS in production environments.
Loading
Loading