35 Commits

Author SHA1 Message Date
9050a9fbf5 fix(vue): respect keepContentsMounted if passed as attribute (#28167)
Issue number: resolves #28165

---------

<!-- 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 overlay implementation in Vue only checks for truthy
`keepContentsMounted` values. When setting this prop as an attribute,
the value of it is `''` which is falsy. As a result, content does not
get mounted.

One of Vue's ESLint rules states that this should be supported:
https://eslint.vuejs.org/rules/prefer-true-attribute-shorthand.html

Part of the issue may also be that Vue does not know the type of this
property and so it assume "any":

> The shorthand form is not always equivalent! If a prop accepts
multiple types, but Boolean is not the first one, a shorthand prop won't
pass true.

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

- The overlay wrapper now checks for `''` values. If
`keepContentsMounted === ''` then the inner contents will be mounted
because this means the prop is being set using the attribute shorthand.

## 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.3.5-dev.11694621267.1e5f63c2`
2023-09-14 18:10:11 +00:00
02678f3652 fix(react, vue): inline modals apply ion-page class (#27481)
Issue number: resolves #27470

---------

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

Passing multiple elements in to an inline modal causes `.ion-page` to
not get set. This causes content to get pushed off the bottom of the
modal equal to the height of the header. React has some special CSS that
prevents this:
eb2772c0ce/packages/react/src/components/createInlineOverlayComponent.tsx (L137-L140)

However, I think this should be delegated to `.ion-page` instead so the
behavior is consistent across frameworks. For example, Angular uses
`.ion-page`:
eb2772c0ce/angular/src/directives/overlays/modal.ts (L82)

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

- Inline overlays in Ionic React and Ionic Vue wrap child content in
`.ion-delegate-host.ion-page`.
- Removed the custom flex styles from Ionic React as `.ion-page` has its
own styles.

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

Revised Design Doc:
https://github.com/ionic-team/ionic-framework-design-documents/pull/84
2023-05-24 13:37:02 +00:00
d71a2edf4c chore(deps-dev): bump @stencil/vue-output-target from 0.8.4 to 0.8.5 in /core (#27501)
Bumps
[@stencil/vue-output-target](https://github.com/ionic-team/stencil-ds-output-targets)
from 0.8.4 to 0.8.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/ionic-team/stencil-ds-output-targets/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@stencil/vue-output-target&package-manager=npm_and_yarn&previous-version=0.8.4&new-version=0.8.5)](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 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>
Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2023-05-18 13:18:22 +00:00
07941a59ba fix(vue): components have correct name in Vue Dev Tools (#27180)
<!-- 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. -->


<!-- Issues are required for both bug fixes and features. -->
Issue URL: resolves #25199

Vue components show up as "Anonymous Component" in Vue Dev Tools. This
is caused by our use of `displayName` instead of `name`. This required a
fix in the Vue Output Target package. See
https://github.com/ionic-team/stencil-ds-output-targets/pull/257 for
more info.

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

- Updates the Vue Output Target dependency
- Functional components created manually in Ionic Vue now set `name`
instead of `displayName`. Note: Non-functional components were never
impacted by this bug.

## 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.2-dev.11681308435.141a05de`
2023-04-12 16:50:21 +00:00
95a3c69bbb fix(item): inherit aria attributes before render (#26546)
Resolves #26538
2023-01-27 16:02:45 -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
be9a399eee fix(popover): popover positions correctly on all frameworks (#26306)
Resolves #25337
2022-11-21 22:32:46 -05:00
4d10ae6b7c chore(): sync feature-6.2 with main 2022-07-27 08:48:23 -05:00
ab65e9a7b5 fix(vue): input v-model accepts numbers (#25666)
Resolves #25575
2022-07-21 16:14:42 -04:00
805dfa0566 feat(angular, react, vue): add support for autoMountComponent (#25552) 2022-07-05 12:57:16 -04:00
288b4686d6 chore(): update package lock files 2022-06-22 14:12:49 +00:00
77f8412b74 fix(react,vue): backdrop for inline modal/popover overlay (#24453)
Resolves #24449
2022-01-07 13:21:20 -05:00
13d4418588 fix(react, vue): remove sideeffects to improve treeshaking (#24313) 2021-12-06 11:39:23 -05:00
578b9062dd fix(vue): modal and popover components now correctly pass properties (#23761)
resolves #23698
2021-08-16 09:09:41 -04:00
ea39c70b3e fix(vue): custom element internal properties are no longer overridden in vue 3.1.0 (#23738)
resolves #23539
2021-08-09 11:41:31 -04:00
dc48a9f1a2 feat(vue): add custom elements bundle (#23458) 2021-06-17 14:10:50 -04:00
6fcb3a62b1 refactor(vue): drop support for "on" prefixed overlay events and bump minimum required version of vue to 3.0.6 (#23229)
refactor(vue): drop support for "on" prefixed overlay events and bump minimum required version of vue to 3.0.6

BREAKING CHANGE:

- Dropped support for prefixed overlay events in favor of non prefixed events (I.e. `@onDidDismiss` becomes `@didDismiss`).
- Minimum required version of Vue is now Vue v3.0.6 or newer.
2021-04-23 13:06:22 -04:00
dab927d290 fix(vue): overlay events can now be listened for without the "on" prefix, deprecated "on" prefix event listeners (#23227) 2021-04-23 11:38:45 -04:00
ff7922a1a5 chore(vue): fix typo in comments (#23192) 2021-04-15 09:44:27 -04:00
27318cf585 fix(vue): account for event name changes in vue 3.0.6+ for overlay components (#23100) 2021-03-29 15:30:31 -04:00
ba51daf17c fix(vue): components now integrate properly with vee-validate (#23114)
resolves #22886
2021-03-29 14:34:52 -04:00
06d4c8e6f1 fix(vue): account for event name changes in vue 3.0.6+ 2021-02-26 14:10:42 -05:00
68a9b80053 fix(vue): prevent race conditions when opening overlays (#22883)
resolves #22880
2021-02-23 14:42:38 -05:00
ff0f1da9f1 fix(vue): ionChange events now propagate correctly (#22872)
resolves #22870
2021-02-04 11:00:46 -05:00
e1d6627bf0 fix(vue): ensure v-model value is properly synced before ionChange event (#22749)
resolves #22610
2021-01-13 11:22:27 -05:00
64719f49f9 fix(vue): improve v-model binding sync between vue wrappers and web components (#22745)
resolves #22731
2021-01-08 12:06:45 -05:00
3d6ac1382e fix(vue): all ionic vue components can now use router link (#22743) 2021-01-07 15:52:06 -05:00
4e23aad3d9 fix(vue): testing a routerLink-capable component no longer warns of missing router dependency (#22532)
resolves #22506
2020-11-23 14:17:52 -05:00
6026c65b1a fix(vue): modal, popover, and nav are now created within application context (#22282)
resolves #22079
2020-10-12 15:07:49 -04:00
25271897e2 fix(vue): correctly update property values (#22218)
resolves #22079
2020-09-30 10:19:26 -04:00
fe5fadf19c fix(vue): overlays function properly when used via controller or template (#22155)
resolves #22090
2020-09-24 11:18:28 -04:00
f82bac1780 perf(vue): improve build with smaller bundle sizes (#22131) 2020-09-22 14:41:49 -04:00
9cb22be91a fix(vue): ensure dynamic classes are synced with internal Ionic component classes (#22096)
resolves #22051
2020-09-16 10:09:52 -04:00
67fbb3b963 fix(vue): using refs with v-model now works properly (#22092)
resolves #22076
2020-09-15 15:49:51 -04:00
5ffa65f84a feat(vue): add ionic vue beta (#22062) 2020-09-10 15:20:49 -04:00