PHPackages                             incodiy/realments - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. incodiy/realments

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

incodiy/realments
=================

Laravel and React form elements package for easy form creation

10JavaScriptCI failing

Since May 18Pushed 1y ago1 watchersCompare

[ Source](https://github.com/incodiy/realments)[ Packagist](https://packagist.org/packages/incodiy/realments)[ RSS](/packages/incodiy-realments/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Incodiy Realments
=================

[](#incodiy-realments)

[![Latest Version on Packagist](https://camo.githubusercontent.com/966e7f1229d9ecab041d00359e81cdb9aa44b049022c805ffbad9d5fbaa3b357/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696e636f6469792f7265616c6d656e74732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/incodiy/realments)[![Total Downloads](https://camo.githubusercontent.com/f4fffc6f00c3b9136e2eb635b4806435ffd5774f07681a22debd1f6034941ec7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f696e636f6469792f7265616c6d656e74732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/incodiy/realments)[![License](https://camo.githubusercontent.com/123bf1c5d5b791b6d950f0b1ad8209b26a07f3ba458520da5027bcb2d2c9db14/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f696e636f6469792f7265616c6d656e74732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/incodiy/realments)

Realments adalah package Laravel dan React yang powerful untuk membuat form input data dengan mudah melalui kode sederhana di controller Laravel.

Fitur
-----

[](#fitur)

- Membuat elemen form dengan kode Laravel controller yang sederhana
- Mendukung berbagai tipe input (text, textarea, select, checkbox, radio, dll)
- Integrasi WYSIWYG editor untuk rich text editing
- Dukungan CSS framework dinamis (Bootstrap, Tailwind, Bulma)
- Dukungan tema gelap (dark mode) dan tema terang (light mode)
- Internasionalisasi (i18n) untuk multi-bahasa
- Validasi client-side dan server-side
- Integrasi error display dengan validasi Laravel
- Fitur add button untuk penambahan elemen dinamis
- Desain responsif untuk mobile dan desktop

Persyaratan
-----------

[](#persyaratan)

- PHP 8.1 atau lebih tinggi
- Laravel 10.x, 11.x, atau 12.x
- Node.js dan NPM untuk asset frontend

Instalasi
---------

[](#instalasi)

### 1. Instal package melalui Composer

[](#1-instal-package-melalui-composer)

```
composer require incodiy/realments
```

### 2. Publish asset package

[](#2-publish-asset-package)

```
php artisan vendor:publish --provider="Incodiy\Realments\Providers\RealmentsServiceProvider" --tag="realments-assets"
```

### 3. Publish file konfigurasi (opsional)

[](#3-publish-file-konfigurasi-opsional)

```
php artisan vendor:publish --provider="Incodiy\Realments\Providers\RealmentsServiceProvider" --tag="realments-config"
```

### 4. Publish file bahasa (opsional)

[](#4-publish-file-bahasa-opsional)

```
php artisan vendor:publish --provider="Incodiy\Realments\Providers\RealmentsServiceProvider" --tag="realments-lang"
```

### 5. Tambahkan Realments facade ke file `config/app.php` (Laravel 10 saja)

[](#5-tambahkan-realments-facade-ke-file-configappphp-laravel-10-saja)

```
'aliases' => [
    // ...
    'Realments' => Incodiy\Realments\Facades\Realments::class,
],
```

### 6. Instal dependensi NPM dan build assets

[](#6-instal-dependensi-npm-dan-build-assets)

Setelah menginstal package melalui Composer, Anda perlu menginstal dependensi NPM dan build assets React:

```
# Pindah ke direktori project Laravel Anda
cd /path/to/your/laravel/project

# Instal dependensi NPM
npm install --save-dev vite @vitejs/plugin-react tailwindcss postcss autoprefixer laravel-vite-plugin axios tailwindcss postcss autoprefixer

# Build assets untuk production
npm run build
```

Atau jika Anda menggunakan Yarn:

```
yarn install
yarn build
```

Penggunaan Dasar
----------------

[](#penggunaan-dasar)

### Form Open dan Close

[](#form-open-dan-close)

```
// Di controller Anda
public function create()
{
    $form = app('realments');

    // Buka form
    $form->open([
        'action' => route('users.store'),
        'method' => 'POST',
        'files' => true, // Jika Anda memerlukan upload file
        'css_framework' => 'bootstrap', // Pilihan: bootstrap, tailwind, bulma
        'theme_mode' => 'light' // Pilihan: light, dark
    ]);

    // Tambahkan elemen form di sini...

    // Tutup form dengan tombol submit
    $form->close('Submit');

    // Render form
    return view('users.create', [
        'form' => $form->render()
    ]);
}
```

### Select Box

[](#select-box)

```
// Select box dasar
$form->select('country', [
    'Select a country', // Opsi pertama kosong secara default
    'usa' => 'United States',
    'canada' => 'Canada',
    'uk' => 'United Kingdom'
]);

// Select box dengan nilai terpilih
$form->select('country', [
    'Select a country',
    'usa' => 'United States',
    'canada' => 'Canada',
    'uk' => 'United Kingdom'
], [
    'selected' => 'usa'
]);

// Multi-select box
$form->select('countries', [
    'Select countries',
    'usa' => 'United States',
    'canada' => 'Canada',
    'uk' => 'United Kingdom'
], [
    'multiselect' => true,
    'selected' => ['usa', 'uk']
]);

// Select box dengan tombol add
$form->select('skills', [
    'Select a skill',
    'php' => 'PHP',
    'js' => 'JavaScript',
    'python' => 'Python'
], [
    'add_button' => true,
    'max_additions' => 5,
    'button_position' => 'right', // Pilihan: right, bottom
    'button_text' => 'Add Skill',
    'button_class' => 'btn btn-sm btn-secondary',
    'added_items' => [
        ['php'], // Item pertama dengan PHP terpilih
        ['js']   // Item kedua dengan JavaScript terpilih
    ]
]);
```

### Text Input

[](#text-input)

```
// Input text dasar
$form->text('name', 'John Doe');

// Input text dengan atribut
$form->text('name', 'John Doe', [
    'placeholder' => 'Enter your name',
    'class' => 'custom-class',
    'required' => true
]);

// Input text dengan aturan validasi
$form->text('email', 'john@example.com')
    ->rules('required|email');
```

### Textarea

[](#textarea)

```
// Textarea dasar
$form->textarea('description', 'Lorem ipsum dolor sit amet');

// Textarea dengan WYSIWYG editor
$form->textarea('content', 'Hello World', [
    'wysiwyg' => true,
    'editor' => 'tinymce', // Pilihan: tinymce, ckeditor, quill
    'editor_config' => [
        'height' => 300,
        'plugins' => 'link image code'
    ]
]);
```

### Checkbox, Radio, dan Switch

[](#checkbox-radio-dan-switch)

```
// Checkbox
$form->checkbox('agree_terms', '1', true);

// Radio buttons
$form->radio('gender', [
    'male' => 'Male',
    'female' => 'Female',
    'other' => 'Other'
], 'male');

// Switch
$form->switch('notifications', '1', true);
```

### Password, Email, dan Number

[](#password-email-dan-number)

```
// Input password
$form->password('password');

// Input email
$form->email('email', 'john@example.com');

// Input number
$form->number('age', 25, [
    'min' => 18,
    'max' => 100
]);
```

### Date, Time, dan DateTime

[](#date-time-dan-datetime)

```
// Input date
$form->date('birth_date', '1990-01-01');

// Input time
$form->time('meeting_time', '14:30');

// Input DateTime
$form->datetime('appointment', '2023-05-15T14:30');

// Date range
$form->dateRange('vacation', ['2023-06-01', '2023-06-15']);
```

### File Upload

[](#file-upload)

```
// Upload file dasar
$form->file('document');

// Upload file dengan thumbnail preview
$form->file('profile_picture', [
    'thumbnail' => true,
    'thumbnail_size' => 150,
    'thumbnail_position' => 'top', // Pilihan: top, bottom
    'accept' => 'image/*'
]);
```

### Hidden Input

[](#hidden-input)

```
$form->hidden('user_id', 123);
```

### Range, Color, Tags, dan RichText

[](#range-color-tags-dan-richtext)

```
// Range slider
$form->range('rating', 5, [
    'min' => 0,
    'max' => 10,
    'step' => 1
]);

// Color picker
$form->color('theme_color', '#3490dc');

// Tags input
$form->tags('keywords', ['laravel', 'react']);

// Rich text editor
$form->richText('article', 'Article TitleContent goes here...', [
    'editor' => 'tinymce'
]);
```

### Captcha dan Autocomplete

[](#captcha-dan-autocomplete)

```
// Captcha
$form->captcha();

// Autocomplete
$form->autocomplete('city', 'New York', [
    'New York',
    'Los Angeles',
    'Chicago',
    'Houston',
    'Phoenix'
]);
```

Penggunaan Lanjutan
-------------------

[](#penggunaan-lanjutan)

### Validasi

[](#validasi)

```
// Validasi server-side di controller
public function store(Request $request)
{
    $validated = $request->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|email|unique:users',
        'password' => 'required|min:8|confirmed',
    ]);

    // Jika validasi gagal, error akan otomatis ditampilkan di form

    // Proses form...
}

// Validasi client-side di form builder
$form->text('name')
    ->rules('required|max:255');

$form->email('email')
    ->rules('required|email');

$form->password('password')
    ->rules('required|min:8');
```

### Internasionalisasi (i18n)

[](#internasionalisasi-i18n)

```
// Di config/realments.php
'i18n' => [
    'default_locale' => 'en',
    'fallback_locale' => 'en',
    'available_locales' => ['en', 'id', 'es', 'fr'],
],

// Di controller
$form->open([
    'locale' => 'id' // Set bahasa form
]);
```

### Kustomisasi CSS Framework

[](#kustomisasi-css-framework)

```
// Di config/realments.php
'default_css_framework' => 'bootstrap',

// Di controller
$form->open([
    'css_framework' => 'tailwind'
]);
```

### Theme Mode

[](#theme-mode)

```
// Di config/realments.php
'default_theme_mode' => 'light',

// Di controller
$form->open([
    'theme_mode' => 'dark'
]);
```

Kompatibilitas Laravel
----------------------

[](#kompatibilitas-laravel)

Realments mendukung Laravel versi 10.x, 11.x, dan 12.x. Berikut adalah panduan kompatibilitas:

### Laravel 10.x

[](#laravel-10x)

- Tambahkan Facade ke `config/app.php`
- Semua fitur didukung penuh

### Laravel 11.x dan 12.x

[](#laravel-11x-dan-12x)

- Tidak perlu menambahkan Facade secara manual
- Semua fitur didukung penuh
- Gunakan auto-discovery untuk service provider

Troubleshooting
---------------

[](#troubleshooting)

### Asset tidak ditemukan

[](#asset-tidak-ditemukan)

Jika Anda mendapatkan error 404 untuk file JavaScript, pastikan:

1. Anda telah menjalankan `npm run build` setelah instalasi
2. Anda telah mempublish asset dengan `php artisan vendor:publish --tag=realments-assets`
3. Direktori `public/vendor/incodiy/realments` ada dan berisi file JavaScript

Jika masalah berlanjut, coba:

```
php artisan cache:clear
php artisan config:clear
php artisan view:clear
```

### Error saat build

[](#error-saat-build)

Jika Anda mendapatkan error saat menjalankan `npm run build`, pastikan:

1. Anda menggunakan Node.js versi 14 atau lebih tinggi
2. Semua dependensi NPM terinstal dengan benar
3. Tidak ada konflik dengan package lain

Dokumentasi
-----------

[](#dokumentasi)

Untuk dokumentasi lengkap, kunjungi [GitHub Pages](https://incodiy.github.io/realments/) kami.

Testing
-------

[](#testing)

```
composer test
```

Kontribusi
----------

[](#kontribusi)

Silakan lihat [CONTRIBUTING](CONTRIBUTING.md) untuk detail.

Keamanan
--------

[](#keamanan)

Jika Anda menemukan masalah keamanan, silakan kirim email ke  daripada menggunakan issue tracker.

Kredit
------

[](#kredit)

- [Incodiy](https://github.com/incodiy)
- [Semua Kontributor](../../contributors)

Lisensi
-------

[](#lisensi)

The MIT License (MIT). Silakan lihat [License File](LICENSE.md) untuk informasi lebih lanjut.

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/169636?v=4)[EclipSYNC](/maintainers/wisnuwidi)[@wisnuwidi](https://github.com/wisnuwidi)

---

Top Contributors

[![wisnuwidi](https://avatars.githubusercontent.com/u/169636?v=4)](https://github.com/wisnuwidi "wisnuwidi (13 commits)")

---

Tags

form-elementsinput-elementslaravel-packagereact-elements

### Embed Badge

![Health badge](/badges/incodiy-realments/health.svg)

```
[![Health](https://phpackages.com/badges/incodiy-realments/health.svg)](https://phpackages.com/packages/incodiy-realments)
```

###  Alternatives

[donatj/rewrite-generator

Server Rewrite Generator

1263.9k](/packages/donatj-rewrite-generator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
