Legacy ADMY ColorInput
В after исходного TextInput стоит нативный input type=color. Текстовое поле и цветовой образец читают одно modelValue. Проверка выполняется на focusout. Пустая и недопустимая строка становится #000000. Сохранена исходная ошибка короткой записи: #abc превращается в #abcab при первом focusout, затем в #000000 при следующем. Проверка внутри первого обработчика читает прежнее значение Vue-пропа. Desktop-вариант наследует TextInput и фон --color-m320; расположение after требует исходной среды desktop. Readonly заменяет текстовый input значением value, но не удаляет нативный цветовой образец: источник не блокирует его. Disabled поля не передаётся в native input; inputProps.disabled действует на текстовый input.
Статус: experimental · в системе с 2026-09 · интерактивность: conditional (по конфигурации)
Когда использовать
- Перенос исходного выбора цвета без изменения старых правил.
Не использовать:
- Новый макет без требования сохранить legacy.
Исходный вариант
Поле цвета с видимым значением.
<!--
/**
* 🟢
*
* Образец показывает исходное поле цвета и нативный образец.
* Подпись следует языку витрины, значение меняется по legacy-правилам.
*/
-->
<script>
import Component from "$lib/ui/LegacyAdmyColorInput.svelte";
import { t } from "$lib/spec/demo-lang.svelte.js";
</script>
<Component modelValue="#ed7f6e" label={t("Цвет")} />