129 Commits

Author SHA1 Message Date
dc2f55f0fb chore: sync with main 2023-10-11 09:50:48 -04:00
eee2115fd2 fix(select): do not focus disabled popover option (#28309)
Issue number: resolves #28284

---------

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

Select focuses the first popover option when no value is provided. This
means that the first option is focused even if it disabled.

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

- Select focuses the first **enabled** popover option when no value is
provided.

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

---------

Co-authored-by: Amanda Johnston <90629384+amandaejohnston@users.noreply.github.com>
2023-10-10 19:02:50 +00:00
01167fc185 fix(select): use correct aria-haspopup value (#28265) 2023-10-03 15:03:24 -07:00
95e28b6629 feat(select): add props to customize toggle icons (#27648)
Issue number: resolves #17248

---------

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

While the `icon` shadow part allows customization of the existing toggle
icon, developers do not have a way to specify a different icon to use
entirely.

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

New props `toggleIcon` and `expandedIcon` added. (Design docs are
[here](https://github.com/ionic-team/ionic-framework-design-documents/blob/main/projects/ionic-framework/components/select/0002-custom-icons.md)
and
[here](https://github.com/ionic-team/ionic-framework-design-documents/blob/main/projects/ionic-framework/components/select/0003-custom-icon-on-open.md)
respectively.)

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

Docs PR: https://github.com/ionic-team/ionic-docs/pull/2996
Dev build: `7.0.15-dev.11687278023.161b97d8`

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2023-06-20 12:18:36 -05:00
a45395cc02 feat(input): add experimental label slot (#27650)
Issue number: resolves #27061

---------

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

Input does not accept custom HTML labels

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

- Input accepts custom HTML labels as an experimental feature. We marked
this as experimental because it makes use of "scoped slots" which is an
emulated version of Web Component slots. As a result, there may be
instances where the slot behavior does not exactly match the native slot
behavior.

Note to reviewers: This is a combination of previously reviewed PRs. The
implementation is complete, so feel free to bikeshed.

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


Docs PR: https://github.com/ionic-team/ionic-docs/pull/2997

---------

Co-authored-by: Brandy Carney <brandyscarney@users.noreply.github.com>
2023-06-15 15:23:41 -04:00
606a892e40 fix(select): hide notch cutout if no visible label provided (#27649) 2023-06-15 09:01:46 -04:00
d10509f840 fix: import paths
The `win` utility was moved to the browser/ folder.
2023-06-01 13:05:00 -04:00
af92cb28c8 feat(select): add label slot (#27545)
resolves #26838
2023-05-25 14:57:03 -04:00
5c10f88b2e feat(select): expose container and label as CSS parts (#27541)
Issue number: resolves #27112

---------

## What is the current behavior?
The select does not expose the label or the container for the
value/placeholder as a CSS shadow part in order to style it.

## What is the new behavior?
- Exposed `label` and `container` parts for custom styling
- Added an e2e test to verify the parts are working
- Renamed the existing screenshots for the custom tests to fix a typo
from "custon" to "custom"

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

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2023-05-24 10:54:18 -04:00
19ec41c965 chore: sync with main 2023-05-16 10:26:41 -04:00
13d2d115d4 fix(select): modern syntax works with forms (#27480)
Issue number: resolves #27478

---------

<!-- 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 modern syntax render function was missing `renderHiddenInput` which
caused modern `ion-select` instances to not participate in form
submission. Legacy syntax is not affected.

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

- Modern syntax calls `renderHiddenInput`.

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


Dev build: `7.0.7-dev.11684158250.1920157d`
2023-05-16 13:50:56 +00:00
0a0345a84a refactor(many): use utils import (#27160) 2023-04-12 13:25:14 -07:00
ee19891542 fix(select): update iOS icon (#27001) 2023-03-28 16:49:14 -04:00
408457aa95 fix(select): alert header defaults to label (#27034)
resolves #27028
2023-03-28 11:09:42 -04:00
f829672a6a fix(many): disabled control in item does not receive active/hover states (#26867)
Resolves #26706
2023-03-14 10:32:55 -04:00
7bc22f2bbf fix(select): popover is full width when used with floating/stacked labels (#26907)
resolves #26903
2023-03-06 10:49:13 -05:00
67578f6246 chore: format string values in comments with double quotes (#26857) 2023-02-28 21:16:15 -05:00
1457ce7be4 refactor(many): clarify deprecation warning (#26834) 2023-02-21 13:58:22 -05:00
1eea054c12 fix(many): resolve import errors with stencil apps (#26781)
resolves #26778
2023-02-13 08:59:21 -05:00
e028d13a1b chore(many): import types from source path (#26718) 2023-02-02 11:40:51 -05:00
1a8bd6d8c6 chore(deps): update to stencil v3 (#26663) 2023-01-31 18:07:22 -05:00
63f8525284 fix(many): legacy form control does not warn when using aria-labelledby (#26699)
resolves #26698
2023-01-30 16:02:00 -05:00
b78b454e08 revert(): revert base components feature (#26692)
The Ionic Framework team would like to re-evaluate our approach to improving customization options when building mobile applications. We are looking at other solutions that a) make customizing an app UI easier and b) are applicable to a broader set of developers.
2023-01-30 11:52:36 -05:00
fc561e37ef chore(): sync with main 2023-01-27 14:52:52 -05:00
16b60a612c fix(input, textarea, select): do not show highlight in item (#26689)
resolves #26687
2023-01-26 15:17:54 -05:00
a687457936 fix(select): setting options async updates rendered text (#26667)
resolves #19324
2023-01-25 13:30:03 -05:00
6600578d60 Merge remote-tracking branch 'origin/main' into sync-beta-0 2023-01-25 09:19:43 -05:00
18f109c7da feat(base-components): add ability to remove ios and md theme (#26669) 2023-01-24 16:18:35 -05:00
4d24b328e2 fix(select): modern component takes up full line (#26670) 2023-01-24 15:21:33 -05:00
946807d67b fix(select): focusing item works in firefox (#26668) 2023-01-24 14:17:04 -05:00
e8fb9e7328 chore(): sync with main 2023-01-23 13:38:16 -05:00
02640b5795 feat(select): component can be used outside ion-item (#26572) 2023-01-11 11:21:30 -05:00
c2e1ad385d chore(many): replace any types and add tech debt tickets (#26293)
Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2023-01-06 09:34:55 -06:00
0823c09d9c fix(select): chevron icon is now an ionicon (#26484)
BREAKING CHANGE:

The `icon` CSS Shadow Part for `ion-select` now targets an `ion-icon` component.
2022-12-14 14:26:16 -05:00
c149b42d0b Merge remote-tracking branch 'origin/main' into sync-7-11-15-22 2022-11-15 15:40:21 -05:00
e3ef932ae1 chore(many): add tech debt tickets and remove unnecessary todos (#26266) 2022-11-14 14:49:08 -06:00
34c4137868 feat(select): ionChange will only emit from user committed changes (#26066)
BREAKING CHANGE:

`ionChange` is no longer emitted when the `value` of `ion-select` is modified externally. `ionChange` is only emitted from user committed changes, such as confirming a selected option in the select's overlay.
2022-10-10 09:36:51 -04:00
d631195124 fix(select): compareWith passes params in correct order (#25764)
resolves #25759
2022-08-22 11:34:22 -04:00
b3c05289bb test(angular): add timeout to avoid flaky value accessor test (#25522) 2022-06-24 14:43:08 -04:00
70d278414e fix(select): avoid duplicate dialogs and backdrops when clicking (#25175)
Resolves #25126
2022-04-25 21:35:41 -04:00
083a31acdc chore(): sync feature-6.1 with main 2022-04-04 15:27:16 -04:00
5676bab316 lint(eslint): migrate to eslint and prettier (#25046) 2022-04-04 11:12:53 -04:00
c52f3ad2c2 docs(select,item-sliding): relative link paths (#24985) 2022-03-23 15:03:26 -04:00
d50740029e feat(select): add event for when overlay is dismissed (#24400) 2022-03-02 16:25:38 -05:00
2fc2de5177 fix(select): interface components now show correctly (#24810)
resolves #24807
2022-02-18 13:53:56 -05:00
6ee7d159ec fix(select): value is selected when given array (#24687)
Resolves #24742
2022-02-08 22:56:48 -05:00
412e5f168e chore(): revert "feat(select): add event for when overlay is dismissed (#24099)" (#24398)
This reverts commit c1ecf94e4e6e320b61606da3c889926f7372ced7.
2021-12-14 09:05:06 -06:00
c1ecf94e4e feat(select): add event for when overlay is dismissed (#24099) 2021-12-14 08:39:25 -06:00
5a2a335784 fix(all): Ionic components that use child Ionic components are now correctly defined (#24191)
resolves #23571, #24116, #24129

Co-authored-by: Liam DeBeasi <liamdebeasi@icloud.com>
2021-11-11 12:18:38 -05:00
2497a53255 fix(select): focus selected item in popovers (#23991) 2021-10-01 13:33:53 -05:00