'primary', 'deleteButton' => null, 'disabled' => false, 'form' => null, 'formId' => null, 'href' => null, 'icon' => null, 'iconAlias' => null, 'iconPosition' => IconPosition::Before, 'iconSize' => IconSize::Small, 'keyBindings' => null, 'loadingIndicator' => true, 'size' => ActionSize::Medium, 'spaMode' => null, 'tag' => 'span', 'target' => null, 'tooltip' => null, 'type' => 'button', ])); foreach ($attributes->all() as $__key => $__value) { if (in_array($__key, $__propNames)) { $$__key = $$__key ?? $__value; } else { $__newAttributes[$__key] = $__value; } } $attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); unset($__propNames); unset($__newAttributes); foreach (array_filter(([ 'color' => 'primary', 'deleteButton' => null, 'disabled' => false, 'form' => null, 'formId' => null, 'href' => null, 'icon' => null, 'iconAlias' => null, 'iconPosition' => IconPosition::Before, 'iconSize' => IconSize::Small, 'keyBindings' => null, 'loadingIndicator' => true, 'size' => ActionSize::Medium, 'spaMode' => null, 'tag' => 'span', 'target' => null, 'tooltip' => null, 'type' => 'button', ]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { $$__key = $$__key ?? $__value; } $__defined_vars = get_defined_vars(); foreach ($attributes->all() as $__key => $__value) { if (array_key_exists($__key, $__defined_vars)) unset($$__key); } unset($__defined_vars); ?> attributes->getAttributes() ?? []) > 0; $iconClasses = \Illuminate\Support\Arr::toCssClasses([ 'fi-badge-icon h-4 w-4', match ($iconSize) { IconSize::Small => 'h-4 w-4', IconSize::Medium => 'h-5 w-5', IconSize::Large => 'h-6 w-6', default => $iconSize, }, match ($color) { 'gray' => 'text-gray-400 dark:text-gray-500', default => 'text-custom-500', }, ]); $iconStyles = \Illuminate\Support\Arr::toCssStyles([ \Filament\Support\get_color_css_variables( $color, shades: [500], alias: 'badge.icon', ) => $color !== 'gray', ]); $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null; $hasLoadingIndicator = filled($wireTarget) || ($type === 'submit' && filled($form)); if ($hasLoadingIndicator) { $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES); } $hasTooltip = filled($tooltip); ?> < x-data="{}" x-bind:id="$id('key-bindings')" x-mousetrap.global.map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.')); ?>="document.getElementById($el.id).click()" x-tooltip="{ content: toHtml() ?>, theme: $store.theme, }" merge([ 'disabled' => $disabled, 'form' => $tag === 'button' ? $formId : null, 'type' => $tag === 'button' ? $type : null, 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null, 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null, ], escape: false) ->class([ 'fi-badge flex items-center justify-center gap-x-1 rounded-md text-xs font-medium ring-1 ring-inset', 'pointer-events-none opacity-70' => $disabled, match ($size) { ActionSize::ExtraSmall => 'px-0.5 min-w-[theme(spacing.4)] tracking-tighter', ActionSize::Small => 'px-1.5 min-w-[theme(spacing.5)] py-0.5 tracking-tight', ActionSize::Medium, ActionSize::Large, ActionSize::ExtraLarge => 'px-2 min-w-[theme(spacing.6)] py-1', default => $size, }, match ($color) { 'gray' => 'bg-gray-50 text-gray-600 ring-gray-600/10 dark:bg-gray-400/10 dark:text-gray-400 dark:ring-gray-400/20', default => 'fi-color-custom bg-custom-50 text-custom-600 ring-custom-600/10 dark:bg-custom-400/10 dark:text-custom-400 dark:ring-custom-400/30', }, is_string($color) ? "fi-color-{$color}" : null, ]) ->style([ \Filament\Support\get_color_css_variables( $color, shades: [ 50, 400, 600, ], alias: 'badge', ) => $color !== 'gray', ])); ?> > 'filament::components.icon','data' => ['attributes' => \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'alias' => $iconAlias, 'icon' => $icon, 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator, 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : null, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> withName('filament::icon'); ?> shouldRender()): ?> startComponent($component->resolveView(), $component->data()); ?> except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'alias' => $iconAlias, 'icon' => $icon, 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator, 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : null, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) )]); ?> renderComponent(); ?> 'filament::components.loading-indicator','data' => ['attributes' => \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '', 'wire:target' => $loadingIndicatorTarget, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> withName('filament::loading-indicator'); ?> shouldRender()): ?> startComponent($component->resolveView(), $component->data()); ?> except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '', 'wire:target' => $loadingIndicatorTarget, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) )]); ?> renderComponent(); ?> 'filament::components.icon','data' => ['attributes' => \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'alias' => $iconAlias, 'icon' => $icon, 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator, 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : null, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> withName('filament::icon'); ?> shouldRender()): ?> startComponent($component->resolveView(), $component->data()); ?> except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'alias' => $iconAlias, 'icon' => $icon, 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator, 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : null, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) )]); ?> renderComponent(); ?> 'filament::components.loading-indicator','data' => ['attributes' => \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '', 'wire:target' => $loadingIndicatorTarget, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> withName('filament::loading-indicator'); ?> shouldRender()): ?> startComponent($component->resolveView(), $component->data()); ?> except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( \Filament\Support\prepare_inherited_attributes( new \Illuminate\View\ComponentAttributeBag([ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '', 'wire:target' => $loadingIndicatorTarget, ]) ) ->class([$iconClasses]) ->style([$iconStyles]) )]); ?> renderComponent(); ?> >