Skip to content

Commit b741371

Browse files
committed
Merge branch '4.x' into 5.x
2 parents 13bdefc + a4f5e36 commit b741371

41 files changed

Lines changed: 403 additions & 74 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/manage-issue.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ jobs:
3535
const issue = context.payload.issue
3636
const body = issue.body
3737
38-
if (body.includes('filament/minimal-theme')) {
39-
debug('Ignoring Minimal Theme issue.')
38+
const CORE_TEAM_ASSOCIATIONS = ['OWNER', 'MEMBER', 'COLLABORATOR']
39+
40+
if (CORE_TEAM_ASSOCIATIONS.includes(issue.author_association)) {
41+
debug(`Ignoring issue from core team member with author association '${issue.author_association}'.`)
4042
4143
return
4244
}

packages/actions/docs/02-modals.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ Action::make('delete')
2828
The confirmation modal is not available when a `url()` is set instead of an `action()`. Instead, you should redirect to the URL within the `action()` closure.
2929
</Aside>
3030

31+
<Aside variant="info">
32+
Confirmation modals use the `alertdialog` ARIA role instead of `dialog`, so screen readers announce them as alerts and automatically read the modal's description when they open.
33+
</Aside>
34+
3135
## Controlling modal content
3236

3337
### Customizing the modal's heading, description, and submit action label

packages/actions/resources/views/action-modal.blade.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use Filament\Support\Facades\FilamentView;
44
use Illuminate\Support\Js;
55
6+
$actionIsModalAlert = $action->isConfirmationRequired();
67
$actionModalAlignment = $action->getModalAlignment();
78
$actionIsModalAutofocused = $action->isModalAutofocused();
89
$actionIsModalClickThrough = $action->isModalClickThrough();
@@ -33,6 +34,7 @@
3334
@endphp
3435

3536
<x-filament::modal
37+
:alert="$actionIsModalAlert"
3638
:alignment="$actionModalAlignment"
3739
:autofocus="$actionIsModalAutofocused"
3840
:click-through="$actionIsModalClickThrough"

packages/forms/dist/components/code-editor.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/forms/dist/components/select.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/forms/dist/components/slider.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/forms/resources/js/components/code-editor.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export default function codeEditorFormComponent({
2424
isLive,
2525
isLiveDebounced,
2626
isLiveOnBlur,
27+
label,
2728
liveDebounce,
2829
language,
2930
state,
@@ -49,6 +50,13 @@ export default function codeEditorFormComponent({
4950
extensions: [
5051
basicSetup,
5152
keymap.of([indentWithTab]),
53+
...(label
54+
? [
55+
EditorView.contentAttributes.of({
56+
'aria-label': label,
57+
}),
58+
]
59+
: []),
5260
...(canWrap ? [EditorView.lineWrapping] : []),
5361
EditorState.readOnly.of(isDisabled),
5462
EditorView.editable.of(!isDisabled),

packages/forms/resources/js/components/select.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export default function selectFormComponent({
1010
hasDynamicOptions,
1111
hasDynamicSearchResults,
1212
hasInitialNoOptionsMessage,
13+
id,
1314
initialOptionLabel,
1415
initialOptionLabels,
1516
initialState,
@@ -53,6 +54,7 @@ export default function selectFormComponent({
5354
hasDynamicOptions,
5455
hasDynamicSearchResults,
5556
hasInitialNoOptionsMessage,
57+
id,
5658
initialOptionLabel,
5759
initialOptionLabels,
5860
initialState,

packages/forms/resources/js/components/slider.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,19 @@ export default function sliderFormComponent({
6464
tooltips,
6565
})
6666

67+
if (this.$el.id) {
68+
// `noUiSlider` handles are focusable `role="slider"` elements, but it does not
69+
// give them an accessible name, so they inherit the field's label element.
70+
this.$el
71+
.querySelectorAll('.noUi-handle')
72+
.forEach((handle) =>
73+
handle.setAttribute(
74+
'aria-labelledby',
75+
`${this.$el.id}-label`,
76+
),
77+
)
78+
}
79+
6780
if (isDisabled) {
6881
this.slider.disable()
6982
}

packages/forms/resources/lang/en/components.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@
126126

127127
'editor' => [
128128

129+
'label' => 'Image editor',
130+
129131
'actions' => [
130132

131133
'cancel' => [

0 commit comments

Comments
 (0)