merge release-6.3.9

Release 6.3.9
This commit is contained in:
Liam DeBeasi
2022-11-30 09:44:24 -05:00
committed by GitHub
103 changed files with 375 additions and 508 deletions

View File

@ -21,11 +21,11 @@ runs:
with: with:
node-version: 16.x node-version: 16.x
- name: Install Dependencies - name: Install Dependencies
run: lerna bootstrap --scope ${{ inputs.scope }} --ignore-scripts -- --legacy-peer-deps run: lerna bootstrap --include-dependencies --scope ${{ inputs.scope }} --ignore-scripts -- --legacy-peer-deps
shell: bash shell: bash
working-directory: ${{ inputs.working-directory }} working-directory: ${{ inputs.working-directory }}
- name: Update Version - name: Update Version
run: npm version ${{ inputs.version }} run: lerna version ${{ inputs.version }} --yes --exact --no-changelog --no-push --no-git-tag-version
shell: bash shell: bash
working-directory: ${{ inputs.working-directory }} working-directory: ${{ inputs.working-directory }}
- name: Run Build - name: Run Build
@ -39,6 +39,6 @@ runs:
env: env:
NPM_TOKEN: ${{ inputs.token }} NPM_TOKEN: ${{ inputs.token }}
- name: Publish to NPM - name: Publish to NPM
run: npm publish ${{ inputs.folder }} --tag ${{ inputs.tag }} --git-tag-version false run: npm publish ${{ inputs.folder }} --tag ${{ inputs.tag }}
shell: bash shell: bash
working-directory: ${{ inputs.working-directory }} working-directory: ${{ inputs.working-directory }}

View File

@ -140,6 +140,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Restore @ionic/core built cache
uses: ./.github/workflows/actions/download-archive
with:
name: ionic-core
path: ./core
filename: CoreBuild.zip
- name: Restore @ionic/angular built cache - name: Restore @ionic/angular built cache
uses: ./.github/workflows/actions/download-archive uses: ./.github/workflows/actions/download-archive
with: with:
@ -160,6 +166,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Restore @ionic/core built cache
uses: ./.github/workflows/actions/download-archive
with:
name: ionic-core
path: ./core
filename: CoreBuild.zip
- name: Restore @ionic/react built cache - name: Restore @ionic/react built cache
uses: ./.github/workflows/actions/download-archive uses: ./.github/workflows/actions/download-archive
with: with:
@ -179,6 +191,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Restore @ionic/core built cache
uses: ./.github/workflows/actions/download-archive
with:
name: ionic-core
path: ./core
filename: CoreBuild.zip
- name: Restore @ionic/vue built cache - name: Restore @ionic/vue built cache
uses: ./.github/workflows/actions/download-archive uses: ./.github/workflows/actions/download-archive
with: with:

View File

@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic-framework/compare/v6.3.8...v6.3.9) (2022-11-30)
### Bug Fixes
* **button:** fill can be set to undefined ([#26339](https://github.com/ionic-team/ionic-framework/issues/26339)) ([2fe23d9](https://github.com/ionic-team/ionic-framework/commit/2fe23d9d46c3593843c781c57340332e5a86fd64)), closes [#25886](https://github.com/ionic-team/ionic-framework/issues/25886)
* **input:** clear icon can be styled ([#26354](https://github.com/ionic-team/ionic-framework/issues/26354)) ([ccaff8d](https://github.com/ionic-team/ionic-framework/commit/ccaff8d0dc66f8adc9cde838c084629391e4200d)), closes [#19178](https://github.com/ionic-team/ionic-framework/issues/19178) [#17168](https://github.com/ionic-team/ionic-framework/issues/17168)
* **reorder:** items animate once in firefox ([#26326](https://github.com/ionic-team/ionic-framework/issues/26326)) ([7ae8117](https://github.com/ionic-team/ionic-framework/commit/7ae81172844659d7f4581956ce17e5324f73beef)), closes [#21182](https://github.com/ionic-team/ionic-framework/issues/21182)
* **segment:** segment in toolbar uses correct contrast ([#26353](https://github.com/ionic-team/ionic-framework/issues/26353)) ([5a243cc](https://github.com/ionic-team/ionic-framework/commit/5a243ccebc8e27bef6eb1ed2f797a0c1166199bf)), closes [#26350](https://github.com/ionic-team/ionic-framework/issues/26350)
## [6.3.8](https://github.com/ionic-team/ionic-framework/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic-framework/compare/v6.3.7...v6.3.8) (2022-11-22)

View File

@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic/compare/v6.3.8...v6.3.9) (2022-11-30)
**Note:** Version bump only for package @ionic/angular
## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22)
**Note:** Version bump only for package @ionic/angular **Note:** Version bump only for package @ionic/angular

View File

@ -1,15 +1,15 @@
{ {
"name": "@ionic/angular", "name": "@ionic/angular",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/angular", "name": "@ionic/angular",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ionic/core": "^6.3.8", "@ionic/core": "^6.3.9",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
"jsonc-parser": "^3.0.0", "jsonc-parser": "^3.0.0",
"tslib": "^2.0.0" "tslib": "^2.0.0"
@ -1024,9 +1024,9 @@
"dev": true "dev": true
}, },
"node_modules/@ionic/core": { "node_modules/@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"dependencies": { "dependencies": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
@ -7940,9 +7940,9 @@
"dev": true "dev": true
}, },
"@ionic/core": { "@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"requires": { "requires": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/angular", "name": "@ionic/angular",
"version": "6.3.8", "version": "6.3.9",
"description": "Angular specific wrappers for @ionic/core", "description": "Angular specific wrappers for @ionic/core",
"keywords": [ "keywords": [
"ionic", "ionic",
@ -42,7 +42,7 @@
"validate": "npm i && npm run lint && npm run test && npm run build" "validate": "npm i && npm run lint && npm run test && npm run build"
}, },
"dependencies": { "dependencies": {
"@ionic/core": "^6.3.8", "@ionic/core": "^6.3.9",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
"jsonc-parser": "^3.0.0", "jsonc-parser": "^3.0.0",
"tslib": "^2.0.0" "tslib": "^2.0.0"

View File

@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic/compare/v6.3.8...v6.3.9) (2022-11-30)
### Bug Fixes
* **button:** fill can be set to undefined ([#26339](https://github.com/ionic-team/ionic/issues/26339)) ([2fe23d9](https://github.com/ionic-team/ionic/commit/2fe23d9d46c3593843c781c57340332e5a86fd64)), closes [#25886](https://github.com/ionic-team/ionic/issues/25886)
* **input:** clear icon can be styled ([#26354](https://github.com/ionic-team/ionic/issues/26354)) ([ccaff8d](https://github.com/ionic-team/ionic/commit/ccaff8d0dc66f8adc9cde838c084629391e4200d)), closes [#19178](https://github.com/ionic-team/ionic/issues/19178) [#17168](https://github.com/ionic-team/ionic/issues/17168)
* **reorder:** items animate once in firefox ([#26326](https://github.com/ionic-team/ionic/issues/26326)) ([7ae8117](https://github.com/ionic-team/ionic/commit/7ae81172844659d7f4581956ce17e5324f73beef)), closes [#21182](https://github.com/ionic-team/ionic/issues/21182)
* **segment:** segment in toolbar uses correct contrast ([#26353](https://github.com/ionic-team/ionic/issues/26353)) ([5a243cc](https://github.com/ionic-team/ionic/commit/5a243ccebc8e27bef6eb1ed2f797a0c1166199bf)), closes [#26350](https://github.com/ionic-team/ionic/issues/26350)
## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22)

View File

@ -1,12 +1,12 @@
{ {
"name": "@ionic/core", "name": "@ionic/core",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/core", "name": "@ionic/core",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/core", "name": "@ionic/core",
"version": "6.3.8", "version": "6.3.9",
"description": "Base components for Ionic", "description": "Base components for Ionic",
"keywords": [ "keywords": [
"ionic", "ionic",

View File

@ -272,7 +272,11 @@ export class Button implements ComponentInterface, AnchorInterface, ButtonInterf
target, target,
}; };
let fill = this.fill; let fill = this.fill;
if (fill === undefined) { /**
* We check both undefined and null to
* work around https://github.com/ionic-team/stencil/issues/3586.
*/
if (fill == null) {
fill = this.inToolbar || this.inListHeader ? 'clear' : 'solid'; fill = this.inToolbar || this.inListHeader ? 'clear' : 'solid';
} }
return ( return (

View File

@ -9,6 +9,25 @@ test.describe('button: basic', () => {
expect(await page.screenshot()).toMatchSnapshot(`button-diff-${page.getSnapshotSettings()}.png`); expect(await page.screenshot()).toMatchSnapshot(`button-diff-${page.getSnapshotSettings()}.png`);
}); });
test('should correctly set fill to undefined', async ({ page, skip }) => {
test.info().annotations.push({
type: 'issue',
description: 'https://github.com/ionic-team/ionic-framework/issues/25886',
});
skip.rtl();
skip.mode('ios', 'This behavior does not differ across modes');
await page.setContent(`
<ion-button fill="outline"></ion-button>
`);
const button = page.locator('ion-button');
await expect(button).toHaveClass(/button-outline/);
await button.evaluate((el: HTMLIonButtonElement) => (el.fill = undefined));
await page.waitForChanges();
await expect(button).toHaveClass(/button-solid/);
});
}); });
test.describe('button: ripple effect', () => { test.describe('button: ripple effect', () => {

View File

@ -1,10 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('icon: basic', async () => {
const page = await newE2EPage({
url: '/src/components/icon/test/basic?ionic:_testing=true',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});

View File

@ -0,0 +1,16 @@
import { expect } from '@playwright/test';
import { test } from '@utils/test/playwright';
test.describe('icon: basic', () => {
test('should render icon when passed', async ({ page, skip }) => {
skip.rtl();
skip.mode('ios');
await page.setContent(`
<ion-icon name="star"></ion-icon>
`);
const icon = page.locator('ion-icon');
expect(await icon.screenshot()).toMatchSnapshot(`icon-${page.getSnapshotSettings()}.png`);
});
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

View File

@ -1,19 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('icon: dir', async () => {
const page = await newE2EPage({
url: '/src/components/icon/test/dir?ionic:_testing=true',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});
test('icon: dir, rtl', async () => {
const page = await newE2EPage({
url: '/src/components/icon/test/dir?ionic:_testing=true&rtl=true',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});

View File

@ -0,0 +1,25 @@
import { expect } from '@playwright/test';
import { test } from '@utils/test/playwright';
test.describe('icon: rtl', () => {
test('should flip icon when rtl is active', async ({ page, skip }) => {
skip.mode('ios');
await page.setContent(`
<ion-icon name="cut" flip-rtl="true"></ion-icon>
`);
const icon = page.locator('ion-icon');
expect(await icon.screenshot()).toMatchSnapshot(`icon-flip-${page.getSnapshotSettings()}.png`);
});
test('should not flip icon when rtl is active', async ({ page, skip }) => {
skip.mode('ios');
await page.setContent(`
<ion-icon name="cut" flip-rtl="false"></ion-icon>
`);
const icon = page.locator('ion-icon');
expect(await icon.screenshot()).toMatchSnapshot(`icon-no-flip-${page.getSnapshotSettings()}.png`);
});
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,10 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('icon: items', async () => {
const page = await newE2EPage({
url: '/src/components/icon/test/items?ionic:_testing=true',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});

View File

@ -1,115 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8" />
<title>Icon - Items</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<link href="../../../../../css/ionic.bundle.css" rel="stylesheet" />
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet" />
<script src="../../../../../scripts/testing/scripts.js"></script>
<script nomodule src="../../../../../dist/ionic/ionic.js"></script>
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
<style>
profile-modal {
background: red;
}
</style>
</head>
<body>
<ion-app>
<ion-header>
<ion-toolbar>
<ion-title>Icon - Items</ion-title>
</ion-toolbar>
</ion-header>
<ion-content id="content">
<ion-list>
<ion-item>
<ion-icon id="dynamicColor" name="home" slot="start"></ion-icon>
<code> dynamicColor name="home" </code>
</ion-item>
<ion-item>
<ion-icon name="home" is-active="true" slot="start"></ion-icon>
<code> name="home" is-active="true" </code>
</ion-item>
<ion-item>
<ion-icon id="dynamicProp" is-active="false" slot="start"></ion-icon>
<code> dynamicProp is-active="false" </code>
</ion-item>
<ion-item>
<ion-icon id="dynamicAttr" is-active="false" slot="start"></ion-icon>
<code> dynamicAttr is-active="false" </code>
</ion-item>
<ion-item>
<ion-icon name="home" is-active="true" slot="start"></ion-icon>
<code> name="home" is-active="true" </code>
</ion-item>
<ion-item>
<ion-icon name="home" color="primary" slot="start"></ion-icon>
<code> name="home" </code>
</ion-item>
<ion-item>
<ion-icon name="logo-twitter" color="secondary" slot="start"></ion-icon>
<code> name="logo-twitter" </code>
</ion-item>
<ion-item>
<ion-icon ios="logo-apple" md="logo-android" slot="start"></ion-icon>
<code> ios="logo-apple" md="logo-android" </code>
</ion-item>
<ion-item>
<ion-icon ios="logo-apple" md="logo-android" slot="start" id-active="false"></ion-icon>
<code> ios="logo-apple" md="logo-android" is-active="false" </code>
</ion-item>
<ion-item>
<ion-icon slot="start"></ion-icon>
<code> name="null" </code>
</ion-item>
<ion-item>
<ion-icon name="home" hidden="true" slot="start"></ion-icon>
<code> name="home" hidden="true" </code>
</ion-item>
</ion-list>
<script>
var dynamicColor = document.getElementById('dynamicColor');
var dynamicProp = document.getElementById('dynamicProp');
var dynamicAttr = document.getElementById('dynamicAttr');
dynamicColor.setAttribute('color', 'danger');
let interval = setInterval(function () {
if (dynamicProp.name === 'home') {
dynamicProp.name = 'ios-home';
dynamicAttr.setAttribute('name', 'ios-home');
} else if (dynamicProp.name === 'ios-home') {
dynamicProp.name = 'md-home';
dynamicAttr.setAttribute('name', 'md-home');
} else {
dynamicProp.name = 'home';
dynamicAttr.setAttribute('name', 'home');
}
}, 1000);
setTimeout(function () {
clearInterval(interval);
}, 4000);
</script>
</ion-content>
</ion-app>
</body>
</html>

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"/></svg>

Before

Width:  |  Height:  |  Size: 292 B

View File

@ -1,10 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('icon: standalone', async () => {
const page = await newE2EPage({
url: '/src/components/icon/test/standalone?ionic:_testing=true',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});

View File

@ -1,72 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8" />
<title>Icon - Standalone</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<link href="../../../../../css/core.css" rel="stylesheet" />
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet" />
<script src="../../../../../scripts/testing/scripts.js"></script>
<script nomodule src="../../../../../dist/ionic/ionic.js"></script>
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
</head>
<body>
<ion-icon name="logo-ionic" color="primary"></ion-icon>
<ion-icon name="logo-angular"></ion-icon>
<ion-icon name="heart" color="danger"></ion-icon>
<ion-icon name="logo-ionitron" color="primary"></ion-icon>
<ion-icon name="happy" color="warning"></ion-icon>
<ion-icon name="people"></ion-icon>
<ion-icon name="person" color="tertiary"></ion-icon>
<ion-icon name="person-circle"></ion-icon>
<ion-icon name="apps"></ion-icon>
<ion-icon name="lock-closed"></ion-icon>
<ion-icon name="key" color="success"></ion-icon>
<ion-icon name="lock-open"></ion-icon>
<ion-icon name="map" color="secondary"></ion-icon>
<ion-icon name="navigate"></ion-icon>
<ion-icon name="pin"></ion-icon>
<ion-icon name="locate"></ion-icon>
<ion-icon name="mic"></ion-icon>
<ion-icon name="musical-notes" color="warning"></ion-icon>
<ion-icon name="volume-high"></ion-icon>
<ion-icon name="cafe" color="success"></ion-icon>
<ion-icon name="calculator"></ion-icon>
<ion-icon name="bus"></ion-icon>
<ion-icon name="wine" color="danger"></ion-icon>
<ion-icon name="camera"></ion-icon>
<ion-icon name="image" color="secondary"></ion-icon>
<ion-icon name="star" color="success"></ion-icon>
<ion-icon name="pin"></ion-icon>
<ion-icon name="arrow-up-circle" color="warning"></ion-icon>
<ion-icon name="arrow-back"></ion-icon>
<ion-icon name="arrow-down-circle"></ion-icon>
<ion-icon name="arrow-forward"></ion-icon>
<ion-icon name="cloud"></ion-icon>
<ion-icon name="sunny" color="success"></ion-icon>
<ion-icon name="umbrella"></ion-icon>
<ion-icon name="rainy" color="primary"></ion-icon>
<!-- Custom Icon-->
<ion-icon src="./standalone/done-all.svg"></ion-icon>
<style>
ion-icon {
font-size: 50px;
margin: 9px;
}
</style>
</body>
</html>

View File

@ -17,11 +17,7 @@
--padding-start: 0px; --padding-start: 0px;
} }
.input-clear-icon { .input-clear-icon ion-icon {
@include svg-background-image($input-ios-input-clear-icon-svg); width: 18px;
height: 18px;
width: $input-ios-input-clear-icon-width;
height: $input-ios-input-clear-icon-width;
background-size: $input-ios-input-clear-icon-size;
} }

View File

@ -49,15 +49,6 @@ $input-ios-inset-margin-start: 0 !default;
/// @prop - Width of the icon used to clear the input /// @prop - Width of the icon used to clear the input
$input-ios-input-clear-icon-width: 30px !default; $input-ios-input-clear-icon-width: 30px !default;
/// @prop - Color of the icon used to clear the input
$input-ios-input-clear-icon-color: $text-color-step-400 !default;
/// @prop - Icon used to clear the input
$input-ios-input-clear-icon-svg: "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='" + $input-ios-input-clear-icon-color + "' d='M403.1,108.9c-81.2-81.2-212.9-81.2-294.2,0s-81.2,212.9,0,294.2c81.2,81.2,212.9,81.2,294.2,0S484.3,190.1,403.1,108.9z M352,340.2L340.2,352l-84.4-84.2l-84,83.8L160,339.8l84-83.8l-84-83.8l11.8-11.8l84,83.8l84.4-84.2l11.8,11.8L267.6,256L352,340.2z'/></svg>" !default;
/// @prop - Size of the icon used to clear the input
$input-ios-input-clear-icon-size: 18px !default;
/// @prop - Padding end of the input with clear input /// @prop - Padding end of the input with clear input
$input-ios-input-clear-padding-end: ($input-ios-input-clear-icon-width + $item-ios-padding-end) !default; $input-ios-input-clear-padding-end: ($input-ios-input-clear-icon-width + $item-ios-padding-end) !default;

View File

@ -21,11 +21,7 @@
--padding-start: 0; --padding-start: 0;
} }
.input-clear-icon { .input-clear-icon ion-icon {
@include svg-background-image($input-md-input-clear-icon-svg); width: 22px;
height: 22px;
width: $input-md-input-clear-icon-width;
height: $input-md-input-clear-icon-width;
background-size: $input-md-input-clear-icon-size;
} }

View File

@ -22,15 +22,6 @@ $input-md-padding-start: ($item-md-padding-start * 0.5) !defau
/// @prop - Width of the icon used to clear the input /// @prop - Width of the icon used to clear the input
$input-md-input-clear-icon-width: 30px !default; $input-md-input-clear-icon-width: 30px !default;
/// @prop - Color of the icon used to clear the input
$input-md-input-clear-icon-color: $text-color-step-400 !default;
/// @prop - Icon used to clear the input
$input-md-input-clear-icon-svg: "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><polygon fill='" + $input-md-input-clear-icon-color + "' points='405,136.798 375.202,107 256,226.202 136.798,107 107,136.798 226.202,256 107,375.202 136.798,405 256,285.798 375.202,405 405,375.202 285.798,256'/></svg>" !default;
/// @prop - Size of the icon used to clear the input
$input-md-input-clear-icon-size: 22px !default;
/// @prop - Placeholder Text color of the input /// @prop - Placeholder Text color of the input
$input-md-placeholder-color: $placeholder-text-color !default; $input-md-placeholder-color: $placeholder-text-color !default;

View File

@ -143,6 +143,14 @@
@include padding(0); @include padding(0);
@include background-position(center); @include background-position(center);
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
border: 0; border: 0;
outline: none; outline: none;
@ -154,6 +162,10 @@
appearance: none; appearance: none;
} }
.input-clear-icon ion-icon {
color: $text-color-step-400;
}
/** /**
* Normally, we would not want to use :focus * Normally, we would not want to use :focus
* here because that would mean tapping the button * here because that would mean tapping the button

View File

@ -1,5 +1,6 @@
import type { ComponentInterface, EventEmitter } from '@stencil/core'; import type { ComponentInterface, EventEmitter } from '@stencil/core';
import { Build, Component, Element, Event, Host, Method, Prop, State, Watch, h } from '@stencil/core'; import { Build, Component, Element, Event, Host, Method, Prop, State, Watch, h } from '@stencil/core';
import { closeCircle, closeSharp } from 'ionicons/icons';
import { getIonMode } from '../../global/ionic-global'; import { getIonMode } from '../../global/ionic-global';
import type { import type {
@ -499,7 +500,9 @@ export class Input implements ComponentInterface {
ev.preventDefault(); ev.preventDefault();
}} }}
onClick={this.clearTextInput} onClick={this.clearTextInput}
/> >
<ion-icon aria-hidden="true" icon={mode === 'ios' ? closeCircle : closeSharp}></ion-icon>
</button>
)} )}
</Host> </Host>
); );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -4,6 +4,7 @@ import { Component, Element, Event, Host, Method, Prop, State, Watch, h } from '
import { getIonMode } from '../../global/ionic-global'; import { getIonMode } from '../../global/ionic-global';
import type { Gesture, GestureDetail, ItemReorderEventDetail } from '../../interface'; import type { Gesture, GestureDetail, ItemReorderEventDetail } from '../../interface';
import { findClosestIonContent, getScrollElement } from '../../utils/content'; import { findClosestIonContent, getScrollElement } from '../../utils/content';
import { raf } from '../../utils/helpers';
import { hapticSelectionChanged, hapticSelectionEnd, hapticSelectionStart } from '../../utils/native/haptic'; import { hapticSelectionChanged, hapticSelectionEnd, hapticSelectionStart } from '../../utils/native/haptic';
const enum ReorderGroupState { const enum ReorderGroupState {
@ -97,7 +98,7 @@ export class ReorderGroup implements ComponentInterface {
*/ */
@Method() @Method()
complete(listOrReorder?: boolean | any[]): Promise<any> { complete(listOrReorder?: boolean | any[]): Promise<any> {
return Promise.resolve(this.completeSync(listOrReorder)); return Promise.resolve(this.completeReorder(listOrReorder));
} }
private canStart(ev: GestureDetail): boolean { private canStart(ev: GestureDetail): boolean {
@ -200,19 +201,19 @@ export class ReorderGroup implements ComponentInterface {
const fromIndex = indexForItem(selectedItemEl); const fromIndex = indexForItem(selectedItemEl);
if (toIndex === fromIndex) { if (toIndex === fromIndex) {
this.completeSync(); this.completeReorder();
} else { } else {
this.ionItemReorder.emit({ this.ionItemReorder.emit({
from: fromIndex, from: fromIndex,
to: toIndex, to: toIndex,
complete: this.completeSync.bind(this), complete: this.completeReorder.bind(this),
}); });
} }
hapticSelectionEnd(); hapticSelectionEnd();
} }
private completeSync(listOrReorder?: boolean | any[]): any { private completeReorder(listOrReorder?: boolean | any[]): any {
const selectedItemEl = this.selectedItemEl; const selectedItemEl = this.selectedItemEl;
if (selectedItemEl && this.state === ReorderGroupState.Complete) { if (selectedItemEl && this.state === ReorderGroupState.Complete) {
const children = this.el.children as any; const children = this.el.children as any;
@ -220,20 +221,29 @@ export class ReorderGroup implements ComponentInterface {
const toIndex = this.lastToIndex; const toIndex = this.lastToIndex;
const fromIndex = indexForItem(selectedItemEl); const fromIndex = indexForItem(selectedItemEl);
if (toIndex !== fromIndex && (listOrReorder === undefined || listOrReorder === true)) { /**
const ref = fromIndex < toIndex ? children[toIndex + 1] : children[toIndex]; * insertBefore and setting the transform
* needs to happen in the same frame otherwise
* there will be a duplicate transition. This primarily
* impacts Firefox where insertBefore and transform operations
* are happening in two separate frames.
*/
raf(() => {
if (toIndex !== fromIndex && (listOrReorder === undefined || listOrReorder === true)) {
const ref = fromIndex < toIndex ? children[toIndex + 1] : children[toIndex];
this.el.insertBefore(selectedItemEl, ref); this.el.insertBefore(selectedItemEl, ref);
} }
for (let i = 0; i < len; i++) {
children[i].style['transform'] = '';
}
});
if (Array.isArray(listOrReorder)) { if (Array.isArray(listOrReorder)) {
listOrReorder = reorderArray(listOrReorder, fromIndex, toIndex); listOrReorder = reorderArray(listOrReorder, fromIndex, toIndex);
} }
for (let i = 0; i < len; i++) {
children[i].style['transform'] = '';
}
selectedItemEl.style.transition = ''; selectedItemEl.style.transition = '';
selectedItemEl.classList.remove(ITEM_REORDER_SELECTED); selectedItemEl.classList.remove(ITEM_REORDER_SELECTED);
this.selectedItemEl = undefined; this.selectedItemEl = undefined;

View File

@ -201,9 +201,15 @@
// Segment Button: Toolbar w/ Color // Segment Button: Toolbar w/ Color
// -------------------------------------------------- // --------------------------------------------------
// Do not use the global or local CSS variable if the toolbar has a color // Toolbar with Color, Checked
/**
* Use the contrast color as background since
* since the text color is the base color. Otherwise
* we will have contrast issues when using light/medium/dark
* palettes across light and dark mode.
*/
:host(.in-toolbar-color) .segment-button-indicator-background { :host(.in-toolbar-color) .segment-button-indicator-background {
background: #fff; background: #{current-color(contrast)};
} }
// Toolbar with Color, Default Segment // Toolbar with Color, Default Segment

View File

@ -31,6 +31,27 @@ test.describe('segment: toolbar', () => {
<ion-segment-button value="c" disabled="true">Third</ion-segment-button> <ion-segment-button value="c" disabled="true">Third</ion-segment-button>
</ion-segment> </ion-segment>
</ion-toolbar> </ion-toolbar>
<ion-toolbar color="light">
<ion-segment value="a">
<ion-segment-button value="a">First</ion-segment-button>
<ion-segment-button value="b">Second</ion-segment-button>
<ion-segment-button value="c" disabled="true">Third</ion-segment-button>
</ion-segment>
</ion-toolbar>
<ion-toolbar color="medium">
<ion-segment value="a">
<ion-segment-button value="a">First</ion-segment-button>
<ion-segment-button value="b">Second</ion-segment-button>
<ion-segment-button value="c" disabled="true">Third</ion-segment-button>
</ion-segment>
</ion-toolbar>
<ion-toolbar color="dark">
<ion-segment value="a">
<ion-segment-button value="a">First</ion-segment-button>
<ion-segment-button value="b">Second</ion-segment-button>
<ion-segment-button value="c" disabled="true">Third</ion-segment-button>
</ion-segment>
</ion-toolbar>
</ion-header> </ion-header>
`); `);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,32 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('split-pane: basic', async () => {
const page = await newE2EPage({
url: '/src/components/split-pane/test/basic?ionic:_testing=true',
});
const screenshotCompares = [];
const MIN_WIDTH = '#side-min-width';
const MAX_WIDTH = '#side-max-width';
const WIDTH = '#side-width';
screenshotCompares.push(await page.compareScreenshot());
await page.click(MIN_WIDTH);
screenshotCompares.push(await page.compareScreenshot());
await page.click(MIN_WIDTH);
await page.click(MAX_WIDTH);
screenshotCompares.push(await page.compareScreenshot());
await page.click(MAX_WIDTH);
await page.click(WIDTH);
screenshotCompares.push(await page.compareScreenshot());
for (const screenshotCompare of screenshotCompares) {
expect(screenshotCompare).toMatchScreenshot();
}
});

View File

@ -12,40 +12,24 @@
<script src="../../../../../scripts/testing/scripts.js"></script> <script src="../../../../../scripts/testing/scripts.js"></script>
<script nomodule src="../../../../../dist/ionic/ionic.js"></script> <script nomodule src="../../../../../dist/ionic/ionic.js"></script>
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script> <script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
<style>
ion-split-pane {
--side-width: 200px;
--side-min-width: 200px;
}
</style>
</head> </head>
<body> <body>
<ion-app> <ion-app>
<ion-split-pane id="splitPane" content-id="split-content"> <ion-split-pane id="splitPane" content-id="split-content">
<ion-menu side="start" content-id="split-content"> <ion-menu side="start" content-id="split-content">
<ion-header> <ion-header>
<ion-toolbar color="secondary"> <ion-toolbar color="secondary">
<ion-title>Left Menu</ion-title> <ion-title>Menu</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content> <ion-content class="ion-padding"> Menu Content </ion-content>
<ion-list>
<ion-item>Open end Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
<ion-item>Close Menu</ion-item>
</ion-list>
</ion-content>
<ion-footer>
<ion-toolbar color="secondary">
<ion-title>Footer</ion-title>
</ion-toolbar>
</ion-footer>
</ion-menu> </ion-menu>
<div class="ion-page" id="split-content"> <div class="ion-page" id="split-content">
@ -53,88 +37,15 @@
<ion-toolbar> <ion-toolbar>
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-menu-button></ion-menu-button> <ion-menu-button></ion-menu-button>
<ion-menu-button auto-hide="false"></ion-menu-button>
</ion-buttons> </ion-buttons>
<ion-title>Navigation</ion-title> <ion-title>Content</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content class="ion-padding"> <ion-content class="ion-padding"> Main Content </ion-content>
<h1>Page 1</h1>
<ion-button onclick="menu()">Disable/enable menu</ion-button>
<f></f>
<f></f>
<f></f>
<f></f>
<ion-item>
<ion-label>Toggle Side Min Width</ion-label>
<ion-toggle id="side-min-width"></ion-toggle>
</ion-item>
<ion-item>
<ion-label>Toggle Side Max Width</ion-label>
<ion-toggle id="side-max-width"></ion-toggle>
</ion-item>
<ion-item>
<ion-label>Toggle Side Fixed Width</ion-label>
<ion-toggle id="side-width"></ion-toggle>
</ion-item>
</ion-content>
</div> </div>
</ion-split-pane> </ion-split-pane>
</ion-app> </ion-app>
<ion-menu-controller></ion-menu-controller>
<script>
const sideMinWidth = document.querySelector('ion-toggle#side-min-width');
const sideMaxWidth = document.querySelector('ion-toggle#side-max-width');
const sideWidth = document.querySelector('ion-toggle#side-width');
const splitPane = document.querySelector('ion-split-pane');
sideMinWidth.addEventListener('ionChange', () => splitPane.classList.toggle('side-min-width'));
sideMaxWidth.addEventListener('ionChange', () => splitPane.classList.toggle('side-max-width'));
sideWidth.addEventListener('ionChange', () => splitPane.classList.toggle('side-width'));
const menuCtrl = document.querySelector('ion-menu-controller');
function openStart() {
menuCtrl.open('start');
}
async function menu() {
menuCtrl.enable(!(await menuCtrl.isEnabled()));
}
</script>
<style>
.side-width {
--side-width: 150px;
--side-min-width: 150px;
}
.side-min-width {
--side-min-width: 500px;
}
.side-max-width {
--side-max-width: 75px;
--side-min-width: 0px;
}
f {
display: block;
height: 150px;
width: 150px;
background-color: blue;
margin: 15px auto;
}
f:last-child {
background-color: red;
}
</style>
</body> </body>
</html> </html>

View File

@ -0,0 +1,28 @@
import { expect } from '@playwright/test';
import { test, Viewports } from '@utils/test/playwright';
test.describe('split-pane: basic', () => {
test('should render on the correct side', async ({ page }) => {
await page.setViewportSize(Viewports.large);
await page.goto(`/src/components/split-pane/test/basic`);
expect(await page.screenshot({ animations: 'disabled' })).toMatchSnapshot(
`split-pane-${page.getSnapshotSettings()}.png`
);
});
test('should collapse on smaller viewports', async ({ page, skip }) => {
skip.rtl();
await page.goto(`/src/components/split-pane/test/basic`);
const menu = page.locator('ion-menu');
await expect(menu).toBeHidden();
});
test('should expand on larger viewports', async ({ page, skip }) => {
skip.rtl();
await page.setViewportSize(Viewports.large);
await page.goto(`/src/components/split-pane/test/basic`);
const menu = page.locator('ion-menu');
await expect(menu).toBeVisible();
});
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -5,4 +5,9 @@ export const Viewports = {
height: 900, height: 900,
}, },
}, },
// Based off https://github.com/ionic-team/ionic-framework/blob/2fe23d9d46c3593843c781c57340332e5a86fd64/core/src/components/split-pane/split-pane.tsx#L9-L13
large: {
width: 992,
height: 768,
},
}; };

View File

@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic-docs/compare/v6.3.8...v6.3.9) (2022-11-30)
**Note:** Version bump only for package @ionic/docs
## [6.3.8](https://github.com/ionic-team/ionic-docs/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic-docs/compare/v6.3.7...v6.3.8) (2022-11-22)
**Note:** Version bump only for package @ionic/docs **Note:** Version bump only for package @ionic/docs

View File

@ -1,12 +1,12 @@
{ {
"name": "@ionic/docs", "name": "@ionic/docs",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/docs", "name": "@ionic/docs",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT" "license": "MIT"
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/docs", "name": "@ionic/docs",
"version": "6.3.8", "version": "6.3.9",
"description": "Pre-packaged API documentation for the Ionic docs.", "description": "Pre-packaged API documentation for the Ionic docs.",
"main": "core.json", "main": "core.json",
"types": "core.d.ts", "types": "core.d.ts",

View File

@ -5,5 +5,5 @@
"angular", "angular",
"packages/*" "packages/*"
], ],
"version": "6.3.8" "version": "6.3.9"
} }

View File

@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic/compare/v6.3.8...v6.3.9) (2022-11-30)
**Note:** Version bump only for package @ionic/angular-server
## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22)
**Note:** Version bump only for package @ionic/angular-server **Note:** Version bump only for package @ionic/angular-server

View File

@ -1,12 +1,12 @@
{ {
"name": "@ionic/angular-server", "name": "@ionic/angular-server",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/angular-server", "name": "@ionic/angular-server",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@angular-eslint/eslint-plugin": "^12.6.1", "@angular-eslint/eslint-plugin": "^12.6.1",
@ -18,7 +18,7 @@
"@angular/platform-browser": "^12.0.0", "@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.2.10", "@angular/platform-browser-dynamic": "^12.2.10",
"@angular/platform-server": "^12.0.0", "@angular/platform-server": "^12.0.0",
"@ionic/core": "^6.3.8", "@ionic/core": "^6.3.9",
"@ionic/eslint-config": "^0.3.0", "@ionic/eslint-config": "^0.3.0",
"@ionic/prettier-config": "^2.0.0", "@ionic/prettier-config": "^2.0.0",
"@typescript-eslint/eslint-plugin": "^5.2.0", "@typescript-eslint/eslint-plugin": "^5.2.0",
@ -786,9 +786,9 @@
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/@ionic/core": { "node_modules/@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
@ -7103,9 +7103,9 @@
"dev": true "dev": true
}, },
"@ionic/core": { "@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"dev": true, "dev": true,
"requires": { "requires": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/angular-server", "name": "@ionic/angular-server",
"version": "6.3.8", "version": "6.3.9",
"description": "Angular SSR Module for Ionic", "description": "Angular SSR Module for Ionic",
"keywords": [ "keywords": [
"ionic", "ionic",
@ -55,7 +55,7 @@
"@angular/platform-browser": "^12.0.0", "@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.2.10", "@angular/platform-browser-dynamic": "^12.2.10",
"@angular/platform-server": "^12.0.0", "@angular/platform-server": "^12.0.0",
"@ionic/core": "^6.3.8", "@ionic/core": "^6.3.9",
"@ionic/eslint-config": "^0.3.0", "@ionic/eslint-config": "^0.3.0",
"@ionic/prettier-config": "^2.0.0", "@ionic/prettier-config": "^2.0.0",
"@typescript-eslint/eslint-plugin": "^5.2.0", "@typescript-eslint/eslint-plugin": "^5.2.0",

View File

@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic/compare/v6.3.8...v6.3.9) (2022-11-30)
**Note:** Version bump only for package @ionic/react-router
## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22)
**Note:** Version bump only for package @ionic/react-router **Note:** Version bump only for package @ionic/react-router

View File

@ -1,15 +1,15 @@
{ {
"name": "@ionic/react-router", "name": "@ionic/react-router",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/react-router", "name": "@ionic/react-router",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ionic/react": "^6.3.8", "@ionic/react": "^6.3.9",
"tslib": "*" "tslib": "*"
}, },
"devDependencies": { "devDependencies": {
@ -147,9 +147,9 @@
} }
}, },
"node_modules/@ionic/core": { "node_modules/@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"dependencies": { "dependencies": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
@ -157,11 +157,11 @@
} }
}, },
"node_modules/@ionic/react": { "node_modules/@ionic/react": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.3.9.tgz",
"integrity": "sha512-ARL8h/URDgBVeF3gOuWAwhHPbw1OPNww6HyHeLJBSpQeU4EnJ0252aKuod90Djo+cAhyHkwaE5XwEmp5IDK9YQ==", "integrity": "sha512-a++eW44c7N2hb/dR7UOehQ/a/e+DuqnQOlMBEt1ScaYQMEVMWb2Qj0LKNFH48VV/XI8P5PeZq42981pJU7HjVw==",
"dependencies": { "dependencies": {
"@ionic/core": "^6.3.7", "@ionic/core": "6.3.9",
"ionicons": "^6.0.2", "ionicons": "^6.0.2",
"tslib": "*" "tslib": "*"
}, },
@ -1145,9 +1145,9 @@
} }
}, },
"@ionic/core": { "@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"requires": { "requires": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
@ -1155,11 +1155,11 @@
} }
}, },
"@ionic/react": { "@ionic/react": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.3.9.tgz",
"integrity": "sha512-ARL8h/URDgBVeF3gOuWAwhHPbw1OPNww6HyHeLJBSpQeU4EnJ0252aKuod90Djo+cAhyHkwaE5XwEmp5IDK9YQ==", "integrity": "sha512-a++eW44c7N2hb/dR7UOehQ/a/e+DuqnQOlMBEt1ScaYQMEVMWb2Qj0LKNFH48VV/XI8P5PeZq42981pJU7HjVw==",
"requires": { "requires": {
"@ionic/core": "^6.3.7", "@ionic/core": "6.3.9",
"ionicons": "^6.0.2", "ionicons": "^6.0.2",
"tslib": "*" "tslib": "*"
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/react-router", "name": "@ionic/react-router",
"version": "6.3.8", "version": "6.3.9",
"description": "React Router wrapper for @ionic/react", "description": "React Router wrapper for @ionic/react",
"keywords": [ "keywords": [
"ionic", "ionic",
@ -36,7 +36,7 @@
"dist/" "dist/"
], ],
"dependencies": { "dependencies": {
"@ionic/react": "^6.3.8", "@ionic/react": "^6.3.9",
"tslib": "*" "tslib": "*"
}, },
"peerDependencies": { "peerDependencies": {

View File

@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic/compare/v6.3.8...v6.3.9) (2022-11-30)
**Note:** Version bump only for package @ionic/react
## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22)

View File

@ -1,15 +1,15 @@
{ {
"name": "@ionic/react", "name": "@ionic/react",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/react", "name": "@ionic/react",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ionic/core": "^6.3.8", "@ionic/core": "^6.3.9",
"ionicons": "^6.0.2", "ionicons": "^6.0.2",
"tslib": "*" "tslib": "*"
}, },
@ -607,9 +607,9 @@
} }
}, },
"node_modules/@ionic/core": { "node_modules/@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"dependencies": { "dependencies": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
@ -9522,9 +9522,9 @@
} }
}, },
"@ionic/core": { "@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"requires": { "requires": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/react", "name": "@ionic/react",
"version": "6.3.8", "version": "6.3.9",
"description": "React specific wrapper for @ionic/core", "description": "React specific wrapper for @ionic/core",
"keywords": [ "keywords": [
"ionic", "ionic",
@ -40,7 +40,7 @@
"css/" "css/"
], ],
"dependencies": { "dependencies": {
"@ionic/core": "^6.3.8", "@ionic/core": "^6.3.9",
"ionicons": "^6.0.2", "ionicons": "^6.0.2",
"tslib": "*" "tslib": "*"
}, },

View File

@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [6.3.9](https://github.com/ionic-team/ionic/compare/v6.3.8...v6.3.9) (2022-11-30)
**Note:** Version bump only for package @ionic/vue-router
## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22) ## [6.3.8](https://github.com/ionic-team/ionic/compare/v6.3.7...v6.3.8) (2022-11-22)
**Note:** Version bump only for package @ionic/vue-router **Note:** Version bump only for package @ionic/vue-router

View File

@ -1,15 +1,15 @@
{ {
"name": "@ionic/vue-router", "name": "@ionic/vue-router",
"version": "6.3.8", "version": "6.3.9",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ionic/vue-router", "name": "@ionic/vue-router",
"version": "6.3.8", "version": "6.3.9",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ionic/vue": "^6.3.8" "@ionic/vue": "^6.3.9"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^28.1.1", "@types/jest": "^28.1.1",
@ -578,9 +578,9 @@
"dev": true "dev": true
}, },
"node_modules/@ionic/core": { "node_modules/@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"dependencies": { "dependencies": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
@ -588,11 +588,11 @@
} }
}, },
"node_modules/@ionic/vue": { "node_modules/@ionic/vue": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.3.9.tgz",
"integrity": "sha512-l3vxlrwNroSpb0US/Yqoie67f4jAGb/jhN7J4kdb19/9EjEH4z5lPTEH/XgiYQ1dYokPlT2zZeP6SImgwozGoA==", "integrity": "sha512-BuUHy6fgNcAUGgPmRA3wy+yOYUXh/AwDFBwSdUX1Hhud+oPRQuJK4xLrlO/9Jg+gaaTgFf9nm8X820b8HdfSSg==",
"dependencies": { "dependencies": {
"@ionic/core": "^6.3.7", "@ionic/core": "6.3.9",
"ionicons": "^6.0.2" "ionicons": "^6.0.2"
} }
}, },
@ -5221,9 +5221,9 @@
"dev": true "dev": true
}, },
"@ionic/core": { "@ionic/core": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.9.tgz",
"integrity": "sha512-mpawxkbjx/lBaWMYexvEHzKP9+03gKKe/CXHGnBh7z9WHpDuR+H9jdojjiHkakoN79TcdM3G+BYMZ0tVGeeJhw==", "integrity": "sha512-0JlCGIgLASoxZ6XXEkhCMQzdedvzqI7lsD6zBYPkUyMFOMTff7fZdQg1r9v9IQVHW+UCuyM4xc0MT4YOD4/S3A==",
"requires": { "requires": {
"@stencil/core": "^2.18.0", "@stencil/core": "^2.18.0",
"ionicons": "^6.0.4", "ionicons": "^6.0.4",
@ -5231,11 +5231,11 @@
} }
}, },
"@ionic/vue": { "@ionic/vue": {
"version": "6.3.8", "version": "6.3.9",
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.3.8.tgz", "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.3.9.tgz",
"integrity": "sha512-l3vxlrwNroSpb0US/Yqoie67f4jAGb/jhN7J4kdb19/9EjEH4z5lPTEH/XgiYQ1dYokPlT2zZeP6SImgwozGoA==", "integrity": "sha512-BuUHy6fgNcAUGgPmRA3wy+yOYUXh/AwDFBwSdUX1Hhud+oPRQuJK4xLrlO/9Jg+gaaTgFf9nm8X820b8HdfSSg==",
"requires": { "requires": {
"@ionic/core": "^6.3.7", "@ionic/core": "6.3.9",
"ionicons": "^6.0.2" "ionicons": "^6.0.2"
} }
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/vue-router", "name": "@ionic/vue-router",
"version": "6.3.8", "version": "6.3.9",
"description": "Vue Router integration for @ionic/vue", "description": "Vue Router integration for @ionic/vue",
"scripts": { "scripts": {
"test.spec": "jest", "test.spec": "jest",
@ -43,7 +43,7 @@
}, },
"homepage": "https://github.com/ionic-team/ionic#readme", "homepage": "https://github.com/ionic-team/ionic#readme",
"dependencies": { "dependencies": {
"@ionic/vue": "^6.3.8" "@ionic/vue": "^6.3.9"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^28.1.1", "@types/jest": "^28.1.1",

Some files were not shown because too many files have changed in this diff Show More