Icons

Поле выбора иконок для Payload 3: хранит иконку как пару provider и name, с провайдерами Lucide и Phosphor.

Сообщество 2 22/нед MIT v1.1.5

Установка

pnpm add payload-plugin-icons

Описание

Добавляет в Payload 3 поле для выбора иконок. Значение хранится как group field с двумя скрытыми текстовыми полями: `provider` и `name`. Выбор происходит через админ-компонент: поисковый пикер с пагинацией и ячейка превью в списке коллекций. В комплекте два провайдера иконок: Lucide (`lucide-react`) и Phosphor (`@phosphor-icons/react`). Каждый провайдер состоит из серверной конфигурации с id и label и клиентской фабрики, которая синхронно резолвит компоненты иконок. Пикер поддерживает переключение между провайдерами, группировку по категориям и ограничение списка провайдеров на уровне поля. Конфигурация связывает плагин с фабрикой полей. `createIconPlugin()` возвращает пару: `iconPlugin` типа Plugin и функцию `iconField`, которая создаёт поле. Это держит id и label провайдеров в синхронизации. Параметры поля: `name`, `label`, `required`, `defaultProviderId`, `providerIds` для подмножества провайдеров, `labelsById` для переопределения подписей, `packageImport` для алиасинга клиентского экспорта в monorepo и admin override для кастомных компонентов. Свои провайдеры добавляются через `registerIconProviderClientFactory`. Провайдер реализует `getIconNames`, `getCategoryMap`, `getCategoryRepresentative` и `resolveIconComponent`. Резолвер должен использовать eager imports, без ленивой загрузки отдельных иконок, иначе при открытом пикере уйдут сотни запросов. Клиентский компонент `Icon` отрисовывает сохранённое значение, прокидывает SVG props и поддерживает prop `weight` для Phosphor. После изменений конфигурации нужно запустить `payload generate:importmap` и `generate:types`. Требуется Payload `^3.37.0` и React 19.

О пакете

Имя пакета
payload-plugin-icons
Последняя версия
1.1.5
Размер
171 кБ
Лицензия
MIT
Загрузок в неделю
22
Последняя публикация
14 авг. 2026 г.

Похожие плагины

Ещё в категории «Поля»

Shared plugin tooling

Dev-зависимость с общими конфигами lint, форматирования, TypeScript, сборки, тестовой БД и релиза для плагинов Payload.

JSON Form Builder

Редактирует json-поле Payload как обычные админ-поля и строит форму в выдвижной панели без миграций.

Menus

Добавляет коллекцию `menus` в Payload CMS для управления навигацией сайта с вложенными элементами, ссылками на коллекции, произвольными URL, иконками и картинками предпросмотра.

Icon Picker

Добавляет поле выбора иконок для Payload CMS с поддержкой поиска и SVG.

Barcodes

Добавляет штрихкоды Code 128, EAN-13 и QR в коллекции товаров Payload с печатью этикеток и опциональными кнопками в админке.

Shipping Classes

Добавляет поля веса, размеров и класса доставки в коллекции товаров и вариантов Payload с каноническим хранением в граммах и миллиметрах.