diff --git a/packages/fields/src/Fields/Select.php b/packages/fields/src/Fields/Select.php index dcbff15c..e3580243 100644 --- a/packages/fields/src/Fields/Select.php +++ b/packages/fields/src/Fields/Select.php @@ -33,6 +33,7 @@ public static function getDefaultConfig(): array ...self::getOptionsConfig(), 'searchable' => false, 'multiple' => false, + 'reorderable' => false, 'preload' => false, 'allowHtml' => false, 'selectablePlaceholder' => true, @@ -82,6 +83,10 @@ public static function make(string $name, ?Field $field = null): Input $input->maxItemsForSearch($field->config['maxItemsForSearch']); } + if (($field->config['multiple'] ?? false) && ($field->config['reorderable'] ?? false)) { + $input->reorderable(); + } + return $input; } @@ -160,8 +165,14 @@ public function getForm(): array ->live(debounce: 250), Toggle::make('config.multiple') ->label(__('Multiple')) - ->helperText(__('Only first value is used when switching from multiple to single.')) - ->columnSpan(2), + ->helperText(__('Only first value is kept when switching.')) + ->live() + ->columnSpan(1), + Toggle::make('config.reorderable') + ->label(__('Reorderable')) + ->helperText(__('Allow users to reorder selected items.')) + ->visible(fn (Get $get): bool => $get('config.multiple')) + ->columnSpan(1), Toggle::make('config.allowHtml') ->label(__('Allow HTML')), Toggle::make('config.selectablePlaceholder') diff --git a/packages/uploadcare-field/composer.json b/packages/uploadcare-field/composer.json index 065d03dd..9b53b1a3 100644 --- a/packages/uploadcare-field/composer.json +++ b/packages/uploadcare-field/composer.json @@ -19,7 +19,7 @@ "php": "^8.3", "spatie/laravel-package-tools": "^1.16", "illuminate/contracts": "^10.0||^11.0||^12.0", - "backstage/filament-uploadcare-field": "^1.1.0", + "backstage/filament-uploadcare-field": "self.version", "backstage/fields": "self.version" }, "require-dev": {