Skip to content

chore: bump the dependencies group with 2 updates - #11

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/dependencies-1e87f1246d
Open

chore: bump the dependencies group with 2 updates#11
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/dependencies-1e87f1246d

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 25, 2026

Copy link
Copy Markdown
Contributor

Bumps the dependencies group with 2 updates: @vectojs/devtools and @vectojs/ui.

Updates @vectojs/devtools from 0.4.3 to 0.6.0

Updates @vectojs/ui from 1.11.6 to 2.1.0

Changelog

Sourced from @​vectojs/ui's changelog.

2.1.0

Minor Changes

  • e3b745d: Add per-child ARIA roles + keyboard navigation to TreeView, Table, and ContextMenu (WCAG 2.1.1 / 4.1.2), completing the composite-widget a11y work started for RadioGroup/Tabs in PR #160. Each now projects transparent focusable hotspots over its canvas-drawn children so a screen reader and keyboard user can operate them:

    • TreeView — one role="treeitem" per visible row (virtualization-aware pool) with aria-level, aria-expanded (parents), aria-selected, and a roving tabindex. Keyboard: Up/Down move, Right expands / steps into children, Left collapses / steps to parent, Home/End, Enter/Space activate; the active row scrolls into view and takes focus.
    • Table — a real grid > row > gridcell/columnheader structure (pinned header row + one body role="row" per visible row, virtualization-aware), each cell a focusable hotspot with a roving tabindex. Keyboard: 2D arrows (clamped), Home/End (row extremes), Ctrl+Home/Ctrl+End (grid corners); the target cell scrolls into view and takes focus.
    • ContextMenu — one role="menuitem" per non-separator item with aria-haspopup/aria-expanded for submenu parents, disabled, and a roving tabindex. Keyboard: Up/Down (wrapping, skipping separators + disabled), Home/End, Right opens a submenu, Left returns to the parent menu, Enter/Space activate, Escape closes.
  • 7b0d7f8: RichText now accepts textAlign: 'left' | 'justify' (+ a setTextAlign() method) and a hyphenate word-splitter. justify stretches every wrapped line flush to maxWidth (paragraph-final and newline-ended lines stay ragged); hyphenate breaks an overflowing word with a visible hyphen (soft hyphens U+00AD in the text work without one). Both pass straight through to the shared LayoutEngineRichText already draws each glyph at its own position, so no rendering change was needed.

  • e988a32: RichText justified selection now overlaps the drawn glyphs. On a justified line the engine widens inter-word gaps on the canvas, but the DOM content projection used natural-flow style runs, so the native selection box drifted off the widened words (real-hardware verified). RichText now projects a justified line as per-glyph positioned carriers — each at its own visual x, in logical source order (correct copy / screen-reader order), carrying the logical source substring (not the shaped glyph). Ragged (left-aligned) lines keep the cheaper natural-flow style runs, and per-run bold/italic/size fonts are preserved on both paths.

  • 8749a9a: RTL / bidi text selection now overlaps the drawn glyphs. The engine right-aligns and visually reorders RTL lines, but the DOM content projection previously anchored every line at x=0, so the native selection box drifted off the glyphs (measured 300px+ on real Chrome). Text now anchors a bidi line's projection at its visual origin (the line's min glyph x) while keeping it a single natural-flow string in logical source order — so the browser's own bidi gives correct caret hit-mapping AND the selection rectangles overlap the canvas glyphs. RTL canvas text also renders glyph-by-glyph so it can actually right-align. Verified on real Chrome 150 + Firefox 153 across DPR 1/1.5, 90% zoom, and font-substitution cases. Left-aligned LTR text is unchanged.

  • d4e6baa: Add touch / pointer drag-to-scroll to Table and TreeView, matching VirtualList and ScrollView. A virtualized Table previously only scrolled with a mouse wheel, and TreeView toggled a row on pointerdown — both were effectively unusable on a touchscreen. Now:

    • Table body follows the finger 1:1 (pointerdown/move/up), same sign convention as its wheel scroll.
    • TreeView drag-scrolls and defers the expand/collapse toggle to pointerup, firing it only when the pointer moved less than a small tap threshold — so a drag scrolls without accidentally toggling the row it started on, while a tap still toggles as before.
  • fe98df9: Add opt-in virtualization to Table. Previously every cell was mounted and every row's chrome was drawn each frame, so a large data table's per-frame cost scaled with the total row count (and a 50k-row table meant 200k live cell entities + their content projections). Passing a viewportHeight now fixes the table to that height, pins the header, and scrolls the body — mounting (and projecting a11y for) only the body rows within the viewport plus a small overscan, laid out at a fixed rowHeight so scroll↔row-index is O(1). Wheel scrolling uses the same inertial integrator as Tree/VirtualList, and mounted cells stay fully selectable with correct DOM-vs-canvas geometry.

    Omitting viewportHeight keeps the classic behavior exactly: the table grows to fit all rows, every cell stays mounted, and rows keep their measured variable heights.

    Real-hardware benchmark (benchmarks/table-virtual, Chrome 150 + Firefox 153): the virtualized per-frame layout+sync cost stays flat at ~0.3 ms as the table grows, while the classic path grows linearly — at 5000 rows, 41 ms → 0.28 ms on Chrome (149×) and 49 ms → 0.26 ms on Firefox (190×). Text selection on the scrolled, clipped body audits clean on both engines.

  • 7b0d7f8: Text now accepts textAlign: 'left' | 'justify' (+ a setTextAlign() method) and a hyphenate word-splitter. Left-aligned text keeps the fast one-fillText-per-line path; when justify or hyphenate is active, Text switches to a glyph-accurate render path (justify widens inter-word gaps flush to maxWidth, hyphenate breaks an overflowing word with a visible -). The DOM content projection still reports the original text unchanged, so find-in-page, selection, and screen readers are unaffected.

Patch Changes

... (truncated)

Commits
  • 65a61b4 chore(release): version all @​vectojs packages (#201)
  • cca3235 perf(ui): check the measure cache before shaping; skip unchanged overlay sync...
  • 7e6f76d fix(core): clear hover on mid-hover removal; suppress stale IME selection (#197)
  • 3111d79 feat(ui): per-child roles + keyboard nav for Tree/Table/ContextMenu (E-4b) (#...
  • d4e6baa feat(ui): touch drag-to-scroll for Table and TreeView (#189)
  • e82102c feat(core): add forced-colors (High Contrast) awareness (#185)
  • 941f871 test(ui): shrink Table virtualization tests to avoid CI timeout (#178)
  • fe98df9 feat(ui): opt-in Table virtualization (viewport + row culling) (#176)
  • ed2614e perf(ui): make wrapping Stack appends linear instead of quadratic (#175)
  • b377c32 fix(core,ui): interaction/a11y bugs (Button focus, Link double-nav, Modal dia...
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the dependencies group with 2 updates: @vectojs/devtools and [@vectojs/ui](https://github.com/vectojs/vectojs/tree/HEAD/packages/ui).


Updates `@vectojs/devtools` from 0.4.3 to 0.6.0

Updates `@vectojs/ui` from 1.11.6 to 2.1.0
- [Release notes](https://github.com/vectojs/vectojs/releases)
- [Changelog](https://github.com/vectojs/vectojs/blob/main/packages/ui/CHANGELOG.md)
- [Commits](https://github.com/vectojs/vectojs/commits/@vectojs/ui@2.1.0/packages/ui)

---
updated-dependencies:
- dependency-name: "@vectojs/devtools"
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: "@vectojs/ui"
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants