Visual Linker
0.3.0
2026-10-01
- New (core): опция
selectable— соединения становятся фокусируемыми кнопками (порядок Tab совпадает с порядком вconnections), которые выделяются кликом или Enter/Space, а Ctrl/Cmd/Shift переключает соединение в мультивыделении; Escape или нажатие указателя в другом месте снимает выделение. Delete/Backspace отправляетconnection:delete-request, а сама библиотека данные не удаляет. Новое:setSelectedConnections(ids), событиеconnection:selectionchange,ConnectionStyle.selectedStyleи CSS-переменные--vl-selected-color/--vl-focus-color. Каждая линия теперь несётrole="img"иaria-label(ConnectionDescriptor.ariaLabel, по умолчанию «Connection: a → b»). Подробнее — Выделение и доступность. - New (core):
ConnectionDescriptor.labels— любое число подписей в любом месте линии (position:'start','middle','end'или доля 0..1;offset,rotate,className). Подпись сtextрисует сама библиотека как SVG-«таблетку» (--vl-label-bg,--vl-label-border,--vl-label-color), подпись без него — только позиция.ConnectionLayout.labelsсодержит рассчитанные точку и угол каждой подписи. Новые типы:ConnectionLabel,LabelLayout. Подробнее — Подписи соединений. - New (core):
ConnectionStyle.animated/defaultAnimated— узор из штрихов или точек, бегущий вдоль линии (speed,direction,shape,dash,gap,color,width); он рисуется отдельным оверлеем на одном CSS и отключается приprefers-reduced-motion. Новый тип:ConnectionFlow. Подробнее — Анимированный поток. - New (core):
avoidObstacles/obstaclePadding(иConnectionStyle.avoidObstacles) — линииsmoothstepпрокладываются в обход других блоков, а не сквозь них, и перестраиваются на лету при перетаскивании блоков; линия, у которой обычный маршрут уже свободен, не меняется, а если маршрута нет, остаётся обычный. Подробнее — Маршрутизация и пересечения. - New (core):
jumps(иConnectionStyle.jumps) — линияsmoothstepделает небольшую полукруглую дугу там, где пересекает линию другого соединения, как на электрических схемах. Новый тип:JumpsOption. Подробнее — Маршрутизация и пересечения. - New (core):
clipToScrollParents— порт, уехавший из видимой области внутри обрезающего предка (строка в прокручиваемом списке,overflow: hidden), больше не оставляет линию висеть над посторонним содержимым: по умолчанию'pin'прижимает этот конец к краю видимой области и убирает его маркер и точку порта,'hide'скрывает соединение,falseвозвращает прежнее поведение. ВConnectionLayoutпоявилисьfromClipped/toClipped. Подробнее — Прокручиваемые контейнеры. - New (core): разведение по порту —
BlockDescriptor.portSpread,PortDescriptor.spreadиdefaultPortSpread(trueили{ gap, padding }, по умолчанию 16 и 8) дают каждому соединению, которое делит сторону порта, свой виртуальный порт, упорядоченный так, чтобы линии не пересекались. Новые типы:PortSpread,PortSpreadOptions. Подробнее — Разведение соединений по порту. - New (Vue): проп
selected(v-model:selected) и событияconnection-selectionchange,connection-delete-requestиupdate:selected. - New (Vue):
#connection-labelвызывается по одному разу на каждую подпись безtext—{ connection, label, point, angle, rotation, from, to }— и ставит подпись в её точку, повернув наrotation. Безlabelsон работает как раньше: одна подпись посередине линии. - New (Vue):
portSpreadуv-vl-blockи в элементахblocks,spreadуv-vl-portи атрибутыdata-vl-port-spread/data-vl-spread(""или"true"включает,"false"выключает,"24"задаёт промежуток,"24 4"— промежуток и отступ). - Changed (Vue): слот
#markerне рендерится для конца соединения, прижатого к краю прокручиваемого контейнера. - New (Nuxt): опции модуля
portSpread,clipToScrollParents,animated,avoidObstacles,obstaclePaddingиjumps, которые применяются как значения по умолчанию для каждого<VisualLinker>.