v0.30.0
tagged this
22 Aug 22:23
Четыре пункта отчёта потребителя `@efureev/ft-extra-granularity`. **`GrDropdownMenu`: модель умеет то же, что композиция.** Пункт получил `as` и `align`, группа — `titleAlign`, `dividers`, `uppercase`. Решает это `as`: без него пункт-ссылка из `items` оставался обычным `<a>`, то есть в SPA переход шёл перезагрузкой, и обойти было нечем — модель разворачивается в пропы внутри компонента, слота на пункт нет. **`GrSelect`: опция несёт свой тон чипа.** `tone` и `dark` у опции перекрывают общие `tagTone`/`tagDark`. Без этого потребитель уходил рисовать выбранное в слот `#value` и терял ровно то, ради чего берут `tags`: чипы снаружи `role="combobox"`, снятие крестиком, «+N» и клавиатуру. **`GrCard`: слот `#actions` в собственной шапке.** Третьего случая не было — либо заголовок из пропов, либо `#header` целиком; любая кнопка заставляла забрать слот и переписать заголовок, его уровень и отступы. К этому обходу независимо пришли `GrDashboardItem` в кольце и обёртки потребителей. `GrDashboardItem` остаётся на `#header`: у него левее заголовка ручка перетаскивания, а её `#actions` не выражает. **`GrBadge`/`GrChip`: dev-предупреждение о снятом `variant`.** Переименование в `tone` проходило молча — Vue сажает незнакомый атрибут на корневой узел, и не падают ни типы, ни рантайм, компонент просто рисуется дефолтом. Алиас заводить не стали: после 1.0 он остался бы навсегда. `granularity-chrono` 0.9.1: докблок называл блок `gr` вместо `grChrono` — потребитель, поверивший ему, регистрировал не тот блок и оставался без переводов, причём частично: сетку календаря даёт `Intl`. README ядра больше не требует `@headlessui/vue`: он снят в 0.15.0 и в peer-зависимостях его нет.