Commit Graph

918 Commits

Author SHA1 Message Date
ShaneK
e6def6b1f8 fix(react-router): replacing a lot of our custom logic with internal RR6 APIs to do the heavy lifting and fix routing bugs 2026-03-12 15:24:34 -07:00
ShaneK
a6ee4c44fb fix(react-router): cleaning up tab navigation to use proper navigation step post debugging 2026-03-12 06:43:01 -07:00
ShaneK
a864822477 fix(react-router): forward index and caseSensitive props through IonRoute 2026-03-10 13:10:55 -07:00
ShaneK
f9c0eb8a89 fix(tabs-similar-prefixes): migrating to rr6 2026-03-10 11:20:16 -07:00
ShaneK
073c8ba809 chore(git): merging from main, v8.8.0 2026-03-05 12:16:08 -08:00
ShaneK
70da68cf86 refactor(react): remove IonRedirect and update BREAKING.md for React Router v6 2026-03-04 13:33:11 -08:00
ionitron
1de6b7a1cb chore(): update package lock files 2026-03-04 20:45:22 +00:00
ionitron
32ab505363 v8.8.0 2026-03-04 20:43:44 +00:00
Brandy Smith
af0949f5bb Merge branch 'main' into update-from-main 2026-03-04 15:16:31 -05:00
Maria Hutt
d29ac713fa feat(modal): add drag events for sheet and card modals (#30962)
Issue number: internal

---------

## What is the current behavior?
The sheet and card modal can be dragged to view content. However, there
are no events that determine when drag has started or ended.

## What is the new behavior?
- Added drag events for sheet and card modal: `ionDragStart`, `ionDragMove`, `ionDragEnd`
- Added a drag interface
- Added tests

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

---------

Co-authored-by: Shane <shane@shanessite.net>
Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
2026-03-04 14:53:50 -05:00
ionitron
abdf9ce932 chore(): update package lock files 2026-02-25 17:14:12 +00:00
ionitron
f68ce9456a v8.7.18 2026-02-25 17:12:35 +00:00
Bengt Weiße
55735df3fa feat(textarea): reflect disabled and readonly props (#30910)
Co-authored-by: Maria Hutt <maria.hutt@outsystems.com>
2026-02-10 16:24:39 -08:00
ionitron
dd1c1e8fa3 chore(): update package lock files 2026-01-14 18:59:30 +00:00
ionitron
d7b4d0690b v8.7.17 2026-01-14 18:58:56 +00:00
ShaneK
6f498a9da0 chore(tests): fixing issue with dynamic classname test 2026-01-13 13:41:53 -08:00
ShaneK
12f0d5ee04 fix(react-router): prevent white flash during tab switches with selectTab 2026-01-13 11:06:57 -08:00
ionitron
37f87b39c4 chore(): update package lock files 2025-12-31 13:20:48 -08:00
ionitron
f71f4bf454 v8.7.16 2025-12-31 13:20:48 -08:00
ionitron
4360e39a58 chore(): update package lock files 2025-12-23 18:55:54 +00:00
ionitron
622d62a3f4 v8.7.15 2025-12-23 18:55:19 +00:00
ShaneK
4fa0260561 fix(react): preserve framework classes when IonPage className prop changes 2025-12-18 09:55:01 -08:00
ShaneK
d0451eda09 chore(react-router): lots of comments, code clean up, comment clean up, and a bit of ordering 2025-12-17 09:59:20 -08:00
ionitron
b9fdfab667 chore(): update package lock files 2025-12-17 17:51:54 +00:00
ionitron
f7af5d3ca5 v8.7.14 2025-12-17 17:50:44 +00:00
Shane
03fb422bfa fix(tabs): select correct tab when routes have similar prefixes (#30863)
Issue number: resolves #30448 

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?

When using ion-tabs with routes that share a common prefix (e.g.,
`/home`, `/home2`, `/home3`), navigating to `/home2` incorrectly
highlights the `/home` tab. This occurs because the tab matching logic
uses `pathname.startsWith(href)`, which causes `/home2` to match `/home`
since `/home2` starts with `/home`.

## What is the new behavior?

Tab selection now uses path segment matching instead of simple prefix
matching. A tab's href will only match if the pathname is an exact match
OR starts with the href followed by a / (for nested routes). This
ensures /home2 no longer incorrectly matches /home, while still allowing
/home/details to correctly match the /home tab.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Current dev build:
```
8.7.13-dev.11765486444.14025098
```

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
2025-12-17 00:11:10 +00:00
ionitron
6205338620 chore(): update package lock files 2025-12-13 15:52:33 +00:00
ionitron
f775815a13 v8.7.13 2025-12-13 15:51:51 +00:00
ShaneK
6a61ecf6dd chore(git): merge conflict resolution 2025-12-10 16:06:26 -08:00
ionitron
5bf6f6e825 chore(): update package lock files 2025-12-10 21:34:28 +00:00
ionitron
afa15d23d2 v8.7.12 2025-12-10 21:33:15 +00:00
Shane
b9e3cf0f5a fix(modal): allow interaction with parent content through sheet modals in child routes (#30839)
Issue number: resolves #30700

---------

## What is the current behavior?

When a sheet modal with showBackdrop=false is rendered in a child route
(nested ion-router-outlet), the parent content becomes non-interactive.
Clicks on buttons or other interactive elements in the parent component
are blocked, even though showBackdrop=false should allow background
interaction.

Two separate issues contributed to this bug:
1. **Root locking with `backdropBreakpoint`**: The `shouldLockRoot`
logic in `overlays.ts` didn't account for `backdropBreakpoint`. Modals
with `backdropBreakpoint > 0` were still locking the root with
`aria-hidden`, even though developers expect background interaction when
the modal is below the backdrop breakpoint.
2. **Child route wrapper blocking**: When a modal is in a child route,
the child route's page wrapper (`ion-page`) and its parent
`ion-router-outlet` remain in the DOM with `position: absolute` covering
the viewport. Even after the modal is moved to `ion-app` and has
`pointer-events: none`, these wrapper elements block clicks to the
parent page's content.

This issue stems from
[#30563](https://github.com/ionic-team/ionic-framework/pull/30563),
which added root-locking behavior that didn't account for modals that
allow background interaction. A partial fix in
[#30689](https://github.com/ionic-team/ionic-framework/pull/30689)
partially addressed `showBackdrop=false` and `focusTrap=false`, but
missed `backdropBreakpoint`.

## What is the new behavior?

Sheet modals with showBackdrop=false or focusTrap=false now correctly
allow interaction with parent content when the modal is in a child
route.
Improvements:
- Recalculates isSheetModal in present() to handle Angular binding
timing
- Sets pointer-events: none on the modal element and its original parent
elements when background interaction should be allowed
- Cleans up pointer-events on dismiss
- Adds regression tests

## Does this introduce a breaking change?

- [ ] Yes
- [X] No


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Dev build:
```
8.7.12-dev.11765060985.14ad27fb
```
2025-12-10 21:08:48 +00:00
ShaneK
fedca460a0 fix(react-router): preserve nested outlet params when navigating between sibling routes 2025-12-04 10:15:38 -08:00
ShaneK
a565a37257 fix(overlays): removing old band-aid code 2025-12-03 05:56:17 -08:00
ShaneK
a23f55519e fix(react): fixing inline overlays being a bit eager to dismiss 2025-12-02 20:15:56 -08:00
ShaneK
99dcb356df chore(react-router): minor clean up 2025-12-02 15:11:58 -08:00
ShaneK
5a77916fd5 Merge branch 'main' of github.com:ionic-team/ionic-framework into sk/react-router-6 2025-12-01 13:22:38 -08:00
ShaneK
82fd1ba510 fix(react-router): fixing views not being cleaned up properly, causing cross navigation issues 2025-12-01 13:10:17 -08:00
ShaneK
8fbd2d4281 Merge branch 'main' of github.com:ionic-team/ionic-framework into sk/react-router-6 2025-11-26 11:47:17 -08:00
Maria Hutt
595643fd14 chore(many): update lock files 2025-11-26 11:33:54 -08:00
ShaneK
fbed1e0293 chore(react-router): fixing types, removing usued variable 2025-11-26 11:32:47 -08:00
ionitron
3249e1dce8 v8.7.11 2025-11-26 18:47:18 +00:00
ShaneK
fc6e482162 chore(react-router): cleaning up console logs 2025-11-26 10:25:03 -08:00
ShaneK
045b0a71bc fix(react-router): correct tab and nested outlet navigation 2025-11-24 12:52:33 -08:00
ShaneK
59f2dbfec9 fix(react): automatically dismiss inline overlays on navigation 2025-11-21 13:23:07 -08:00
ShaneK
6cae9ad161 fix(react-router): trying to better handle nested routing 2025-11-20 08:39:23 -08:00
Brandy Smith
d8e6756ac3 chore(): update package lock files 2025-11-19 13:07:46 -05:00
Brandy Smith
627416b9d7 v8.7.10 2025-11-19 12:59:00 -05:00
ionitron
e1293ff9f6 chore(): update package lock files 2025-11-05 17:05:03 +00:00
ionitron
32df083e87 v8.7.9 2025-11-05 17:04:11 +00:00