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 1w ago

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

Maintenance33

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity16

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

[athari/yalinqo

YaLinqo, a LINQ-to-objects library for PHP

4531.2M5](/packages/athari-yalinqo)[malukenho/mcbumpface

Bumping into packages

116759.4k24](/packages/malukenho-mcbumpface)[usmanhalalit/strana

Pagination library for PHP, framework agnostic, with built-in adapters for Doctrine, Eloquent, Pixie and PHP Array.

947.4k4](/packages/usmanhalalit-strana)[bodunde/geocoder

A laravel package that helps you with geocoding addresses and reverse geocoding coordinates using the google maps api. It also helps in calculating the distance between two locations using the Hervasine formula and the coordinates of the locations

247.7k](/packages/bodunde-geocoder)[laravel-frontend-presets/bootstrap-4

Laravel 5.5.x Front-end preset for Bootstrap 4

392.1k](/packages/laravel-frontend-presets-bootstrap-4)

PHPackages © 2026

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