51 Commits

Author SHA1 Message Date
01130e12e1 fix(datetime): allow disabling datetime with prefer-wheel (#28511)
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. -->
It is possible to navigate the columns of a disabled Datetime with
`prefer-wheel` via the keyboard.



https://github.com/ionic-team/ionic-framework/assets/14926794/9c9dafc4-4b77-45a6-a276-70201c5c3ea5



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

- Picker Column Internal has a disabled state that disables the full
column
- When a Datetime is disabled with `prefer-wheel`, the columns in the
Datetime will be disabled
- It is no longer possible to navigate the wheels in a disabled Datetime
via the keyboard


Comparison of native & Ionic components:

![Screenshot 2023-11-10 at 10 58
25 AM](https://github.com/ionic-team/ionic-framework/assets/14926794/e2bec1b3-30f8-4f64-8658-27b971884b7a)


## 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>
Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2023-11-22 16:07:43 +00:00
f2c1845fba feat(datetime): add shadow parts and CSS variables for styling wheel pickers (#27529)
Issue number: resolves #25945

---------

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

Datetime wheel pickers cannot be styled.

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

Adds styling APIs in accordance with the Wheel Pickers and Time Picker
sections of [this design
doc](https://github.com/ionic-team/ionic-framework-design-documents/blob/main/projects/ionic-framework/components/datetime/datetime-styling.md).

Shadow parts added:
- `wheel-item`
- `wheel-item active`
- `time-button`
- `time-button active`

CSS properties added:
- `--wheel-highlight-background`
- `--wheel-fade-background-rgb`

## 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.11685554390.10c2ca9b`
Docs PR: https://github.com/ionic-team/ionic-docs/pull/2982
2023-06-06 11:25:15 -05:00
10d2c75f8d Merge remote-tracking branch 'origin/main' into chore/sync-with-main-5-3 2023-05-03 13:38:03 -04:00
b1369a94ae test(picker-internal, picker-column-internal): migrate to generators (#27354)
Issue number: N/A

---------

<!-- Please refer to our contributing documentation for any questions on
submitting a pull request, or let us know here if you need any help:
https://ionicframework.com/docs/building/contributing -->

<!-- Some docs updates need to be made in the `ionic-docs` repo, in a
separate PR. See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#modifying-documentation
for details. -->

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

Picker internal and picker column internal tests are using legacy
syntax.

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

- Picker internal and picker column internal tests use generator syntax.


38187b744c

I updated these tests to disable multi-mode and direction testing since
the behaviors this file is testing do not vary across modes/directions.


89436784b0

- I removed the RTL screenshots here because the disabled state does not
vary across directions.


8d31eba5f2

- I removed the RTL screenshots here because the overlay rendering
behavior does not vary across directions. There is RTL behavior that we
need to test, but that is already captured in the screenshots in
`picker-internal/basic`.


d2a1531e6a

- Removed the mode and direction tests because this behavior does not
vary across modes/directions.

## 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. -->
2023-05-03 15:22:39 +00:00
4826a3d9f5 test(config): introduce legacy and modern playwright projects (#27228)
Issue number: N/A

---------

<!-- Please refer to our contributing documentation for any questions on
submitting a pull request, or let us know here if you need any help:
https://ionicframework.com/docs/building/contributing -->

<!-- Some docs updates need to be made in the `ionic-docs` repo, in a
separate PR. See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#modifying-documentation
for details. -->

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

This is the first PR to introduce the infrastructure required to add
test generators to the Ionic Framework project. This PR introduces the
file name changes necessary to support two playwright configs, so I
recommend reviewing the PR by commit:


1e5012cea1

- Created a `playwright.config-legacy.ts` file and updates
`package.json`.
- Running `npm run test.e2e` will run the generator tests, and running
`npm run test.e2e.legacy` will run the legacy tests.


4fe8de7df7

- Updates the GitHub Action scripts to run both the modern and legacy
E2E tests. I added command modifiers to avoid collisions with output
directories.


e8bcfaf926

- Updates `*.e2e.ts` files to have the legacy format name:
`*.e2e-legacy.ts`. This naming scheme is required for the two Playwright
configs to pull in the correct files. When migrating tests to
generators, team members will rename the file to remove the `-legacy`
part.


5bf196c36d
(warning: lots of files!)

- Updates the `*.e2e.ts-snapshots` directories to have the legacy format
name: `*.e2e-legacy.ts-snapshots`. The screenshot directory in
Playwright is generated based on the test file name which is why we are
updating the screenshot directory. When migrating tests to generators,
team members will rename the directory to remove the `-legacy` part.

## 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. -->
2023-04-26 18:27:17 +00:00
0a0345a84a refactor(many): use utils import (#27160) 2023-04-12 13:25:14 -07:00
4e7424de03 fix(picker-column-internal): hide empty picker items from screenreaders (#27038)
* fix(picker-column): hide empty picker items from screenreaders

fixes #26809

* style(picker-column-internal): run lint

---------

Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2023-04-04 17:49:53 +00:00
3f888c0928 chore(): sync with main 2023-03-03 12:00:21 -05:00
66f2ecbdce test(picker-column-internal): skip flaky scrolling tests (#26910) 2023-03-03 11:42:29 -05:00
799871e95d chore(): sync with main 2023-02-22 10:00:56 -05:00
804e54e5ca test(many): migrate to new toHaveScreenshot API (#26797) 2023-02-16 11:37:29 -05:00
1eea054c12 fix(many): resolve import errors with stencil apps (#26781)
resolves #26778
2023-02-13 08:59:21 -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
18f109c7da feat(base-components): add ability to remove ios and md theme (#26669) 2023-01-24 16:18:35 -05:00
e8fb9e7328 chore(): sync with main 2023-01-23 13:38:16 -05:00
c01600191e chore(): sync with main 2023-01-18 09:36:43 -05:00
d13a14658d fix(datetime): time wheel input mode is dismissed on user scroll (#26567) 2023-01-06 12:08:38 -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
3e671b9c8f fix(picker-column-internal): blurring picker does not throw error (#26560)
Resolves #26559
2023-01-04 16:13:56 -05:00
88e7ee985d chore(): sync with main 2022-12-09 12:37:06 -05:00
7ba2b65b54 test(config): tests now fail fast (#26447) 2022-12-08 16:25:50 -05:00
acb12b36ee Merge remote-tracking branch 'origin/main' into chore/sync-7.0-with-main-12-05-22 2022-12-05 11:25:10 -05:00
1a5ee2f30f test(config): remove playwright diff threshold (#26405) 2022-12-05 11:08:59 -05:00
8eec1974da fix(datetime): haptics are enabled only on ios (#26370)
resolves #25508

BREAKING CHANGE:

The haptics when swiping the wheel picker are now enabled only on iOS.
2022-11-29 14:23:25 -05:00
0548fe8588 fix(datetime): values are adjusted to be in bounds (#26125)
resolves #25894, resolves #25708
2022-10-17 14:19:02 -04:00
54f99bd5b3 fix(picker-internal): fonts now render consistently (#26020) 2022-09-27 11:50:01 -04:00
79c65dc382 test(playwright): add new utilities for skipping tests (#25758) 2022-08-16 09:18:42 -04:00
db68159a41 Merge remote-tracking branch 'origin/main' into chore/sync-with-main 2022-07-01 10:49:14 -04:00
1b1b1a3800 fix(datetime): typing in time now updates value (#25561)
resolves #25560
2022-07-01 10:03:13 -04:00
dd256e1313 fix(datetime): switching months in wheel picker now selected nearest neighbor (#25559) 2022-06-30 13:16:29 -04:00
f1f862dcc1 chore(): sync with main 2022-06-27 09:54:57 -04:00
50d806ee6f test(all): add await to relevant assertions (#25527) 2022-06-24 12:54:02 -04:00
3d19771185 feat(datetime): add wheel style picker for dates and times (#25468) 2022-06-14 16:35:47 -04:00
989429d65c fix(picker-column-internal): switching off an input mode column preserves scroll (#25467) 2022-06-14 15:12:06 -04:00
db027721ac fix(picker-column-internal): tabbing between columns works (#25464) 2022-06-14 11:38:13 -04:00
8b7c07968e feat(picker-column-internal): add ability to disable items (#25412) 2022-06-07 11:27:25 -04:00
ad94e872bd test(picker-column-internal): migrate tests to playwright (#25211) 2022-04-29 13:04:12 -04:00
15c169043f chore(docs): remove manual documentation (#24984) 2022-04-21 12:31:51 -04:00
8e17fa9d5f fix(picker-column-internal): center active item when rapidly opened (#25155)
Resolves #25154
2022-04-20 11:23:24 -04:00
5676bab316 lint(eslint): migrate to eslint and prettier (#25046) 2022-04-04 11:12:53 -04:00
2af24494f5 chore(playwright): enable type checking (#25034) 2022-03-31 15:42:09 -04:00
136b8ec57c test(picker-column-internal): emit ionChange on scroll (#24997) 2022-03-29 16:40:21 -04:00
2909b080b7 fix(datetime): presentation time emits ionChange once (#24968)
Resolves #24967
2022-03-22 11:33:19 -04:00
331ce6d676 fix(datetime): time picker now scrolls to correct value (#24879)
resolves #24878
2022-03-07 08:50:17 -05:00
aacb58a322 fix(datetime): persist minutes column on hour change (#24829)
Resolves #24821
2022-02-28 13:51:52 -05:00
378c632643 fix(datetime): timepicker popover will position relative to click target (#24616)
Resolves #24531, #24415

Co-authored-by: mixalbl4 <mixalbl4.127@gmail.com>>
2022-01-25 16:42:57 -05:00
c2bef8df14 fix(picker-column-internal): prevent multiple items from being highlighted at once (#24268) 2021-12-01 10:16:58 -06:00
ec3bc52ff1 fix(datetime): update active calendar display when value changes (#24244) 2021-11-24 11:23:13 -05: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
03201643ba fix(datetime): change now emitted when picker is typed into (#24018) 2021-10-05 17:52:22 -04:00