This commit is contained in:
2025-10-22 20:08:22 +05:00
commit 736e3bef18
2573 changed files with 120385 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
@php
use Filament\Actions\View\ActionsRenderHook;
use Filament\Support\Facades\FilamentView;
$actionModalAlignment = $action->getModalAlignment();
$actionIsModalAutofocused = $action->isModalAutofocused();
$actionHasModalCloseButton = $action->hasModalCloseButton();
$actionIsModalClosedByClickingAway = $action->isModalClosedByClickingAway();
$actionIsModalClosedByEscaping = $action->isModalClosedByEscaping();
$actionModalDescription = $action->getModalDescription();
$actionExtraModalWindowAttributeBag = $action->getExtraModalWindowAttributeBag();
$actionModalFooterActions = $action->getVisibleModalFooterActions();
$actionModalFooterActionsAlignment = $action->getModalFooterActionsAlignment();
$actionModalHeading = $action->getModalHeading();
$actionModalIcon = $action->getModalIcon();
$actionModalIconColor = $action->getModalIconColor();
$actionModalId = "fi-{$this->getId()}-action-{$action->getNestingIndex()}";
$actionIsModalSlideOver = $action->isModalSlideOver();
$actionIsModalFooterSticky = $action->isModalFooterSticky();
$actionIsModalHeaderSticky = $action->isModalHeaderSticky();
$actionModalWidth = $action->getModalWidth();
$actionLivewireCallMountedActionName = $action->hasFormWrapper() ? $action->getLivewireCallMountedActionName() : null;
$actionModalWireKey = "{$this->getId()}.actions.{$action->getName()}.modal";
@endphp
<x-filament::modal
:alignment="$actionModalAlignment"
:autofocus="$actionIsModalAutofocused"
:close-button="$actionHasModalCloseButton"
:close-by-clicking-away="$actionIsModalClosedByClickingAway"
:close-by-escaping="$actionIsModalClosedByEscaping"
:description="$actionModalDescription"
:extra-modal-window-attribute-bag="$actionExtraModalWindowAttributeBag"
:footer-actions="$actionModalFooterActions"
:footer-actions-alignment="$actionModalFooterActionsAlignment"
:heading="$actionModalHeading"
:icon="$actionModalIcon"
:icon-color="$actionModalIconColor"
:id="$actionModalId"
:slide-over="$actionIsModalSlideOver"
:sticky-footer="$actionIsModalFooterSticky"
:sticky-header="$actionIsModalHeaderSticky"
:width="$actionModalWidth"
:wire:key="$actionModalWireKey"
:wire:submit.prevent="$actionLivewireCallMountedActionName"
:x-on:modal-closed="'if ($event.detail.id === ' . \Illuminate\Support\Js::from($actionModalId) . ') $wire.unmountAction(false)'"
>
{{ FilamentView::renderHook(ActionsRenderHook::MODAL_CUSTOM_CONTENT_BEFORE, scopes: static::class, data: ['action' => $action]) }}
{{ $action->getModalContent() }}
{{ FilamentView::renderHook(ActionsRenderHook::MODAL_CUSTOM_CONTENT_AFTER, scopes: static::class, data: ['action' => $action]) }}
@if ($this->mountedActionHasSchema(mountedAction: $action))
{{ FilamentView::renderHook(ActionsRenderHook::MODAL_SCHEMA_BEFORE, scopes: static::class, data: ['action' => $action]) }}
{{ $this->getMountedActionSchema(mountedAction: $action) }}
{{ FilamentView::renderHook(ActionsRenderHook::MODAL_SCHEMA_AFTER, scopes: static::class, data: ['action' => $action]) }}
@endif
{{ FilamentView::renderHook(ActionsRenderHook::MODAL_CUSTOM_CONTENT_FOOTER_BEFORE, scopes: static::class, data: ['action' => $action]) }}
{{ $action->getModalContentFooter() }}
{{ FilamentView::renderHook(ActionsRenderHook::MODAL_CUSTOM_CONTENT_FOOTER_AFTER, scopes: static::class, data: ['action' => $action]) }}
</x-filament::modal>

View File

@@ -0,0 +1,59 @@
@props([
'actions' => [],
'badge' => null,
'badgeColor' => null,
'button' => false,
'color' => null,
'dropdownMaxHeight' => null,
'dropdownOffset' => null,
'dropdownPlacement' => null,
'dropdownWidth' => null,
'group' => null,
'icon' => null,
'iconSize' => null,
'iconButton' => false,
'label' => null,
'link' => false,
'size' => null,
'tooltip' => null,
'triggerView' => null,
'view' => null,
])
@php
$group ??= \Filament\Actions\ActionGroup::make($actions)
->badgeColor($badgeColor)
->color($color)
->dropdownMaxHeight($dropdownMaxHeight)
->dropdownOffset($dropdownOffset)
->dropdownPlacement($dropdownPlacement)
->dropdownWidth($dropdownWidth)
->icon($icon)
->iconSize($iconSize)
->label($label)
->size($size)
->tooltip($tooltip)
->triggerView($triggerView)
->view($view);
$badge === true
? $group->badge()
: $group->badge($badge);
if ($button) {
$group
->button()
->iconPosition($attributes->get('iconPosition') ?? $attributes->get('icon-position'))
->outlined($attributes->get('outlined') ?? false);
}
if ($iconButton) {
$group->iconButton();
}
if ($link) {
$group->link();
}
@endphp
{{ $group }}

View File

@@ -0,0 +1,19 @@
@if ($this instanceof \Filament\Actions\Contracts\HasActions && (! $this->hasActionsModalRendered))
<div
wire:partial="action-modals"
x-data="filamentActionModals({
livewireId: @js($this->getId()),
})"
style="height: 0"
>
@foreach ($this->getMountedActions() as $action)
@if ((! $loop->last) || $this->mountedActionShouldOpenModal())
{{ $action->toModalHtmlable() }}
@endif
@endforeach
</div>
@php
$this->hasActionsModalRendered = true;
@endphp
@endif