Compare commits

...

3 Commits

Author SHA1 Message Date
88fdc3aa7f Update dependencies and refine Filament configuration
- Upgraded @tailwindcss/vite and tailwindcss to version 4.1.17 in package.json.
- Modified Vite configuration to include a new input file for Filament theme.
- Added AdvancedFileUpload component to VisaMasterPaymentOrderForm.
- Removed unused SpatieMediaLibraryFileUpload from VisaMasterPaymentOrderInfolist.
- Enhanced VisaMasterPaymentOrderInfolist schema for better layout and organization.
- Set Vite theme path in WorkPanelProvider for improved styling.
2025-12-08 21:47:06 +05:00
183916a62a add filament-upload-pro 2025-11-18 01:50:54 +05:00
a9490e132d wip 2025-11-18 01:46:06 +05:00
18 changed files with 3233 additions and 33 deletions

View File

@@ -22,6 +22,7 @@ use Filament\Schemas\Components\Wizard\Step;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Illuminate\Support\Facades\Auth;
use RalphJSmit\Filament\Upload\Filament\Forms\Components\AdvancedFileUpload;
class VisaMasterPaymentOrderForm
{

View File

@@ -15,7 +15,10 @@ use Filament\Schemas\Components\Tabs;
use Filament\Schemas\Components\Tabs\Tab;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Hugomyb\FilamentMediaAction\Actions\MediaAction;
use Illuminate\Support\Str;
use RalphJSmit\Filament\Upload\Filament\Forms\Components\AdvancedFileUpload;
use RalphJSmit\Filament\Upload\Filament\Infolists\Entries\PdfEntry;
class VisaMasterPaymentOrderInfolist
{
@@ -70,36 +73,41 @@ class VisaMasterPaymentOrderInfolist
Tab::make(__('Payment sender data'))
->columns(8)
->schema([
TextEntry::make('sender_full_name')
->label(__('Name, Surname, Patronic name'))
->columnSpan(4)
->placeholder('-'),
Fieldset::make(__('Data'))
->columnSpan(8)
->columns(8)
->schema([
TextEntry::make('sender_full_name')
->label(__('Name, Surname, Patronic name'))
->columnSpan(4)
->placeholder('-'),
TextEntry::make('sender_passport')
->label(__('Passport serie and number'))
->formatStateUsing(function ($record) {
$serie = TurkmenPassportRepository::values()[$record->sender_passport_serie] ?? $record->sender_passport_serie;
TextEntry::make('sender_passport')
->label(__('Passport serie and number'))
->formatStateUsing(function ($record) {
$serie = TurkmenPassportRepository::values()[$record->sender_passport_serie] ?? $record->sender_passport_serie;
return $serie.' '.$record->sender_passport_number;
})
->columnSpan(2)
->placeholder('-'),
return $serie.' '.$record->sender_passport_number;
})
->columnSpan(2)
->placeholder('-'),
TextEntry::make('phone')
->label(__('Phone'))
->formatStateUsing(fn ($state) => '+993 '.$state)
->columnSpan(2)
->placeholder('-'),
TextEntry::make('phone')
->label(__('Phone'))
->formatStateUsing(fn ($state) => '+993 '.$state)
->columnSpan(2)
->placeholder('-'),
TextEntry::make('sender_deposit_account')
->label(__('Deposit account'))
->columnSpan(4)
->placeholder('-'),
TextEntry::make('sender_deposit_account')
->label(__('Deposit account'))
->columnSpan(4)
->placeholder('-'),
TextEntry::make('address')
->label(__('Address'))
->columnSpan(4)
->placeholder('-'),
TextEntry::make('address')
->label(__('Address'))
->columnSpan(4)
->placeholder('-'),
]),
Section::make(__('Files'))
->description('PNG, JPEG, PDF')
@@ -109,7 +117,7 @@ class VisaMasterPaymentOrderInfolist
SpatieMediaLibraryImageEntry::make('sender_passport_local')
->collection('sender_passport_local')
->label(__('Ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_passport_international')
->collection('sender_passport_international')
->label(__('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportynyň asyl görnüşi we göçürmesi')),

View File

@@ -85,6 +85,7 @@ class WorkPanelProvider extends PanelProvider
'primary' => Color::Indigo,
'success' => Color::Emerald,
'warning' => Color::Orange,
]);
])
->viteTheme('resources/css/filament/work/theme.css');
}
}

View File

@@ -18,6 +18,7 @@
"laravel/ui": "^4.6",
"mpdf/mpdf": "^8.2",
"phpoffice/phpword": "dev-master",
"ralphjsmit/laravel-filament-upload": "^1.1",
"spatie/laravel-medialibrary": "^11.17",
"spatie/laravel-translatable": "^6.11",
"stevebauman/location": "^7.6"
@@ -49,6 +50,12 @@
"Tests\\": "tests/"
}
},
"repositories": [
{
"type": "composer",
"url": "https://satis.ralphjsmit.com"
}
],
"scripts": {
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
@@ -89,7 +96,8 @@
"sort-packages": true,
"allow-plugins": {
"pestphp/pest-plugin": true,
"php-http/discovery": true
"php-http/discovery": true,
"ralphjsmit/packages": true
}
},
"minimum-stability": "stable",

462
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "d2a574fdd5c95390e8843b9dbd8659e5",
"content-hash": "8042e9992721acbf0c76d534136007cd",
"packages": [
{
"name": "abdulmajeed-jamaan/filament-translatable-tabs",
@@ -142,6 +142,157 @@
},
"time": "2025-07-30T15:45:57+00:00"
},
{
"name": "aws/aws-crt-php",
"version": "v1.2.7",
"source": {
"type": "git",
"url": "https://github.com/awslabs/aws-crt-php.git",
"reference": "d71d9906c7bb63a28295447ba12e74723bd3730e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e",
"reference": "d71d9906c7bb63a28295447ba12e74723bd3730e",
"shasum": ""
},
"require": {
"php": ">=5.5"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
"yoast/phpunit-polyfills": "^1.0"
},
"suggest": {
"ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
},
"type": "library",
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "AWS SDK Common Runtime Team",
"email": "aws-sdk-common-runtime@amazon.com"
}
],
"description": "AWS Common Runtime for PHP",
"homepage": "https://github.com/awslabs/aws-crt-php",
"keywords": [
"amazon",
"aws",
"crt",
"sdk"
],
"support": {
"issues": "https://github.com/awslabs/aws-crt-php/issues",
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7"
},
"time": "2024-10-18T22:15:13+00:00"
},
{
"name": "aws/aws-sdk-php",
"version": "3.360.0",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "a21055795be59f3d7c5ca6e4d52a80930dcf8c20"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a21055795be59f3d7c5ca6e4d52a80930dcf8c20",
"reference": "a21055795be59f3d7c5ca6e4d52a80930dcf8c20",
"shasum": ""
},
"require": {
"aws/aws-crt-php": "^1.2.3",
"ext-json": "*",
"ext-pcre": "*",
"ext-simplexml": "*",
"guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/promises": "^2.0",
"guzzlehttp/psr7": "^2.4.5",
"mtdowling/jmespath.php": "^2.8.0",
"php": ">=8.1",
"psr/http-message": "^1.0 || ^2.0"
},
"require-dev": {
"andrewsville/php-token-reflection": "^1.4",
"aws/aws-php-sns-message-validator": "~1.0",
"behat/behat": "~3.0",
"composer/composer": "^2.7.8",
"dms/phpunit-arraysubset-asserts": "^0.4.0",
"doctrine/cache": "~1.4",
"ext-dom": "*",
"ext-openssl": "*",
"ext-pcntl": "*",
"ext-sockets": "*",
"phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
"psr/cache": "^2.0 || ^3.0",
"psr/simple-cache": "^2.0 || ^3.0",
"sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0",
"symfony/filesystem": "^v6.4.0 || ^v7.1.0",
"yoast/phpunit-polyfills": "^2.0"
},
"suggest": {
"aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
"doctrine/cache": "To use the DoctrineCacheAdapter",
"ext-curl": "To send requests using cURL",
"ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
"ext-sockets": "To use client-side monitoring"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
}
},
"autoload": {
"files": [
"src/functions.php"
],
"psr-4": {
"Aws\\": "src/"
},
"exclude-from-classmap": [
"src/data/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Amazon Web Services",
"homepage": "http://aws.amazon.com"
}
],
"description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
"homepage": "http://aws.amazon.com/sdkforphp",
"keywords": [
"amazon",
"aws",
"cloud",
"dynamodb",
"ec2",
"glacier",
"s3",
"sdk"
],
"support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.360.0"
},
"time": "2025-11-17T19:46:19+00:00"
},
{
"name": "bezhansalleh/filament-language-switch",
"version": "4.0.0",
@@ -4679,6 +4830,72 @@
},
"time": "2023-05-03T06:19:36+00:00"
},
{
"name": "mtdowling/jmespath.php",
"version": "2.8.0",
"source": {
"type": "git",
"url": "https://github.com/jmespath/jmespath.php.git",
"reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
"reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"symfony/polyfill-mbstring": "^1.17"
},
"require-dev": {
"composer/xdebug-handler": "^3.0.3",
"phpunit/phpunit": "^8.5.33"
},
"bin": [
"bin/jp.php"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.8-dev"
}
},
"autoload": {
"files": [
"src/JmesPath.php"
],
"psr-4": {
"JmesPath\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Declaratively specify how to extract elements from a JSON document",
"keywords": [
"json",
"jsonpath"
],
"support": {
"issues": "https://github.com/jmespath/jmespath.php/issues",
"source": "https://github.com/jmespath/jmespath.php/tree/2.8.0"
},
"time": "2024-09-04T18:46:31+00:00"
},
{
"name": "myclabs/deep-copy",
"version": "1.13.4",
@@ -6316,6 +6533,137 @@
},
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "ralphjsmit/laravel-filament-upload",
"version": "1.1.1",
"source": {
"type": "git",
"url": "git@github.com:ralphjsmit/laravel-filament-upload.git",
"reference": "a4d296ff97577c922a5f99bfdf48802c95aac628"
},
"dist": {
"type": "zip",
"url": "https://satis.ralphjsmit.com/dist/ralphjsmit/laravel-filament-upload/ralphjsmit-laravel-filament-upload-a4d296ff97577c922a5f99bfdf48802c95aac628-zip-37caec.zip",
"reference": "a4d296ff97577c922a5f99bfdf48802c95aac628",
"shasum": "be92377b964b7ae2c448f5692c69c836f558b15b"
},
"require": {
"aws/aws-sdk-php": "^3.336",
"filament/filament": "^v4.0.0-beta7",
"illuminate/contracts": "^10.0|^11.0|^12.0",
"php": "^8.1",
"ralphjsmit/packages": "^1.4",
"spatie/laravel-package-tools": "^1.16",
"symfony/mime": "^7.3"
},
"require-dev": {
"laravel/pint": "^1.14",
"league/flysystem-path-prefixing": "^3.28",
"nunomaduro/collision": "^7.10|^8.1",
"orchestra/testbench": "^8.22|^9.0|^10.0",
"pestphp/pest": "^3.0",
"pestphp/pest-plugin-arch": "^3.0",
"pestphp/pest-plugin-laravel": "^3.0",
"pestphp/pest-plugin-livewire": "^3.0",
"spatie/laravel-medialibrary": "^11.13",
"spatie/laravel-ray": "^1.35"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"RalphJSmit\\Filament\\Upload\\FilamentUploadServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"RalphJSmit\\Filament\\Upload\\": "src/",
"RalphJSmit\\Filament\\Upload\\Database\\Factories\\": "database/factories/"
}
},
"autoload-dev": {
"psr-4": {
"RalphJSmit\\Filament\\Upload\\Tests\\": "tests/"
}
},
"scripts": {
"test": [
"vendor/bin/pest --order-by random --stop-on-failure --stop-on-error --fail-on-risky"
],
"format": [
"vendor/bin/pint"
]
},
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph J. Smit",
"email": "rjs@ralphjsmit.com",
"role": "Developer"
}
],
"description": "Advanced upload component for Filament.",
"homepage": "https://github.com/ralphjsmit/laravel-filament-upload",
"keywords": [
"Ralph J. Smit",
"laravel",
"laravel-filament-upload"
],
"support": {
"source": "https://github.com/ralphjsmit/laravel-filament-upload/tree/1.1.1",
"issues": "https://github.com/ralphjsmit/laravel-filament-upload/issues"
},
"time": "2025-10-22T20:05:23+00:00"
},
{
"name": "ralphjsmit/packages",
"version": "1.4.2",
"source": {
"type": "git",
"url": "git@github.com:ralphjsmit/packages.git",
"reference": "69650da1603c282ee71bfac969293e3faca36e3f"
},
"dist": {
"type": "zip",
"url": "https://satis.ralphjsmit.com/dist/ralphjsmit/packages/ralphjsmit-packages-69650da1603c282ee71bfac969293e3faca36e3f-zip-06dcad.zip",
"reference": "69650da1603c282ee71bfac969293e3faca36e3f",
"shasum": "a1e35fea977f8e1bbfc6ac0d82ece7268aa11b10"
},
"require": {
"composer-plugin-api": "^2.0",
"php": "^8.0",
"spatie/url": "^2.4"
},
"require-dev": {
"composer/composer": "^2.0",
"mockery/mockery": "^1.6",
"pestphp/pest": "^2.30",
"spatie/ray": "^1.40"
},
"type": "composer-plugin",
"extra": {
"class": "RalphJSmit\\Packages\\Plugin",
"plugin-modifies-downloads": true
},
"autoload": {
"psr-4": {
"RalphJSmit\\Packages\\": "src/"
}
},
"scripts": {
"test": [
"vendor/bin/pest"
]
},
"support": {
"source": "https://github.com/ralphjsmit/packages/tree/1.4.2",
"issues": "https://github.com/ralphjsmit/packages/issues"
},
"time": "2024-06-05T09:41:46+00:00"
},
{
"name": "ramsey/collection",
"version": "2.1.1",
@@ -7222,6 +7570,56 @@
],
"time": "2025-02-20T15:51:22+00:00"
},
{
"name": "spatie/macroable",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/macroable.git",
"reference": "ec2c320f932e730607aff8052c44183cf3ecb072"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/macroable/zipball/ec2c320f932e730607aff8052c44183cf3ecb072",
"reference": "ec2c320f932e730607aff8052c44183cf3ecb072",
"shasum": ""
},
"require": {
"php": "^8.0"
},
"require-dev": {
"phpunit/phpunit": "^8.0|^9.3"
},
"type": "library",
"autoload": {
"psr-4": {
"Spatie\\Macroable\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Freek Van der Herten",
"email": "freek@spatie.be",
"homepage": "https://spatie.be",
"role": "Developer"
}
],
"description": "A trait to dynamically add methods to a class",
"homepage": "https://github.com/spatie/macroable",
"keywords": [
"macroable",
"spatie"
],
"support": {
"issues": "https://github.com/spatie/macroable/issues",
"source": "https://github.com/spatie/macroable/tree/2.0.0"
},
"time": "2021-03-26T22:39:02+00:00"
},
{
"name": "spatie/shiki-php",
"version": "2.3.2",
@@ -7348,6 +7746,68 @@
],
"time": "2025-01-13T13:04:43+00:00"
},
{
"name": "spatie/url",
"version": "2.4.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/url.git",
"reference": "93a51db743cdec22b081c64593e193887c9cd395"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/url/zipball/93a51db743cdec22b081c64593e193887c9cd395",
"reference": "93a51db743cdec22b081c64593e193887c9cd395",
"shasum": ""
},
"require": {
"php": "^8.0",
"psr/http-message": "^1.0 || ^2.0",
"spatie/macroable": "^1.0 || ^2.0"
},
"require-dev": {
"pestphp/pest": "^1.21"
},
"type": "library",
"autoload": {
"psr-4": {
"Spatie\\Url\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Sebastian De Deyne",
"email": "sebastian@spatie.be",
"homepage": "https://spatie.be",
"role": "Developer"
}
],
"description": "Parse, build and manipulate URL's",
"homepage": "https://github.com/spatie/url",
"keywords": [
"spatie",
"url"
],
"support": {
"issues": "https://github.com/spatie/url/issues",
"source": "https://github.com/spatie/url/tree/2.4.0"
},
"funding": [
{
"url": "https://spatie.be/open-source/support-us",
"type": "custom"
},
{
"url": "https://github.com/spatie",
"type": "github"
}
],
"time": "2024-03-08T11:35:19+00:00"
},
{
"name": "stevebauman/location",
"version": "v7.6.0",

View File

@@ -727,5 +727,6 @@
"Payment": "Töleg",
"Online payments": "Onlaýn tölegler",
"USD rate": "USD kursy",
"Total": "Jemi"
"Total": "Jemi",
"Data": "Maglumatlar"
}

View File

@@ -0,0 +1,7 @@
<?php
// translations for Hugomyb/FilamentMediaAction
return [
'loading' => 'Loading...',
'unsupported-media-type' => 'Unsupported media type.',
];

View File

@@ -0,0 +1,6 @@
<?php
return [
'loading' => 'Chargement...',
'unsupported-media-type' => 'Type de média non pris en charge.',
];

View File

@@ -0,0 +1,7 @@
<?php
// translations for Hugomyb/FilamentMediaAction
return [
'loading' => 'Caricamento...',
'unsupported-media-type' => 'Tipo di file non supportato.',
];

2226
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -7,11 +7,11 @@
"dev": "vite"
},
"devDependencies": {
"@tailwindcss/vite": "^4.0.0",
"@tailwindcss/vite": "^4.1.17",
"axios": "^1.11.0",
"concurrently": "^9.0.1",
"laravel-vite-plugin": "^2.0.0",
"tailwindcss": "^4.0.0",
"tailwindcss": "^4.1.17",
"vite": "^7.0.7"
}
}

View File

@@ -0,0 +1 @@
.FIE_topbar-buttons-wrapper,.FIE_topbar-reset-button{display:none!important}.FIE_canvas-node{background:none!important}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
@import '../../../../vendor/filament/filament/resources/css/theme.css';
@source '../../../../app/Filament/**/*';
@source '../../../../resources/views/filament/**/*';
@source '../../../../vendor/ralphjsmit/laravel-filament-upload/resources/**/*.blade.php';

View File

View File

@@ -0,0 +1,147 @@
<div class="w-full flex flex-col justify-center items-center h-full"
x-data="{
loading: true,
autoplayed: false,
init() {
this.loading = true;
let mediaElement = this.$refs.mediaFrame;
if (!mediaElement) {
this.loading = false;
return;
}
if (mediaElement.tagName === 'VIDEO' || mediaElement.tagName === 'AUDIO') {
mediaElement.load();
mediaElement.onload = () => {
this.loading = false;
};
mediaElement.oncanplaythrough = () => {
this.loading = false;
};
mediaElement.onloadstart = () => {
this.loading = true;
};
mediaElement.onerror = () => {
this.loading = false;
};
if (mediaElement.readyState >= 3) {
this.loading = false;
}
// Autoplay logic
if (@js($autoplay) && mediaElement.play) {
this.autoplayed = true;
mediaElement.play().catch(() => {
console.log('Autoplay failed or was blocked.');
});
}
} else {
this.loading = true;
mediaElement.onload = () => {
setTimeout(() => {
this.loading = false;
}, 200);
};
mediaElement.onerror = () => {
this.loading = false;
};
}
},
resetAutoplay() {
this.autoplayed = false;
}
}"
@open-modal.window="resetAutoplay"
>
<div class="flex h-full flex-col justify-center items-center" x-show="loading">
<x-filament::loading-indicator class="h-10 w-10" />
<span class="text-center font-bold">{{ __('filament-media-action::media-action.loading') }}</span>
</div>
<div class="mediaContainer w-full flex flex-col justify-center items-center h-full" x-show="!loading">
@if ($mediaType === \Hugomyb\FilamentMediaAction\Actions\MediaAction::TYPE_YOUTUBE)
@php
$youtubeId = '';
// Parse the URL to get components
$parsedUrl = parse_url($media);
if (isset($parsedUrl['host'])) {
// Check if it's a youtu.be short URL
if (str_contains($parsedUrl['host'], 'youtu.be')) {
$youtubeId = ltrim($parsedUrl['path'], '/');
}
// Check if it's a regular youtube.com URL
elseif (str_contains($parsedUrl['host'], 'youtube.com')) {
parse_str($parsedUrl['query'] ?? '', $queryParams);
$youtubeId = $queryParams['v'] ?? '';
}
}
@endphp
@if ($youtubeId)
<iframe x-ref="mediaFrame" class="rounded-lg" width="100%"
src="https://www.youtube.com/embed/{{ $youtubeId }}{{ $autoplay ? '?autoplay=1' : '' }}"
frameborder="0"
style="aspect-ratio: 16 / 9;"
allowfullscreen
></iframe>
@else
<p>Invalid YouTube URL.</p>
@endif
@elseif ($mediaType === \Hugomyb\FilamentMediaAction\Actions\MediaAction::TYPE_AUDIO)
<audio
x-ref="mediaFrame"
class="rounded-lg w-full"
style="width: 100%"
controls
@if($controlsList) controlsList="{{ $controlsList }}" @endif
@canplay="loading = false"
@loadeddata="loading = false"
@play="loading = false"
{{ $preload ? '' : 'preload="none"' }}
>
<source src="{{ $media }}" @if($mime && $mime !== 'unknown') type="{{ $mime }}" @endif>
Your browser does not support the audio element.
</audio>
@elseif ($mediaType === \Hugomyb\FilamentMediaAction\Actions\MediaAction::TYPE_VIDEO)
<video
x-ref="mediaFrame"
class="rounded-lg w-full"
width="100%"
style="aspect-ratio: 16 / 9;"
controls
playsinline
@if($controlsList) controlsList="{{ $controlsList }}" @endif
@canplaythrough="loading = false"
{{ $preload ? '' : 'preload="none"' }}
>
<source src="{{ $media }}" @if($mime && $mime !== 'unknown') type="{{ $mime }}" @endif>
Your browser does not support the video tag.
</video>
@elseif ($mediaType === \Hugomyb\FilamentMediaAction\Actions\MediaAction::TYPE_IMAGE)
<img x-ref="mediaFrame" class="rounded-lg" src="{{ $media }}" alt="Media Image"
style="max-width: 100%; height: auto;" @load="loading = false">
@elseif ($mediaType === \Hugomyb\FilamentMediaAction\Actions\MediaAction::TYPE_PDF)
<iframe x-ref="mediaFrame" class="rounded-lg" style="min-height: 600px"
src="{{ $media }}" width="100%" height="100%"
@load="loading = false"></iframe>
@else
<p>{{ __('filament-media-action::unsupported-media-type') }}</p>
@endif
</div>
</div>

View File

@@ -5,7 +5,9 @@ import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
input: [
'resources/css/filament/work/theme.css'
],
refresh: true,
}),
tailwindcss(),