diff --git a/resources/views/fields/date.blade.php b/resources/views/fields/date.blade.php
index f1aa7222d1..9041c7d296 100644
--- a/resources/views/fields/date.blade.php
+++ b/resources/views/fields/date.blade.php
@@ -1,10 +1,10 @@
@extends('filament::layouts.field-group')
-@pushonce('head')
+@pushonce('head:flatpickr-css')
@endpushonce
-@pushonce('js')
+@pushonce('js:flatpickr')
@endpushonce
diff --git a/resources/views/fields/file.blade.php b/resources/views/fields/file.blade.php
index e25757204f..4bf5184184 100644
--- a/resources/views/fields/file.blade.php
+++ b/resources/views/fields/file.blade.php
@@ -1,10 +1,14 @@
@extends('filament::layouts.field-group')
-@pushonce('head')
+@pushonce('head:filepond-css')
@endpushonce
-@pushonce('js')
+@pushonce('js:livewire-sortable')
+
+@endpushonce
+
+@pushonce('js:filepond')
@endpushonce
@@ -14,6 +18,9 @@
x-data
x-init="
FilePond.setOptions({
+ @isset($field->extraAttributes['placeholder'])
+ labelIdle: '{{ $field->extraAttributes['placeholder'] }}',
+ @endisset
allowMultiple: {{ isset($field->extraAttributes['multiple']) ? 'true' : 'false' }},
server: {
process:(fieldName, file, metadata, load, error, progress, abort, transfer, options) => {
@@ -49,7 +56,7 @@
@endif
>
- @if (exif_imagetype(Filament::storage()->path($file)))
+ @if (Filament::isImage($file))
diff --git a/resources/views/fields/relation.blade.php b/resources/views/fields/relation.blade.php
index 61485383b9..f795755692 100644
--- a/resources/views/fields/relation.blade.php
+++ b/resources/views/fields/relation.blade.php
@@ -1,5 +1,9 @@
@extends('filament::layouts.field-group')
+@pushonce('js:livewire-sortable')
+
+@endpushonce
+
@section('field')
@endpushonce
-@pushonce('js')
+@pushonce('js:trix')
- ';
-
if ($publishedAsset) {
$assetWarning = ($publishedAsset !== $asset) ?
'' : null;
@@ -113,7 +109,6 @@ class Filament
{$assetWarning}
- {$additionalAssets}
");
}
@@ -122,7 +117,6 @@ class Filament
return new HtmlString("
- {$additionalAssets}
");
}
@@ -234,4 +228,20 @@ class Filament
$urlBuilder = UrlBuilderFactory::create('', config('app.key'));
return route('filament.image', ['path' => ltrim($urlBuilder->getUrl($path, $manipulations), '/')]);
}
+
+ /**
+ * Determines if an asset is a valid image based on approved MIME Types.
+ *
+ * @param string $file
+ *
+ * @return bool
+ */
+ public function isImage($file)
+ {
+ return in_array($this->storage()->getMimeType($file), [
+ 'image/jpeg',
+ 'image/png',
+ 'image/gif',
+ ]);
+ }
}