diff --git a/src/Components/Choice/Checkbox.php b/src/Components/Choice/Checkbox.php
index ebb52fa..ef346f5 100644
--- a/src/Components/Choice/Checkbox.php
+++ b/src/Components/Choice/Checkbox.php
@@ -14,11 +14,11 @@ class Checkbox extends BladeComponent
public string $type = 'checkbox';
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
+ public ?string $name = null,
+ public ?string $id = null,
public mixed $value = null,
- public null | string $label = null,
- public null | string $description = '',
+ public ?string $label = null,
+ public ?string $description = '',
public bool $checked = false,
public $extraAttributes = '',
) {
diff --git a/src/Components/Choice/CheckboxGroup.php b/src/Components/Choice/CheckboxGroup.php
index 9e82c57..a83d011 100644
--- a/src/Components/Choice/CheckboxGroup.php
+++ b/src/Components/Choice/CheckboxGroup.php
@@ -6,7 +6,7 @@
class CheckboxGroup extends BladeComponent
{
- public function __construct(public bool $stacked = true, public int | string $gridCols = 3)
+ public function __construct(public bool $stacked = true, public int|string $gridCols = 3)
{
}
}
diff --git a/src/Components/Choice/SwitchToggle.php b/src/Components/Choice/SwitchToggle.php
index 400cfa5..68a1be8 100644
--- a/src/Components/Choice/SwitchToggle.php
+++ b/src/Components/Choice/SwitchToggle.php
@@ -20,19 +20,19 @@ class SwitchToggle extends BladeComponent
private string $labelId;
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
+ public ?string $name = null,
+ public ?string $id = null,
public mixed $value = false,
public mixed $onValue = true,
public mixed $offValue = false,
- public null | string $containerClass = null,
+ public ?string $containerClass = null,
public bool $short = false,
- public null | string $label = null,
+ public ?string $label = null,
public string $labelPosition = 'right',
- public null | string $offIcon = null, // doesn't apply to short mode
- public null | string $onIcon = null, // doesn't apply to short mode
- public null | string $buttonLabel = 'form-components::messages.switch_button_label',
- public null | string $size = null,
+ public ?string $offIcon = null, // doesn't apply to short mode
+ public ?string $onIcon = null, // doesn't apply to short mode
+ public ?string $buttonLabel = 'form-components::messages.switch_button_label',
+ public ?string $size = null,
public bool $disabled = false,
public $extraAttributes = '',
) {
diff --git a/src/Components/Files/FilePond.php b/src/Components/Files/FilePond.php
index e1e7a3b..ab4beff 100644
--- a/src/Components/Files/FilePond.php
+++ b/src/Components/Files/FilePond.php
@@ -18,12 +18,12 @@ class FilePond extends BladeComponent
public function __construct(
public bool $multiple = false,
public bool $allowDrop = true,
- public null | string $name = null,
+ public ?string $name = null,
public array $options = [],
public bool $disabled = false,
- public null | int $maxFiles = null,
- null|string $type = null,
- public null | string $description = null,
+ public ?int $maxFiles = null,
+ ?string $type = null,
+ public ?string $description = null,
/*
* When set to true, the component will watch for changes to the wire:model
* and manually remove the files from the FilePond instance if they are
diff --git a/src/Components/Files/FileUpload.php b/src/Components/Files/FileUpload.php
index e111152..be29124 100644
--- a/src/Components/Files/FileUpload.php
+++ b/src/Components/Files/FileUpload.php
@@ -17,15 +17,16 @@ class FileUpload extends BladeComponent
protected static array $assets = ['alpine'];
- protected null|bool $canShowUploadProgress = null;
- public null|string $label;
+ protected ?bool $canShowUploadProgress = null;
+
+ public ?string $label;
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
- null|string $label = 'form-components::messages.file_upload_label',
+ public ?string $name = null,
+ public ?string $id = null,
+ ?string $label = 'form-components::messages.file_upload_label',
public bool $multiple = false,
- null|string $type = null,
+ ?string $type = null,
// Display the file upload progress if using livewire.
// Only applies if a "wire:model" attribute is set.
public bool $displayUploadProgress = true,
@@ -39,7 +40,7 @@ public function __construct(
$this->label = __($label);
}
- public function canShowUploadProgress($attributes): bool
+ public function canShowUploadProgress(): bool
{
if (! is_null($this->canShowUploadProgress)) {
return $this->canShowUploadProgress;
diff --git a/src/Components/FormError.php b/src/Components/FormError.php
index 74540fb..549a622 100644
--- a/src/Components/FormError.php
+++ b/src/Components/FormError.php
@@ -7,8 +7,8 @@
class FormError extends BladeComponent
{
public function __construct(
- public null | string $name = null,
- public null | string $inputId = null,
+ public ?string $name = null,
+ public ?string $inputId = null,
public string $bag = 'default',
public string $tag = 'p',
) {
diff --git a/src/Components/FormGroup.php b/src/Components/FormGroup.php
index 79381b1..ef37613 100644
--- a/src/Components/FormGroup.php
+++ b/src/Components/FormGroup.php
@@ -11,16 +11,16 @@ class FormGroup extends BladeComponent
public function __construct(
public string $name = '',
- public null | string | bool $label = null,
- public null | string $inputId = null,
+ public null|string|bool $label = null,
+ public ?string $inputId = null,
public bool $inline = false,
bool $showErrors = true,
- public null | string $helpText = null,
+ public ?string $helpText = null,
public bool $border = true,
public bool $isCheckboxGroup = false,
- public null | string $labelId = null,
+ public ?string $labelId = null,
public bool $marginBottom = true,
- public null | string $hint = null,
+ public ?string $hint = null,
public bool $optional = false,
public bool $customSelectLabel = false,
) {
diff --git a/src/Components/Inputs/DatePicker.php b/src/Components/Inputs/DatePicker.php
index 2bf8e31..c24ff0f 100644
--- a/src/Components/Inputs/DatePicker.php
+++ b/src/Components/Inputs/DatePicker.php
@@ -8,13 +8,13 @@ class DatePicker extends Input
{
protected static array $assets = ['alpine', 'flatpickr'];
- public null|string $placeholder;
+ public ?string $placeholder;
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
+ public ?string $name = null,
+ public ?string $id = null,
public mixed $value = null,
- public null | string $maxWidth = null,
+ public ?string $maxWidth = null,
bool $showErrors = true,
$leadingAddon = false,
$inlineAddon = false,
@@ -27,12 +27,12 @@ public function __construct(
public bool $clickOpens = false,
public bool $allowInput = true,
public bool $enableTime = false,
- public bool | null | string $format = false,
+ public bool|null|string $format = false,
public bool $clearable = false,
- null|string $placeholder = 'form-components::messages.date_picker_placeholder',
- public bool | null | string $toggleIcon = null,
- public null | string $clearIcon = null,
- public null | string $containerClass = null,
+ ?string $placeholder = 'form-components::messages.date_picker_placeholder',
+ public bool|null|string $toggleIcon = null,
+ public ?string $clearIcon = null,
+ public ?string $containerClass = null,
public $extraAttributes = '',
public $after = null,
) {
diff --git a/src/Components/Inputs/Input.php b/src/Components/Inputs/Input.php
index d7241d7..22807af 100644
--- a/src/Components/Inputs/Input.php
+++ b/src/Components/Inputs/Input.php
@@ -28,13 +28,13 @@ class Input extends BladeComponent
public const DEFAULT_TRAILING_ADDON_PADDING = 'pr-12';
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
+ public ?string $name = null,
+ public ?string $id = null,
public string $type = 'text',
public mixed $value = null,
- public null | string $maxWidth = null,
+ public ?string $maxWidth = null,
bool $showErrors = true,
- public null | string $containerClass = null,
+ public ?string $containerClass = null,
$leadingAddon = false,
$inlineAddon = false,
$inlineAddonPadding = self::DEFAULT_INLINE_ADDON_PADDING,
diff --git a/src/Components/Inputs/Password.php b/src/Components/Inputs/Password.php
index 32f2342..827dfcb 100644
--- a/src/Components/Inputs/Password.php
+++ b/src/Components/Inputs/Password.php
@@ -9,22 +9,23 @@
class Password extends Input
{
protected static array $assets = ['alpine'];
+
protected bool $ignoreAddons = true;
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
+ public ?string $name = null,
+ public ?string $id = null,
public mixed $value = null,
- public null | string $maxWidth = null,
+ public ?string $maxWidth = null,
bool $showErrors = true,
$leadingAddon = false,
$inlineAddon = false,
$inlineAddonPadding = self::DEFAULT_INLINE_ADDON_PADDING,
$leadingIcon = false,
public bool $showToggle = true,
- public null | string $showPasswordIcon = null,
- public null | string $hidePasswordIcon = null,
- public null | string $containerClass = null,
+ public ?string $showPasswordIcon = null,
+ public ?string $hidePasswordIcon = null,
+ public ?string $containerClass = null,
public $extraAttributes = '',
public $after = null,
) {
diff --git a/src/Components/Inputs/Select.php b/src/Components/Inputs/Select.php
index 3bdb3d5..2a10002 100644
--- a/src/Components/Inputs/Select.php
+++ b/src/Components/Inputs/Select.php
@@ -13,12 +13,12 @@ class Select extends Input
public const DEFAULT_TRAILING_ADDON_PADDING = 'pr-14';
public function __construct(
- public null | string $name = null,
- public null | string $id = null,
- public array | Collection $options = [],
+ public ?string $name = null,
+ public ?string $id = null,
+ public array|Collection $options = [],
public mixed $value = null,
public bool $multiple = false,
- public null | string $maxWidth = null,
+ public ?string $maxWidth = null,
bool $showErrors = true,
$leadingAddon = false,
$inlineAddon = false,
@@ -27,7 +27,7 @@ public function __construct(
$trailingAddon = false,
$trailingAddonPadding = self::DEFAULT_TRAILING_ADDON_PADDING,
$trailingIcon = false,
- public null | string $containerClass = null,
+ public ?string $containerClass = null,
public $extraAttributes = '',
public $after = null,
) {
diff --git a/src/Components/Inputs/TimezoneSelect.php b/src/Components/Inputs/TimezoneSelect.php
index 65272c9..b4ce393 100644
--- a/src/Components/Inputs/TimezoneSelect.php
+++ b/src/Components/Inputs/TimezoneSelect.php
@@ -7,11 +7,11 @@
class TimezoneSelect extends Select
{
public function __construct(
- public null|string $name = null,
- public null|string $id = null,
+ public ?string $name = null,
+ public ?string $id = null,
public mixed $value = null,
public bool $multiple = false,
- public null|string $maxWidth = null, // Native only
+ public ?string $maxWidth = null, // Native only
bool $showErrors = true,
$leadingAddon = false, // Native only
$inlineAddon = false, // Native only
@@ -25,14 +25,14 @@ public function __construct(
public bool $searchable = true,
public bool $optional = false,
public bool|null|string $placeholder = null,
- public null | string $containerClass = null, // Native only
+ public ?string $containerClass = null, // Native only
public $extraAttributes = '',
public $after = null, // Native only
public int $minSelected = 1,
- public null|int $maxSelected = null,
+ public ?int $maxSelected = null,
public bool $disabled = false,
- public null|string $clearIcon = null,
- public null|bool $showCheckbox = null,
+ public ?string $clearIcon = null,
+ public ?bool $showCheckbox = null,
public bool $autofocus = false,
) {
parent::__construct(
diff --git a/src/Components/Livewire/Concerns/HandlesSelectOptions.php b/src/Components/Livewire/Concerns/HandlesSelectOptions.php
index 67c27cd..5f84981 100644
--- a/src/Components/Livewire/Concerns/HandlesSelectOptions.php
+++ b/src/Components/Livewire/Concerns/HandlesSelectOptions.php
@@ -9,9 +9,13 @@ trait HandlesSelectOptions
use GetsSelectOptionProperties;
public string $valueField = 'id';
+
public string $labelField = 'name';
- public null|string $selectedLabelField = null;
+
+ public ?string $selectedLabelField = null;
+
public string $disabledField = 'disabled';
+
public string $isOptGroupField = 'is_opt_group';
public function handleSearch($search): void
diff --git a/src/Components/Livewire/CustomSelect.php b/src/Components/Livewire/CustomSelect.php
index 118006f..cafc359 100644
--- a/src/Components/Livewire/CustomSelect.php
+++ b/src/Components/Livewire/CustomSelect.php
@@ -13,26 +13,46 @@ abstract class CustomSelect extends Component
{
use HandlesSelectOptions;
- public null|string $name = null;
- public null|string $selectId = null;
+ public ?string $name = null;
+
+ public ?string $selectId = null;
+
public $value;
+
public bool $multiple = false;
+
public int $minSelected = 1;
- public null|int $maxSelected = null;
+
+ public ?int $maxSelected = null;
+
public bool $disabled = false;
- public null|string $labelledby = null;
+
+ public ?string $labelledby = null;
+
public bool $searchable = true;
+
public bool $closeOnSelect = false;
+
public bool $autofocus = false;
+
public bool $optional = false;
- public null|string $clearIcon = null;
+
+ public ?string $clearIcon = null;
+
public bool|null|string $placeholder = null;
+
public bool|null|string $noOptionsText = null;
+
public bool|null|string $noResultsText = null;
- public null|bool $showCheckbox = null;
+
+ public ?bool $showCheckbox = null;
+
public $search = '';
+
public $extraAttributes = '';
+
public bool $showErrors = true;
+
public bool $defer = false;
protected string $view = 'form-components::livewire.custom-select.custom-select';
diff --git a/src/Concerns/HasAddons.php b/src/Concerns/HasAddons.php
index 66e219e..bc4a45d 100644
--- a/src/Concerns/HasAddons.php
+++ b/src/Concerns/HasAddons.php
@@ -10,12 +10,17 @@
trait HasAddons
{
public $leadingAddon;
+
public $inlineAddon;
+
public $inlineAddonPadding;
+
public $leadingIcon;
public $trailingAddon;
+
public $trailingAddonPadding;
+
public $trailingIcon;
protected function getAddonClass(): string
@@ -57,7 +62,7 @@ protected function trailingAddonClass(): null|string
* (e.g.
- @foreach (\$component->messages(\$errors) as \$error)
-
diff --git a/tests/Components/FormGroupTest.php b/tests/Components/FormGroupTest.php
index 49d2595..0348de0 100644
--- a/tests/Components/FormGroupTest.php
+++ b/tests/Components/FormGroupTest.php
@@ -7,7 +7,7 @@ final class FormGroupTest extends ComponentTestCase
/** @test */
public function can_be_rendered(): void
{
- $template = <<
Name input
@@ -25,7 +25,7 @@ public function can_be_rendered(): void
/** @test */
public function can_have_help_text(): void
{
- $template = <<
Name field
@@ -40,7 +40,7 @@ public function can_have_help_text(): void
/** @test */
public function help_text_can_be_slotted(): void
{
- $template = <<
Name field
@@ -57,7 +57,7 @@ public function help_text_can_be_slotted(): void
/** @test */
public function can_be_inline(): void
{
- $template = <<
Name field
@@ -83,7 +83,7 @@ public function can_show_errors(): void
{
$this->withViewErrors(['name' => 'Name is required.']);
- $template = <<
Name field
@@ -99,7 +99,7 @@ public function can_show_errors(): void
/** @test */
public function inline_checkbox_form_groups_labels_have_no_top_padding(): void
{
- $template = <<
Name field
@@ -112,7 +112,7 @@ public function inline_checkbox_form_groups_labels_have_no_top_padding(): void
/** @test */
public function label_can_be_omitted(): void
{
- $template = <<
Name field
@@ -127,7 +127,7 @@ public function can_have_optional_help_text(): void
{
config()->set('form-components.optional_hint_text', 'Optional');
- $template = <<