mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
Merge branch '3.x' into 4.x
This commit is contained in:
@@ -89,7 +89,7 @@ body:
|
||||
- type: input
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Reproduction repository
|
||||
label: Reproduction repository (issue will be closed if this is not valid)
|
||||
description: The URL of a public GitHub repository which reproduces the problem. **Please do not link to your actual project**, what we need instead is a _minimal_ reproduction in a fresh project without any unnecessary code. This means it doesn\'t matter if your real project is private / confidential, since we want a link to a separate, isolated reproduction. This allows us to fix the problem much quicker. **This issue will be automatically closed and not reviewed if this is missing. Please make sure to format the URL starting with `https://github.com` - only repositories hosted on GitHub are accepted.** [Need a headstart? We have a template Filament project for you.](https://filament-issue.unitedbycode.com)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
script: |
|
||||
const URL_REGEXP = /### Reproduction repository[\r\n]+([^#]+)###/m
|
||||
const URL_REGEXP = /### Reproduction repository \(issue will be closed if this is not valid\)[\r\n]+([^#]+)###/m
|
||||
const REPRO_STEPS_REGEXP = /### Steps to reproduce[\r\n]+([^#]+)###/m
|
||||
const LABEL_NEEDS_MORE_INFORMATION = 'needs more info'
|
||||
const LABEL_UNCONFIRMED = 'unconfirmed'
|
||||
|
||||
@@ -12,7 +12,7 @@ return [
|
||||
|
||||
'columns' => [
|
||||
|
||||
'label' => 'العواميد',
|
||||
'label' => 'الأعمدة',
|
||||
|
||||
'form' => [
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@ return [
|
||||
'file' => [
|
||||
'label' => 'ملف',
|
||||
'placeholder' => 'تحميل ملف CSV',
|
||||
'rules' => [
|
||||
'duplicate_columns' => '{0} يجب ألا يحتوي الملف على أكثر من عنوان عمود فارغ واحد.|{1,*} يجب ألا يحتوي الملف على عناوين أعمدة مكررة: :columns.',
|
||||
],
|
||||
],
|
||||
|
||||
'columns' => [
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,9 +1,11 @@
|
||||
import dayjs from 'dayjs/esm'
|
||||
import advancedFormat from 'dayjs/plugin/advancedFormat'
|
||||
import customParseFormat from 'dayjs/plugin/customParseFormat'
|
||||
import localeData from 'dayjs/plugin/localeData'
|
||||
import timezone from 'dayjs/plugin/timezone'
|
||||
import utc from 'dayjs/plugin/utc'
|
||||
|
||||
dayjs.extend(advancedFormat)
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(localeData)
|
||||
dayjs.extend(timezone)
|
||||
|
||||
@@ -54,7 +54,7 @@ export default function richEditorFormComponent({ state }) {
|
||||
|
||||
init: function () {
|
||||
this.$refs.trixValue.value = this.state
|
||||
this.$refs.trix.editor?.loadHTML(this.state)
|
||||
this.$refs.trix.editor?.loadHTML(this.state ?? '')
|
||||
|
||||
this.$watch('state', () => {
|
||||
if (document.activeElement === this.$refs.trix) {
|
||||
@@ -62,7 +62,7 @@ export default function richEditorFormComponent({ state }) {
|
||||
}
|
||||
|
||||
this.$refs.trixValue.value = this.state
|
||||
this.$refs.trix.editor?.loadHTML(this.state)
|
||||
this.$refs.trix.editor?.loadHTML(this.state ?? '')
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
@@ -12,16 +12,64 @@ return [
|
||||
|
||||
'add' => [
|
||||
'label' => 'إضافة إلى :label',
|
||||
|
||||
'modal' => [
|
||||
|
||||
'heading' => 'إضافة إلى :label',
|
||||
|
||||
'actions' => [
|
||||
|
||||
'add' => [
|
||||
'label' => 'إضافة',
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'add_between' => [
|
||||
'label' => 'إدراج بين الوحدات',
|
||||
|
||||
'modal' => [
|
||||
|
||||
'heading' => 'إضافة إلى :label',
|
||||
|
||||
'actions' => [
|
||||
|
||||
'add' => [
|
||||
'label' => 'إضافة',
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'delete' => [
|
||||
'label' => 'حذف',
|
||||
],
|
||||
|
||||
'edit' => [
|
||||
|
||||
'label' => 'تعديل',
|
||||
|
||||
'modal' => [
|
||||
|
||||
'heading' => 'تعديل القسم',
|
||||
|
||||
'actions' => [
|
||||
|
||||
'save' => [
|
||||
'label' => 'حفظ التغييرات',
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
'reorder' => [
|
||||
'label' => 'نقل',
|
||||
],
|
||||
|
||||
@@ -52,4 +52,12 @@ return [
|
||||
|
||||
],
|
||||
|
||||
'avatar' => [
|
||||
'alt' => 'صورة شخصية لـ :name',
|
||||
],
|
||||
|
||||
'logo' => [
|
||||
'alt' => ':name شعار',
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'body' => 'توجد لديك تغييرات غير محفوظة. هل أنت متأكد من أنك تريد مغادرة هذه الصفحة؟',
|
||||
|
||||
];
|
||||
@@ -22,10 +22,18 @@ return [
|
||||
|
||||
'actions' => [
|
||||
|
||||
'first' => [
|
||||
'label' => 'الأولي',
|
||||
],
|
||||
|
||||
'go_to_page' => [
|
||||
'label' => 'انتقل إلى صفحة :page',
|
||||
],
|
||||
|
||||
'last' => [
|
||||
'label' => 'الأخيرة',
|
||||
],
|
||||
|
||||
'next' => [
|
||||
'label' => 'التالي',
|
||||
],
|
||||
|
||||
@@ -45,40 +45,42 @@
|
||||
{{ $trigger }}
|
||||
</div>
|
||||
|
||||
<div
|
||||
x-cloak
|
||||
x-float{{ $placement ? ".placement.{$placement}" : '' }}{{ $size ? '.size' : '' }}.flip{{ $shift ? '.shift' : '' }}{{ $teleport ? '.teleport' : '' }}{{ $offset ? '.offset' : '' }}="{ offset: {{ $offset }}, {{ $size ? ('size: ' . $sizeConfig) : '' }} }"
|
||||
x-ref="panel"
|
||||
x-transition:enter-start="opacity-0"
|
||||
x-transition:leave-end="opacity-0"
|
||||
@if ($attributes->has('wire:key'))
|
||||
wire:ignore.self
|
||||
wire:key="{{ $attributes->get('wire:key') }}.panel"
|
||||
@endif
|
||||
@class([
|
||||
'fi-dropdown-panel absolute z-10 w-screen divide-y divide-gray-100 rounded-lg bg-white shadow-lg ring-1 ring-gray-950/5 transition dark:divide-white/5 dark:bg-gray-900 dark:ring-white/10',
|
||||
match ($width) {
|
||||
// These max width classes need to be `!important` otherwise they will be usurped by the Floating UI "size" middleware.
|
||||
MaxWidth::ExtraSmall, 'xs' => '!max-w-xs',
|
||||
MaxWidth::Small, 'sm' => '!max-w-sm',
|
||||
MaxWidth::Medium, 'md' => '!max-w-md',
|
||||
MaxWidth::Large, 'lg' => '!max-w-lg',
|
||||
MaxWidth::ExtraLarge, 'xl' => '!max-w-xl',
|
||||
MaxWidth::TwoExtraLarge, '2xl' => '!max-w-2xl',
|
||||
MaxWidth::ThreeExtraLarge, '3xl' => '!max-w-3xl',
|
||||
MaxWidth::FourExtraLarge, '4xl' => '!max-w-4xl',
|
||||
MaxWidth::FiveExtraLarge, '5xl' => '!max-w-5xl',
|
||||
MaxWidth::SixExtraLarge, '6xl' => '!max-w-6xl',
|
||||
MaxWidth::SevenExtraLarge, '7xl' => '!max-w-7xl',
|
||||
null => '!max-w-[14rem]',
|
||||
default => $width,
|
||||
},
|
||||
'overflow-y-auto' => $maxHeight || $size,
|
||||
])
|
||||
@style([
|
||||
"max-height: {$maxHeight}" => $maxHeight,
|
||||
])
|
||||
>
|
||||
{{ $slot }}
|
||||
</div>
|
||||
@if (! \Filament\Support\is_slot_empty($slot))
|
||||
<div
|
||||
x-cloak
|
||||
x-float{{ $placement ? ".placement.{$placement}" : '' }}{{ $size ? '.size' : '' }}.flip{{ $shift ? '.shift' : '' }}{{ $teleport ? '.teleport' : '' }}{{ $offset ? '.offset' : '' }}="{ offset: {{ $offset }}, {{ $size ? ('size: ' . $sizeConfig) : '' }} }"
|
||||
x-ref="panel"
|
||||
x-transition:enter-start="opacity-0"
|
||||
x-transition:leave-end="opacity-0"
|
||||
@if ($attributes->has('wire:key'))
|
||||
wire:ignore.self
|
||||
wire:key="{{ $attributes->get('wire:key') }}.panel"
|
||||
@endif
|
||||
@class([
|
||||
'fi-dropdown-panel absolute z-10 w-screen divide-y divide-gray-100 rounded-lg bg-white shadow-lg ring-1 ring-gray-950/5 transition dark:divide-white/5 dark:bg-gray-900 dark:ring-white/10',
|
||||
match ($width) {
|
||||
// These max width classes need to be `!important` otherwise they will be usurped by the Floating UI "size" middleware.
|
||||
MaxWidth::ExtraSmall, 'xs' => '!max-w-xs',
|
||||
MaxWidth::Small, 'sm' => '!max-w-sm',
|
||||
MaxWidth::Medium, 'md' => '!max-w-md',
|
||||
MaxWidth::Large, 'lg' => '!max-w-lg',
|
||||
MaxWidth::ExtraLarge, 'xl' => '!max-w-xl',
|
||||
MaxWidth::TwoExtraLarge, '2xl' => '!max-w-2xl',
|
||||
MaxWidth::ThreeExtraLarge, '3xl' => '!max-w-3xl',
|
||||
MaxWidth::FourExtraLarge, '4xl' => '!max-w-4xl',
|
||||
MaxWidth::FiveExtraLarge, '5xl' => '!max-w-5xl',
|
||||
MaxWidth::SixExtraLarge, '6xl' => '!max-w-6xl',
|
||||
MaxWidth::SevenExtraLarge, '7xl' => '!max-w-7xl',
|
||||
null => '!max-w-[14rem]',
|
||||
default => $width,
|
||||
},
|
||||
'overflow-y-auto' => $maxHeight || $size,
|
||||
])
|
||||
@style([
|
||||
"max-height: {$maxHeight}" => $maxHeight,
|
||||
])
|
||||
>
|
||||
{{ $slot }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user