Skip to content

Commit 0c13541

Browse files
committed
Merge remote-tracking branch 'origin/6.x' into submit-form-action
2 parents 774a63d + c6e305e commit 0c13541

37 files changed

Lines changed: 451 additions & 35 deletions

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
# Release Notes
22

3+
## 6.13.0 (2026-04-13)
4+
5+
### What's new
6+
- Frontend Passkeys [#14453](https://github.com/statamic/cms/issues/14453) by @duncanmcclean
7+
- Allow control over who can be impersonated in UserPolicy [#14469](https://github.com/statamic/cms/issues/14469) by @ryanmitchell
8+
9+
### What's fixed
10+
- Fix Bard arrow keys/undo [#14467](https://github.com/statamic/cms/issues/14467) by @jackmcdade
11+
- Fix visible he-tree accessibility text in tree view [#14465](https://github.com/statamic/cms/issues/14465) by @duncanmcclean
12+
- Append to Bard Entry links [#11468](https://github.com/statamic/cms/issues/11468) by @edalzell
13+
- Disable broadcast provider when broadcasting driver is null [#14471](https://github.com/statamic/cms/issues/14471) by @jasonvarga
14+
- Make the collapsible section icon smaller to fit in with the rest of UI [#14478](https://github.com/statamic/cms/issues/14478) by @jaygeorge
15+
- Add `.npmrc` file [#14477](https://github.com/statamic/cms/issues/14477) by @duncanmcclean
16+
- Fix SVG sanitization tests [#14483](https://github.com/statamic/cms/issues/14483) by @duncanmcclean
17+
- Use `cursor: pointer` when selecting from asset grid [#14487](https://github.com/statamic/cms/issues/14487) by @joshuablum
18+
- Remove negative assertions from `TestCase` [#14458](https://github.com/statamic/cms/issues/14458) by @duncanmcclean
19+
- Harden OrderBys [#14474](https://github.com/statamic/cms/issues/14474) by @duncanmcclean
20+
- Harden query value resolution [#14476](https://github.com/statamic/cms/issues/14476) by @duncanmcclean
21+
- French translations [#14479](https://github.com/statamic/cms/issues/14479) by @ebeauchamps
22+
- Bump axios from 1.14.0 to 1.15.0 [#14473](https://github.com/statamic/cms/issues/14473) by @dependabot
23+
24+
25+
326
## 6.12.0 (2026-04-08)
427

528
### What's new

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"pixelfear/composer-dist-plugin": "^0.1.4",
2828
"pragmarx/google2fa": "^8.0 || ^9.0",
2929
"rebing/graphql-laravel": "^9.15",
30-
"rhukster/dom-sanitizer": "^1.0.7",
30+
"rhukster/dom-sanitizer": "^1.0.10",
3131
"spatie/blink": "^1.3",
3232
"spatie/error-solutions": "^1.0 || ^2.0",
3333
"statamic/stringy": "^3.1.2",

lang/fr.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
"All caches cleared.": "Tous les caches ont été effacés.",
8181
"All of the following conditions pass": "Toutes les conditions suivantes sont remplies",
8282
"All rights reserved.": "Tous droits réservés.",
83+
"All Submissions": "Toutes les soumissions",
8384
"Allow additions": "Autoriser les ajouts",
8485
"Allow Antlers": "Autoriser Antlers",
8586
"Allow Any Color": "Autoriser toutes les couleurs",
@@ -488,6 +489,7 @@
488489
"Expanded format": "Format étendu",
489490
"Expect a root page": "S'attendre à une page racine",
490491
"Expired": "Expirée",
492+
"Export": "Exporter",
491493
"Export Submissions": "Exporter les soumissions",
492494
"Extend Session": "Prolonger la session",
493495
"Extension": "Extension",
@@ -512,6 +514,7 @@
512514
"File": "Fichier",
513515
"File Driver": "Driver de fichier",
514516
"Filename": "Nom du fichier",
517+
"Filtered Submissions": "Soumissions filtrées",
515518
"Filters": "Filtres",
516519
"Finish": "Terminer",
517520
"Finish cropping": "Finir le recadrage",
@@ -809,6 +812,7 @@
809812
"Pages": "Pages",
810813
"Parser": "Analyseur",
811814
"Passkey": "Clé d'accès",
815+
"Passkey deleted.": "Clé d'accès supprimée.",
812816
"Passkeys": "Clés d'accès",
813817
"Password": "Mot de passe",
814818
"Password changed": "Mot de passe modifié",

lang/fr/messages.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@
137137
'form_configure_store_instructions' => 'Désactivez cette option pour ne plus stocker les soumissions. Les évènements et les notifications seront toujours envoyés.',
138138
'form_configure_title_instructions' => 'Habituellement un appel à l’action, comme "Contactez-nous".',
139139
'form_create_description' => 'Commencez par créer votre premier formulaire.',
140+
'form_export_filtered_description' => 'Exportez les soumissions avec les filtres actuels et les colonnes visibles.',
140141
'getting_started_widget_collections' => 'Les collections contiennent les différents types de contenu de votre site.',
141142
'getting_started_widget_docs' => 'Apprenez à connaître Statamic pour bien comprendre ses capacités.',
142143
'getting_started_widget_header' => 'Débuter avec Statamic',
@@ -254,6 +255,7 @@
254255
'taxonomy_next_steps_configure_description' => 'Configurez des noms, associez des collections, définissez des Blueprints et plus encore.',
255256
'taxonomy_next_steps_create_term_description' => 'Créez votre premier terme ou générez une poignée de termes génériques, à vous de voir.',
256257
'theme_share_instructions' => 'Publiez ce thème via votre compte statamic.com pour le rendre accessible aux autres utilisateurs.',
258+
'tree_aria_instructions' => 'Utilisez les flèches directionnelles pour naviguer. Appuyez sur Alt/Option + flèches directionnelles pour réorganiser les touches.',
257259
'try_again_in_minutes' => 'Réessayez dans une minute.|Réessayez dans :count minutes.',
258260
'try_again_in_seconds' => '{0,1} Réessayez maintenant. | Réessayez dans :count secondes.',
259261
'two_factor_account_requirement' => 'Votre compte nécessite une authentification à deux facteurs. Veuillez l’activer avant de continuer.',

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"@tiptap/vue-3": "^3.0.0",
5959
"alpinejs": "^3.1.1",
6060
"autosize": "~6.0.1",
61-
"axios": "^1.13.5",
61+
"axios": "^1.15.0",
6262
"clsx": "^2.1.1",
6363
"codemirror": "5.65.12",
6464
"cookies-js": "^1.2.2",

resources/js/components/assets/Browser/Browser.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ export default {
416416
folder: this.folder,
417417
folderActionUrl: this.folderActionUrl,
418418
folders: this.folders,
419+
maxFiles: this.maxFiles,
419420
restrictFolderNavigation: this.restrictFolderNavigation,
420421
path: this.path,
421422
creatingFolder: this.creatingFolder,

resources/js/components/assets/Browser/Grid.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
@click.stop="selectionClicked(index, $event)"
118118
@dblclick.stop="$emit('edit-asset', asset)"
119119
>
120-
<div class="relative flex aspect-square size-full items-center justify-center">
120+
<div class="relative flex aspect-square size-full items-center justify-center" :class="{ 'cursor-pointer': maxFiles === 1 }">
121121
<div class="asset-thumb">
122122
<img
123123
v-if="asset.thumbnail"
@@ -228,6 +228,7 @@ export default {
228228
assets: { type: Array },
229229
selectedAssets: { type: Array },
230230
thumbnailSize: { type: Number },
231+
maxFiles: { type: Number },
231232
showCheckerboard: { type: Boolean, default: false },
232233
checkerboardMode: { type: String, default: 'transparent' },
233234
},

src/Assets/Asset.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1137,7 +1137,7 @@ public function hasDuration()
11371137

11381138
public function getQueryableValue(string $field)
11391139
{
1140-
if (method_exists($this, $method = Str::camel($field))) {
1140+
if (in_array($method = Str::camel($field), $this->queryableMethods())) {
11411141
return $this->{$method}();
11421142
}
11431143

@@ -1150,6 +1150,17 @@ public function getQueryableValue(string $field)
11501150
return $field->fieldtype()->toQueryableValue($value);
11511151
}
11521152

1153+
private function queryableMethods(): array
1154+
{
1155+
return [
1156+
'absoluteUrl', 'apiUrl', 'basename', 'blueprint', 'containerId', 'containerHandle', 'dimensions',
1157+
'duration', 'editUrl', 'exists', 'extension', 'filename', 'folder', 'guessedExtension',
1158+
'hasDimensions', 'hasDuration', 'height', 'id', 'isAudio', 'isImage', 'isMedia', 'isPdf',
1159+
'isPreviewable', 'isSvg', 'isVideo', 'lastModified', 'mimeType', 'orientation', 'path', 'pdfUrl',
1160+
'ratio', 'reference', 'size', 'thumbnailUrl', 'title', 'url', 'width',
1161+
];
1162+
}
1163+
11531164
public function getCurrentDirtyStateAttributes(): array
11541165
{
11551166
return array_merge([

src/Assets/AssetContainer.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Statamic\Contracts\Assets\AssetContainer as AssetContainerContract;
88
use Statamic\Contracts\Data\Augmentable;
99
use Statamic\Contracts\Data\Augmented;
10+
use Statamic\Contracts\Query\ContainsQueryableValues;
1011
use Statamic\Data\ExistsAsFile;
1112
use Statamic\Data\HasAugmentedInstance;
1213
use Statamic\Events\AssetContainerBlueprintFound;
@@ -27,9 +28,10 @@
2728
use Statamic\Facades\Stache;
2829
use Statamic\Facades\URL;
2930
use Statamic\Support\Arr;
31+
use Statamic\Support\Str;
3032
use Statamic\Support\Traits\FluentlyGetsAndSets;
3133

32-
class AssetContainer implements Arrayable, ArrayAccess, AssetContainerContract, Augmentable
34+
class AssetContainer implements Arrayable, ArrayAccess, AssetContainerContract, Augmentable, ContainsQueryableValues
3335
{
3436
use ExistsAsFile, FluentlyGetsAndSets, HasAugmentedInstance;
3537

@@ -604,6 +606,24 @@ public static function __callStatic($method, $parameters)
604606
return Facades\AssetContainer::{$method}(...$parameters);
605607
}
606608

609+
public function getQueryableValue(string $field)
610+
{
611+
if (in_array($method = Str::camel($field), $this->queryableMethods())) {
612+
return $this->{$method}();
613+
}
614+
615+
return null;
616+
}
617+
618+
private function queryableMethods(): array
619+
{
620+
return [
621+
'absoluteUrl', 'accessible', 'allowDownloading', 'allowMoving', 'allowRenaming', 'allowUploads',
622+
'blueprint', 'createFolders', 'diskHandle', 'diskPath', 'editUrl', 'handle', 'hasSearchIndex',
623+
'id', 'path', 'private', 'searchIndex', 'showUrl', 'sortDirection', 'sortField', 'title', 'url',
624+
];
625+
}
626+
607627
public function __toString()
608628
{
609629
return $this->handle();

0 commit comments

Comments
 (0)