Commit Graph

3972 Commits

Author SHA1 Message Date
Brandy Smith
c16397ed5a Merge branch 'main' into chore/update-from-main 2025-07-07 09:46:55 -04:00
João Ferreira
9a053f60cb feat(datetime): add divider to datetime-action-buttons (#30509)
Issue number: internal

---------
## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
Now, the action buttons have a divider for improved readability.

## 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
[ionic
preview](https://ionic-framework-git-rou-11884-ionic1.vercel.app/src/components/datetime/test/basic?ionic:theme=ionic)
<!-- 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>
2025-07-02 18:14:43 +01:00
Pau Ferrer Ocaña
80a111cffa fix(select): focus the correct selected item in an action sheet interface with a header (#30481)
Issue number: resolves #30480

---------

## What is the current behavior?
When using a select component with the `action-sheet` interface, a
`header`, and a default selected value, the action sheet opens with the
wrong item focused. This happens because the focus logic uses
`nth-child` to target the selected item, which incorrectly includes the
header since it is a child element. As a result, the focus is shifted
one item above the correct selection.

## What is the new behavior?
- Correctly focus the selected item when opening an `action-sheet` with
a header from a select.
- Adds e2e tests for verifying this behavior.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information


[Preview](https://ionic-framework-git-fork-crazyserver-patch-2-ionic1.vercel.app/src/components/select/test/basic)

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-07-01 17:11:00 +00:00
renovate[bot]
4b8863b6d6 chore(deps): update playwright (#30513)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) |
[`^1.52.0` ->
`^1.53.2`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.52.0/1.53.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.53.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.53.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.52.0/1.53.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.52.0/1.53.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| mcr.microsoft.com/playwright | `v1.52.0` -> `v1.53.1` |
[![age](https://developer.mend.io/api/mc/badges/age/docker/mcr.microsoft.com%2fplaywright/v1.53.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/docker/mcr.microsoft.com%2fplaywright/v1.53.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/docker/mcr.microsoft.com%2fplaywright/v1.52.0/v1.53.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/mcr.microsoft.com%2fplaywright/v1.52.0/v1.53.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| final | minor |

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.53.2`](https://redirect.github.com/microsoft/playwright/compare/v1.53.1...8c38de4d13d1e8e28cc97d4ad81cc398a6b2fb32)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.53.1...8c38de4d13d1e8e28cc97d4ad81cc398a6b2fb32)

###
[`v1.53.1`](https://redirect.github.com/microsoft/playwright/compare/v1.53.0...3c60cb476613ee50c040b488d96f390be3985a89)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.53.0...v1.53.1)

###
[`v1.53.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.53.0)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.52.0...v1.53.0)

#### Trace Viewer and HTML Reporter Updates

- New Steps in Trace Viewer and HTML reporter: <img
src="https://github.com/user-attachments/assets/1963ff7d-4070-41be-a79b-4333176921a2"
alt="New Trace Viewer Steps" height="500">
- New option in `'html'` reporter to set the title of a specific test
run:

    ```js
    import { defineConfig } from '@&#8203;playwright/test';

    export default defineConfig({
      reporter: [['html', { title: 'Custom test run #&#8203;1028' }]]
    });
    ```

#### Miscellaneous

- New option
[`kind`](https://playwright.dev/docs/api/class-testinfo#test-info-snapshot-path-option-kind)
in
[testInfo.snapshotPath()](https://playwright.dev/docs/api/class-testinfo#test-info-snapshot-path)
controls which snapshot path template is used.

- New method
[locator.describe()](https://playwright.dev/docs/api/class-locator#locator-describe)
to describe a locator. Used for trace viewer and reports.

    ```js
const button = page.getByTestId('btn-sub').describe('Subscribe button');
    await button.click();
    ```

- `npx playwright install --list` will now list all installed browsers,
versions and locations.

#### Browser Versions

-   Chromium 138.0.7204.4
-   Mozilla Firefox 139.0
-   WebKit 18.5

This version was also tested against the following stable channels:

-   Google Chrome 137
-   Microsoft Edge 137

</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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ionitron <hi@ionicframework.com>
2025-06-30 19:43:02 +00:00
Brandy Smith
ac81383e65 test(breadcrumbs): update Playwright tests to use setContent (#30518)
Blocks https://github.com/ionic-team/ionic-framework/pull/30513

----

The latest Playwright update in #30513 exposed an issue in Safari where
dynamically setting the RTL direction on the document no longer works.
This causes the Breadcrumbs screenshots to fail because they are not
flipping the arrow icon.

This PR converts the Breadcrumbs e2e tests to use `setContent` which
works properly with RTL and also breaks the tests up more so they aren't
one giant screenshot.

- The
[Basic](https://ionic-framework-git-bc-test-breadcrumbs-ionic1.vercel.app/src/components/breadcrumbs/test/basic)
test has been updated to focus mainly on the default breadcrumbs without
any colors or collapsed breadcrumbs.
- The
[Collapsed](https://ionic-framework-git-bc-test-breadcrumbs-ionic1.vercel.app/src/components/breadcrumbs/test/collapsed)
test has been updated to remove some of the duplicated examples and
ported over one from the basic test.
- The
[Color](https://ionic-framework-git-bc-test-breadcrumbs-ionic1.vercel.app/src/components/breadcrumbs/test/color)
test was added which focuses on setting different colors on the
Breadcrumbs / Breadcrumb and moves this out of the basic test.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-30 18:54:09 +00:00
Shane
ee47660745 fix(modal): add conditional tabIndex for handle cycling (#30510)
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. -->

Currently, you cannot tab into a sheet modal from outside of it (the
background), even with `handleBehavior` set to `cycle`. This destroys
the accessibility of moving from the background behind a sheet modal to
the contents of a sheet modal/the drag bar to be able to cycle the size.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

Now you can get into a sheet modal from outside of it and interact with
its contents/drag handle when `handleBehavior` is set to `cycle`. This
opens up the accessibility of the sheet modal and allows for interacting
with background elements with sheet modals open using accessibility
tools like VoiceOver and TalkBack.

## 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. -->

[Relevant test
screen](https://ionic-framework-git-fw-6523-ionic1.vercel.app/src/components/modal/test/sheet)

Dev build: `8.6.3-dev.11750971489.140836b0`

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-06-30 16:33:48 +00:00
Colin Bares
db915bf6c7 docs(methods): update component method documentation #4145 (#30495)
Issue number: resolves ionic-team/ionic-docs#4145

---------

## What is the current behavior?
Some component methods are missing param tags in the JSDoc comments.
Some comments are out of order and the method description is below the
last param description. Some back ticks are misplaced around words
resulting in incorrect formatting in the docs site.

## What is the new behavior?
Method documentation in app, action-sheet, alert, datetime, loading,
menu, modal, popover, reorder-group, router, searchbar, and toast now
include descriptions for all params, all method descriptions are placed
above param descriptions, and back ticks are formatted correctly. All
changes are within JSDoc comments so will result in a change to the docs
site but no functional change to any components.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

In order to preview these changes I took the JSON generated from the
build on this branch and used it in the docusaurus script in place of
the fetch from unpkg. I set up a preview from my fork on Vercel -
https://ionic-docs-git-temptotestdocs-soundproofboots-projects.vercel.app/docs/components
. The change I made to the docusaurus script to use this temp data is
here - https://github.com/soundproofboot/ionic-docs/pull/1/files.
tempDocs.json is the output of the framework build after making these
changes.

---------

Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-06-26 18:15:14 +00:00
Brandy Smith
f42e39e0d5 fix(toolbar): allow slot to size to content to account for images (#30508)
Sets the `flex-basis` variable to `auto` if the slot contains an img to allow it to calculate the width using the image's intrinsic width.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-26 10:10:55 -04:00
Bernardo Cardoso
33dcf98bd2 fix(tokens): review the generation of utility-classes (#30498)
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. -->

Currently some utility-classes are not as effective as they could be,
because they don't affect, for example, the --background or --color css
API's.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Changed the way the classes are generated, so that it affects the css
custom properties as well.
- Make the background classes to only be generated for the tokens that
contain 'bg'.
- Update the style for the body background on the ionic theme (this
triggered some snapshots differences).

## 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.
-->

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-06-24 16:01:32 +01:00
João Ferreira
5458e06742 feat(datetime): add styles for adjacent days for ionic theme (#30492)
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 new behavior?
<!-- Please describe the current behavior that you are modifying. -->
Now the adjacent days have proper styles for all their states. 
And the next-prev month buttons have the right height.

## Changes:
<!-- Please describe the behavior or changes that are being added by
this PR. -->
- add styles for the adjacent days;
- add styles for active adjacent day;
- add styles for pressed adjacent day;
- add styles for focused adjacent day;

## 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. -->
[ionic
preview](https://ionic-framework-git-rou-11702-ionic1.vercel.app/src/components/datetime/test/show-adjacent-days?ionic:theme=ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-06-20 19:08:04 +01:00
Maria Hutt
6ae2907742 fix(picker-column): fallback to elementFromPoint for iOS 16 Shadow DOM bug (#30479)
Issue number: resolves #29672

---------

<!-- 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 issue on iOS 16 with `elementsFromPoint` is related to how it
handles Shadow DOM retargeting when called from the document (global)
context.

It leads to an `undefined` element that is required to trigger
`ionChange`.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Returns the top most element as a fallback only if the element has a
tag of `'ion-picker-column-option'`.

## 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. -->

Dev build: `8.6.2-dev.11749761258.1b46b6a9`

---------

Co-authored-by: Vilhelm Josander <5067135+vilhelmjosander@users.noreply.github.com>
2025-06-18 15:16:55 +00:00
Giuliana Silva
708364df82 fix(sheet): fix toolbar not showing contents in ios for ionic theme (#30496)
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?
The `ion-toolbar` contents inside the `sheet` were not being displayed
correctly in `iOS`.

## What is the new behavior?
This PR add `z-index` values of the `ion-toolbar`'s `content` and
`background` containers to fix the issue.

## 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
Before:
<img
src="https://github.com/user-attachments/assets/ac28e3de-9bb3-447d-a6f7-cce40ccd222c"
alt="Sample Image" height="300">

After: 
<img
src="https://github.com/user-attachments/assets/18af1b57-dd70-4783-b0e7-9fffab8402a3"
alt="Sample Image" height="300">

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-06-18 16:02:25 +01:00
Bernardo Cardoso
5da9cc64bd feat(header): add translucent support on ionic theme (#30493)
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. -->

When using ionic theme there's no support for translucent prop on the
ion-header.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Add support for translucent prop on Ionic theme
- Adjusted tests to also run for ionic-md 

## 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. -->

[Ionic header
fade](https://ionic-framework-git-rou-11911-ionic1.vercel.app/src/components/header/test/fade?ionic:theme=ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-06-17 14:44:11 +01:00
Shane
6811fe5cc8 fix(range): improve focus and blur handling for dual knobs (#30482)
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. -->

Currently, if you use keyboard navigation to move between dual range
slider knobs, only the first knob you navigate to is highlighted. This
is because both elements in the same component are marked as focusable
and the code that manages focusable doesn't take into account multiple
elements in the same component.


https://github.com/user-attachments/assets/36d84eed-6928-446e-becd-ffa2a97e3cc2

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

After these changes, we manage focusing on dual knob range sliders
manually, so using tab navigation through dual knob range sliders
focuses knobs as expected.

## 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. -->

[Test - Range - Basic
screen](https://ionic-framework-git-fw-6401-ionic1.vercel.app/src/components/range/test/basic)
2025-06-13 16:43:48 +00:00
Brandy Smith
911684f83a feat(input-otp): add styling for the ionic theme (#30465)
Adds styles for the ionic theme, splits the scss files into common and native, and adds the theme to the e2e tests.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-12 17:07:55 -04:00
Maria Hutt
a723ad327c chore: sync with main 2025-06-11 11:05:09 -07:00
Brandy Smith
c38aa07cf8 fix(item-sliding): check for side attribute to avoid an undefined value (#29845)
Issue number: resolves #29499

---------

## What is the current behavior?
Using the bundled version of Ionic results in an error `Uncaught (in
promise) Error: "undefined" is not a valid value for [side]. Use "start"
or "end" instead.` with `<ion-item-sliding>`.

Reproduction 1: 
- https://stackblitz.com/edit/stackblitz-starters-mezoy6?file=index.html
- Press the Add (`+`) button several times

It is also reproducible in an Ionic Angular app when installed via npm.

Reproduction 2: 
-
https://stackblitz.com/edit/angular-exwgke?file=src%2Fapp%2Fexample.component.ts
- Press the `Add Items` button several times

## What is the new behavior?
Check for the side attribute to avoid `side` being `undefined`.

## Does this introduce a breaking change?
- [ ] Yes
- [x] No

## Other information

Dev build: `8.6.1-dev.11749562115.1e681558`

Test PR: https://github.com/ionic-team/ionic-framework/pull/30469

The tests must be merged separately, after this is released, in order to
use the fix from the CDN.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-10 18:11:09 +00:00
Shane
071b414a00 fix(modal): reset footer positioning after content drag and multi-footer support (#30470)
Issue number: resolves #30468

---------

<!-- 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. -->

Currently, if you use pointer events to drag the content of a sheet
modal with `expandToScroll` disabled and have you have a footer and a
dismiss button, then you use the dismiss button to close the modal, the
footer will be stuck in its pinned position at the bottom of the screen.

Additionally, if you have multiple footers, only one of them properly
gets pinned and unpinned.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- We now move footers back to their stationary position when we finish
our drag event on modal content
- We support pinning and unpinning multiple footers at the same time now

## 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. -->

Dev build: `8.6.1-dev.11749575087.1b86eb67`
2025-06-10 18:09:37 +00:00
Brandy Smith
7da26d0fd5 test(popover): skip flaky no event popover test (#30464)
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-09 17:18:32 +00:00
Bernardo Cardoso
40e610dec0 fix(card): fix tokens on ionic theme (#30441)
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 new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Updated typography tokens.
- Added border styles and CSS variables for easier customization.

## 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. -->

[Ionic theme
card](https://ionic-framework-git-rou-11968-card-ionic1.vercel.app/src/components/card/test/theme-ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-09 16:04:03 +01:00
Brandy Smith
907506b35c test(fab): skip flaky custom size test (#30463)
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-09 14:57:57 +00:00
Brandy Smith
68a523cb1d chore(): add updated snapshots 2025-06-06 09:43:28 -04:00
Brandy Smith
38b3ac4472 chore(): add updated snapshots 2025-06-06 09:24:16 -04:00
Brandy Smith
280cb050f3 fix(core): add missing ionic theme styles for sheet modal 2025-06-05 18:01:33 -04:00
ionitron
92f1975c12 chore(): add updated snapshots 2025-06-05 21:37:01 +00:00
Brandy Smith
4020859d4e chore: remove hydrated rule to hide the body 2025-06-05 17:23:32 -04:00
Brandy Smith
17dc854eae test(select): fix duplicated tests 2025-06-05 12:50:44 -04:00
Brandy Smith
5d719ba6b0 chore: fresh install and lint 2025-06-04 18:03:28 -04:00
Brandy Smith
345bd53831 Merge branch 'main' into chore/update-next-from-main 2025-06-04 16:58:30 -04:00
Brandy Smith
6afcd530e6 Merge branch 'main' into chore/update-from-main 2025-06-04 10:33:07 -04:00
Brandy Smith
1563b7bae7 chore(deps): update dependency @stencil/core to v4.33.1 (#30450)
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
2025-06-03 18:30:01 -04:00
Shane
4cbbbb053a fix(sheet): move sheet footers instead of cloning while dragging (#30433)
Issue number: resolves several (listed at the bottom) + 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. -->
Currently, when expand to scroll is disabled in a sheet modal, we
duplicate the footer on drag and show a cloned version in the shadow DOM
instead of the original. This causes many issues (described in the Other
Information section), especially because often times the cloned version
of the footer would stick around instead of the original version, which
made any event listeners in the footer (and styling) broken by default
instead of only while dragging.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
We are now following [method 2 of the design
doc](https://github.com/ionic-team/ionic-framework-design-documents/blob/main/projects/ionic-framework/components/modal/0003-sheet-modal-scroll.md#approach-2-move-the-footer),
with minor deviation.

Now we try to eliminate the shaky behavior in the footer by setting the
footer to be absolutely positioned on the page and adding padding to the
bottom of the modal while dragging is happening to offset the missing
footer content. We are additionally performing some extra logic to swap
back when the modal is dragged below the height of the footer so that it
collapses correctly visually.

Note this is a minor variation in method two from the design doc because
I moved the footer to the body instead of to the parent modal. This is
because the parent modal will prevent anything not in its ion-page from
displaying, but it seems to work fine. As a side-effect of this, I had
to add an extra class and support for that class in a few areas so we
could identify footers that belonged to modals while they were moving
and apply applicable classes.

Additionally with this change I was able to remove all of the extra code
in the leave/enter animations because we no longer need to worry about
managing a clone of an element there. This allows me to contain all code
relating to behavior of the footer to `sheet.ts`.

## 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

This refactor in how the footer combats shakiness should resolve many
issues caused by the previous implementation, including the following:
- this change no longer has the footer being swapped out, effectively
breaking event listeners, which fixes #30315
- this change no longer has the footer being duplicated at all, which
fixes #30341
- this change no longer has the footer (sometimes) being moved to the
shadow DOM, which fixes #30312

**Current dev build**: `8.5.8-dev.11748530383.18b4e301`

---------

Co-authored-by: Israel de la Barrera <israeldlbarreral@pm.me>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
2025-06-03 15:47:11 +00:00
Brandy Smith
b77447bea0 fix(input-otp): correctly handle autofill by splitting the values into all inputs (#30444)
Properly handle autofill by detecting when the input value exceeds one character in the `onInput` handler and distributing the value across all input fields.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-06-03 09:59:03 -04:00
Sean Perkins
14f32f8fee fix(datetime): set working parts to last selected value (#29610)
Issue number: resolves #29094

---------

<!-- 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 assigning multiple selected dates that span different months, the
date time will not set the correct working parts and instead fallback to
the default date: May 28, 2021.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

When opening the datetime with multiple dates selected, the calendar
will animate to the last value in the array of selected dates.

If the datetime is collapsed, body is not visible, is not a grid view or
the user has made a selection of a new date, the calendar will not
animate and instead will set the working parts to the current value
selected (latest/last value).

## 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. -->

Internally we discussed setting the month view to the first value in the
array. Upon further investigation I determined this is not the expected
behavior. When a user interacts with multiple date selection, the most
recent selection (their active view) is the **last** value in the array.
Animating or updating the working parts to the first value in the array
would result in the calendar month jumping after every selection. Using
the last index of the array results in no odd jumps in the experience.
If a developer wishes to configure this behavior, they can change the
order of the values in the value assigned to the datetime (to cause a
specific month/date to be the initial view).

Dev build: `8.5.8-dev.11748388365.11ad9dfe`

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-05-30 18:11:26 +00:00
Bernardo Cardoso
fe964c8fa0 fix(avatar): fix avatar tokens on ionic theme (#30438)
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 new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Review background color token and xxsmall size

## 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. -->

[Avatar ionic
theme](https://ionic-framework-git-rou-11968-avatar-ionic1.vercel.app/src/components/avatar/test/size?ionic:theme=ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-05-30 15:35:43 +01:00
Brandy Smith
4d6a067677 feat(input-otp): add new input-otp component (#30386)
Adds a new component `ion-input-otp` which provides the OTP input functionality

- Displays as an input group with multiple boxes accepting a single character
- Accepts `type` which determines whether the boxes accept numbers or text/numbers and determines the keyboard to display
- Supports changing the displayed keyboard using the `inputmode` property
- Accepts a `length` property to control the number of input boxes
- Accepts the following properties to change the design: `fill`, `shape`, `size`, `color`
- Accepts a `separators` property to show a separator between 1 or more input boxes
- Supports the `disabled`, `readonly` and invalid states
- Supports limiting the accepted input via the `pattern` property
- Emits the following events: `ionInput`, `ionChange`, `ionComplete`, `ionBlur`, `ionFocus`
- Exposes the following method: `setFocus`

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: Shane <shane@shanessite.net>
2025-05-29 15:10:37 -04:00
Bernardo Cardoso
034d047202 fix(tab-button): fix font-size token on ionic theme (#30439)
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 new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Updated typography to use correct token.

## 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. -->

[Ionic
tab-bar](https://ionic-framework-git-rou-11968-tabs-ionic1.vercel.app/src/components/tab-bar/test/basic?ionic:theme=ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-05-29 18:50:13 +01:00
Bernardo Cardoso
8e8e8f90cd fix(button): fix tokens usage on ionic theme (#30442)
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 new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Review button min-width and size of icons inside.
- Fixed test for ionic theme, with the correct medium size.

## 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. -->

[Button Ionic
theme](https://ionic-framework-git-rou-11968-button-v2-ionic1.vercel.app/src/components/button/test/theme-ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-05-29 18:36:28 +01:00
Pedro Lourenço
a0d5ad7b8d fix(button): update styling for badge (#30414)
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?
Some stylings for the ion-badge when slotted in an ion-button were
missing.

## What is the new behavior?
Updated the styling for the ion-badge when slotted in an ion-button
according to the designs:
- Adjusted badge padding;
- Abandoned the `:has` pseudo-selector for a simple 'button-had-badge'
class;
- Adjusted font-size for icons inside the button;
- Adjusted badge positioning according to button size and badge length.

## 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. -->
2025-05-29 16:49:55 +01:00
Maria Hutt
4e38700566 fix(input-password-toggle, button): force update aria attributes (#30411)
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. -->

The `ion-input-password-toggle` has aria attributes that are updated
based on the value visibility. However, those values do not reflect on
the native button. This leads to the screen readers to not announce
correctly.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- The aria attributes now reflects correctly within the native button.
- The `aria-label` has been updated to indicate the state of visibility.
- Added tests.

## 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. -->


[Preview](https://ionic-framework-git-fw-6525-ionic1.vercel.app/src/components/input-password-toggle/test/basic)
2025-05-27 16:08:24 +00:00
Maria Hutt
2dea6071db fix(scroll-assist): allow focus on input's siblings (#30409)
Co-authored-by: Shane <shane@shanessite.net>
2025-05-27 09:08:16 -07:00
João Ferreira
8b5215ff03 feat(input): add styles for ionic theme for fill=solid (#30417)
Issue number: Internal

---------

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
- add fill solid to ionic theme input;
- move input.outline.scss to input.ionic.scss;
- add fill solid to states page;
- remove highlight styles for ionic theme;
- add tests for ionic solid input;

## 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. -->
- fill:
https://ionic-framework-git-rou-11889-ionic1.vercel.app/src/components/input/test/fill?ionic:theme=ionic
- states:
https://ionic-framework-git-rou-11889-ionic1.vercel.app/src/components/input/test/states?ionic:theme=ionic

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-05-23 19:10:21 +01:00
João Ferreira
fc4e5ae287 fix(progress-bar, spinner): update colors for ionic theme (#30418)
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. -->
The colors were not working on progress bar when the theme was ionic; 
The Spinner with color="medium" should use the contrast variation by
design;

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
- Fix Progress-Bar Ionic Colors;
- Change Spinner Medium Color Variation;

## 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. -->

https://ionic-framework-git-rou-11917-ionic1.vercel.app/src/components/progress-bar/test/basic?ionic:theme=ionic

https://ionic-framework-git-rou-11917-ionic1.vercel.app/src/components/spinner/test/color?ionic:theme=ionic
2025-05-23 17:36:56 +01:00
Giuliana Silva
1877ac5dd1 feat(datetime): fix height when presentation='time' (#30416)
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?
The `datetime` component had a broken display for the `ionic` theme,
because the `height` defined for that component was too small.

![image](https://github.com/user-attachments/assets/9d4c0c0b-8648-4ea9-88f9-9562190d5498)

## What is the new behavior?
The CSS code limiting the `height` was removed. Now, the height is set
automatically.

![image](https://github.com/user-attachments/assets/ad6de967-bba2-47fa-9f12-835e35565c1c)

## 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. -->

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-05-21 15:46:30 +01:00
pengqiseven
00beab4af8 chore(docs): remove redundant word in comment (#30415)
Issue number: N/A

---------

remove redundant word in comment

Signed-off-by: pengqiseven <912170095@qq.com>
2025-05-20 14:24:57 +00:00
Bernardo Cardoso
f7a2d34305 feat(tokens): create variables fallbacks based on its alias token (#30404)
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. -->

Currently, even if a token used an alias token as its value, when we're
generating the variables we wouldn't respect this connection and were
simply adding the fixed final value.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Now when a token uses an alias token, we keep that relationship by
making sure the alias variable is used as fallback.

## 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. -->
2025-05-14 15:21:18 +01:00
Bernardo Cardoso
6a1382fc2c fix(button): ionic theme sizes (#30405)
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 new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Adjusted ion-button sizes on Ionic theme to match Figma UI. Now
figma's small | medium | large match ionic's small | default | large.
- Removed xsmall and xlarge sizes, as UX rolled back the decision to
have them.
- Removed xsmall and xlarge tests and their usages.

## 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. -->

- [Ionic Theme
Button](https://ionic-framework-git-rou-11903-ionic1.vercel.app/src/components/button/test/theme-ionic)

---------

Co-authored-by: ionitron <hi@ionicframework.com>
Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
2025-05-14 15:08:37 +01:00
Giuliana Silva
7fec492ac7 feat(badge): remove xxsmall, xsmall and xlarge sizes (#30392)
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?
The badge presents the `xxsmall`, `xsmall`, and `xlarge`. The user
experience design expects only the `small` and `medium` sizes for badges
with content (number or icon), and `small`, `medium`, and `large` sizes
for empty badges.

## What is the new behavior?
- The badge should support only the sizes mentioned above.
- The `small` and `medium` sizes must be adjusted to the new
requirements for badges with content.
- The size property descriptions must inform that the `large` size is
only available for empty badges.

## Does this introduce a breaking change?

- [x] Yes
- [ ] 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.
-->

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2025-05-07 17:37:07 +01:00
Shane
7d639b0412 fix(labels): prevent clicking a label from triggering onClick twice on several components (#30384)
Issue number: resolves #30165

---------

<!-- 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. -->
Currently, several components will trigger their `onClick` twice if you
click on their labels.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
After this fix, the affected components will only trigger `onClick` once
per click of their labels or click directly on the 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/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. -->

The affected components are:
- Checkbox
- Select
- Textarea
- Toggle
- Input

I also tested radio and range but could not reproduce the issue for
them.

Note that two of the components, checkbox and toggle, had to have
special implementations for both their test and fix because of how the
host component acts as the component for accessibility purposes.

Current dev build: `8.5.7-dev.11746044124.147aab6c`

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
2025-05-02 16:27:25 +00:00
ionitron
d8582e47b1 chore(): add updated snapshots 2025-05-01 14:33:48 +00:00