kominfogusit/laravel-helper

Reusable helper utilities for Laravel 12 and 13 applications.

Maintainers

Package info

gitlab.com/gusit-kominfo-dev/laravel-helper

Issues

pkg:composer/kominfogusit/laravel-helper

Statistics

Installs: 11

Dependents: 0

Suggesters: 0

Stars: 0

v0.1.4 2026-05-17 02:56 UTC

This package is auto-updated.

Last update: 2026-05-16 19:57:00 UTC


README

Paket Laravel 12/13 yang menyediakan komponen Blade untuk membangun tampilan admin: komponen UI, aset layout yang dapat dipublish, helper tabel, remote select, interaksi modal, dan utilitas PHP.

Apa yang Disediakan

  • Komponen Blade bernamespace seperti x-laravel-helper::button, x-laravel-helper::form.input, x-laravel-helper::modal, x-laravel-helper::table-filter, dan x-laravel-helper::table-index.
  • Aset layout, CSS, dan JavaScript yang dapat dipublish untuk tema UI default.
  • Utilitas untuk query index, pesan exception, opsi enum, dan preservasi state index.

Persyaratan

  • PHP ^8.2
  • Laravel ^12.0 atau ^13.0
  • Vite untuk aplikasi yang menggunakan layout atau mengimpor CSS yang dipublish dari resources/css/app.css
  • Alpine.js untuk komponen interaktif seperti modal, table filter, table index, remote select, dan cascade select
  • window.axios untuk fitur remote select dan AJAX dependent select

Package menginstal dependensi runtime berikut melalui Composer:

  • blade-ui-kit/blade-icons
  • mallardduck/blade-lucide-icons
  • afatmustafa/blade-hugeicons
  • php-flasher/flasher-laravel
  • php-flasher/flasher-noty-laravel
  • php-flasher/flasher-sweetalert-laravel

Instalasi

Install package melalui Composer:

composer require kominfogusit/laravel-helper

Laravel auto-discovers service provider secara otomatis.

Publish file konfigurasi:

php artisan vendor:publish --tag=laravel-helper-config

Publish layout, CSS, dan JavaScript default:

php artisan vendor:publish --tag=laravel-helper-core-ui

Install aset Flasher:

php artisan flasher:install

Import CSS yang dipublish di resources/css/app.css:

@import './vendor/laravel-helper/default.css';

default.css mengimpor stylesheet package untuk layout, badge, button, card, link, modal, spinner, table-filter, table-index, dan komponen form.

Install Alpine.js dan Axios:

npm install alpinejs axios

Aktifkan Alpine dan daftarkan Axios di resources/js/app.js:

import Alpine from 'alpinejs';
import axios from 'axios';

window.Alpine = Alpine;
window.axios = axios;
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

Alpine.start();

Catatan: window.axios wajib tersedia agar fitur AJAX pada x-laravel-helper::form.select (cascade select) berfungsi.

Tambahkan @stack('head-scripts') di <head> layout aplikasimu, tepat sebelum @vite():

@stack('head-scripts')
@vite(['resources/css/app.css', 'resources/js/app.js'])

Komponen dari package ini akan secara otomatis mendaftarkan script yang dibutuhkan ke stack ini (via @pushOnce) hanya saat komponen tersebut digunakan di halaman.

Layout default yang dipublish sudah menyertakan @stack('head-scripts') ini secara otomatis.

Penggunaan Cepat

Gunakan layout yang dipublish sebagai shell aplikasi admin:

@extends('layout.default')

@section('page_heading', 'Dashboard')
@section('page_subheading', 'Ringkasan aplikasi dan aktivitas terbaru.')

@section('content')
    <x-laravel-helper::card>
        <p>Konten halaman ditulis di sini.</p>
    </x-laravel-helper::card>
@endsection

Setelah publish, kustomisasi menu navigasi di resources/views/layout/sidebar.blade.php dan user menu di resources/views/layout/topbar.blade.php. Lihat Panduan Layout untuk detail lengkap.

Gunakan form input:

<x-laravel-helper::form.input
    name="name"
    label="Nama"
    placeholder="Masukkan nama"
    required
/>

Gunakan action button:

<x-laravel-helper::button type="submit" variant="primary">
    Simpan
</x-laravel-helper::button>

Gunakan table index:

<x-laravel-helper::table-index
    :data-list="$users"
    :data-columns="[
        ['key' => 'name', 'label' => 'Nama', 'sortable' => true, 'sortKey' => 'name'],
        ['key' => 'email', 'label' => 'Email'],
    ]"
/>

Komponen

Form

KomponenKegunaanDokumentasi
x-laravel-helper::form.inputField input teks dengan label, hint, error, atribut Livewire, dan fallback aksesibilitas.Form Input
x-laravel-helper::form.checkboxField checkbox dengan label, deskripsi, checked state, error, dan dukungan old().Form Checkbox
x-laravel-helper::form.textareaField textarea dengan label, hint, error, rows, dan atribut Livewire.Form Textarea
x-laravel-helper::form.selectField select dengan label, hint, error, placeholder, dan mode searchable.Form Select

UI

KomponenKegunaanDokumentasi
x-laravel-helper::buttonTombol atau link aksi dengan variant, loading state, ikon, dan mode icon-only.Button
x-laravel-helper::linkAnchor dengan variant, perilaku underline, ikon, dan disabled state.Link
x-laravel-helper::badgeLabel kecil dengan variant, tone, ukuran, ikon, dan indikator dot.Badge
x-laravel-helper::cardKontainer konten dengan header opsional, footer, variant status, dan wrapper tag.Card
x-laravel-helper::spinnerIndikator loading untuk form, tombol, dan area loading inline.Spinner

Dialog & Modal

KomponenKegunaanDokumentasi
x-laravel-helper::modalDialog berbasis Alpine dengan event open/close/toggle dan slots.Modal

Table

KomponenKegunaanDokumentasi
x-laravel-helper::table-filterToolbar filter query-string dengan pencarian cepat, modal filter, dan dependent select.Table Filter
x-laravel-helper::table-indexTabel data dengan header sortable, formatting, row action, rows-per-page, dan paginasi.Table Index

Utilitas

Package menyediakan utilitas consumer-facing berikut:

  • Indrahulu\LaravelHelper\Services\IndexQueryService
  • Indrahulu\LaravelHelper\Services\ExceptionService
  • Indrahulu\LaravelHelper\Concerns\HasEnumOptions
  • Indrahulu\LaravelHelper\Concerns\PreservesIndexState

Lihat Utilitas untuk contoh penggunaan lengkap.

Dokumentasi

Development

composer install
composer test

Rilis package mengikuti Git tag, dimulai dari v0.1.0 untuk rilis praproduksi pertama.