Основы
Содержит все Базовые методы.
Поле Text - это базовое текстовое поле ввода в MoonShine. Это поле эквивалент <input type="text">.
use MoonShine\UI\Fields\Text;Text::make('Title')
use MoonShine\UI\Fields\Text;Text::make('Title')
<x-moonshine::field-container label="Title"><x-moonshine::form.inputtype="text"name="title"/></x-moonshine::field-container><x-moonshine::field-container label="Title"><x-moonshine::form.inputtype="text"name="title"/></x-moonshine::field-container>
Основные методы
Подсказка
Метод placeholder() позволяет задать текст-подсказку для поля.
placeholder(string $value)placeholder(string $value)
Text::make('Username', 'username')->placeholder('Enter username')Text::make('Username', 'username')->placeholder('Enter username')
Маска
Метод mask() позволяет применить маску к вводимому тексту.
mask(string $mask)mask(string $mask)
Пример использования:
Text::make('Phone', 'phone')->mask('+7 (999) 999-99-99')Text::make('Phone', 'phone')->mask('+7 (999) 999-99-99')

Теги
Метод tags() преобразует текстовое поле в поле для ввода тегов.
tags(?int $limit = null)tags(?int $limit = null)
Text::make('Tags', 'tags')->tags(5)Text::make('Tags', 'tags')->tags(5)
Отключение экранирования
Метод unescape() отключает экранирование HTML-тегов в значении поля. Он не влияет на подписи, подсказки, префиксы и суффиксы; используйте их отдельные методы.
Text::make('HTML Content', 'content')->unescape()Text::make('HTML Content', 'content')->unescape()
Этот метод управляет только экранированием preview и не отключает экранирование при применении переданных значений. По умолчанию preview учитывает глобальную настройку escapes.value.
Используйте escape(), чтобы явно включить экранирование preview у поля, даже если глобальная настройка отключена:
use MoonShine\UI\Fields\Text;Text::make('Title')->escape()
use MoonShine\UI\Fields\Text;Text::make('Title')->escape()
Экранирование при применении
По умолчанию переданные строки экранируются перед применением к данным. Чтобы сохранять исходную строку, отключите это поведение у поля с помощью замыкания:
use MoonShine\UI\Fields\Text;Text::make('HTML Content', 'content')->escapeOnApply(fn (Text $field): bool => false)
use MoonShine\UI\Fields\Text;Text::make('HTML Content', 'content')->escapeOnApply(fn (Text $field): bool => false)
Замыкание получает текущее поле и возвращает, нужно ли экранировать переданное значение. Эта настройка не зависит от экранирования preview: пример выше сохраняет исходную строку и оставляет preview экранированным, если не задано иное.
Без локального переопределения поле учитывает глобальную настройку escapes.value_on_apply. Чтобы включить экранирование у одного поля, даже если оно отключено глобально, вызовите метод без аргумента:
use MoonShine\UI\Fields\Text;Text::make('Title')->escapeOnApply()
use MoonShine\UI\Fields\Text;Text::make('Title')->escapeOnApply()
В отличие от метода конфигуратора, метод поля принимает ?Closure $condition = null, а не boolean.
Расширения
Поле поддерживает различные расширения для помощи и контроля ввода

Копирование
Метод copy() добавляет кнопку для копирования значения поля.
copy(string $value = '{{value}}')copy(string $value = '{{value}}')
Text::make('Токен', 'token')->copy()Text::make('Токен', 'token')->copy()
Скрытие значения
Метод eye() добавляет кнопку для показа/скрытия значения поля (например, для пароля).
Text::make('Password', 'password')->eye()Text::make('Password', 'password')->eye()
Замок
Метод locked() добавляет иконку замка к полю.
Text::make('Protected field', 'protected_field')->locked()Text::make('Protected field', 'protected_field')->locked()
Префикс
Метод prefix() добавляет префикс к полю ввода.
prefix(string $ext)prefix(string $ext)
Строки префикса экранируются по умолчанию. Используйте unescapePrefix() для доверенного HTML или escapePrefix() для явного включения экранирования. Подробнее: Экранирование отображаемого текста.
Text::make('Domain', 'domain')->prefix('https://')Text::make('Domain', 'domain')->prefix('https://')
Суффикс
Метод suffix() добавляет суффикс к полю ввода.
suffix(string $ext)suffix(string $ext)
Строки суффикса экранируются по умолчанию. Используйте unescapeSuffix() для доверенного HTML или escapeSuffix() для явного включения экранирования. Подробнее: Экранирование отображаемого текста.
Text::make('Domain', 'domain')->suffix('.com')Text::make('Domain', 'domain')->suffix('.com')
PrettyLimit
Метод prettyLimit() позволяет отображать значение поля в режиме preview с ограниченной шириной. Полный текст показывается при наведении курсора.
prettyLimit(null|Color|string|Closure $color = null,null|string|Closure $label = null,null|int|Closure $limit = null)prettyLimit(null|Color|string|Closure $color = null,null|string|Closure $label = null,null|int|Closure $limit = null)
use MoonShine\Support\Enums\Color;use MoonShine\UI\Fields\Text;Text::make('Название', 'title')->prettyLimit(Color::PRIMARY);// с динамическими значениямиText::make('Статус', 'status')->prettyLimit(color: fn($value, $field) => $value === 'active' ? Color::SUCCESS : Color::ERROR,label: fn($value, $field) => $value === 'active' ? 'Активен' : 'Неактивен',limit: 200);
use MoonShine\Support\Enums\Color;use MoonShine\UI\Fields\Text;Text::make('Название', 'title')->prettyLimit(Color::PRIMARY);// с динамическими значениямиText::make('Статус', 'status')->prettyLimit(color: fn($value, $field) => $value === 'active' ? Color::SUCCESS : Color::ERROR,label: fn($value, $field) => $value === 'active' ? 'Активен' : 'Неактивен',limit: 200);
Подробнее о компоненте можно узнать в разделе PrettyLimit.
Редактирование в режиме preview
Данному полю доступно редактирование в режиме preview.
Если вы хотите избежать ошибок ввода, можете использовать расширение Замок.
Text::make('Name')->updateOnPreview()->locked()Text::make('Name')->updateOnPreview()->locked()