Экосистема
Ядро и пакеты-спутники. Спутник появляется тогда, когда компонент не должен жить в ядре: он тянет тяжёлую зависимость или просто не относится к ядру. У каждого пакета свой цикл выпуска и своя страница.
- 12
- пакетов
- 108
- компонентов
- 253
- публичных подпути
- 11
- пакетов без runtime-зависимостей
Пакеты с компонентами
@feugene/granularityЯдро: всё, из чего собирается интерфейс, — кнопки, поля, таблицы, оверлеи. Ноль runtime-зависимостей, и каждый компонент импортируется своим подпутём.
версия 0.41.077 компонентов136 подпутейноль зависимостей
@feugene/granularity-chartsГрафики, нарисованные теми же токенами темы, что и весь интерфейс, в собственном SVG. Берут, когда график должен быть частью интерфейса, а не гостем из библиотеки графиков.
версия 0.11.010 компонентов21 подпутьноль зависимостей
@feugene/granularity-chronoКалендарь, выбор даты и времени — без библиотеки дат под ними. Берут, когда даты часть интерфейса, а сторонний виджет притащил бы свой визуальный язык.
версия 0.10.07 компонентов15 подпутейноль зависимостей
@feugene/granularity-codeКод на странице: просмотр, правка и различия. У просмотра и диффа зависимостей нет вовсе; CodeMirror нужен только тому, кто берёт редактор.
версия 0.1.03 компонента12 подпутейноль зависимостей
@feugene/granularity-dashboardСетка виджетов: перетаскивание, размеры, брейкпоинты и сохранение раскладки. Берут, когда раскладкой владеет пользователь, а не дизайнер.
версия 0.6.05 компонентов15 подпутейноль зависимостей
@feugene/granularity-editorФорматированный текст как поле дизайн-системы: редактор на TipTap с панелью и состояниями, общими с остальной формой.
версия 0.3.11 компонент9 подпутейноль зависимостей
@feugene/granularity-forms-schemaФормы из схемы: zod или JSON Schema превращаются в настоящие поля с валидацией и раскладкой. Берут, когда форма — это данные, а не разметка.
версия 0.4.01 компонент21 подпутьноль зависимостей
@feugene/granularity-mediaРабота с медиа: кадрирование изображений, съёмка с камеры, сканирование кодов, воспроизведение видео — то, ради чего приложение обычно тянет четыре разные библиотеки.
версия 0.7.14 компонента11 подпутейноль зависимостей
Пакеты без компонентов
Композабл, панель разработчика, тестовые фабрики и резолвер авто-импорта. Компонентов у них нет, и это не изъян: разметки они не приносят.
@feugene/granularity-datasourceСостояние списка одним композаблом: сортировка, фильтры, страницы, синхронизация с адресной строкой и запросы без гонок. Компонентов нет — это логика, общая для таблицы и панели фильтров.
версия 0.1.23 подпутиноль зависимостей
@feugene/granularity-devtoolsПанель Vue DevTools: откуда приехало значение пропа, как выглядит стек оверлеев и какие правила дизайн-системы нарушает приложение. Только для разработки.
версия 0.3.22 подпути2 runtime-зависимости
@feugene/granularity-test-kitКонтрактные тесты, которые должен пройти каждый пакет семейства, — переиспользуемыми фабриками. Нужен тому, кто пишет пакет-спутник, а не приложению.
версия 0.8.16 подпутейноль зависимостей
@feugene/unplugin-granularityРезолвер для unplugin-vue-components: компоненты подтягиваются своим подпутём, и то, чего приложение не использовало, в бандл не попадает.
версия 0.7.12 подпутиноль зависимостей
Что показано и на какой момент
Состав снят с подмодуля, закреплённого на теге ядра v0.41.0. Спутники выпускаются своим темпом, поэтому в npm версия может быть свежее — если это так, вторая версия показана рядом.
Почему ядро не разрезано на пакетыЖурналы изменений всех пакетовКак устроен пакет-спутник — руководство библиотеки