Merge remote-tracking branch 'origin/main' into sync-6.2-with-main
12
CHANGELOG.md
@ -3,6 +3,18 @@
|
|||||||
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.1.13](https://github.com/ionic-team/ionic-framework/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **all:** long press now preserves activated state ([#25551](https://github.com/ionic-team/ionic-framework/issues/25551)) ([a8286f6](https://github.com/ionic-team/ionic-framework/commit/a8286f6e42f734a027416ac6cd659e3dce4edccb)), closes [#25544](https://github.com/ionic-team/ionic-framework/issues/25544)
|
||||||
|
* **datetime:** typing in time now updates value ([#25561](https://github.com/ionic-team/ionic-framework/issues/25561)) ([1b1b1a3](https://github.com/ionic-team/ionic-framework/commit/1b1b1a3800c4d044b4a3e7418f534e9271770ec6)), closes [#25560](https://github.com/ionic-team/ionic-framework/issues/25560)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic-framework/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic-framework/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
|
|
||||||
|
@ -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.1.13](https://github.com/ionic-team/ionic/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/angular
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
|
|
||||||
|
18
angular/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.1.12",
|
"@ionic/core": "^6.1.13",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"tslib": "^2.0.0"
|
"tslib": "^2.0.0"
|
||||||
},
|
},
|
||||||
@ -1023,9 +1023,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.13.tgz",
|
||||||
"integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==",
|
"integrity": "sha512-CZ5P1El/bk6ZDKqey/67/ZgpUhVQTr+WyhGxFTnPCsIWg+VfOogQ7rHCkEqWfXJqdzNPsvtH5/Lck4qoD0nCkg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
"ionicons": "^6.0.2",
|
"ionicons": "^6.0.2",
|
||||||
@ -7939,9 +7939,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.13.tgz",
|
||||||
"integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==",
|
"integrity": "sha512-CZ5P1El/bk6ZDKqey/67/ZgpUhVQTr+WyhGxFTnPCsIWg+VfOogQ7rHCkEqWfXJqdzNPsvtH5/Lck4qoD0nCkg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
"ionicons": "^6.0.2",
|
"ionicons": "^6.0.2",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"description": "Angular specific wrappers for @ionic/core",
|
"description": "Angular specific wrappers for @ionic/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -44,7 +44,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.1.12",
|
"@ionic/core": "^6.1.13",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"tslib": "^2.0.0"
|
"tslib": "^2.0.0"
|
||||||
},
|
},
|
||||||
|
@ -3,6 +3,18 @@
|
|||||||
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.1.13](https://github.com/ionic-team/ionic/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **all:** long press now preserves activated state ([#25551](https://github.com/ionic-team/ionic/issues/25551)) ([a8286f6](https://github.com/ionic-team/ionic/commit/a8286f6e42f734a027416ac6cd659e3dce4edccb)), closes [#25544](https://github.com/ionic-team/ionic/issues/25544)
|
||||||
|
* **datetime:** typing in time now updates value ([#25561](https://github.com/ionic-team/ionic/issues/25561)) ([1b1b1a3](https://github.com/ionic-team/ionic/commit/1b1b1a3800c4d044b4a3e7418f534e9271770ec6)), closes [#25560](https://github.com/ionic-team/ionic/issues/25560)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
|
|
||||||
|
4
core/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"description": "Base components for Ionic",
|
"description": "Base components for Ionic",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
|
30
core/src/components/textarea/test/a11y/textarea.e2e.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import { expect } from '@playwright/test';
|
||||||
|
import { test } from '@utils/test/playwright';
|
||||||
|
|
||||||
|
test.describe('textarea: a11y', () => {
|
||||||
|
test('does not set a default aria-labelledby when there is not a neighboring ion-label', async ({ page }) => {
|
||||||
|
await page.setContent(`<ion-textarea></ion-textarea>`);
|
||||||
|
|
||||||
|
await page.setIonViewport();
|
||||||
|
|
||||||
|
const textarea = page.locator('ion-textarea textarea');
|
||||||
|
const ariaLabelledBy = await textarea.getAttribute('aria-labelledby');
|
||||||
|
|
||||||
|
expect(ariaLabelledBy).toBe(null);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('set a default aria-labelledby when a neighboring ion-label exist', async ({ page }) => {
|
||||||
|
await page.setContent(`
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>A11y Test</ion-label>
|
||||||
|
<ion-textarea></ion-textarea>
|
||||||
|
</ion-item>
|
||||||
|
`);
|
||||||
|
|
||||||
|
const label = page.locator('ion-label');
|
||||||
|
const textarea = page.locator('ion-textarea textarea');
|
||||||
|
const ariaLabelledBy = await textarea.getAttribute('aria-labelledby');
|
||||||
|
|
||||||
|
expect(ariaLabelledBy).toBe(await label.getAttribute('id'));
|
||||||
|
});
|
||||||
|
});
|
@ -1,31 +0,0 @@
|
|||||||
import { newSpecPage } from '@stencil/core/testing';
|
|
||||||
|
|
||||||
import { Item } from '../../../item/item';
|
|
||||||
import { Label } from '../../../label/label';
|
|
||||||
import { Textarea } from '../../textarea';
|
|
||||||
|
|
||||||
describe('Textarea a11y', () => {
|
|
||||||
it('does not set a default aria-labelledby when there is not a neighboring ion-label', async () => {
|
|
||||||
const page = await newSpecPage({
|
|
||||||
components: [Textarea, Item, Label],
|
|
||||||
html: `<ion-textarea></ion-textarea>`,
|
|
||||||
});
|
|
||||||
|
|
||||||
const ariaLabelledBy = page.body.querySelector('ion-textarea textarea').getAttribute('aria-labelledby');
|
|
||||||
expect(ariaLabelledBy).toBe(null);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('set a default aria-labelledby when a neighboring ion-label exists', async () => {
|
|
||||||
const page = await newSpecPage({
|
|
||||||
components: [Textarea, Item, Label],
|
|
||||||
html: `<ion-item>
|
|
||||||
<ion-label>A11y Test</ion-label>
|
|
||||||
<ion-textarea></ion-textarea>
|
|
||||||
</ion-item>`,
|
|
||||||
});
|
|
||||||
|
|
||||||
const label = page.body.querySelector('ion-label');
|
|
||||||
const ariaLabelledBy = page.body.querySelector('ion-textarea textarea').getAttribute('aria-labelledby');
|
|
||||||
expect(ariaLabelledBy).toBe(label.id);
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,18 +0,0 @@
|
|||||||
import { newE2EPage } from '@stencil/core/testing';
|
|
||||||
|
|
||||||
test('textarea: autogrow', async () => {
|
|
||||||
const page = await newE2EPage({
|
|
||||||
url: '/src/components/textarea/test/autogrow?ionic:_testing=true',
|
|
||||||
});
|
|
||||||
|
|
||||||
const compares = [];
|
|
||||||
|
|
||||||
compares.push(await page.compareScreenshot());
|
|
||||||
|
|
||||||
await page.waitForTimeout(250);
|
|
||||||
compares.push(await page.compareScreenshot('value changed'));
|
|
||||||
|
|
||||||
for (const compare of compares) {
|
|
||||||
expect(compare).toMatchScreenshot();
|
|
||||||
}
|
|
||||||
});
|
|
50
core/src/components/textarea/test/autogrow/textarea.e2e.ts
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import { expect } from '@playwright/test';
|
||||||
|
import { test } from '@utils/test/playwright';
|
||||||
|
|
||||||
|
test.describe('textarea: autogrow', () => {
|
||||||
|
test.skip('should not have visual regressions', async ({ page }) => {
|
||||||
|
await page.goto(`/src/components/textarea/test/autogrow`);
|
||||||
|
|
||||||
|
await page.waitForChanges();
|
||||||
|
|
||||||
|
await page.setIonViewport();
|
||||||
|
|
||||||
|
expect(await page.screenshot()).toMatchSnapshot(`textarea-autogrow-diff-${page.getSnapshotSettings()}.png`);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should grow when typing', async ({ page }) => {
|
||||||
|
await page.setContent(
|
||||||
|
`
|
||||||
|
<ion-app>
|
||||||
|
<ion-content>
|
||||||
|
<ion-list>
|
||||||
|
<ion-item>
|
||||||
|
<ion-textarea auto-grow="true"></ion-textarea>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
|
</ion-content>
|
||||||
|
</ion-app>`
|
||||||
|
);
|
||||||
|
|
||||||
|
const textarea = await page.waitForSelector('ion-textarea');
|
||||||
|
|
||||||
|
await textarea.click();
|
||||||
|
|
||||||
|
await textarea.type('Now, this is a story all about how');
|
||||||
|
|
||||||
|
await page.setIonViewport();
|
||||||
|
|
||||||
|
expect(await textarea.screenshot()).toMatchSnapshot(`textarea-autogrow-initial-${page.getSnapshotSettings()}.png`);
|
||||||
|
|
||||||
|
await textarea.type(
|
||||||
|
[
|
||||||
|
`\nMy life got flipped-turned upside down`,
|
||||||
|
`And I'd like to take a minute`,
|
||||||
|
`Just sit right there`,
|
||||||
|
`I'll tell you how I became the prince of a town called Bel-Air`,
|
||||||
|
].join('\n')
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(await textarea.screenshot()).toMatchSnapshot(`textarea-autogrow-after-${page.getSnapshotSettings()}.png`);
|
||||||
|
});
|
||||||
|
});
|
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 8.1 KiB |
@ -1,18 +0,0 @@
|
|||||||
import { newE2EPage } from '@stencil/core/testing';
|
|
||||||
|
|
||||||
test('textarea: basic', async () => {
|
|
||||||
const page = await newE2EPage({
|
|
||||||
url: '/src/components/textarea/test/basic?ionic:_testing=true',
|
|
||||||
});
|
|
||||||
|
|
||||||
const compares = [];
|
|
||||||
|
|
||||||
compares.push(await page.compareScreenshot());
|
|
||||||
|
|
||||||
await page.waitForTimeout(250);
|
|
||||||
compares.push(await page.compareScreenshot('value changed'));
|
|
||||||
|
|
||||||
for (const compare of compares) {
|
|
||||||
expect(compare).toMatchScreenshot();
|
|
||||||
}
|
|
||||||
});
|
|
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
<ion-item>
|
<ion-item>
|
||||||
<ion-label color="primary" position="floating">Floating Label</ion-label>
|
<ion-label color="primary" position="floating">Floating Label</ion-label>
|
||||||
<ion-textarea id="timeout"></ion-textarea>
|
<ion-textarea></ion-textarea>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
<ion-item>
|
<ion-item>
|
||||||
@ -68,10 +68,11 @@
|
|||||||
<ion-textarea clear-on-edit="true"></ion-textarea>
|
<ion-textarea clear-on-edit="true"></ion-textarea>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
<ion-item>
|
<!-- TODO: Re-add auto grow with PR#24205 -->
|
||||||
|
<!-- <ion-item>
|
||||||
<ion-label color="primary">Autogrow</ion-label>
|
<ion-label color="primary">Autogrow</ion-label>
|
||||||
<ion-textarea auto-grow="true"></ion-textarea>
|
<ion-textarea auto-grow="true"></ion-textarea>
|
||||||
</ion-item>
|
</ion-item> -->
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
||||||
<div class="ion-text-center">
|
<div class="ion-text-center">
|
||||||
@ -88,11 +89,6 @@
|
|||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var textarea = document.getElementById('timeout');
|
|
||||||
setTimeout(() => {
|
|
||||||
textarea.value = 'timeout';
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
function toggleBoolean(id, prop) {
|
function toggleBoolean(id, prop) {
|
||||||
var el = document.getElementById(id);
|
var el = document.getElementById(id);
|
||||||
|
|
||||||
|
51
core/src/components/textarea/test/basic/textarea.e2e.ts
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
import { expect } from '@playwright/test';
|
||||||
|
import { test } from '@utils/test/playwright';
|
||||||
|
|
||||||
|
test.describe('textarea: basic', () => {
|
||||||
|
test('should not have visual regressions', async ({ page }) => {
|
||||||
|
await page.goto(`/src/components/textarea/test/basic`);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The auto grow implementation uses a requestAnimationFrame to append styles to the textarea
|
||||||
|
* on load. We need to wait for changes otherwise the screenshot can be taken before the
|
||||||
|
* styles are applied.
|
||||||
|
*/
|
||||||
|
await page.waitForChanges();
|
||||||
|
|
||||||
|
await page.setIonViewport();
|
||||||
|
|
||||||
|
expect(await page.screenshot()).toMatchSnapshot(`textarea-diff-${page.getSnapshotSettings()}.png`);
|
||||||
|
});
|
||||||
|
|
||||||
|
test.describe('with floating labels', () => {
|
||||||
|
/**
|
||||||
|
* Verifies the display of a floating label above an `ion-textarea`.
|
||||||
|
* Captures a screenshot of the initial state (without a value) and verifies
|
||||||
|
* that the label translates correctly after the value is set.
|
||||||
|
*/
|
||||||
|
test('should not have visual regressions', async ({ page }) => {
|
||||||
|
await page.setContent(`
|
||||||
|
<ion-item>
|
||||||
|
<ion-label position="floating">Floating Label</ion-label>
|
||||||
|
<ion-textarea></ion-textarea>
|
||||||
|
</ion-item>`);
|
||||||
|
|
||||||
|
const item = page.locator('ion-item');
|
||||||
|
const textarea = page.locator('ion-textarea');
|
||||||
|
|
||||||
|
expect(await item.screenshot()).toMatchSnapshot(
|
||||||
|
`textarea-floating-label-initial-${page.getSnapshotSettings()}.png`
|
||||||
|
);
|
||||||
|
|
||||||
|
await textarea.evaluate((el: HTMLIonTextareaElement) => {
|
||||||
|
el.value = 'Updated value';
|
||||||
|
});
|
||||||
|
|
||||||
|
await page.waitForChanges();
|
||||||
|
|
||||||
|
await page.setIonViewport();
|
||||||
|
|
||||||
|
expect(await item.screenshot()).toMatchSnapshot(`textarea-floating-label-diff-${page.getSnapshotSettings()}.png`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
After Width: | Height: | Size: 120 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 120 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 6.3 KiB |
@ -1,10 +0,0 @@
|
|||||||
import { newE2EPage } from '@stencil/core/testing';
|
|
||||||
|
|
||||||
test('textarea: standalone', async () => {
|
|
||||||
const page = await newE2EPage({
|
|
||||||
url: '/src/components/textarea/test/standalone?ionic:_testing=true',
|
|
||||||
});
|
|
||||||
|
|
||||||
const compare = await page.compareScreenshot();
|
|
||||||
expect(compare).toMatchScreenshot();
|
|
||||||
});
|
|
@ -21,7 +21,7 @@
|
|||||||
<ion-textarea value="thus shuld git spellchuk" spellcheck="true"></ion-textarea>
|
<ion-textarea value="thus shuld git spellchuk" spellcheck="true"></ion-textarea>
|
||||||
<ion-textarea value="thus shuld NOT git spellchuk" spellcheck="false"></ion-textarea>
|
<ion-textarea value="thus shuld NOT git spellchuk" spellcheck="false"></ion-textarea>
|
||||||
<ion-textarea placeholder="Custom" class="custom"></ion-textarea>
|
<ion-textarea placeholder="Custom" class="custom"></ion-textarea>
|
||||||
<ion-textarea id="nowrap" rows="15"></ion-textarea>
|
<ion-textarea id="ascii" rows="15"></ion-textarea>
|
||||||
<ion-textarea placeholder="Auto Grow!" auto-grow="true"></ion-textarea>
|
<ion-textarea placeholder="Auto Grow!" auto-grow="true"></ion-textarea>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@ -30,17 +30,17 @@
|
|||||||
--color: blue;
|
--color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#nowrap {
|
#ascii {
|
||||||
font-size: 8px;
|
font-size: 8px;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
||||||
white-space: nowrap;
|
white-space: pre;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var textarea = document.querySelector('#nowrap');
|
var textarea = document.querySelector('#ascii');
|
||||||
|
|
||||||
textarea.value = `@@@@@@@////////////////@@@(/#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
textarea.value = `@@@@@@@////////////////@@@(/#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
@@@@/////@@@@@@@@@@@@@@@///////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
@@@@/////@@@@@@@@@@@@@@@///////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
15
core/src/components/textarea/test/standalone/textarea.e2e.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { expect } from '@playwright/test';
|
||||||
|
import { test } from '@utils/test/playwright';
|
||||||
|
|
||||||
|
test.describe('textarea: standalone', () => {
|
||||||
|
/**
|
||||||
|
* Verifies `ion-textarea` visual display when used outside of an `ion-app` component.
|
||||||
|
*/
|
||||||
|
test('should not have visual regressions', async ({ page }) => {
|
||||||
|
await page.goto(`/src/components/textarea/test/standalone`);
|
||||||
|
|
||||||
|
await page.setIonViewport();
|
||||||
|
|
||||||
|
expect(await page.screenshot()).toMatchSnapshot(`textarea-standalone-diff-${page.getSnapshotSettings()}.png`);
|
||||||
|
});
|
||||||
|
});
|
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 69 KiB |
@ -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.1.13](https://github.com/ionic-team/ionic-docs/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/docs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic-docs/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic-docs/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/docs
|
**Note:** Version bump only for package @ionic/docs
|
||||||
|
4
docs/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/docs",
|
"name": "@ionic/docs",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/docs",
|
"name": "@ionic/docs",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/docs",
|
"name": "@ionic/docs",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"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",
|
||||||
|
@ -5,5 +5,5 @@
|
|||||||
"angular",
|
"angular",
|
||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
"version": "6.1.12"
|
"version": "6.1.13"
|
||||||
}
|
}
|
||||||
|
@ -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.1.13](https://github.com/ionic-team/ionic/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/angular-server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/angular-server
|
**Note:** Version bump only for package @ionic/angular-server
|
||||||
|
18
packages/angular-server/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"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.1.12",
|
"@ionic/core": "^6.1.13",
|
||||||
"@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.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.13.tgz",
|
||||||
"integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==",
|
"integrity": "sha512-CZ5P1El/bk6ZDKqey/67/ZgpUhVQTr+WyhGxFTnPCsIWg+VfOogQ7rHCkEqWfXJqdzNPsvtH5/Lck4qoD0nCkg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
@ -7103,9 +7103,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.13.tgz",
|
||||||
"integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==",
|
"integrity": "sha512-CZ5P1El/bk6ZDKqey/67/ZgpUhVQTr+WyhGxFTnPCsIWg+VfOogQ7rHCkEqWfXJqdzNPsvtH5/Lck4qoD0nCkg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"description": "Angular SSR Module for Ionic",
|
"description": "Angular SSR Module for Ionic",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -56,7 +56,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.1.12",
|
"@ionic/core": "^6.1.13",
|
||||||
"@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",
|
||||||
|
@ -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.1.13](https://github.com/ionic-team/ionic/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/react-router
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/react-router
|
**Note:** Version bump only for package @ionic/react-router
|
||||||
|
34
packages/react-router/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/react": "^6.1.12",
|
"@ionic/react": "^6.1.13",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -147,9 +147,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.13.tgz",
|
||||||
"integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==",
|
"integrity": "sha512-CZ5P1El/bk6ZDKqey/67/ZgpUhVQTr+WyhGxFTnPCsIWg+VfOogQ7rHCkEqWfXJqdzNPsvtH5/Lck4qoD0nCkg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
"ionicons": "^6.0.2",
|
"ionicons": "^6.0.2",
|
||||||
@ -157,11 +157,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/react": {
|
"node_modules/@ionic/react": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.13.tgz",
|
||||||
"integrity": "sha512-k5Nv63fRCcEXOXl+LBeoO8HoqLHJFRoLj+vRBdlaQm660WYd5wu5MGfrzJq+d/1bd7ZzRJaQxz/jNwYOFThqMw==",
|
"integrity": "sha512-9t1sZuNjWYY5l5XkiNHdN57G2AVB/yYqfECpElOCQqctaZeqivsed9MVIZdkfqReGobvgDHzMmq1s10SS/QzaA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.1.12",
|
"@ionic/core": "^6.1.13",
|
||||||
"ionicons": "^6.0.2",
|
"ionicons": "^6.0.2",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
@ -1157,9 +1157,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.13.tgz",
|
||||||
"integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==",
|
"integrity": "sha512-CZ5P1El/bk6ZDKqey/67/ZgpUhVQTr+WyhGxFTnPCsIWg+VfOogQ7rHCkEqWfXJqdzNPsvtH5/Lck4qoD0nCkg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.16.0",
|
"@stencil/core": "^2.16.0",
|
||||||
"ionicons": "^6.0.2",
|
"ionicons": "^6.0.2",
|
||||||
@ -1167,11 +1167,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ionic/react": {
|
"@ionic/react": {
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.13.tgz",
|
||||||
"integrity": "sha512-k5Nv63fRCcEXOXl+LBeoO8HoqLHJFRoLj+vRBdlaQm660WYd5wu5MGfrzJq+d/1bd7ZzRJaQxz/jNwYOFThqMw==",
|
"integrity": "sha512-9t1sZuNjWYY5l5XkiNHdN57G2AVB/yYqfECpElOCQqctaZeqivsed9MVIZdkfqReGobvgDHzMmq1s10SS/QzaA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@ionic/core": "^6.1.12",
|
"@ionic/core": "^6.1.13",
|
||||||
"ionicons": "^6.0.2",
|
"ionicons": "^6.0.2",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "6.1.12",
|
"version": "6.1.13",
|
||||||
"description": "React Router wrapper for @ionic/react",
|
"description": "React Router wrapper for @ionic/react",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -37,7 +37,7 @@
|
|||||||
"dist/"
|
"dist/"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/react": "^6.1.12",
|
"@ionic/react": "^6.1.13",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -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.1.13](https://github.com/ionic-team/ionic/compare/v6.1.12...v6.1.13) (2022-07-06)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/react
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/react
|
**Note:** Version bump only for package @ionic/react
|
||||||
|