Text Input
A Text Input component is a UI element within a form or interface that allows users to enter and edit text data, such as names, emails, or search queries.
Usage
<TextInput label="First Name" type="text" model="$firstName" />
<TextInput label="Last Name" type="text" model="$lastName" />
<div>
 You have entered: {$firstName} {$lastName}
</div>
<?php

class FormsExample extends BaseComponent
{
 public string $firstName = '';
 public string $lastName = '';
}
Text Area
To make your input a textarea, set textarea
property:
<TextInput label="Summary" textarea model="$summary" />
Add rows
and cols
if necessary:
<TextInput label="Summary" textarea cols="6" rows="6" model="$summary" />
Placeholder and Hint
You can add a placeholder for your input with placeholder
property.
And hint with hint
property:
<TextInput 
 label="First Name" 
 type="text"
 placeholder="Enter your first name"
 hint="Example: Mike, Josh, etc."
 model="$firstName" 
/>
Slot
If you need to extend the content of the input, you can use the slot feature:
<TextInput label="Email" type="text" model="$email">
 <div class="form-text">
 Forgot your password?
 <a href="/reset-password" class="text-secondary">Reset it here</a>
 </div>
</TextInput>
Input Class
Use inputClass
to set up additional class list for the input
tag:
<TextInput label="Email" type="text" inputClass="bg-primary-subtle" model="$email" />
Input Class
Use wrapperClass
to set up additional class list for the wrapper:
<TextInput label="First Name" type="text" wrapperClass="mb-3" model="$firstName" />
<TextInput label="Last Name" type="text" wrapperClass="mb-3" model="$lastName" />
Inset
Use inset
property to remove the margin from the wrapper:
<TextInput label="First Name" type="text" inset model="$firstName" />
<TextInput label="Last Name" type="text" inset model="$lastName" />
Properties
model
- two-way data binding.
type
- (optional), type of the input.
type
options: color, date, datetime-local, email, month, number, password, tel, text, time, url, week
. Default: null
, means text
.
placeholder
- (optional), placeholder of the input.
label
- (optional), label text for the input.
hint
- (optional), hint text for the input.
autocomplete
- (optional), autocomplete attribute for the input.
inputClass
- (optional), class attribute for the input.
wrapperClass
- (optional), class attribute for the wrapper container.
id
- (optional), id attribute of the input.
name
- (optional), name attribute of the input.
textarea
- (optional), will use textarea
instead of input
.
rows
- (optional), rows attribute for textarea.
cols
- (optional), cols attribute for textarea.
inset
- (optional), boolean, makes the height of the input smaller.
isInvalid
- (optional), boolean, marks the input as invalid, adds error highlight.
Events
(input)
- event that happens when the element gets user input.
Slots
default
- (optional), default slot, renders after the hint container.