Commit Graph

10 Commits

Author SHA1 Message Date
Ashley Hunter 603d213799 fix(resizable): end drag on touchcancel
A touch drag interrupted by the system fires touchcancel instead of touchend, so the drag teardown
(listeners + cursor) never ran until the next drag or destroy. Listen for touchcancel alongside
touchend and remove it in cleanup. Adds a regression test.
2026-06-15 08:04:00 +01:00
Ashley Hunter a16b251a26 fix(resizable): tear down drag listeners when destroyed mid-drag
startResize attaches mousemove/touchmove/mouseup/touchend listeners to document, removed only
in the drag-end handler. If the group is destroyed mid-drag (navigation, conditional removal),
those listeners stay attached to document - which is never garbage-collected - pinning the
directive and firing against a torn-down view, and the body cursor is left stuck on the resize
cursor.

Hoist the cleanup into a single teardown stored on the instance: it detaches the four document
listeners, cancels any queued animation frame and restores the cursor. It runs on normal
drag-end and from a DestroyRef.onDestroy hook, and also clears a stale in-flight drag before a
new one starts.
2026-06-14 23:02:40 +01:00
Ashley Hunter 1b743f8019 test: migrate from jest to vitest with browser testing for brain/helm
Replace Jest with Vitest across the workspace. The brain and helm Angular suites
now run in a real browser (Playwright/Chromium via Vitest browser mode) so they
exercise real layout, focus, pointer events and computed styles that jsdom could
not. The cli, tools, mcp, registry and cli-smoke suites run on Vitest's node
environment.

- Add per-project vite configs and switch test targets to @nx/vitest:test
- Convert jest APIs to vi.* and jest module mocks to vi.mock with importOriginal
- Replace jest-axe with a browser-native axe-core helper and toHaveNoViolations
- Regenerate snapshots in vitest format (content unchanged, format-only)
- Remove all jest packages, configs, the preset and the @nx/jest target default
- Install Playwright Chromium in the CI unit job for the browser suites

Also fixes a brain avatar test that asserted inside a fire-and-forget setTimeout,
which passed vacuously under jsdom and only surfaced once a real browser loaded
the image.
2026-06-13 15:16:45 +01:00
Ashley Hunter 66f4d9f454 feat(resizable): add style support and rtl example
Closes #1412
2026-06-10 18:09:51 +01:00
Merlin 82236804e0 fix(resizable): change to pointerCapture 2026-02-04 09:26:26 +01:00
Merlin 96e5580aaf fix(resizable): resize issue 2026-02-03 17:02:41 +01:00
Marc Stammerjohann d94bf22e20 feat(resizable): adjust handle styles, use same cursor for on resize like hover (#1155)
* hover and resize cursor styles are otherwise jumping around
* remove icon deps for resizable
2026-01-22 18:30:23 +01:00
Marc Stammerjohann 11d5b4390c chore: add types to inputs for the docs api (#1062) 2025-12-04 12:37:22 +01:00
moosme 51a579aa36 feat(repo): nx upgrade (#1002)
* feat(repo): nx upgrade

* fix: sidebar

* fix: node version

* fix: relax dependency versions

* fix: remove naming conventions

* fix: format

* fix: remove chromatic

---------

Co-authored-by: Merlin <merlin.moos@oldendorff.com>
2025-11-20 10:14:26 +01:00
moosme 7bd9eb62b1 feat(resizable): add resziable (#871)
* feat(resizable): add resizable #120

* feat(resizable): add docs

* feat(resizable): remove deps

* feat(resizable): add generator

* fix(tabs): performance

* fix: flickering

* fix: lint

* fix: add descr

* fix: run format and add descr

* fix: remove module

---------

Co-authored-by: Merlin <merlin.moos@oldendorff.com>
2025-10-24 13:27:05 +02:00