@ionic/core 8.2.3-dev.11721064272.19e3ddfd → 8.2.3-dev.11723022900.1196a7bf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/button.js +1 -1
- package/components/ion-avatar.js +3 -3
- package/components/ion-badge.js +3 -3
- package/components/ion-chip.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-segment.js +3 -11
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +2 -2
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-textarea.js +2 -2
- package/components/ion-thumbnail.js +2 -2
- package/components/ion-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +3 -3
- package/components/ion-toolbar.js +2 -2
- package/components/item.js +3 -3
- package/components/list.js +1 -1
- package/components/select-popover.js +2 -2
- package/components/spinner.js +33 -6
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
- package/dist/cjs/ion-avatar_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-chip.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +6 -6
- package/dist/cjs/ion-segment_2.cjs.entry.js +3 -11
- package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-spinner.cjs.entry.js +30 -4
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +2 -2
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +0 -2
- package/dist/collection/components/avatar/avatar.ionic.css +17 -1
- package/dist/collection/components/avatar/avatar.js +5 -5
- package/dist/collection/components/avatar/test/shape/avatar.e2e.js +7 -0
- package/dist/collection/components/avatar/test/size/avatar.e2e.js +27 -0
- package/dist/collection/components/badge/badge.ionic.css +30 -35
- package/dist/collection/components/badge/badge.ios.css +94 -3
- package/dist/collection/components/badge/badge.md.css +94 -3
- package/dist/collection/components/badge/test/basic/badge.e2e.js +1 -1
- package/dist/collection/components/button/button.ionic.css +41 -2
- package/dist/collection/components/button/test/outline/button.e2e.js +1 -2
- package/dist/collection/components/button/test/states/button.e2e.js +3 -3
- package/dist/collection/components/chip/chip.ionic.css +22 -1
- package/dist/collection/components/chip/test/basic/chip.e2e.js +28 -29
- package/dist/collection/components/input/input.ionic.css +2 -1
- package/dist/collection/components/item/item.ionic.css +346 -52
- package/dist/collection/components/item/item.ios.css +94 -67
- package/dist/collection/components/item/item.md.css +94 -67
- package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +2 -2
- package/dist/collection/components/list/list.ionic.css +1 -0
- package/dist/collection/components/segment/segment.js +3 -11
- package/dist/collection/components/select/select.js +2 -2
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +2 -2
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.common.css +199 -0
- package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +55 -0
- package/dist/collection/components/spinner/spinner.js +40 -3
- package/dist/collection/components/spinner/test/size/spinner.e2e.js +47 -0
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +2 -2
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/themes/ionic/test/colors/theme.e2e.js +120 -0
- package/dist/docs.json +190 -48
- package/dist/esm/ion-app_8.entry.js +4 -4
- package/dist/esm/ion-avatar_3.entry.js +8 -8
- package/dist/esm/ion-button_2.entry.js +1 -1
- package/dist/esm/ion-chip.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +6 -6
- package/dist/esm/ion-segment_2.entry.js +3 -11
- package/dist/esm/ion-select_3.entry.js +5 -5
- package/dist/esm/ion-spinner.entry.js +30 -4
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +2 -2
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/html.html-data.json +25 -29
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-29f4100d.entry.js → p-01ae1aa0.entry.js} +1 -1
- package/dist/ionic/p-1be0295f.entry.js +4 -0
- package/dist/ionic/p-201d8768.system.entry.js +4 -0
- package/dist/ionic/{p-062c1cb9.system.entry.js → p-223bc7dd.system.entry.js} +1 -1
- package/dist/ionic/{p-0595a36c.system.entry.js → p-24592a4d.system.entry.js} +1 -1
- package/dist/ionic/{p-2aa6a169.entry.js → p-28649e61.entry.js} +1 -1
- package/dist/ionic/{p-385a361b.entry.js → p-39a39279.entry.js} +1 -1
- package/dist/ionic/p-40c14f53.system.entry.js +4 -0
- package/dist/ionic/{p-cd6d4c1d.entry.js → p-4346453b.entry.js} +1 -1
- package/dist/ionic/{p-1be0ed0e.system.entry.js → p-45ca3acb.system.entry.js} +2 -2
- package/dist/ionic/p-4b9c6418.system.entry.js +4 -0
- package/dist/ionic/p-4fdbf0ef.entry.js +4 -0
- package/dist/ionic/p-563a8d3b.entry.js +4 -0
- package/dist/ionic/{p-b67ed806.system.entry.js → p-56c72f65.system.entry.js} +1 -1
- package/dist/ionic/p-6d47fa40.entry.js +4 -0
- package/dist/ionic/p-7459eeb7.system.entry.js +4 -0
- package/dist/ionic/{p-da668343.system.entry.js → p-7ab9c88c.system.entry.js} +1 -1
- package/dist/ionic/p-7b590e46.system.js +1 -1
- package/dist/ionic/{p-c0dace15.system.entry.js → p-7dad531c.system.entry.js} +1 -1
- package/dist/ionic/p-81350e4b.system.entry.js +4 -0
- package/dist/ionic/p-8ac5efa9.entry.js +4 -0
- package/dist/ionic/p-a6bb62ea.entry.js +4 -0
- package/dist/ionic/p-b1938594.entry.js +4 -0
- package/dist/ionic/{p-aaf1b71f.entry.js → p-b374abe2.entry.js} +1 -1
- package/dist/ionic/p-b4b44bf9.system.entry.js +4 -0
- package/dist/ionic/{p-61f51286.system.entry.js → p-b5cc6e57.system.entry.js} +1 -1
- package/dist/ionic/p-bbefc52b.system.entry.js +4 -0
- package/dist/ionic/p-c11fdca2.entry.js +4 -0
- package/dist/ionic/{p-adb54d5b.entry.js → p-c23822f8.entry.js} +1 -1
- package/dist/ionic/{p-14ae725a.entry.js → p-d2a580db.entry.js} +1 -1
- package/dist/ionic/p-d774e194.system.entry.js +4 -0
- package/dist/ionic/p-dc8a3888.entry.js +4 -0
- package/dist/ionic/{p-5cc8fa7f.system.entry.js → p-f84ea1e9.system.entry.js} +1 -1
- package/dist/types/components/avatar/avatar.d.ts +7 -4
- package/dist/types/components/segment/segment.d.ts +1 -1
- package/dist/types/components/spinner/spinner.d.ts +11 -0
- package/dist/types/components.d.ts +12 -30
- package/hydrate/index.js +80 -154
- package/package.json +1 -1
- package/components/ion-segment-content.d.ts +0 -11
- package/components/ion-segment-content.js +0 -38
- package/components/ion-segment-view.d.ts +0 -11
- package/components/ion-segment-view.js +0 -86
- package/dist/cjs/ion-segment-content.cjs.entry.js +0 -24
- package/dist/cjs/ion-segment-view.cjs.entry.js +0 -72
- package/dist/collection/components/segment-content/segment-content.css +0 -5
- package/dist/collection/components/segment-content/segment-content.js +0 -22
- package/dist/collection/components/segment-view/segment-view.css +0 -15
- package/dist/collection/components/segment-view/segment-view.js +0 -81
- package/dist/esm/ion-segment-content.entry.js +0 -20
- package/dist/esm/ion-segment-view.entry.js +0 -68
- package/dist/esm-es5/ion-segment-content.entry.js +0 -4
- package/dist/esm-es5/ion-segment-view.entry.js +0 -4
- package/dist/ionic/p-07b804ba.entry.js +0 -4
- package/dist/ionic/p-405559bd.entry.js +0 -4
- package/dist/ionic/p-5839776e.entry.js +0 -4
- package/dist/ionic/p-660cf6f3.system.entry.js +0 -4
- package/dist/ionic/p-6ced0cc0.entry.js +0 -4
- package/dist/ionic/p-6d4534cb.system.entry.js +0 -4
- package/dist/ionic/p-72944d53.system.entry.js +0 -4
- package/dist/ionic/p-7813dead.system.entry.js +0 -4
- package/dist/ionic/p-833593dd.entry.js +0 -4
- package/dist/ionic/p-8ef82205.entry.js +0 -4
- package/dist/ionic/p-9316e014.system.entry.js +0 -4
- package/dist/ionic/p-935801cc.entry.js +0 -4
- package/dist/ionic/p-9771abb4.entry.js +0 -4
- package/dist/ionic/p-a2830649.system.entry.js +0 -4
- package/dist/ionic/p-a3b856e6.system.entry.js +0 -4
- package/dist/ionic/p-aa246404.entry.js +0 -4
- package/dist/ionic/p-aa97948b.entry.js +0 -4
- package/dist/ionic/p-c6e43624.entry.js +0 -4
- package/dist/ionic/p-dc60009b.system.entry.js +0 -4
- package/dist/ionic/p-f1eb1152.system.entry.js +0 -4
- package/dist/ionic/p-f8a16486.system.entry.js +0 -4
- package/dist/types/components/segment-content/segment-content.d.ts +0 -5
- package/dist/types/components/segment-view/segment-view.d.ts +0 -13
|
@@ -94,9 +94,14 @@
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
:host(.chip-outline) {
|
|
97
|
-
--background: transparent;
|
|
98
97
|
border-width: var(--ionic-border-size-025, 1px);
|
|
98
|
+
border-style: var(--ionic-border-style-solid, solid);
|
|
99
99
|
border-color: var(--ionic-color-neutral-100, #f1f1f1);
|
|
100
|
+
background: transparent;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host(.chip-outline.ion-color) {
|
|
104
|
+
border-color: rgba(var(--ion-color-base-rgb), 0.32);
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
:host(.ion-focused) {
|
|
@@ -108,6 +113,9 @@
|
|
|
108
113
|
:host(:hover) {
|
|
109
114
|
--background: var(--ionic-color-neutral-200, #e7e7e7);
|
|
110
115
|
}
|
|
116
|
+
:host(.ion-color:hover) {
|
|
117
|
+
background: rgba(var(--ion-color-base-rgb), 0.12);
|
|
118
|
+
}
|
|
111
119
|
}
|
|
112
120
|
:host(.chip-disabled) {
|
|
113
121
|
opacity: 0.6;
|
|
@@ -138,4 +146,17 @@
|
|
|
138
146
|
:host(.chip-large) {
|
|
139
147
|
min-height: var(--ionic-scale-800, 32px);
|
|
140
148
|
font-size: var(--ionic-font-size-350, 0.875rem);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
:host(.ion-color) {
|
|
152
|
+
background: rgba(var(--ion-color-base-rgb), 0.08);
|
|
153
|
+
color: var(--ion-color-shade);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
:host(.ion-color:focus) {
|
|
157
|
+
background: rgba(var(--ion-color-base-rgb), 0.12);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
:host(.ion-color.ion-activated) {
|
|
161
|
+
background: rgba(var(--ion-color-base-rgb), 0.16);
|
|
141
162
|
}
|
|
@@ -25,9 +25,30 @@ configs({ modes: ['ios'] }).forEach(({ title, screenshot, config }) => {
|
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
test.describe(title('chip: descenders'), () => {
|
|
29
|
+
test('should not clip descenders in item', async ({ page }) => {
|
|
30
|
+
test.info().annotations.push({
|
|
31
|
+
type: 'issue',
|
|
32
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/18313',
|
|
33
|
+
});
|
|
34
|
+
await page.setContent(`
|
|
35
|
+
<ion-list>
|
|
36
|
+
<ion-item>
|
|
37
|
+
<ion-chip>
|
|
38
|
+
<ion-label>Agreements</ion-label>
|
|
39
|
+
</ion-chip>
|
|
40
|
+
</ion-item>
|
|
41
|
+
</ion-list>
|
|
42
|
+
`, config);
|
|
43
|
+
const chip = page.locator('ion-chip');
|
|
44
|
+
await expect(chip).toHaveScreenshot(screenshot(`chip-descender`));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* `md` mode does not differ from `ios` mode in chip rendering.
|
|
50
|
+
*/
|
|
51
|
+
configs({ modes: ['ios', 'ionic-md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
31
52
|
test.describe(title('chip: outline'), () => {
|
|
32
53
|
test('should render default outline chip', async ({ page }) => {
|
|
33
54
|
await page.setContent(`<ion-chip outline="true">
|
|
@@ -38,44 +59,22 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
|
|
|
38
59
|
await expect(chip).toHaveScreenshot(screenshot(`chip-outline`));
|
|
39
60
|
});
|
|
40
61
|
});
|
|
41
|
-
/**
|
|
42
|
-
* This behavior does not vary across modes/directions.
|
|
43
|
-
*/
|
|
44
62
|
test.describe(title('chip: color'), () => {
|
|
45
63
|
test('should render solid color chip', async ({ page }) => {
|
|
46
|
-
await page.setContent(`<ion-chip color="
|
|
64
|
+
await page.setContent(`<ion-chip color="success">
|
|
47
65
|
<ion-icon name="checkmark-circle"></ion-icon>
|
|
48
|
-
<ion-label>
|
|
66
|
+
<ion-label>Success with Icon</ion-label>
|
|
49
67
|
</ion-chip>`, config);
|
|
50
68
|
const chip = page.locator('ion-chip');
|
|
51
69
|
await expect(chip).toHaveScreenshot(screenshot(`chip-solid-color`));
|
|
52
70
|
});
|
|
53
71
|
test('should render outline color chip', async ({ page }) => {
|
|
54
|
-
await page.setContent(`<ion-chip outline="true" color="
|
|
72
|
+
await page.setContent(`<ion-chip outline="true" color="success">
|
|
55
73
|
<ion-icon name="checkmark-circle"></ion-icon>
|
|
56
|
-
<ion-label>
|
|
74
|
+
<ion-label>Success with Icon</ion-label>
|
|
57
75
|
</ion-chip>`, config);
|
|
58
76
|
const chip = page.locator('ion-chip');
|
|
59
77
|
await expect(chip).toHaveScreenshot(screenshot(`chip-outline-color`));
|
|
60
78
|
});
|
|
61
79
|
});
|
|
62
|
-
test.describe(title('chip: descenders'), () => {
|
|
63
|
-
test('should not clip descenders in item', async ({ page }) => {
|
|
64
|
-
test.info().annotations.push({
|
|
65
|
-
type: 'issue',
|
|
66
|
-
description: 'https://github.com/ionic-team/ionic-framework/issues/18313',
|
|
67
|
-
});
|
|
68
|
-
await page.setContent(`
|
|
69
|
-
<ion-list>
|
|
70
|
-
<ion-item>
|
|
71
|
-
<ion-chip>
|
|
72
|
-
<ion-label>Agreements</ion-label>
|
|
73
|
-
</ion-chip>
|
|
74
|
-
</ion-item>
|
|
75
|
-
</ion-list>
|
|
76
|
-
`, config);
|
|
77
|
-
const chip = page.locator('ion-chip');
|
|
78
|
-
await expect(chip).toHaveScreenshot(screenshot(`chip-descender`));
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
80
|
});
|
|
@@ -860,6 +860,7 @@
|
|
|
860
860
|
--placeholder-color: var(--ionic-color-neutral-800, #626262);
|
|
861
861
|
--placeholder-opacity: 1;
|
|
862
862
|
--text-color-invalid: var(--ionic-color-danger-800, #bf2222);
|
|
863
|
+
--background: var(--ionic-color-base-white, #ffffff);
|
|
863
864
|
font-size: var(--ionic-font-size-350, 0.875rem);
|
|
864
865
|
}
|
|
865
866
|
|
|
@@ -983,7 +984,7 @@
|
|
|
983
984
|
:host(.input-disabled:not(.ion-valid)) .input-bottom .helper-text,
|
|
984
985
|
:host(.input-disabled) .input-bottom .counter,
|
|
985
986
|
:host(.input-disabled) .label-text-wrapper {
|
|
986
|
-
color: var(--ionic-color-neutral-
|
|
987
|
+
color: var(--ionic-color-neutral-500, #a2a2a2);
|
|
987
988
|
}
|
|
988
989
|
|
|
989
990
|
:host(.input-disabled.has-focus.ion-valid) {
|
|
@@ -63,99 +63,393 @@
|
|
|
63
63
|
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
64
64
|
* convert to a unit other than $baselineUnit.
|
|
65
65
|
*/
|
|
66
|
+
/**
|
|
67
|
+
* A heuristic that applies CSS to tablet
|
|
68
|
+
* viewports.
|
|
69
|
+
*
|
|
70
|
+
* Usage:
|
|
71
|
+
* @include tablet-viewport() {
|
|
72
|
+
* :host {
|
|
73
|
+
* background-color: green;
|
|
74
|
+
* }
|
|
75
|
+
* }
|
|
76
|
+
*/
|
|
77
|
+
/**
|
|
78
|
+
* A heuristic that applies CSS to mobile
|
|
79
|
+
* viewports (i.e. phones, not tablets).
|
|
80
|
+
*
|
|
81
|
+
* Usage:
|
|
82
|
+
* @include mobile-viewport() {
|
|
83
|
+
* :host {
|
|
84
|
+
* background-color: blue;
|
|
85
|
+
* }
|
|
86
|
+
* }
|
|
87
|
+
*/
|
|
66
88
|
:host {
|
|
67
89
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
* @prop --background: Background of the item
|
|
91
|
+
* @prop --background-activated: Background of the item when pressed. Note: setting this will interfere with the Material Design ripple.
|
|
92
|
+
* @prop --background-activated-opacity: Opacity of the item background when pressed
|
|
93
|
+
* @prop --background-focused: Background of the item when focused with the tab key
|
|
94
|
+
* @prop --background-focused-opacity: Opacity of the item background when focused with the tab key
|
|
95
|
+
* @prop --background-hover: Background of the item on hover
|
|
96
|
+
* @prop --background-hover-opacity: Opacity of the background of the item on hover
|
|
97
|
+
*
|
|
98
|
+
* @prop --border-color: Color of the item border
|
|
99
|
+
* @prop --border-radius: Radius of the item border
|
|
100
|
+
* @prop --border-style: Style of the item border
|
|
101
|
+
* @prop --border-width: Width of the item border
|
|
102
|
+
*
|
|
103
|
+
* @prop --color: Color of the item
|
|
104
|
+
* @prop --color-activated: Color of the item when pressed
|
|
105
|
+
* @prop --color-focused: Color of the item when focused with the tab key
|
|
106
|
+
* @prop --color-hover: Color of the item on hover
|
|
107
|
+
*
|
|
108
|
+
* @prop --detail-icon-color: Color of the item detail icon
|
|
109
|
+
* @prop --detail-icon-opacity: Opacity of the item detail icon
|
|
110
|
+
* @prop --detail-icon-font-size: Font size of the item detail icon
|
|
111
|
+
*
|
|
112
|
+
* @prop --inner-border-width: Width of the item inner border
|
|
113
|
+
* @prop --inner-box-shadow: Box shadow of the item inner
|
|
114
|
+
* @prop --inner-padding-top: Top padding of the item inner
|
|
115
|
+
* @prop --inner-padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the item inner
|
|
116
|
+
* @prop --inner-padding-bottom: Bottom padding of the item inner
|
|
117
|
+
* @prop --inner-padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the item inner
|
|
118
|
+
*
|
|
119
|
+
* @prop --min-height: Minimum height of the item
|
|
120
|
+
*
|
|
121
|
+
* @prop --padding-bottom: Bottom padding of the item
|
|
122
|
+
* @prop --padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the item
|
|
123
|
+
* @prop --padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the item
|
|
124
|
+
* @prop --padding-top: Top padding of the item
|
|
125
|
+
*
|
|
126
|
+
* @prop --transition: Transition of the item
|
|
127
|
+
*
|
|
128
|
+
* @prop --ripple-color: Color of the item ripple effect
|
|
129
|
+
*
|
|
130
|
+
*/
|
|
131
|
+
--border-radius: 0px;
|
|
132
|
+
--border-width: 0px;
|
|
133
|
+
--border-style: solid;
|
|
134
|
+
--padding-top: 0px;
|
|
135
|
+
--padding-bottom: 0px;
|
|
136
|
+
--padding-end: 0px;
|
|
137
|
+
--padding-start: 0px;
|
|
138
|
+
--inner-border-width: 0px;
|
|
139
|
+
--inner-padding-top: 0px;
|
|
140
|
+
--inner-padding-bottom: 0px;
|
|
141
|
+
--inner-padding-start: 0px;
|
|
142
|
+
--inner-padding-end: 0px;
|
|
143
|
+
--inner-box-shadow: none;
|
|
144
|
+
--detail-icon-color: initial;
|
|
145
|
+
--detail-icon-font-size: 1.25em;
|
|
146
|
+
--detail-icon-opacity: 0.25;
|
|
147
|
+
--color-activated: var(--color);
|
|
148
|
+
--color-focused: var(--color);
|
|
149
|
+
--color-hover: var(--color);
|
|
150
|
+
--ripple-color: currentColor;
|
|
93
151
|
-moz-osx-font-smoothing: grayscale;
|
|
94
152
|
-webkit-font-smoothing: antialiased;
|
|
95
|
-
display:
|
|
153
|
+
display: block;
|
|
96
154
|
position: relative;
|
|
97
155
|
align-items: center;
|
|
98
156
|
justify-content: space-between;
|
|
99
157
|
outline: none;
|
|
100
|
-
|
|
158
|
+
color: var(--color);
|
|
101
159
|
text-align: initial;
|
|
102
160
|
text-decoration: none;
|
|
103
161
|
overflow: hidden;
|
|
104
162
|
box-sizing: border-box;
|
|
105
163
|
}
|
|
106
164
|
|
|
165
|
+
:host(.ion-activated) .item-native {
|
|
166
|
+
color: var(--color-activated);
|
|
167
|
+
}
|
|
168
|
+
:host(.ion-activated) .item-native::after {
|
|
169
|
+
background: var(--background-activated);
|
|
170
|
+
opacity: var(--background-activated-opacity);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
:host(.ion-focused) .item-native {
|
|
174
|
+
color: var(--color-focused);
|
|
175
|
+
}
|
|
176
|
+
:host(.ion-focused) .item-native::after {
|
|
177
|
+
background: var(--background-focused);
|
|
178
|
+
opacity: var(--background-focused-opacity);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@media (any-hover: hover) {
|
|
182
|
+
:host(.ion-activatable:not(.ion-focused):hover) .item-native {
|
|
183
|
+
color: var(--color-hover);
|
|
184
|
+
}
|
|
185
|
+
:host(.ion-activatable:not(.ion-focused):hover) .item-native::after {
|
|
186
|
+
background: var(--background-hover);
|
|
187
|
+
opacity: var(--background-hover-opacity);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
:host(.item-control-needs-pointer-cursor) {
|
|
191
|
+
cursor: pointer;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
:host(.item-interactive-disabled:not(.item-multiple-inputs)) {
|
|
195
|
+
cursor: default;
|
|
196
|
+
pointer-events: none;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
:host(.item-disabled) {
|
|
200
|
+
cursor: default;
|
|
201
|
+
opacity: 0.3;
|
|
202
|
+
pointer-events: none;
|
|
203
|
+
}
|
|
204
|
+
|
|
107
205
|
.item-native {
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
-
|
|
111
|
-
|
|
206
|
+
border-radius: var(--border-radius);
|
|
207
|
+
margin-left: 0;
|
|
208
|
+
margin-right: 0;
|
|
209
|
+
margin-top: 0;
|
|
210
|
+
margin-bottom: 0;
|
|
112
211
|
padding-top: var(--padding-top);
|
|
113
212
|
padding-bottom: var(--padding-bottom);
|
|
213
|
+
color: inherit;
|
|
214
|
+
font-family: inherit;
|
|
215
|
+
font-size: inherit;
|
|
216
|
+
font-style: inherit;
|
|
217
|
+
font-weight: inherit;
|
|
218
|
+
letter-spacing: inherit;
|
|
219
|
+
text-align: inherit;
|
|
220
|
+
text-decoration: inherit;
|
|
221
|
+
text-indent: inherit;
|
|
222
|
+
text-overflow: inherit;
|
|
223
|
+
text-transform: inherit;
|
|
224
|
+
white-space: inherit;
|
|
225
|
+
/* stylelint-disable */
|
|
226
|
+
padding-right: var(--padding-end);
|
|
227
|
+
padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
|
|
228
|
+
/* stylelint-enable */
|
|
114
229
|
display: flex;
|
|
115
|
-
|
|
230
|
+
position: relative;
|
|
231
|
+
align-items: inherit;
|
|
232
|
+
justify-content: inherit;
|
|
116
233
|
width: 100%;
|
|
117
234
|
min-height: var(--min-height);
|
|
118
|
-
|
|
119
|
-
border-
|
|
120
|
-
border-
|
|
235
|
+
transition: var(--transition);
|
|
236
|
+
border-width: var(--border-width);
|
|
237
|
+
border-style: var(--border-style);
|
|
238
|
+
border-color: var(--border-color);
|
|
239
|
+
outline: none;
|
|
121
240
|
background: var(--background);
|
|
122
241
|
overflow: inherit;
|
|
242
|
+
z-index: 1;
|
|
123
243
|
box-sizing: border-box;
|
|
124
244
|
}
|
|
125
|
-
|
|
126
|
-
-
|
|
127
|
-
|
|
245
|
+
:host-context([dir=rtl]) .item-native {
|
|
246
|
+
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
247
|
+
padding-left: var(--padding-end);
|
|
128
248
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
249
|
+
|
|
250
|
+
[dir=rtl] .item-native {
|
|
251
|
+
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
252
|
+
padding-left: var(--padding-end);
|
|
132
253
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
254
|
+
|
|
255
|
+
@supports selector(:dir(rtl)) {
|
|
256
|
+
.item-native:dir(rtl) {
|
|
257
|
+
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
258
|
+
padding-left: var(--padding-end);
|
|
259
|
+
}
|
|
139
260
|
}
|
|
140
261
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
pointer-events: none;
|
|
262
|
+
.item-native::-moz-focus-inner {
|
|
263
|
+
border: 0;
|
|
144
264
|
}
|
|
145
|
-
|
|
265
|
+
|
|
266
|
+
.item-native::after {
|
|
146
267
|
right: 0;
|
|
147
268
|
left: 0;
|
|
148
269
|
top: 0;
|
|
149
270
|
bottom: 0;
|
|
150
271
|
position: absolute;
|
|
151
|
-
background: var(--ionic-state-disabled, rgba(255, 255, 255, 0.6));
|
|
152
272
|
content: "";
|
|
273
|
+
opacity: 0;
|
|
274
|
+
transition: var(--transition);
|
|
275
|
+
z-index: -1;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
button,
|
|
279
|
+
a {
|
|
280
|
+
cursor: pointer;
|
|
281
|
+
user-select: none;
|
|
282
|
+
-webkit-user-drag: none;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.item-inner {
|
|
286
|
+
margin-left: 0;
|
|
287
|
+
margin-right: 0;
|
|
288
|
+
margin-top: 0;
|
|
289
|
+
margin-bottom: 0;
|
|
290
|
+
padding-top: var(--inner-padding-top);
|
|
291
|
+
padding-bottom: var(--inner-padding-bottom);
|
|
292
|
+
/* stylelint-disable */
|
|
293
|
+
padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
|
|
294
|
+
padding-left: var(--inner-padding-start);
|
|
295
|
+
/* stylelint-enable */
|
|
296
|
+
display: flex;
|
|
297
|
+
position: relative;
|
|
298
|
+
flex: 1;
|
|
299
|
+
flex-direction: inherit;
|
|
300
|
+
align-items: inherit;
|
|
301
|
+
align-self: stretch;
|
|
302
|
+
min-height: inherit;
|
|
303
|
+
border-width: var(--inner-border-width);
|
|
304
|
+
border-style: var(--border-style);
|
|
305
|
+
border-color: var(--border-color);
|
|
306
|
+
box-shadow: var(--inner-box-shadow);
|
|
307
|
+
overflow: inherit;
|
|
308
|
+
box-sizing: border-box;
|
|
309
|
+
}
|
|
310
|
+
:host-context([dir=rtl]) .item-inner {
|
|
311
|
+
padding-right: var(--inner-padding-start);
|
|
312
|
+
padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
[dir=rtl] .item-inner {
|
|
316
|
+
padding-right: var(--inner-padding-start);
|
|
317
|
+
padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
@supports selector(:dir(rtl)) {
|
|
321
|
+
.item-inner:dir(rtl) {
|
|
322
|
+
padding-right: var(--inner-padding-start);
|
|
323
|
+
padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.item-detail-icon {
|
|
328
|
+
/**
|
|
329
|
+
* IonItem applies its own end padding. However,
|
|
330
|
+
* all IonIcons have the same bounding box meaning
|
|
331
|
+
* there may be white space for narrow icons. As
|
|
332
|
+
* a result, the white space gives the appearance
|
|
333
|
+
* that there is too much end margin. We move the default
|
|
334
|
+
* chevron icon over to account for this extra whitespace.
|
|
335
|
+
*/
|
|
336
|
+
-webkit-margin-start: calc(var(--inner-padding-end) / 2);
|
|
337
|
+
margin-inline-start: calc(var(--inner-padding-end) / 2);
|
|
338
|
+
-webkit-margin-end: -6px;
|
|
339
|
+
margin-inline-end: -6px;
|
|
340
|
+
color: var(--detail-icon-color);
|
|
341
|
+
font-size: var(--detail-icon-font-size);
|
|
342
|
+
opacity: var(--detail-icon-opacity);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
::slotted(ion-icon) {
|
|
346
|
+
font-size: 1.6em;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
::slotted(ion-button) {
|
|
350
|
+
--margin-top: 0;
|
|
351
|
+
--margin-bottom: 0;
|
|
352
|
+
--margin-start: 0;
|
|
353
|
+
--margin-end: 0;
|
|
354
|
+
z-index: 1;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
::slotted(ion-label:not([slot=end])) {
|
|
358
|
+
flex: 1;
|
|
359
|
+
width: min-content;
|
|
360
|
+
/**
|
|
361
|
+
* We allow labels in the default
|
|
362
|
+
* slot to grow. However, we do not
|
|
363
|
+
* want them to grow indefinitely.
|
|
364
|
+
*/
|
|
365
|
+
max-width: 100%;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
:host(.item-input) {
|
|
369
|
+
align-items: center;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.input-wrapper {
|
|
373
|
+
display: flex;
|
|
374
|
+
flex: 1;
|
|
375
|
+
flex-direction: inherit;
|
|
376
|
+
align-items: inherit;
|
|
377
|
+
align-self: stretch;
|
|
378
|
+
text-overflow: ellipsis;
|
|
379
|
+
overflow: inherit;
|
|
380
|
+
box-sizing: border-box;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
:host(.item-label-stacked),
|
|
384
|
+
:host(.item-label-floating) {
|
|
385
|
+
align-items: start;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
:host(.item-label-stacked) .input-wrapper,
|
|
389
|
+
:host(.item-label-floating) .input-wrapper {
|
|
390
|
+
flex: 1;
|
|
391
|
+
flex-direction: column;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
:host(.item-multiple-inputs) ::slotted(ion-checkbox),
|
|
395
|
+
:host(.item-multiple-inputs) ::slotted(ion-datetime),
|
|
396
|
+
:host(.item-multiple-inputs) ::slotted(ion-radio) {
|
|
397
|
+
position: relative;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
:host(.item-textarea) {
|
|
401
|
+
align-items: stretch;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
::slotted(ion-reorder[slot]) {
|
|
405
|
+
margin-top: 0;
|
|
406
|
+
margin-bottom: 0;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
ion-ripple-effect {
|
|
410
|
+
color: var(--ripple-color);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
:host {
|
|
414
|
+
--background: var(--ionic-color-base-white, #ffffff);
|
|
415
|
+
--background-activated: var(--ionic-color-neutral-200, #e7e7e7);
|
|
416
|
+
--border-color: var(--ionic-color-neutral-300, #cfcfcf);
|
|
417
|
+
--border-style: var(--ionic-border-style-solid, solid);
|
|
418
|
+
--border-width: 0 0 var(--ionic-border-size-025, 1px) 0;
|
|
419
|
+
--min-height: var(--ionic-scale-1800, 72px);
|
|
420
|
+
--padding-top: var(--ionic-space-200, 8px);
|
|
421
|
+
--padding-end: var(--ionic-space-400, 16px);
|
|
422
|
+
--padding-bottom: var(--ionic-space-200, 8px);
|
|
423
|
+
--padding-start: var(--ionic-space-400, 16px);
|
|
424
|
+
font-family: var(--ionic-font-family, "Inter", sans-serif);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.item-inner {
|
|
428
|
+
min-height: initial;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
slot[name=start]::slotted(*) {
|
|
432
|
+
-webkit-margin-end: var(--ionic-space-400, 16px);
|
|
433
|
+
margin-inline-end: var(--ionic-space-400, 16px);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
slot[name=end]::slotted(*) {
|
|
437
|
+
-webkit-margin-start: var(--ionic-space-400, 16px);
|
|
438
|
+
margin-inline-start: var(--ionic-space-400, 16px);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
:host(.item-disabled) {
|
|
442
|
+
opacity: 0.6;
|
|
153
443
|
}
|
|
154
444
|
|
|
155
445
|
:host(.ion-activated) .item-native {
|
|
156
446
|
background: var(--background-activated);
|
|
157
447
|
}
|
|
158
448
|
|
|
449
|
+
:host(.ion-focused) .item-native {
|
|
450
|
+
overflow: visible;
|
|
451
|
+
}
|
|
452
|
+
|
|
159
453
|
:host(.ion-focused) .item-native::after {
|
|
160
454
|
right: 0;
|
|
161
455
|
left: 0;
|