Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ionic-team/ionic-framework
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v8.7.16
Choose a base ref
...
head repository: ionic-team/ionic-framework
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v8.7.17
Choose a head ref
  • 10 commits
  • 35 files changed
  • 4 contributors

Commits on Dec 23, 2025

  1. merge release-8.7.15 (#30887)

    v8.7.15
    ShaneK authored Dec 23, 2025
    Configuration menu
    Copy the full SHA
    7d64307 View commit details
    Browse the repository at this point in the history

Commits on Dec 31, 2025

  1. fix(modal): prevent card modal animation on viewport resize when moda…

    …l is closed (#30894)
    
    Issue number: resolves #30679
    
    ---------
    
    <!-- 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 a page contains a card modal with a `presentingElement`, resizing
    the viewport (e.g., rotating from portrait to landscape) triggers the
    card modal's "lean back" animation on the presenting element, even when
    the modal has never been opened.
    
    ## What is the new behavior?
    Viewport resize events no longer trigger the presenting element
    animation when the modal is not presented. The animation only runs when
    the modal is actually open.
    
    ## 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.16-dev.11767028735.16932cea
    ```
    ShaneK committed Dec 31, 2025
    Configuration menu
    Copy the full SHA
    36f4b4d View commit details
    Browse the repository at this point in the history
  2. v8.7.16

    Ionitron authored and ShaneK committed Dec 31, 2025
    Configuration menu
    Copy the full SHA
    f71f4bf View commit details
    Browse the repository at this point in the history
  3. chore(): update package lock files

    Ionitron authored and ShaneK committed Dec 31, 2025
    Configuration menu
    Copy the full SHA
    37f87b3 View commit details
    Browse the repository at this point in the history
  4. release-8.7.16 (#30903)

    v8.7.16
    
    ---------
    
    Co-authored-by: ionitron <hi@ionicframework.com>
    ShaneK and Ionitron authored Dec 31, 2025
    Configuration menu
    Copy the full SHA
    07b46d7 View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2026

  1. fix(input): prevent placeholder from overlapping start slot during sc…

    …roll assist (#30896)
    
    Issue number: resolves internal
    
    ---------
    
    <!-- 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?
    On iOS, when focusing an `ion-input` or `ion-textarea` that requires
    scrolling into view (scroll assist), the placeholder text shifts to the
    left and overlaps any content in the start slot (e.g., icons). This
    occurs because the cloned input used during scroll assist is positioned
    at the container's left edge rather than at the native input's actual
    position. Additionally, when quickly switching between inputs before
    scroll assist completes, focus jumps back to the original input.
    
    ## What is the new behavior?
    The cloned input is now positioned at the same offset as the native
    input, preventing the placeholder from shifting or overlapping start
    slot content during scroll assist. This works correctly for both LTR and
    RTL layouts. Also, scroll assist no longer steals focus back if the user
    has moved focus to another element while scrolling was in progress.
    
    ## 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.16-dev.11767042721.11309185
    ```
    ShaneK authored Jan 13, 2026
    Configuration menu
    Copy the full SHA
    3b3318d View commit details
    Browse the repository at this point in the history

Commits on Jan 14, 2026

  1. fix(tab-bar): prevent keyboard controller memory leak on rapid mount/…

    …unmount (#30906)
    
    Issue number: resolves internal
    
    ---------
    
    ## What is the current behavior?
    When `ion-tab-bar` is rapidly mounted and unmounted, a race condition in
    connectedCallback can cause the keyboard controller to be created after
    the component has been disconnected. This results in orphaned event
    listeners (`keyboardWillShow`, `keyboardWillHide`) on the window object
    that are never cleaned up, causing a memory leak.
    
    ## What is the new behavior?
    The keyboard controller is now properly destroyed in all scenarios:
    - If the component is disconnected while createKeyboardController is
    pending, the promise is tracked and destroyed when it resolves
    - If a new connectedCallback runs before the previous async completes,
    the stale controller is destroyed
    
    The promise tracking pattern ensures only the most recent async
    operation assigns its result
    
    ## 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.17-dev.11767895575.16ea7cef
    ```
    
    I was unable to find a way to create tests that accurately identified if
    this problem was occurring. Memory leaks are notoriously difficult to
    created automated tests for. I ultimately removed my previous attempts
    because I didn't want to give a false sense of security.
    ShaneK authored Jan 14, 2026
    Configuration menu
    Copy the full SHA
    f99d000 View commit details
    Browse the repository at this point in the history
  2. fix(input): prevent Android TalkBack from focusing label separately (#…

    …30895)
    
    Issue number: resolves internal
    
    ---------
    
    <!-- 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-input` with a label on Android, TalkBack treats the
    visual label text as a separate focusable element. This causes the
    initial focus to land on the label instead of the input field, creating
    a confusing experience for screen reader users.
    
    ## What is the new behavior?
    The label text wrapper is now hidden from the accessibility tree via
    `aria-hidden="true"`, while the native input maintains proper labeling
    through `aria-labelledby`. This ensures Android TalkBack focuses
    directly on the input field while still announcing the label correctly.
    
    ## 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.16-dev.11767032989.1ae720d0
    ```
    ShaneK authored Jan 14, 2026
    Configuration menu
    Copy the full SHA
    ab733b7 View commit details
    Browse the repository at this point in the history
  3. chore(github): do not close issues as stale when they are external bu…

    …gs (#30915)
    
    Ionitron keeps closing issues with `bug: external` as stale:
    #27052 (comment)
    
    This PRs adds `bug: external` as an exempt label when closing issues as
    stale.
    
    Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
    brandyscarney and brandyscarney authored Jan 14, 2026
    Configuration menu
    Copy the full SHA
    95b8702 View commit details
    Browse the repository at this point in the history
  4. v8.7.17

    Ionitron committed Jan 14, 2026
    Configuration menu
    Copy the full SHA
    d7b4d06 View commit details
    Browse the repository at this point in the history
Loading