@ionic/core 8.8.16-dev.11784841344.1aa1a41c → 8.8.16-dev.11784914346.10d0804c
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/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/{p-DiKh2eQw.js → p-4u9RNymb.js} +1 -1
- package/components/{p-B8KYxaMx.js → p-B8xhFBOE.js} +1 -1
- package/components/p-BAnNwWMA.js +4 -0
- package/components/p-BYZR_5L4.js +4 -0
- package/components/p-B_zaqq5F.js +4 -0
- package/components/p-CO9VfZyc.js +4 -0
- package/components/p-Cjx0xPoU.js +4 -0
- package/components/p-CyWeCU8e.js +4 -0
- package/components/p-DRnK3A-V.js +4 -0
- package/components/p-DcVqGRkT.js +4 -0
- package/components/p-Dght1fh7.js +4 -0
- package/components/p-GpxJMpJu.js +4 -0
- package/dist/cjs/{index-Cu9JNpPi.js → index-CgAbCW6L.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
- package/dist/cjs/ion-alert.cjs.entry.js +3 -3
- package/dist/cjs/ion-app_8.cjs.entry.js +194 -65
- package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +4 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-refresher_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +78 -80
- package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +345 -0
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +2 -5
- package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -1
- package/dist/collection/components/action-sheet/action-sheet.md.css +2 -1
- package/dist/collection/components/alert/alert.ionic.css +2 -5
- package/dist/collection/components/alert/alert.ios.css +2 -1
- package/dist/collection/components/alert/alert.md.css +2 -1
- package/dist/collection/components/avatar/avatar.ionic.css +12 -6
- package/dist/collection/components/badge/badge.ionic.css +6 -3
- package/dist/collection/components/badge/badge.ios.css +4 -2
- package/dist/collection/components/badge/badge.md.css +2 -1
- package/dist/collection/components/button/button.ionic.css +4 -2
- package/dist/collection/components/buttons/buttons.ionic.css +1 -1
- package/dist/collection/components/content/content.css +39 -0
- package/dist/collection/components/footer/footer-interface.js +1 -0
- package/dist/collection/components/footer/footer.ios.css +19 -4
- package/dist/collection/components/footer/footer.js +102 -15
- package/dist/collection/components/footer/footer.md.css +28 -0
- package/dist/collection/components/header/header-interface.js +1 -0
- package/dist/collection/components/header/header.ionic.css +153 -0
- package/dist/collection/components/header/header.ios.css +153 -123
- package/dist/collection/components/header/header.js +139 -28
- package/dist/collection/components/header/header.md.css +176 -1
- package/dist/collection/components/header/header.utils.js +6 -13
- package/dist/collection/components/input/input.ionic.css +2 -1
- package/dist/collection/components/input/input.ios.css +2 -1
- package/dist/collection/components/input/input.md.css +2 -1
- package/dist/collection/components/item-option/item-option.ionic.css +2 -1
- package/dist/collection/components/searchbar/searchbar.ionic.css +6 -2
- package/dist/collection/components/segment-button/segment-button.ionic.css +2 -1
- package/dist/collection/components/select/select.ionic.css +2 -1
- package/dist/collection/components/select-modal/select-modal.ionic.css +2 -5
- package/dist/collection/components/select-modal/select-modal.ios.css +2 -1
- package/dist/collection/components/select-modal/select-modal.md.css +2 -1
- package/dist/collection/components/select-popover/select-popover.ionic.css +2 -5
- package/dist/collection/components/select-popover/select-popover.ios.css +2 -1
- package/dist/collection/components/select-popover/select-popover.md.css +2 -1
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +25 -3
- package/dist/collection/components/tab-bar/tab-bar.ios.css +15 -0
- package/dist/collection/components/tab-bar/tab-bar.js +94 -88
- package/dist/collection/components/tab-bar/tab-bar.md.css +15 -0
- package/dist/collection/components/tab-button/tab-button.ionic.css +2 -1
- package/dist/collection/components/title/title.md.css +7 -0
- package/dist/collection/utils/scroll-hide-controller.js +178 -0
- package/dist/docs.json +144 -32
- package/dist/esm/{index-1y3VhUSy.js → index-D2tu5BUg.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +3 -3
- package/dist/esm/ion-alert.entry.js +3 -3
- package/dist/esm/ion-app_8.entry.js +194 -65
- package/dist/esm/ion-avatar_3.entry.js +4 -4
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-datetime_3.entry.js +1 -1
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +4 -4
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +1 -1
- package/dist/esm/ion-refresher_2.entry.js +1 -1
- package/dist/esm/ion-reorder_2.entry.js +1 -1
- package/dist/esm/ion-searchbar.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select-modal.entry.js +4 -4
- package/dist/esm/ion-select_3.entry.js +5 -5
- package/dist/esm/ion-tab-bar_2.entry.js +79 -81
- package/dist/esm/ion-toggle.entry.js +1 -1
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/scroll-hide-controller-CUNW7EpD.js +342 -0
- package/dist/html.html-data.json +36 -4
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-07bd8446.entry.js +4 -0
- package/dist/ionic/p-103e1d9f.entry.js +4 -0
- package/dist/ionic/{p-eeb7b373.entry.js → p-18bc4f2d.entry.js} +1 -1
- package/dist/ionic/p-248265c2.entry.js +4 -0
- package/dist/ionic/{p-fb457fdd.entry.js → p-3bc5b5e9.entry.js} +1 -1
- package/dist/ionic/{p-42a882b7.entry.js → p-43b00c5b.entry.js} +1 -1
- package/dist/ionic/{p-d0f253fc.entry.js → p-56224b93.entry.js} +1 -1
- package/dist/ionic/p-5732396e.entry.js +4 -0
- package/dist/ionic/{p-b3d04a86.entry.js → p-58d8877d.entry.js} +1 -1
- package/dist/ionic/{p-9e9be378.entry.js → p-5d079dc1.entry.js} +1 -1
- package/dist/ionic/{p-d0dfc9a3.entry.js → p-5e9665dd.entry.js} +1 -1
- package/dist/ionic/{p-7b2fe639.entry.js → p-5fee5cc1.entry.js} +1 -1
- package/dist/ionic/p-64734604.entry.js +4 -0
- package/dist/ionic/p-69feeff9.entry.js +4 -0
- package/dist/ionic/p-83acfa2d.entry.js +4 -0
- package/dist/ionic/{p-f692219d.entry.js → p-849b1759.entry.js} +1 -1
- package/dist/ionic/{p-a09c7a4c.entry.js → p-86f040e0.entry.js} +1 -1
- package/dist/ionic/p-8cb23f27.entry.js +4 -0
- package/dist/ionic/p-C1I_d964.js +4 -0
- package/dist/ionic/p-b97778f5.entry.js +4 -0
- package/dist/ionic/p-be9db7e8.entry.js +4 -0
- package/dist/ionic/{p-2fba8f15.entry.js → p-c04429f2.entry.js} +1 -1
- package/dist/ionic/p-c25a2a9b.entry.js +4 -0
- package/dist/ionic/{p-a797625e.entry.js → p-d272ff4f.entry.js} +1 -1
- package/dist/types/components/footer/footer-interface.d.ts +1 -0
- package/dist/types/components/footer/footer.d.ts +16 -0
- package/dist/types/components/header/header-interface.d.ts +1 -0
- package/dist/types/components/header/header.d.ts +17 -0
- package/dist/types/components/header/header.utils.d.ts +4 -5
- package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
- package/dist/types/components/tab-bar/tab-bar.d.ts +17 -14
- package/dist/types/components.d.ts +37 -13
- package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
- package/hydrate/index.js +477 -175
- package/hydrate/index.mjs +477 -175
- package/package.json +2 -2
- package/components/p-BZwQa9ey.js +0 -4
- package/components/p-CJCMdFb9.js +0 -4
- package/components/p-Ck_9SoHZ.js +0 -4
- package/components/p-CmnPD02Z.js +0 -4
- package/components/p-D-Xa9lMG.js +0 -4
- package/components/p-DFSqPtzD.js +0 -4
- package/components/p-NPsFR8Ng.js +0 -4
- package/components/p-U2gyA6Z0.js +0 -4
- package/components/p-q8wGOPJB.js +0 -4
- package/dist/cjs/keyboard-controller-CefyW9lm.js +0 -169
- package/dist/esm/keyboard-controller-BFwRdk2T.js +0 -167
- package/dist/ionic/p-0c4d9d7c.entry.js +0 -4
- package/dist/ionic/p-40dc9dbd.entry.js +0 -4
- package/dist/ionic/p-54419365.entry.js +0 -4
- package/dist/ionic/p-6293e9f1.entry.js +0 -4
- package/dist/ionic/p-7de397c7.entry.js +0 -4
- package/dist/ionic/p-8cf82b85.entry.js +0 -4
- package/dist/ionic/p-MqqcZQSB.js +0 -4
- package/dist/ionic/p-a6e04ca3.entry.js +0 -4
- package/dist/ionic/p-a6fe63f0.entry.js +0 -4
- package/dist/ionic/p-b275f17e.entry.js +0 -4
- package/dist/ionic/p-c5635175.entry.js +0 -4
- package/dist/ionic/p-dc8e0b91.entry.js +0 -4
- /package/components/{p-J03hHbbL.js → p-BaPtaYEC.js} +0 -0
- /package/dist/ionic/{p-1y3VhUSy.js → p-D2tu5BUg.js} +0 -0
|
@@ -9,6 +9,159 @@ ion-header ion-toolbar:first-of-type {
|
|
|
9
9
|
padding-top: var(--ion-safe-area-top, 0);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
.header-collapse-fade ion-toolbar {
|
|
13
|
+
--opacity-scale: inherit;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Override styles applied during the page transition to prevent
|
|
18
|
+
* header flickering.
|
|
19
|
+
*/
|
|
20
|
+
.header-collapse-fade.header-transitioning ion-toolbar {
|
|
21
|
+
--background: transparent;
|
|
22
|
+
--border-style: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.header-collapse-condense {
|
|
26
|
+
z-index: 9;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.header-collapse-condense ion-toolbar {
|
|
30
|
+
position: sticky;
|
|
31
|
+
top: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.header-collapse-condense ion-toolbar:first-of-type {
|
|
35
|
+
/**
|
|
36
|
+
* The toolbar that contains the collapsible
|
|
37
|
+
* large title should not have safe area padding applied.
|
|
38
|
+
*/
|
|
39
|
+
padding-top: 0px;
|
|
40
|
+
z-index: 1;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Large title toolbar should just use the content background
|
|
45
|
+
* since it needs to blend in with the header above it.
|
|
46
|
+
*/
|
|
47
|
+
.header-collapse-condense ion-toolbar {
|
|
48
|
+
z-index: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.header-collapse-condense ion-toolbar:last-of-type {
|
|
52
|
+
--border-width: 0px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.header-collapse-condense ion-toolbar ion-searchbar {
|
|
56
|
+
padding-top: 0px;
|
|
57
|
+
padding-bottom: 13px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.header-collapse-main {
|
|
61
|
+
--opacity-scale: 1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.header-collapse-main ion-toolbar {
|
|
65
|
+
--opacity-scale: inherit;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.header-collapse-main ion-toolbar.in-toolbar ion-title,
|
|
69
|
+
.header-collapse-main ion-toolbar.in-toolbar ion-buttons {
|
|
70
|
+
transition: all 0.2s ease-in-out;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Large title toolbar should just use the content background
|
|
75
|
+
* since it needs to blend in with the header above it.
|
|
76
|
+
*/
|
|
77
|
+
.header-collapse-condense ion-toolbar,
|
|
78
|
+
.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
|
|
79
|
+
--background: var(--ion-background-color, #fff);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Override styles applied during the page transition to prevent
|
|
84
|
+
* header flickering.
|
|
85
|
+
*/
|
|
86
|
+
.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
|
|
87
|
+
--border-style: none;
|
|
88
|
+
--opacity-scale: 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,
|
|
92
|
+
.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
|
|
93
|
+
opacity: 0;
|
|
94
|
+
pointer-events: none;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* There is a bug in Safari where changing
|
|
99
|
+
* the opacity of an element in a scrollable container
|
|
100
|
+
* while rubber-banding causes the scroll position
|
|
101
|
+
* to jump to the top
|
|
102
|
+
*/
|
|
103
|
+
.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,
|
|
104
|
+
.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
|
|
105
|
+
visibility: hidden;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* The main header is only hidden once the collapsible large
|
|
110
|
+
* title is configured. As a result, if the main header loads
|
|
111
|
+
* before the collapsible large title is configured then the
|
|
112
|
+
* main header will be visible briefly before being hidden
|
|
113
|
+
* by the collapsible large title.
|
|
114
|
+
*
|
|
115
|
+
* The following selector ensures that any main header
|
|
116
|
+
* on a page with a collapsible large title is hidden
|
|
117
|
+
* before the collapsible large title is configured.
|
|
118
|
+
* Once the collapsible large title is configured the main
|
|
119
|
+
* header will have the ".header-collapse-main" class, and
|
|
120
|
+
* this selector will no longer apply.
|
|
121
|
+
*
|
|
122
|
+
* The :has(...) part of the selector ensures a couple things:
|
|
123
|
+
* 1. This will only apply within a page view since the content
|
|
124
|
+
* must be a subsequent-sibling of the header (~ ion-content).
|
|
125
|
+
* 2. This will only apply when that content has an active condense
|
|
126
|
+
* header (the .header-collapse-condense class).
|
|
127
|
+
*
|
|
128
|
+
* We use opacity: 0 to avoid a layout shift.
|
|
129
|
+
* We use the class (not the attribute) because the class is only
|
|
130
|
+
* added when the condense effect is valid (large title present).
|
|
131
|
+
* The attribute alone is not sufficient since it would match even
|
|
132
|
+
* when the effect is guarded (e.g. no large title).
|
|
133
|
+
*/
|
|
134
|
+
ion-header:not(.header-collapse-main):has(~ ion-content ion-header.header-collapse-condense) {
|
|
135
|
+
opacity: 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The deprecated collapse="condense" prop is iOS-only.
|
|
140
|
+
* On non-iOS themes, the condense header should be hidden since
|
|
141
|
+
* the JS won't activate it. Uses a class instead of an attribute
|
|
142
|
+
* selector because collapse is not a reflected prop, and framework
|
|
143
|
+
* proxies (Angular/Vue) bind it as a property.
|
|
144
|
+
*/
|
|
145
|
+
.header-collapse-condense-hidden {
|
|
146
|
+
display: none;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
ion-header.header-scroll-effect-hide {
|
|
150
|
+
transition: transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
ion-header.header-scroll-effect-hide.header-scroll-hidden {
|
|
154
|
+
transform: translateY(-100%);
|
|
155
|
+
transition: transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);
|
|
156
|
+
opacity: 0;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@media (prefers-reduced-motion: reduce) {
|
|
160
|
+
ion-header.header-scroll-effect-hide,
|
|
161
|
+
ion-header.header-scroll-effect-hide.header-scroll-hidden {
|
|
162
|
+
transition: none;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
12
165
|
/**
|
|
13
166
|
* Convert a pixels given value into rem
|
|
14
167
|
*
|
|
@@ -139,8 +292,30 @@ ion-header {
|
|
|
139
292
|
box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);
|
|
140
293
|
}
|
|
141
294
|
|
|
295
|
+
/**
|
|
296
|
+
* The condense header should blend seamlessly with the
|
|
297
|
+
* main header above it, so remove the box-shadow.
|
|
298
|
+
*/
|
|
142
299
|
.header-md.header-collapse-condense {
|
|
143
|
-
|
|
300
|
+
box-shadow: none;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* When the condense header is active (large title visible),
|
|
305
|
+
* the main header's box-shadow should be hidden so it blends
|
|
306
|
+
* with the condense header below it.
|
|
307
|
+
*/
|
|
308
|
+
.header-md.header-collapse-condense-inactive:not(.header-collapse-condense) {
|
|
309
|
+
box-shadow: none;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* The fade effect fades the toolbar background via --opacity-scale,
|
|
314
|
+
* but box-shadow is not affected by that variable. Remove it so
|
|
315
|
+
* the shadow doesn't persist when the background is faded out.
|
|
316
|
+
*/
|
|
317
|
+
.header-md.header-collapse-fade {
|
|
318
|
+
box-shadow: none;
|
|
144
319
|
}
|
|
145
320
|
|
|
146
321
|
.header-md.ion-no-border {
|
|
@@ -50,13 +50,14 @@ export const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
|
|
|
50
50
|
});
|
|
51
51
|
};
|
|
52
52
|
export const setToolbarBackgroundOpacity = (headerEl, opacity) => {
|
|
53
|
+
var _a;
|
|
53
54
|
/**
|
|
54
55
|
* Fading in the backdrop opacity
|
|
55
56
|
* should happen after the large title
|
|
56
57
|
* has collapsed, so it is handled
|
|
57
58
|
* by handleHeaderFade()
|
|
58
59
|
*/
|
|
59
|
-
if (headerEl.collapse === 'fade') {
|
|
60
|
+
if (((_a = headerEl.scrollEffect) !== null && _a !== void 0 ? _a : headerEl.collapse) === 'fade') {
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
if (opacity === undefined) {
|
|
@@ -214,23 +215,15 @@ export const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
|
|
|
214
215
|
* Get the role type for the ion-header.
|
|
215
216
|
*
|
|
216
217
|
* @param isInsideMenu If ion-header is inside ion-menu.
|
|
217
|
-
* @
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
* theme, otherwise 'banner'.
|
|
218
|
+
* @returns 'none' if inside ion-menu, otherwise 'banner'.
|
|
219
|
+
* Condensed headers start as 'banner' and have their role
|
|
220
|
+
* toggled dynamically by setHeaderActive() on scroll.
|
|
221
221
|
*/
|
|
222
|
-
export const getRoleType = (isInsideMenu
|
|
222
|
+
export const getRoleType = (isInsideMenu) => {
|
|
223
223
|
// If the header is inside a menu, it should not have the banner role.
|
|
224
224
|
if (isInsideMenu) {
|
|
225
225
|
return ROLE_NONE;
|
|
226
226
|
}
|
|
227
|
-
/**
|
|
228
|
-
* Only apply role="none" to `md` & `ionic` theme condensed headers
|
|
229
|
-
* since the large header is never shown.
|
|
230
|
-
*/
|
|
231
|
-
if (isCondensed && theme !== 'ios') {
|
|
232
|
-
return ROLE_NONE;
|
|
233
|
-
}
|
|
234
227
|
// Default to banner role.
|
|
235
228
|
return ROLE_BANNER;
|
|
236
229
|
};
|
|
@@ -215,8 +215,9 @@
|
|
|
215
215
|
margin-right: 0;
|
|
216
216
|
margin-top: 0;
|
|
217
217
|
margin-bottom: 0;
|
|
218
|
+
width: var(--token-scale-500, 20px);
|
|
218
219
|
min-width: initial;
|
|
219
|
-
|
|
220
|
+
height: var(--token-scale-500, 20px);
|
|
220
221
|
}
|
|
221
222
|
|
|
222
223
|
/* Round */
|
|
@@ -238,7 +238,8 @@
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
.searchbar-search-icon {
|
|
241
|
-
|
|
241
|
+
width: var(--token-scale-400, 16px);
|
|
242
|
+
height: var(--token-scale-400, 16px);
|
|
242
243
|
}
|
|
243
244
|
|
|
244
245
|
.searchbar-input {
|
|
@@ -252,7 +253,7 @@
|
|
|
252
253
|
width: var(--token-scale-400, 16px);
|
|
253
254
|
height: var(--token-scale-400, 16px);
|
|
254
255
|
background-color: transparent;
|
|
255
|
-
font-size: var(--token-
|
|
256
|
+
font-size: var(--token-scale-400, 16px);
|
|
256
257
|
contain: strict;
|
|
257
258
|
}
|
|
258
259
|
|
|
@@ -521,6 +522,9 @@
|
|
|
521
522
|
:host(.searchbar-size-large) .searchbar-cancel-button {
|
|
522
523
|
width: var(--token-scale-500, 20px);
|
|
523
524
|
height: var(--token-scale-500, 20px);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
:host(.searchbar-size-large) .searchbar-cancel-button {
|
|
524
528
|
font-size: var(--token-font-size-500, 1.25rem);
|
|
525
529
|
}
|
|
526
530
|
|
|
@@ -103,22 +103,19 @@
|
|
|
103
103
|
.select-option-start > ion-avatar,
|
|
104
104
|
.select-option-start > ion-img,
|
|
105
105
|
.select-option-start > ion-thumbnail,
|
|
106
|
+
.select-option-start > ion-icon,
|
|
106
107
|
.select-option-start > img,
|
|
107
108
|
.select-option-start > svg,
|
|
108
109
|
.select-option-end > ion-avatar,
|
|
109
110
|
.select-option-end > ion-img,
|
|
110
111
|
.select-option-end > ion-thumbnail,
|
|
112
|
+
.select-option-end > ion-icon,
|
|
111
113
|
.select-option-end > img,
|
|
112
114
|
.select-option-end > svg {
|
|
113
115
|
width: var(--token-scale-1200, 48px);
|
|
114
116
|
height: var(--token-scale-1200, 48px);
|
|
115
117
|
}
|
|
116
118
|
|
|
117
|
-
.select-option-start > ion-icon,
|
|
118
|
-
.select-option-end > ion-icon {
|
|
119
|
-
font-size: var(--token-scale-1200, 48px);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
119
|
.action-sheet-button-label-has-rich-content,
|
|
123
120
|
.alert-radio-label-has-rich-content,
|
|
124
121
|
.alert-checkbox-label-has-rich-content,
|
|
@@ -103,22 +103,19 @@
|
|
|
103
103
|
.select-option-start > ion-avatar,
|
|
104
104
|
.select-option-start > ion-img,
|
|
105
105
|
.select-option-start > ion-thumbnail,
|
|
106
|
+
.select-option-start > ion-icon,
|
|
106
107
|
.select-option-start > img,
|
|
107
108
|
.select-option-start > svg,
|
|
108
109
|
.select-option-end > ion-avatar,
|
|
109
110
|
.select-option-end > ion-img,
|
|
110
111
|
.select-option-end > ion-thumbnail,
|
|
112
|
+
.select-option-end > ion-icon,
|
|
111
113
|
.select-option-end > img,
|
|
112
114
|
.select-option-end > svg {
|
|
113
115
|
width: var(--token-scale-1200, 48px);
|
|
114
116
|
height: var(--token-scale-1200, 48px);
|
|
115
117
|
}
|
|
116
118
|
|
|
117
|
-
.select-option-start > ion-icon,
|
|
118
|
-
.select-option-end > ion-icon {
|
|
119
|
-
font-size: var(--token-scale-1200, 48px);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
119
|
.action-sheet-button-label-has-rich-content,
|
|
123
120
|
.alert-radio-label-has-rich-content,
|
|
124
121
|
.alert-checkbox-label-has-rich-content,
|
|
@@ -112,6 +112,21 @@
|
|
|
112
112
|
padding-bottom: 0;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
:host(.tab-bar-scroll-effect-hide) {
|
|
116
|
+
transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
:host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
|
|
120
|
+
transform: translateY(100%);
|
|
121
|
+
transition: transform 350ms cubic-bezier(0.4, 0, 1, 1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@media (prefers-reduced-motion: reduce) {
|
|
125
|
+
:host(.tab-bar-scroll-effect-hide),
|
|
126
|
+
:host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
|
|
127
|
+
transition: none;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
115
130
|
:host {
|
|
116
131
|
--background: var(--ion-tab-bar-background, var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff)));
|
|
117
132
|
--background-activated: var(--ion-tab-bar-background-activated, var(--token-bg-select-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc))));
|
|
@@ -189,16 +204,16 @@
|
|
|
189
204
|
bottom: calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-bottom, 0));
|
|
190
205
|
}
|
|
191
206
|
|
|
192
|
-
:host(.tab-bar-
|
|
207
|
+
:host(.tab-bar-scroll-effect-hide) {
|
|
193
208
|
transition: transform var(--token-transition-time-200, 200ms) var(--token-transition-curve-spring, cubic-bezier(0.16, 1, 0.3, 1));
|
|
194
209
|
}
|
|
195
210
|
|
|
196
|
-
:host(.tab-bar-scroll-hidden) {
|
|
211
|
+
:host(.tab-bar-compact.tab-bar-scroll-hidden) {
|
|
197
212
|
transform: translateY(calc(100% + var(--ion-safe-area-bottom, 0) + var(--token-space-1000, var(--token-scale-1000, 40px)))) translateX(-50%);
|
|
198
213
|
transition: transform var(--token-transition-time-350, 350ms) var(--token-transition-curve-base, cubic-bezier(0.4, 0, 1, 1));
|
|
199
214
|
}
|
|
200
215
|
|
|
201
|
-
:host([slot=top].tab-bar-scroll-hidden) {
|
|
216
|
+
:host([slot=top].tab-bar-compact.tab-bar-scroll-hidden) {
|
|
202
217
|
transform: translateY(-100%) translateX(-50%);
|
|
203
218
|
}
|
|
204
219
|
|
|
@@ -224,4 +239,11 @@
|
|
|
224
239
|
/* Rectangular */
|
|
225
240
|
:host(.tab-bar-rectangular) {
|
|
226
241
|
border-radius: var(--token-border-radius-0, var(--token-scale-0, 0px));
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
@media (prefers-reduced-motion: reduce) {
|
|
245
|
+
:host(.tab-bar-scroll-effect-hide),
|
|
246
|
+
:host(.tab-bar-compact.tab-bar-scroll-hidden) {
|
|
247
|
+
transition: none;
|
|
248
|
+
}
|
|
227
249
|
}
|
|
@@ -51,6 +51,21 @@
|
|
|
51
51
|
padding-bottom: 0;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
:host(.tab-bar-scroll-effect-hide) {
|
|
55
|
+
transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
|
|
59
|
+
transform: translateY(100%);
|
|
60
|
+
transition: transform 350ms cubic-bezier(0.4, 0, 1, 1);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@media (prefers-reduced-motion: reduce) {
|
|
64
|
+
:host(.tab-bar-scroll-effect-hide),
|
|
65
|
+
:host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
|
|
66
|
+
transition: none;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
54
69
|
/**
|
|
55
70
|
* Convert a pixels given value into rem
|
|
56
71
|
*
|