mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
84f5defe33f57352076a8cfb2a139705597f7a21
4142 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
84f5defe33 |
refactor(range): update value on touchEnd or drag (#29005)
Issue number: resolves #28487 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> There are two behaviors that need to be addressed. 1. The range value is updated when the gesture `onStart` event is fired. This can lead to the values being accidentally updated when the user is scrolling on the view. The user might tap on the range to scroll on the view, but the range value is updated instead. 2. The component prevents the view from scrolling while the user has touched any part of the range. The user might want to scroll and they happen to touch the range. This can lead to the user feeling disoriented because they can't scroll on the view anymore. These behaviors do not follow the native behavior of mobile devices. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - The range value is updated on touch end or when the knob is being dragged. - The view can be scrolled while the user is not dragging the knob. - A new variable `isScrollingView` is used to determine if the user is scrolling on the view regardless of whether the user is dragging the knob or not. This determines what logic to apply. - The `pressedKnob` variable is no longer being set in the `onStart` event. It is now being set in the `onMove` and `onEnd` events. (the reason behind this can be found within the newly added comments) - The `initialContentScrollY` variable is no longer being set in the `onStart` event. It is now being set in the `onMove` event. (the reason behind this can be found within the newly added comments) I did not change the behavior of the range when the user is dragging the knob. The view should not scroll while the user is dragging the knob. ## 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/.github/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. --> The new behavior aligns with the native mobile devices. |
||
|
|
b2d636f14d |
fix(checkbox): set aria-checked of indeterminate checkbox to 'mixed' (#29115)
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? <!-- Please describe the current behavior that you are modifying. --> We are not ever explicitly setting `aria-checked`. For checked and unchecked states (i.e. `true` and `false` for aria-checked), we don't need to set `aria-checked` because an input with a type of 'checkbox' has built-in semantics making `aria-checked` redundant. However, when the checkbox is in an indeterminate state, `aria-checked` should have a value of 'mixed'. We are not currently ever setting it to 'mixed'. See [MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked#description) for more details. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - The checkbox's `aria-checked` has a value of 'true' when it is checked - The checkbox's `aria-checked` has a value of 'false' when it is unchecked - The checkbox's `aria-checked` has a value of 'mixed' when it is indeterminate ## 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/.github/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. --> |
||
|
|
911519a5f8 | v7.7.4 | ||
|
|
5edee91e15 |
chore(deps): update dependency @capacitor/core to v5.7.1 (#29112)
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@capacitor/core](https://capacitorjs.com) ([source](https://togithub.com/ionic-team/capacitor)) | [`5.7.0` -> `5.7.1`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/5.7.0/5.7.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>ionic-team/capacitor (@​capacitor/core)</summary> ### [`v5.7.1`](https://togithub.com/ionic-team/capacitor/releases/tag/5.7.1) [Compare Source](https://togithub.com/ionic-team/capacitor/compare/5.7.0...5.7.1) ##### Bug Fixes - **android:** handle http errors on the proxy ([#​7297](https://togithub.com/ionic-team/capacitor/issues/7297)) ([279f198]( |
||
|
|
dcad470beb |
chore(deps): update dependency @stencil/core to v4.12.4 (#29109)
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@stencil/core](https://stenciljs.com/)
([source](https://togithub.com/ionic-team/stencil)) | [`4.12.3` ->
`4.12.4`](https://renovatebot.com/diffs/npm/@stencil%2fcore/4.12.3/4.12.4)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
<details>
<summary>ionic-team/stencil (@​stencil/core)</summary>
###
[`v4.12.4`](https://togithub.com/ionic-team/stencil/blob/HEAD/CHANGELOG.md#-4124-2024-02-26)
[Compare
Source](https://togithub.com/ionic-team/stencil/compare/v4.12.3...v4.12.4)
##### Bug Fixes
- **build:** address issue with dynamic import and vite
([#​5399](https://togithub.com/ionic-team/stencil/issues/5399))
([8ebacae](
|
||
|
|
02ec5d09a1 |
chore(deps): update dependency @playwright/test to v1.41.2 (#29046)
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@playwright/test](https://playwright.dev) ([source](https://togithub.com/microsoft/playwright)) | [`1.39.0` -> `1.41.2`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.39.0/1.41.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>microsoft/playwright (@​playwright/test)</summary> ### [`v1.41.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.41.2) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.41.1...v1.41.2) ##### Highlights [https://github.com/microsoft/playwright/issues/29123](https://togithub.com/microsoft/playwright/issues/29123) - \[REGRESSION] route.continue: Protocol error (Fetch.continueRequest): Invalid InterceptionId. #### Browser Versions - Chromium 121.0.6167.57 - Mozilla Firefox 121.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 120 - Microsoft Edge 120 ### [`v1.41.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.41.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.41.0...v1.41.1) ##### Highlights [https://github.com/microsoft/playwright/issues/29067](https://togithub.com/microsoft/playwright/issues/29067) - \[REGRESSION] Codegen/Recorder: not all clicks are being actioned nor recorded[https://github.com/microsoft/playwright/issues/29028](https://togithub.com/microsoft/playwright/issues/29028)8 - \[REGRESSION] React component tests throw type error when passing null/undefined to componen[https://github.com/microsoft/playwright/issues/29027](https://togithub.com/microsoft/playwright/issues/29027)27 - \[REGRESSION] React component tests not passing Date prop valu[https://github.com/microsoft/playwright/issues/29023](https://togithub.com/microsoft/playwright/issues/29023)023 - \[REGRESSION] React component tests not rendering children p[https://github.com/microsoft/playwright/issues/29019](https://togithub.com/microsoft/playwright/issues/29019)9019 - \[REGRESSION] trace.playwright.dev does not currently support the loading from URL #### Browser Versions - Chromium 121.0.6167.57 - Mozilla Firefox 121.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 120 - Microsoft Edge 120 ### [`v1.41.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.41.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.40.1...v1.41.0) #### New APIs - New method [page.unrouteAll(\[options\])](https://playwright.dev/docs/api/class-page#page-unroute-all) removes all routes registered by [page.route(url, handler, handler\[, options\])](https://playwright.dev/docs/api/class-page#page-route) and [page.routeFromHAR(har\[, options\])](https://playwright.dev/docs/api/class-page#page-route-from-har). Optionally allows to wait for ongoing routes to finish, or ignore any errors from them. - New method [browserContext.unrouteAll(\[options\])](https://playwright.dev/docs/api/class-browsercontext#browser-context-unroute-all) removes all routes registered by [browserContext.route(url, handler, handler\[, options\])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route) and [browserContext.routeFromHAR(har\[, options\])](https://playwright.dev/docs/api/class-browsercontext#browser-context-route-from-har). Optionally allows to wait for ongoing routes to finish, or ignore any errors from them. - New option `style` in [page.screenshot(\[options\])](https://playwright.dev/docs/api/class-page#page-screenshot) and [locator.screenshot(\[options\])](https://playwright.dev/docs/api/class-locator#locator-screenshot) to add custom CSS to the page before taking a screenshot. - New option `stylePath` for methods [expect(page).toHaveScreenshot(name\[, options\])](https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1) and [expect(locator).toHaveScreenshot(name\[, options\])](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1) to apply a custom stylesheet while making the screenshot. - New `fileName` option for [Blob reporter](https://playwright.dev/docs/test-reporters#blob-reporter), to specify the name of the report to be created. #### Browser Versions - Chromium 121.0.6167.57 - Mozilla Firefox 121.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 120 - Microsoft Edge 120 ### [`v1.40.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.40.0...v1.40.1) ##### Highlights [https://github.com/microsoft/playwright/issues/28319](https://togithub.com/microsoft/playwright/issues/28319) - \[REGRESSION]: Version 1.40.0 Produces corrupted traces[https://github.com/microsoft/playwright/issues/28371](https://togithub.com/microsoft/playwright/issues/28371)1 - \[BUG] The color of the 'ok' text did not change to green in the vs code test results sectio[https://github.com/microsoft/playwright/issues/28321](https://togithub.com/microsoft/playwright/issues/28321)21 - \[BUG] Ambiguous test outcome and status for serial mo[https://github.com/microsoft/playwright/issues/28362](https://togithub.com/microsoft/playwright/issues/28362)362 - \[BUG] Merging blobs ends up in Error: Cannot create a string longer than 0x1fffffe8 charact[https://github.com/microsoft/playwright/pull/28239](https://togithub.com/microsoft/playwright/pull/28239)8239 - fix: collect all errors in removeFolders ##### Browser Versions - Chromium 120.0.6099.28 - Mozilla Firefox 119.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 119 - Microsoft Edge 119 ### [`v1.40.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.39.0...v1.40.0) #### Test Generator Update  New tools to generate assertions: - "Assert visibility" tool generates [expect(locator).toBeVisible()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible). - "Assert value" tool generates [expect(locator).toHaveValue(value)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-value). - "Assert text" tool generates [expect(locator).toContainText(text)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-contain-text). Here is an example of a generated test with assertions: ```js import { test, expect } from '@​playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await page.getByRole('link', { name: 'Get started' }).click(); await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation'); await expect(page.getByLabel('Search')).toBeVisible(); await page.getByLabel('Search').click(); await page.getByPlaceholder('Search docs').fill('locator'); await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator'); }); ``` #### New APIs - Option `reason` in [page.close()](https://playwright.dev/docs/api/class-page#page-close), [browserContext.close()](https://playwright.dev/docs/api/class-browsercontext#browser-context-close) and [browser.close()](https://playwright.dev/docs/api/class-browser#browser-close). Close reason is reported for all operations interrupted by the closure. - Option `firefoxUserPrefs` in [browserType.launchPersistentContext(userDataDir)](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context). #### Other Changes - Methods [download.path()](https://playwright.dev/docs/api/class-download#download-path) and [download.createReadStream()](https://playwright.dev/docs/api/class-download#download-create-read-stream) throw an error for failed and cancelled downloads. - Playwright [docker image](https://playwright.dev/docs/docker) now comes with Node.js v20. #### Browser Versions - Chromium 120.0.6099.28 - Mozilla Firefox 119.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 119 - Microsoft Edge 119 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekday before 11am" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ionic-team/ionic-framework). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com> Co-authored-by: ionitron <hi@ionicframework.com> |
||
|
|
1a5cbd0fd0 |
chore(deps): update dependency @stencil/core to v4.12.3 (#29086)
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@stencil/core](https://stenciljs.com/) ([source](https://togithub.com/ionic-team/stencil)) | [`4.12.2` -> `4.12.3`](https://renovatebot.com/diffs/npm/@stencil%2fcore/4.12.2/4.12.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>ionic-team/stencil (@​stencil/core)</summary> ### [`v4.12.3`](https://togithub.com/ionic-team/stencil/blob/HEAD/CHANGELOG.md#-4123-2024-02-20) [Compare Source](https://togithub.com/ionic-team/stencil/compare/v4.12.2...v4.12.3) ##### Bug Fixes - **compiler:** point crypto import at `crypto` instead of `node:crypto` ([#​5369](https://togithub.com/ionic-team/stencil/issues/5369)) ([7fb783f]( |
||
|
|
de13633a18 |
fix(modal): ariaLabel and role are inherited when set via htmlAttributes (#29099)
Issue number: 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? <!-- Please describe the current behavior that you are modifying. --> Modal inherits `aria-label` and `role` to an element inside of its Shadow DOM. However, this only works if developers set the attributes on the host element directly. Setting the attributes via the `htmlAttributes` property causes the attributes to be set on the host and not inherited. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - `aria-label` and `role` are inherited even when set using `htmlAttributes`. ## 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/.github/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. --> Dev build: `7.7.4-dev.11709154993.1b49c313` |
||
|
|
9e3c3e9149 |
chore(deps): remove puppeteer (#29079)
Issue number: N/A --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> we have puppeteer as a dep of the project. this isn't a problem per se, as it isn't actually used. however, we're hitting intermittent errors in CI when puppeteer tries to pull down the latest version of chrome. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> remove puppeteer as a dependency for the project. this is no longer needed, as https://github.com/ionic-team/stencil/issues/4526 has been fixed as of stencil v4.8.2 ## 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/.github/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. --> |
||
|
|
3fd66e76b5 | v7.7.3 | ||
|
|
2ed0ada923 |
fix(overlays): focus is returned to last focus element when focusing toast (#28950)
Issue number: resolves #28261 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> When moving focus from a focus-trapped overlay to a toast, focus is moved back to the overlay. This is the correct behavior as focus should never leave a focus-trapped overlay (unless the overlay is dismissed or focus is moved to a _new_ top-most overlay). However, the way we return focus is a bit unexpected because it always returns focus to the last focusable element in the overlay. This means that if you were focused on the first focusable element, presented the toast, and then focused the toast, focus might not be moved back to that first focusable element. In the case of the linked issue, this was causing an unexpected scroll so that the last focused element could be in view. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - This fix adds an exception for `ion-toast` (as it is the only overlay that is **not** focus trapped) that ensures that focus is moved back to the last focus element. ## 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/.github/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. --> Dev build: `7.7.1-dev.11707253408.186eea70` Note: We don't recommend this pattern in general because it would be impossible for a screen reader user to focus the toast. However, we can at least improve the experience for developers who continue to implement this pattern by returning focus in a more predictable manner. Docs: https://github.com/ionic-team/ionic-docs/pull/3432 Testing: Reviewers should manually test the following behaviors: 1. Create a modal with 2 buttons. Have one of the buttons present a toast. Open the toast and verify that you can still Tab to cycle through the buttons in the modal. 2. Create a modal with 2 buttons. Have one of the buttons present a toast. Open the toast. Move focus to the toast and verify that you can still Tab to cycle through the buttons in the modal (once focus is returned to the modal). |
||
|
|
1fc4b76f59 |
fix(label): do not grow when in end slot (#29036)
Issue number: resolves #29033 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> In https://github.com/ionic-team/ionic-framework/pull/28773 I resolved several incorrect behaviors with Items related to text wrapping. However, it looks like I missed the removal of https://github.com/ionic-team/ionic-framework/pull/28146/files#diff-4a1156704dbf45b0dad273b6909b190ca45e4380aa7378ba88d0dd7d48d7d473R37 which caused the issue to persist when adding a label to the end slot. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Removed logic that caused `ion-label` to grow larger than it needed to be | `main` | branch | | - | - | |  |  | ## 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/.github/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. --> Dev build: `7.7.2-dev.11707840956.16e27b4c` --------- Co-authored-by: ionitron <hi@ionicframework.com> |
||
|
|
ae873e7028 | v7.7.2 | ||
|
|
d47be8165a |
refactor(item): remove build conditional for test environment (#29007)
- Fix Internal issue (FW-5205) - Removed the build conditional in the `item` component since the previous issue is already fixed in Stencil. --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> - No changes were made in terms of behavior. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - No changes were made in terms of behavior so it will work as before. ## 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/.github/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. --> - Spec tests still pass even after this change (we can see below the results before and after the change) - Ran the command `npm run test.spec src/components/item/test/item.spec.ts src/components/item/test/item.spec.tsx`  |
||
|
|
f5d6275e07 |
chore(deps-dev): Bump @axe-core/playwright from 4.8.4 to 4.8.5 in /core (#29026)
Bumps [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) from 4.8.4 to 4.8.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dequelabs/axe-core-npm/releases"><code>@axe-core/playwright</code>'s releases</a>.</em></p> <blockquote> <h2>Release 4.8.5</h2> <h2>What's Changed</h2> <ul> <li>ci: fix github release script by <a href="https://github.com/michael-siek"><code>@michael-siek</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/999">dequelabs/axe-core-npm#999</a></li> <li>chore: merge master into develop by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/998">dequelabs/axe-core-npm#998</a></li> <li>chore: update chromedriver to 121 by <a href="https://github.com/michael-siek"><code>@michael-siek</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/1005">dequelabs/axe-core-npm#1005</a></li> <li>fix: Update axe-core to v4.8.4 by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/1008">dequelabs/axe-core-npm#1008</a></li> <li>ci: fix tagging when creating releases by <a href="https://github.com/michael-siek"><code>@michael-siek</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/1012">dequelabs/axe-core-npm#1012</a></li> <li>chore: RC v4.8.5 by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/1013">dequelabs/axe-core-npm#1013</a></li> <li>Release v4.8.5 by <a href="https://github.com/dequejenn"><code>@dequejenn</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/1015">dequelabs/axe-core-npm#1015</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/dequelabs/axe-core-npm/compare/v4.8.4...v4.8.5">https://github.com/dequelabs/axe-core-npm/compare/v4.8.4...v4.8.5</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/dequelabs/axe-core-npm/blob/develop/CHANGELOG.md"><code>@axe-core/playwright</code>'s changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/dequelabs/axe-core-npm/compare/v4.8.4...v4.8.5">4.8.5</a> (2024-02-08)</h2> <h3>Bug Fixes</h3> <ul> <li>Update axe-core to v4.8.4 (<a href="https://redirect.github.com/dequelabs/axe-core-npm/issues/1008">#1008</a>) (<a href=" |
||
|
|
a016670a8a |
fix(overlays): do not return focus if application has already moved focus manually (#28850)
Issue number: resolves #28849 --------- ## What is the current behavior? If the developer tries to set focus to a custom element on overlay dismissal, Ionic will always override that focus. ## What is the new behavior? - If focus is already set by developer during dismissal, then Ionic will not restore focus to previous element ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information In the before video, you can see the text box is focused by developer code when "Mention User" is tapped, which opens the keyboard. Shortly after that, when the bottom sheet fully dismisses, Ionic focuses the button, removing focus from the text box and hiding the keyboard. In the after, Ionic detects that the developer has already focused the text box and does not change that focus. |Before|After| |---|---| |<video src="https://github.com/ionic-team/ionic-framework/assets/2166114/47d55eff-29af-4019-ac3c-00f9fe722ca7"></video>| <video src="https://github.com/ionic-team/ionic-framework/assets/2166114/508ae466-d037-41eb-b518-92338a122b22"></video>| |
||
|
|
f07eabe12e |
chore(deps): Bump @stencil/core from 4.12.1 to 4.12.2 in /core (#29027)
Bumps [@stencil/core](https://github.com/ionic-team/stencil) from 4.12.1 to 4.12.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/stencil/releases"><code>@stencil/core</code>'s releases</a>.</em></p> <blockquote> <h2>🎯 v4.12.2 (2024-02-12)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>compiler:</strong> support async globalScripts functions (<a href="https://redirect.github.com/ionic-team/stencil/issues/5158">#5158</a>) (<a href=" |
||
|
|
ba4ba6161c |
fix(overlays): ensure that only topmost overlay is announced by screen readers (#28997)
Issue number: resolves #23472
---------
<!-- 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?
<!-- Please describe the current behavior that you are modifying. -->
If multiple overlays are presented at the same time, none of them
receive `aria-hidden="true"`. This means that screen readers can read
contents from overlays behind the current one, which can be confusing
for users.
The original issue also reports router outlets getting `aria-hidden`
removed when any overlay is dismissed, not just the last one, but we've
since fixed that:
|
||
|
|
adc5655d95 |
chore(deps-dev): Bump @capacitor/core from 5.6.0 to 5.7.0 in /core (#28998)
Bumps [@capacitor/core](https://github.com/ionic-team/capacitor) from 5.6.0 to 5.7.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/capacitor/releases"><code>@capacitor/core</code>'s releases</a>.</em></p> <blockquote> <h2>5.7.0</h2> <h1><a href="https://github.com/ionic-team/capacitor/compare/5.6.0...5.7.0">5.7.0</a> (2024-02-07)</h1> <h3>Bug Fixes</h3> <ul> <li><strong>cli:</strong> correctly build and sign Android apps using Flavors (<a href="https://redirect.github.com/ionic-team/capacitor/issues/7211">#7211</a>) (<a href=" |
||
|
|
1ca9aa5246 |
test(toast): reset config to avoid unnecessary setTimeouts (#29004)
Issue number: 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? <!-- Please describe the current behavior that you are modifying. --> Team members are running into unexpected errors running spec tests: ``` TypeError: Cannot read properties of undefined (reading '$instanceValues$') ``` This line is the culprit: |
||
|
|
e833ad4649 |
docs(overlays): clarify how to remove an overlay (#28989)
In https://github.com/ionic-team/ionic-framework/issues/28981 there was some confusion surrounding how to remove an overlay from the DOM if it was never presented. The `dismiss` method will remove the overlay from the DOM, but only if the overlay is visible. Otherwise, it's a no-op. This PR updates the `dismiss` method docs for each overlay component to note that developers can use the browser's remove method to remove the element from the DOM. |
||
|
|
f885a5526a |
chore(deps): Bump @stencil/core from 4.12.0 to 4.12.1 in /core (#28980)
Bumps [@stencil/core](https://github.com/ionic-team/stencil) from 4.12.0 to 4.12.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/stencil/releases"><code>@stencil/core</code>'s releases</a>.</em></p> <blockquote> <h2>🏸 v4.12.1 (2024-02-05)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>mock-doc:</strong> improve error message when <code>:scope</code> selector is used (<a href="https://redirect.github.com/ionic-team/stencil/issues/5318">#5318</a>) (<a href=" |
||
|
|
0a8964d30c |
fix(popover): render arrow above backdrop (#28986)
Issue number: resolves #28985 --------- <!-- 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. --> <!-- Please describe the current behavior that you are modifying. --> When a popover is being rendered in iOS mode, the arrow renders under the backdrop.  <!-- Please describe the behavior or changes that are being added by this PR. --> - The arrow renders at the same level as the content.  - [ ] 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/.github/CONTRIBUTING.md#footer for more information. --> <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Credit [Sahil-B07](https://github.com/Sahil-B07) for providing the [fix](https://github.com/ionic-team/ionic-framework/pull/28430). A new PR had to be created in order to update snapshots. --------- Co-authored-by: Sahil Bhor <92709590+Sahil-B07@users.noreply.github.com> Co-authored-by: ionitron <hi@ionicframework.com> |
||
|
|
66fcb70151 | v7.7.1 | ||
|
|
7449fb4fed |
fix(action-sheet): iOS dismiss animation respects safe area (#28915)
Issue number: resolves #28541
---------
<!-- 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?
<!-- Please describe the current behavior that you are modifying. -->
On iOS when dismissing the `ion-action-sheet`, the animation does not
account for the safe area of the device. This results in the action
sheet not completely animating off the visible viewport on a device with
safe area enabled.
## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
- The `ion-action-sheet` will animate consistently off the viewport when
dismissing, including the safe area.
To better support custom animations not needing to account for the safe
area, the safe area has been added to the padding of the action sheet
container. This results in the height increasing based on the bottom
safe area and animating correctly when translating between [`100%` and
`0%`](
|
||
|
|
35ab6b4816 |
fix(select): popover can be scrolled (#28965)
Issue number: resolves #28963 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> In https://github.com/ionic-team/ionic-framework/pull/28861 I fixed an issue that caused the wrong content inside of a popover to be scrollable. This CSS should have been applied, but it broke back when popover was converted to the Shadow DOM. Fixing this issue revealed a misconfiguration with the select-popover that caused the select-popover to no longer be scrollable. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Content inside of `ion-select-popover` can now be scrolled Note that I am considering this a bug fix instead of a regression. While scrolling used to work in select-popover, it only worked by chance. The `.popover-viewport` styles should have always applied to the select-popover, thus requiring the use of `overflow-y: auto` in select-popover. ## 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/.github/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. --> Dev build: `7.7.1-dev.11706893059.1bef4b38` |
||
|
|
2150188d27 |
chore(deps-dev): Bump @stencil/angular-output-target from 0.8.3 to 0.8.4 in /core (#28896)
Bumps [@stencil/angular-output-target](https://github.com/ionic-team/stencil-ds-output-targets) from 0.8.3 to 0.8.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/stencil-ds-output-targets/releases"><code>@stencil/angular-output-target</code>'s releases</a>.</em></p> <blockquote> <h2><code>@stencil/angular-output-target</code><a href="https://github.com/0"><code>@0</code></a>.8.4</h2> <h2>What's Changed</h2> <ul> <li>fix(angular): generate event type with inline types by <a href="https://github.com/sean-perkins"><code>@sean-perkins</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-ds-output-targets/pull/412">ionic-team/stencil-ds-output-targets#412</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ionic-team/stencil-ds-output-targets/compare/@stencil/angular-output-target@0.8.2...@stencil/angular-output-target@0.8.4">https://github.com/ionic-team/stencil-ds-output-targets/compare/<code>@stencil/angular-output-target</code><code>@0.8.2...</code><code>@stencil/angular-output-target</code><code>@0.8.4</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/ionic-team/stencil-ds-output-targets/commits/@stencil/angular-output-target@0.8.4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
59543af4e9 |
merge release-7.7.0
Release 7.7.0 |
||
|
|
e672805406 | v7.7.0 | ||
|
|
950fa40c55 |
fix(overlays): tear down animations after dismiss (#28907)
Issue number: resolves #28352 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> Not all animations are getting properly destroyed after they run. This means that styles can get stuck at the end value of their animation. Specifically for this reproduction (as reported in the bug ticket), if the modal animates from 1 to 0 opacity and then the modal gets reopened with a different animation where the opacity should be 1 throughout (i.e. the opacity isn't supposed to animate at all), the modal is invisible because the opacity got stuck at 0 and never got reset to the default value of 1. This bug is probably causing some incorrect behavior on other edge cases with overlays, but this is the only one I've identified. ### Reproduction steps Note: you cannot reproduce this when using a modalController 1. Open a modal, e.g. [this one](http://localhost:3333/src/components/modal/test/card-nav?ionic:mode=ios) in `ios` mode on a screen wider than 768px 1. Close the modal 1. Open the same modal on a screen narrower than 768px 1. See that the modal does not appear ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Animations are properly destroyed after the animation completes - The modal now appears as expected after following the reproduction steps above ## 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/.github/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. --> --------- Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com> |
||
|
|
d5dc901bb9 |
chore(deps-dev): Bump @capacitor/haptics from 5.0.6 to 5.0.7 in /core (#28932)
Bumps [@capacitor/haptics](https://github.com/ionic-team/capacitor-plugins) from 5.0.6 to 5.0.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/capacitor-plugins/releases"><code>@capacitor/haptics</code>'s releases</a>.</em></p> <blockquote> <h2><code>@capacitor/haptics</code><a href="https://github.com/5"><code>@5</code></a>.0.7</h2> <h2><a href="https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/haptics@5.0.6...@capacitor/haptics@5.0.7">5.0.7</a> (2024-01-29)</h2> <p><strong>Note:</strong> Version bump only for package <code>@capacitor/haptics</code></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
775841a397 | chore: sync with main | ||
|
|
1de5ff9302 | v7.6.7 | ||
|
|
7825eab925 |
chore(deps-dev): Bump @capacitor/status-bar from 5.0.6 to 5.0.7 in /core (#28931)
Bumps [@capacitor/status-bar](https://github.com/ionic-team/capacitor-plugins) from 5.0.6 to 5.0.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/capacitor-plugins/releases"><code>@capacitor/status-bar</code>'s releases</a>.</em></p> <blockquote> <h2><code>@capacitor/status-bar</code><a href="https://github.com/5"><code>@5</code></a>.0.7</h2> <h2><a href="https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/status-bar@5.0.6...@capacitor/status-bar@5.0.7">5.0.7</a> (2024-01-29)</h2> <p><strong>Note:</strong> Version bump only for package <code>@capacitor/status-bar</code></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
219e630ed5 | chore: sync with main | ||
|
|
bf34e0e247 |
test: migrate form control usages to modern syntax (#28897)
Issue number: 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? <!-- Please describe the current behavior that you are modifying. --> Several tests were still using the legacy form syntax. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Migrated tests in `core`, `angular`, and `vue` to use the modern form syntax (`react` did not have form controls). I opted not to migrate `item/test/highlight` and `item/test/counter` because those tests are going to be removed in the future once the deprecate item APIs are removed. ## 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/.github/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. --> --------- Co-authored-by: ionitron <hi@ionicframework.com> Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com> |
||
|
|
f6fc22bba6 |
fix(action-sheet, alert, toast): button roles autocomplete with available options (#27940)
Issue number: resolves #27965 --------- https://www.youtube.com/watch?v=a_m7jxrTlaw&list=PLIvujZeVDLMx040-j1W4WFs1BxuTGdI_b&index=3 <!-- 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? <!-- Please describe the current behavior that you are modifying. --> There is a lack of autocomplete support for AlertButton attribute of `role` (there may be similar situations for other components too, however, I was working on this component and found it). ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Support for autocomplete for the two types defined `cancel` and `destructive`, and also supports any arbitrary string if passed in. ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change, please describe the impact and migration path for existing applications below. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> I suggest there to be some global interface similar to the following: ``` interface LooseAutocomplete<T extends string> = T | Omit<string, T>; ``` I referenced this great [video](https://youtu.be/a_m7jxrTlaw) from Matt @mattpocock --------- Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com> |
||
|
|
e021eadb81 |
chore(deps-dev): Bump @capacitor/keyboard from 5.0.7 to 5.0.8 in /core (#28913)
Bumps [@capacitor/keyboard](https://github.com/ionic-team/capacitor-plugins) from 5.0.7 to 5.0.8. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/capacitor-plugins/releases"><code>@capacitor/keyboard</code>'s releases</a>.</em></p> <blockquote> <h2><code>@capacitor/keyboard</code><a href="https://github.com/5"><code>@5</code></a>.0.8</h2> <h2><a href="https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/keyboard@5.0.7...@capacitor/keyboard@5.0.8">5.0.8</a> (2024-01-29)</h2> <p><strong>Note:</strong> Version bump only for package <code>@capacitor/keyboard</code></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a1e7694490 |
chore(deps): Bump @stencil/core from 4.11.0 to 4.12.0 in /core (#28914)
Bumps [@stencil/core](https://github.com/ionic-team/stencil) from 4.11.0 to 4.12.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/stencil/releases"><code>@stencil/core</code>'s releases</a>.</em></p> <blockquote> <h2>🌅 4.12.0 (2024-01-29)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>hmr:</strong> allow changes to component decorators when using HMR (<a href="https://redirect.github.com/ionic-team/stencil/issues/5290">#5290</a>) (<a href=" |
||
|
|
07b987d034 |
chore(deps-dev): Bump @stencil/sass from 3.0.8 to 3.0.9 in /core (#28912)
Bumps [@stencil/sass](https://github.com/ionic-team/stencil-sass) from 3.0.8 to 3.0.9. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/stencil-sass/releases"><code>@stencil/sass</code>'s releases</a>.</em></p> <blockquote> <h2>v3.0.9</h2> <h2>What's Changed</h2> <h3>Bug Fixes</h3> <ul> <li>fix(plugin): normalize dependency path by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/459">ionic-team/stencil-sass#459</a></li> </ul> <h3>Dependency Updates</h3> <ul> <li>chore(deps): update dependency np to v9.2.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/451">ionic-team/stencil-sass#451</a></li> <li>chore(deps): update actions/setup-node action to v4.0.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/454">ionic-team/stencil-sass#454</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.9.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/455">ionic-team/stencil-sass#455</a></li> <li>chore(deps): update dependency prettier to v3.1.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/452">ionic-team/stencil-sass#452</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.9.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/456">ionic-team/stencil-sass#456</a></li> <li>chore(deps): update dependency npm to v10.3.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/457">ionic-team/stencil-sass#457</a></li> <li>chore(deps): update dependency prettier to v3.2.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/458">ionic-team/stencil-sass#458</a></li> <li>chore(deps): update node.js to v20.11.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/443">ionic-team/stencil-sass#443</a></li> <li>chore(deps): update dependency rollup to v4.9.5 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/442">ionic-team/stencil-sass#442</a></li> <li>chore(deps): update dependency prettier to v3.2.2 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/460">ionic-team/stencil-sass#460</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.10.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/462">ionic-team/stencil-sass#462</a></li> <li>chore(deps): update dependency terser to v5.27.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/464">ionic-team/stencil-sass#464</a></li> <li>chore(deps): update dependency prettier to v3.2.4 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/463">ionic-team/stencil-sass#463</a></li> <li>chore(build): improve build process by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/461">ionic-team/stencil-sass#461</a></li> <li>chore(deps): update dependency rollup to v4.9.6 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/465">ionic-team/stencil-sass#465</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.11.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/466">ionic-team/stencil-sass#466</a></li> <li>chore(deps): update dependency npm to v10.4.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/468">ionic-team/stencil-sass#468</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> made their first contribution in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/459">ionic-team/stencil-sass#459</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ionic-team/stencil-sass/compare/v3.0.8...v3.0.9">https://github.com/ionic-team/stencil-sass/compare/v3.0.8...v3.0.9</a></p> <h2>v3.0.9-0</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): update dependency np to v9.2.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/451">ionic-team/stencil-sass#451</a></li> <li>chore(deps): update actions/setup-node action to v4.0.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/454">ionic-team/stencil-sass#454</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.9.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/455">ionic-team/stencil-sass#455</a></li> <li>chore(deps): update dependency prettier to v3.1.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/452">ionic-team/stencil-sass#452</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.9.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/456">ionic-team/stencil-sass#456</a></li> <li>chore(deps): update dependency npm to v10.3.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/457">ionic-team/stencil-sass#457</a></li> <li>chore(deps): update dependency prettier to v3.2.1 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/458">ionic-team/stencil-sass#458</a></li> <li>chore(deps): update node.js to v20.11.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/443">ionic-team/stencil-sass#443</a></li> <li>chore(deps): update dependency rollup to v4.9.5 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/442">ionic-team/stencil-sass#442</a></li> <li>chore(deps): update dependency prettier to v3.2.2 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/460">ionic-team/stencil-sass#460</a></li> <li>chore(deps): update dependency <code>@stencil/core</code> to v4.10.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/462">ionic-team/stencil-sass#462</a></li> <li>fix(plugin): normalize dependency path by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/459">ionic-team/stencil-sass#459</a></li> <li>chore(deps): update dependency terser to v5.27.0 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/464">ionic-team/stencil-sass#464</a></li> <li>chore(deps): update dependency prettier to v3.2.4 by <a href="https://github.com/renovate"><code>@renovate</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/463">ionic-team/stencil-sass#463</a></li> <li>chore(build): improve build process by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/461">ionic-team/stencil-sass#461</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> made their first contribution in <a href="https://redirect.github.com/ionic-team/stencil-sass/pull/459">ionic-team/stencil-sass#459</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
58639c7a1e |
chore(deps): Bump @stencil/core from 4.10.0 to 4.11.0 in /core (#28866)
Bumps [@stencil/core](https://github.com/ionic-team/stencil) from 4.10.0 to 4.11.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ionic-team/stencil/releases"><code>@stencil/core</code>'s releases</a>.</em></p> <blockquote> <h2>🍝 4.11.0 (2024-01-22)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>runtime:</strong> resolve memory leak caused by global content ref (<a href="https://redirect.github.com/ionic-team/stencil/issues/5266">#5266</a>) (<a href=" |
||
|
|
9448783bb1 |
fix(item): only default slot content wraps (#28773)
Issue number: resolves #28769 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> As part of https://github.com/ionic-team/ionic-framework/pull/28146, we allowed text wrapping inside of `ion-item` for accessibility purposes. One of the behaviors we added was to allow start, default, and end slotted containers to wrap to the next line to align with the iOS spec. However, this decision was based on an incorrect assumption. The following screenshot shows the Settings app on iOS: | default scale | 310% scale | | - | - | | <img width="1170" alt="Frame 4" src="https://github.com/ionic-team/ionic-framework/assets/2721089/462ef153-a060-41c8-9a00-f0aad17839be"> | <img width="1170" alt="Frame 5" src="https://github.com/ionic-team/ionic-framework/assets/2721089/f047f880-7b80-4710-939b-96da075fbbf9"> | At the default scale, the blue icon is in the iOS equivalent of the "start" slot, "Bluetooth" is in the default slot, and "On" is in the "end" slot. We incorrectly assumed the same markup was true when scaling the text up. However, at 310% scale the icon, "Bluetooth" text, and "On" text all become part of the default slot in a single container that wraps. You can tell because the bottom border runs underneath the blue icon at 310% whereas it does not at the default scale. This allows the text to wrap underneath the blue icon. When we originally implemented #28146 we thought that this meant the start, default, and end slot containers should wrap to the next line. I further validated this behavior by creating an app with Swift UI. I created a list of items where each item has the native equivalent of a checkbox in the `start` slot and multiple `ion-labels` in the default slot of the item: | Default Scale | 310% Scale | | - | - | |  |  | The content within each label wraps within the container, but the containers themselves never wrap to the next line. Demo code: ```swift import SwiftUI struct ContentView: View { struct Item: Identifiable, Hashable { let id = UUID() } private var items = [ Item(), Item(), Item(), Item(), Item() ] @State private var multiSelection = Set<UUID>() var body: some View { NavigationView { List(items, selection: $multiSelection) {_ in HStack { Text("Column 1 with really long text") Text("Column 2 with really long text") Text("Column 3 with really long text") Text("Column 4 with really long text") } } .toolbar { EditButton() } } Text("\(multiSelection.count) selections") } } #Preview { ContentView() } ``` ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - This PR removes the ability for the start, default, and end slot containers to wrap to the next line. This behavior aligns with pre-v7.6.0 behaviors. The containers inside of the default slot will not wrap to the next line. However, content within each container (such as text within an `ion-label`) will continue to wrap to meet the team's accessibility requirements. ## 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/.github/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. --> Dev build: `7.6.5-dev.11704916749.1e64a3a7` --------- Co-authored-by: ionitron <hi@ionicframework.com> |
||
|
|
b81d85a401 |
chore(deps-dev): Bump @axe-core/playwright from 4.8.3 to 4.8.4 in /core (#28887)
Bumps [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) from 4.8.3 to 4.8.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dequelabs/axe-core-npm/releases"><code>@axe-core/playwright</code>'s releases</a>.</em></p> <blockquote> <h2>Release 4.8.4</h2> <h2>What's Changed</h2> <ul> <li>chore: RC v4.8.3 by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/983">dequelabs/axe-core-npm#983</a></li> <li>chore: bump puppeteer from 19.7.3 to 21.7.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/979">dequelabs/axe-core-npm#979</a></li> <li>Release v4.8.3 by <a href="https://github.com/dequejenn"><code>@dequejenn</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/986">dequelabs/axe-core-npm#986</a></li> <li>chore: bump the npm-low-risk group with 11 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/982">dequelabs/axe-core-npm#982</a></li> <li>chore: bump follow-redirects from 1.15.2 to 1.15.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/988">dequelabs/axe-core-npm#988</a></li> <li>chore: merge master into develop by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/987">dequelabs/axe-core-npm#987</a></li> <li>ci: add env var required for creating gh releases by <a href="https://github.com/michael-siek"><code>@michael-siek</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/989">dequelabs/axe-core-npm#989</a></li> <li>ci: remove deprecated release candidate action by <a href="https://github.com/michael-siek"><code>@michael-siek</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/990">dequelabs/axe-core-npm#990</a></li> <li>fix(webdriverjs): use new headless argument to fix selenium-webdriver@4.17.0 breaking release by <a href="https://github.com/straker"><code>@straker</code></a> in <a href="https://redirect.github.com/dequelabs/axe-core-npm/pull/992">dequelabs/axe-core-npm#992</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/dequelabs/axe-core-npm/compare/v4.8.3...4.8.4">https://github.com/dequelabs/axe-core-npm/compare/v4.8.3...4.8.4</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/dequelabs/axe-core-npm/blob/develop/CHANGELOG.md"><code>@axe-core/playwright</code>'s changelog</a>.</em></p> <blockquote> <h1>Change Log</h1> <p>All notable changes to this project will be documented in this file. See <a href="https://conventionalcommits.org">Conventional Commits</a> for commit guidelines.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
bf7922c8b3 |
fix(item): ensure button focus state on property change (#28892)
Issue number: resolves #28525 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> When navigated via tab-key, the ion-item is not highlighted correctly after switching from button=false to button=true. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> Now, when dynamically changing the the `button` option to `True`, there's a `@watch` callback that will make sure the internal `isFocusable` `@state` will be updated. - A new unit test was added to item/test. As there was still any unit test for the `ion-item`, a new files was created - `item.spec.tsx` ## 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/.github/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. --> New behavior in runtime:  --------- Co-authored-by: Sean Perkins <sean@ionic.io> |
||
|
|
2a3c26e44d |
test(many): replace waitForSelector with waitFor (#28888)
Issue number: N/A --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> There are some tests that use Playwright's `waitForSelector` [function](https://playwright.dev/docs/api/class-page#page-wait-for-selector). However, Playwright has informed the community to not use this function by labeling it as [discouraged](https://playwright.dev/docs/api/class-page#page-wait-for-selector). ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Replaced `waitForSelector` with the [recommended](https://playwright.dev/docs/api/class-page#page-wait-for-selector) `waitFor` [function](https://playwright.dev/docs/api/class-locator#locator-wait-for). ## 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/.github/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. --> N/A |
||
|
|
e10f49c43d |
fix(accordion): prevent opening of readonly accordion using keyboard (#28865)
Issue number: resolves #28344 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> When an Accordion is inside an Accordion Group, and the Accordion Group is enabled and not readonly but the Accordion is disabled and/or readonly, it is possible to navigate to the accordion and open it using the keyboard. This should not be allowed, just like opening it on click is not allowed. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - A disabled Accordion inside an Accordion Group may not be opened via the keyboard. - A readonly Accordion inside an Accordion Group may not be opened via the keyboard. ## 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/.github/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. --> |
||
|
|
0c4e1fcdb4 | v7.6.6 | ||
|
|
9603a4de36 |
fix(menu): improve reliability of main content not being scrollable when menu opens (#28829)
Issue number: resolves #28399 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> As part of https://github.com/ionic-team/ionic-framework/pull/26976 I fixed an issue where `pointer-events: none` was not applied until after the menu open gesture finishes. This resolved a bug where scrolling was latching after the menu gesture starts. However, I did not account for the edge case where scrolling latches _before_ `pointer-events: none` is applied in the DOM. Since scrolling has already latched then `pointer-events: none` does not change the scrolling behavior. This can happen if a user swipes up and to the right from the left edge of the screen. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - `overflow-y: hidden` is now applied to the scrollable content which will interrupt any scrolling when the menu is 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/.github/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. --> Testing: This bug fixes a timing issue where scrolling latches on the main content as the menu tries to open. As a result, I am unable to write reliable automated tests for this. Reviewers should perform the following test on iOS and Android physical devices: 1. Open `src/components/menu/test/basic`. 2. Add enough elements to the main page content such that it scrolls (I added a list with items). 3. On each device, attempt to scroll the main content while also opening the menu on the starting edge of the screen. Scrolling on the main content should not happen if the menu opens. Dev build: `7.6.5-dev.11705341148.1a550d3b` |
||
|
|
10c38d0354 |
fix(popover): content inside of popover scrolls correctly (#28861)
Issue number: resolves #28455 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> The main `ion-content` inside of a popover is not scrollable. Instead, the `.popover-viewport` container is scrolled because certain styles no longer applied once we moved popover to the Shadow DOM. This bug impacted the linked issue because it meant that the infinite scroll inside of the content never fires (since the content never scrolls). ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - The `.popover-viewport` rule now targets slotted content with the`.popover-viewport` class. This class is added to the root node that is slotted. This enables us to target the user's content in the light dom. ## 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/.github/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. --> Dev build: `7.6.6-dev.11705696534.177666f8` --------- Co-authored-by: ionitron <hi@ionicframework.com> |
||
|
|
9262f7da15 |
fix(datetime): do not animate to new value when multiple values in different months are set (#28847)
Issue number: resolves #28602 --------- <!-- 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? <!-- Please describe the current behavior that you are modifying. --> We animate to the new date when the value is changed, but we do not account for multiple selection. This behavior is valuable for when the value is set asynchronously on a different month than what it shown. However, this is confusing when there are multiple dates selected in different months, because we do not reasonably know which date to animate to. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> Datetime no longer animates to the new value if more than one date is selected, and the selected dates aren't all in the same month. An alternative strategy would be to always animate unless one of the selected dates is in the month currently being viewed. However, this would still mean guessing at which value the user wants to see, which we are trying to avoid. Based on this PR: https://github.com/ionic-team/ionic-framework/pull/28605 ## 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/.github/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. --> Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com> --------- Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com> |