@ionic/core 8.2.3-dev.11724345963.10ca6051 → 8.2.3-dev.11724680612.1b9ef92a
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-input-password-toggle.js +11 -7
- package/components/ion-input.js +14 -5
- package/components/ion-textarea.js +15 -5
- package/components/ion-toggle.js +14 -11
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/ionic/bundle.ionic.css +1 -1
- package/css/ionic/bundle.ionic.css.map +1 -1
- package/css/ionic/core.ionic.css +1 -1
- package/css/ionic/core.ionic.css.map +1 -1
- package/css/ionic/global.bundle.ionic.css.map +1 -1
- package/css/ionic/typography.ionic.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +11 -7
- package/dist/cjs/ion-input.cjs.entry.js +14 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +15 -5
- package/dist/cjs/ion-toggle.cjs.entry.js +14 -11
- package/dist/collection/components/input/input.js +14 -5
- package/dist/collection/components/input-password-toggle/input-password-toggle.common.css +61 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +137 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +9 -7
- package/dist/collection/components/input-password-toggle/test/basic/input-password-toggle.e2e.js +1 -1
- package/dist/collection/components/textarea/test/shape/textarea.e2e.js +79 -0
- package/dist/collection/components/textarea/textarea.ionic.css +12 -1
- package/dist/collection/components/textarea/textarea.js +17 -7
- package/dist/collection/components/toggle/test/color/toggle.e2e.js +1 -1
- package/dist/collection/components/toggle/test/enable-on-off-labels/toggle.e2e.js +1 -1
- package/dist/collection/components/toggle/test/item/toggle.e2e.js +4 -2
- package/dist/collection/components/toggle/test/label/toggle.e2e.js +29 -0
- package/dist/collection/components/toggle/test/sizes/toggle.e2e.js +1 -1
- package/dist/collection/components/toggle/test/states/toggle.e2e.js +29 -1
- package/dist/collection/components/toggle/toggle.ionic.css +391 -0
- package/dist/collection/components/toggle/toggle.ios.css +163 -138
- package/dist/collection/components/toggle/toggle.js +12 -9
- package/dist/collection/components/toggle/toggle.md.css +163 -138
- package/dist/docs.json +13 -5
- package/dist/esm/ion-input-password-toggle.entry.js +11 -7
- package/dist/esm/ion-input.entry.js +14 -5
- package/dist/esm/ion-textarea.entry.js +15 -5
- package/dist/esm/ion-toggle.entry.js +14 -11
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/html.html-data.json +7 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-13c363e4.entry.js +4 -0
- package/dist/ionic/p-22711da4.system.entry.js +4 -0
- package/dist/ionic/p-33dd8047.system.entry.js +4 -0
- package/dist/ionic/p-3d9c39bc.entry.js +4 -0
- package/dist/ionic/p-7b590e46.system.js +1 -1
- package/dist/ionic/p-aad91b75.system.entry.js +4 -0
- package/dist/ionic/{p-201d8768.system.entry.js → p-c2c3807b.system.entry.js} +1 -1
- package/dist/ionic/p-c8453a83.entry.js +4 -0
- package/dist/ionic/p-de8e8567.entry.js +4 -0
- package/dist/types/components/input/input.d.ts +1 -0
- package/dist/types/components/textarea/textarea.d.ts +7 -2
- package/dist/types/components.d.ts +4 -4
- package/hydrate/index.js +54 -28
- package/package.json +1 -1
- package/dist/collection/components/input-password-toggle/input-password-toggle.css +0 -0
- package/dist/ionic/p-1ee206ac.entry.js +0 -4
- package/dist/ionic/p-3a2eb448.system.entry.js +0 -4
- package/dist/ionic/p-6691825a.system.entry.js +0 -4
- package/dist/ionic/p-7a1b640f.entry.js +0 -4
- package/dist/ionic/p-8102551e.system.entry.js +0 -4
- package/dist/ionic/p-924deb6b.entry.js +0 -4
- package/dist/ionic/p-a6bb62ea.entry.js +0 -4
|
@@ -59,6 +59,28 @@
|
|
|
59
59
|
* }
|
|
60
60
|
* }
|
|
61
61
|
*/
|
|
62
|
+
/**
|
|
63
|
+
* A heuristic that applies CSS to tablet
|
|
64
|
+
* viewports.
|
|
65
|
+
*
|
|
66
|
+
* Usage:
|
|
67
|
+
* @include tablet-viewport() {
|
|
68
|
+
* :host {
|
|
69
|
+
* background-color: green;
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
*/
|
|
73
|
+
/**
|
|
74
|
+
* A heuristic that applies CSS to mobile
|
|
75
|
+
* viewports (i.e. phones, not tablets).
|
|
76
|
+
*
|
|
77
|
+
* Usage:
|
|
78
|
+
* @include mobile-viewport() {
|
|
79
|
+
* :host {
|
|
80
|
+
* background-color: blue;
|
|
81
|
+
* }
|
|
82
|
+
* }
|
|
83
|
+
*/
|
|
62
84
|
:host {
|
|
63
85
|
/**
|
|
64
86
|
* @prop --track-background: Background of the toggle track
|
|
@@ -84,7 +106,6 @@
|
|
|
84
106
|
outline: none;
|
|
85
107
|
cursor: pointer;
|
|
86
108
|
user-select: none;
|
|
87
|
-
z-index: 2;
|
|
88
109
|
}
|
|
89
110
|
|
|
90
111
|
:host(.in-item) {
|
|
@@ -141,26 +162,6 @@ input {
|
|
|
141
162
|
cursor: inherit;
|
|
142
163
|
}
|
|
143
164
|
|
|
144
|
-
.label-text-wrapper {
|
|
145
|
-
text-overflow: ellipsis;
|
|
146
|
-
white-space: nowrap;
|
|
147
|
-
overflow: hidden;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
:host(.in-item) .label-text-wrapper {
|
|
151
|
-
margin-top: 10px;
|
|
152
|
-
margin-bottom: 10px;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
:host(.in-item.toggle-label-placement-stacked) .label-text-wrapper {
|
|
156
|
-
margin-top: 10px;
|
|
157
|
-
margin-bottom: 16px;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
:host(.in-item.toggle-label-placement-stacked) .native-wrapper {
|
|
161
|
-
margin-bottom: 10px;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
165
|
/**
|
|
165
166
|
* If no label text is placed into the slot
|
|
166
167
|
* then the element should be hidden otherwise
|
|
@@ -175,26 +176,6 @@ input {
|
|
|
175
176
|
align-items: center;
|
|
176
177
|
}
|
|
177
178
|
|
|
178
|
-
:host(.toggle-justify-space-between) .toggle-wrapper {
|
|
179
|
-
justify-content: space-between;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
:host(.toggle-justify-start) .toggle-wrapper {
|
|
183
|
-
justify-content: start;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
:host(.toggle-justify-end) .toggle-wrapper {
|
|
187
|
-
justify-content: end;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
:host(.toggle-alignment-start) .toggle-wrapper {
|
|
191
|
-
align-items: start;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
:host(.toggle-alignment-center) .toggle-wrapper {
|
|
195
|
-
align-items: center;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
179
|
/**
|
|
199
180
|
* Label is on the left of the input in LTR and
|
|
200
181
|
* on the right in RTL.
|
|
@@ -203,18 +184,6 @@ input {
|
|
|
203
184
|
flex-direction: row;
|
|
204
185
|
}
|
|
205
186
|
|
|
206
|
-
:host(.toggle-label-placement-start) .label-text-wrapper {
|
|
207
|
-
/**
|
|
208
|
-
* The margin between the label and
|
|
209
|
-
* the input should be on the end
|
|
210
|
-
* when the label sits at the start.
|
|
211
|
-
*/
|
|
212
|
-
-webkit-margin-start: 0;
|
|
213
|
-
margin-inline-start: 0;
|
|
214
|
-
-webkit-margin-end: 16px;
|
|
215
|
-
margin-inline-end: 16px;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
187
|
/**
|
|
219
188
|
* Label is on the right of the input in LTR and
|
|
220
189
|
* on the left in RTL.
|
|
@@ -223,91 +192,6 @@ input {
|
|
|
223
192
|
flex-direction: row-reverse;
|
|
224
193
|
}
|
|
225
194
|
|
|
226
|
-
/**
|
|
227
|
-
* The margin between the label and
|
|
228
|
-
* the input should be on the start
|
|
229
|
-
* when the label sits at the end.
|
|
230
|
-
*/
|
|
231
|
-
:host(.toggle-label-placement-end) .label-text-wrapper {
|
|
232
|
-
-webkit-margin-start: 16px;
|
|
233
|
-
margin-inline-start: 16px;
|
|
234
|
-
-webkit-margin-end: 0;
|
|
235
|
-
margin-inline-end: 0;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
:host(.toggle-label-placement-fixed) .label-text-wrapper {
|
|
239
|
-
/**
|
|
240
|
-
* The margin between the label and
|
|
241
|
-
* the input should be on the end
|
|
242
|
-
* when the label sits at the start.
|
|
243
|
-
*/
|
|
244
|
-
-webkit-margin-start: 0;
|
|
245
|
-
margin-inline-start: 0;
|
|
246
|
-
-webkit-margin-end: 16px;
|
|
247
|
-
margin-inline-end: 16px;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* Label is on the left of the input in LTR and
|
|
252
|
-
* on the right in RTL. Label also has a fixed width.
|
|
253
|
-
*/
|
|
254
|
-
:host(.toggle-label-placement-fixed) .label-text-wrapper {
|
|
255
|
-
flex: 0 0 100px;
|
|
256
|
-
width: 100px;
|
|
257
|
-
min-width: 100px;
|
|
258
|
-
max-width: 200px;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Label is on top of the toggle.
|
|
263
|
-
*/
|
|
264
|
-
:host(.toggle-label-placement-stacked) .toggle-wrapper {
|
|
265
|
-
flex-direction: column;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
:host(.toggle-label-placement-stacked) .label-text-wrapper {
|
|
269
|
-
transform: scale(0.75);
|
|
270
|
-
/**
|
|
271
|
-
* The margin between the label and
|
|
272
|
-
* the toggle should be on the bottom
|
|
273
|
-
* when the label sits on top.
|
|
274
|
-
*/
|
|
275
|
-
margin-left: 0;
|
|
276
|
-
margin-right: 0;
|
|
277
|
-
margin-bottom: 16px;
|
|
278
|
-
/**
|
|
279
|
-
* Label text should not extend
|
|
280
|
-
* beyond the bounds of the toggle.
|
|
281
|
-
*/
|
|
282
|
-
max-width: calc(100% / 0.75);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
:host(.toggle-label-placement-stacked.toggle-alignment-start) .label-text-wrapper {
|
|
286
|
-
transform-origin: left top;
|
|
287
|
-
}
|
|
288
|
-
:host-context([dir=rtl]):host(.toggle-label-placement-stacked.toggle-alignment-start) .label-text-wrapper, :host-context([dir=rtl]).toggle-label-placement-stacked.toggle-alignment-start .label-text-wrapper {
|
|
289
|
-
transform-origin: right top;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
@supports selector(:dir(rtl)) {
|
|
293
|
-
:host(.toggle-label-placement-stacked.toggle-alignment-start:dir(rtl)) .label-text-wrapper {
|
|
294
|
-
transform-origin: right top;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
:host(.toggle-label-placement-stacked.toggle-alignment-center) .label-text-wrapper {
|
|
299
|
-
transform-origin: center top;
|
|
300
|
-
}
|
|
301
|
-
:host-context([dir=rtl]):host(.toggle-label-placement-stacked.toggle-alignment-center) .label-text-wrapper, :host-context([dir=rtl]).toggle-label-placement-stacked.toggle-alignment-center .label-text-wrapper {
|
|
302
|
-
transform-origin: calc(100% - center) top;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
@supports selector(:dir(rtl)) {
|
|
306
|
-
:host(.toggle-label-placement-stacked.toggle-alignment-center:dir(rtl)) .label-text-wrapper {
|
|
307
|
-
transform-origin: calc(100% - center) top;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
|
|
311
195
|
.toggle-icon-wrapper {
|
|
312
196
|
display: flex;
|
|
313
197
|
position: relative;
|
|
@@ -378,6 +262,147 @@ input {
|
|
|
378
262
|
transform: translate3d(calc(var(--handle-spacing) * 2), 0, 0);
|
|
379
263
|
}
|
|
380
264
|
|
|
265
|
+
:host {
|
|
266
|
+
z-index: 2;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
:host(.in-item) .label-text-wrapper {
|
|
270
|
+
margin-top: 10px;
|
|
271
|
+
margin-bottom: 10px;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
:host(.in-item.toggle-label-placement-stacked) .label-text-wrapper {
|
|
275
|
+
margin-top: 10px;
|
|
276
|
+
margin-bottom: 16px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
:host(.in-item.toggle-label-placement-stacked) .native-wrapper {
|
|
280
|
+
margin-bottom: 10px;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.label-text-wrapper {
|
|
284
|
+
text-overflow: ellipsis;
|
|
285
|
+
white-space: nowrap;
|
|
286
|
+
overflow: hidden;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
:host(.toggle-justify-space-between) .toggle-wrapper {
|
|
290
|
+
justify-content: space-between;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
:host(.toggle-justify-start) .toggle-wrapper {
|
|
294
|
+
justify-content: start;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
:host(.toggle-justify-end) .toggle-wrapper {
|
|
298
|
+
justify-content: end;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
:host(.toggle-alignment-start) .toggle-wrapper {
|
|
302
|
+
align-items: start;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
:host(.toggle-alignment-center) .toggle-wrapper {
|
|
306
|
+
align-items: center;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
:host(.toggle-label-placement-fixed) .label-text-wrapper {
|
|
310
|
+
/**
|
|
311
|
+
* The margin between the label and
|
|
312
|
+
* the input should be on the end
|
|
313
|
+
* when the label sits at the start.
|
|
314
|
+
*/
|
|
315
|
+
-webkit-margin-start: 0;
|
|
316
|
+
margin-inline-start: 0;
|
|
317
|
+
-webkit-margin-end: 16px;
|
|
318
|
+
margin-inline-end: 16px;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Label is on the left of the input in LTR and
|
|
323
|
+
* on the right in RTL. Label also has a fixed width.
|
|
324
|
+
*/
|
|
325
|
+
:host(.toggle-label-placement-fixed) .label-text-wrapper {
|
|
326
|
+
flex: 0 0 100px;
|
|
327
|
+
width: 100px;
|
|
328
|
+
min-width: 100px;
|
|
329
|
+
max-width: 200px;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Label is on top of the toggle.
|
|
334
|
+
*/
|
|
335
|
+
:host(.toggle-label-placement-stacked) .toggle-wrapper {
|
|
336
|
+
flex-direction: column;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
:host(.toggle-label-placement-stacked) .label-text-wrapper {
|
|
340
|
+
transform: scale(0.75);
|
|
341
|
+
/**
|
|
342
|
+
* The margin between the label and
|
|
343
|
+
* the toggle should be on the bottom
|
|
344
|
+
* when the label sits on top.
|
|
345
|
+
*/
|
|
346
|
+
margin-left: 0;
|
|
347
|
+
margin-right: 0;
|
|
348
|
+
margin-bottom: 16px;
|
|
349
|
+
/**
|
|
350
|
+
* Label text should not extend
|
|
351
|
+
* beyond the bounds of the toggle.
|
|
352
|
+
*/
|
|
353
|
+
max-width: calc(100% / 0.75);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
:host(.toggle-label-placement-stacked.toggle-alignment-start) .label-text-wrapper {
|
|
357
|
+
transform-origin: left top;
|
|
358
|
+
}
|
|
359
|
+
:host-context([dir=rtl]):host(.toggle-label-placement-stacked.toggle-alignment-start) .label-text-wrapper, :host-context([dir=rtl]).toggle-label-placement-stacked.toggle-alignment-start .label-text-wrapper {
|
|
360
|
+
transform-origin: right top;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
@supports selector(:dir(rtl)) {
|
|
364
|
+
:host(.toggle-label-placement-stacked.toggle-alignment-start:dir(rtl)) .label-text-wrapper {
|
|
365
|
+
transform-origin: right top;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
:host(.toggle-label-placement-stacked.toggle-alignment-center) .label-text-wrapper {
|
|
370
|
+
transform-origin: center top;
|
|
371
|
+
}
|
|
372
|
+
:host-context([dir=rtl]):host(.toggle-label-placement-stacked.toggle-alignment-center) .label-text-wrapper, :host-context([dir=rtl]).toggle-label-placement-stacked.toggle-alignment-center .label-text-wrapper {
|
|
373
|
+
transform-origin: calc(100% - center) top;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
@supports selector(:dir(rtl)) {
|
|
377
|
+
:host(.toggle-label-placement-stacked.toggle-alignment-center:dir(rtl)) .label-text-wrapper {
|
|
378
|
+
transform-origin: calc(100% - center) top;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
:host(.toggle-label-placement-start) .label-text-wrapper {
|
|
383
|
+
/**
|
|
384
|
+
* The margin between the label and
|
|
385
|
+
* the input should be on the end
|
|
386
|
+
* when the label sits at the start.
|
|
387
|
+
*/
|
|
388
|
+
-webkit-margin-start: 0;
|
|
389
|
+
margin-inline-start: 0;
|
|
390
|
+
-webkit-margin-end: 16px;
|
|
391
|
+
margin-inline-end: 16px;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* The margin between the label and
|
|
396
|
+
* the input should be on the start
|
|
397
|
+
* when the label sits at the end.
|
|
398
|
+
*/
|
|
399
|
+
:host(.toggle-label-placement-end) .label-text-wrapper {
|
|
400
|
+
-webkit-margin-start: 16px;
|
|
401
|
+
margin-inline-start: 16px;
|
|
402
|
+
-webkit-margin-end: 0;
|
|
403
|
+
margin-inline-end: 0;
|
|
404
|
+
}
|
|
405
|
+
|
|
381
406
|
/**
|
|
382
407
|
* Convert a pixels given value into rem
|
|
383
408
|
*
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2024-08-
|
|
2
|
+
"timestamp": "2024-08-26T13:59:49",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.18.3",
|
|
@@ -36120,22 +36120,30 @@
|
|
|
36120
36120
|
},
|
|
36121
36121
|
{
|
|
36122
36122
|
"name": "shape",
|
|
36123
|
-
"type": "\"round\" | undefined",
|
|
36123
|
+
"type": "\"rectangular\" | \"round\" | \"soft\" | undefined",
|
|
36124
36124
|
"complexType": {
|
|
36125
|
-
"original": "'round'",
|
|
36126
|
-
"resolved": "\"round\" | undefined",
|
|
36125
|
+
"original": "'soft' | 'round' | 'rectangular'",
|
|
36126
|
+
"resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
|
|
36127
36127
|
"references": {}
|
|
36128
36128
|
},
|
|
36129
36129
|
"mutable": false,
|
|
36130
36130
|
"attr": "shape",
|
|
36131
36131
|
"reflectToAttr": false,
|
|
36132
|
-
"docs": "
|
|
36132
|
+
"docs": "Set to `\"soft\"` for a textarea with slightly rounded corners,\n`\"round\"` for a textarea with fully rounded corners, or `\"rectangular\"`\nfor a textarea without rounded corners.\n\nDefaults to `\"round\"` for the `ionic` theme, undefined for all other themes.",
|
|
36133
36133
|
"docsTags": [],
|
|
36134
36134
|
"values": [
|
|
36135
|
+
{
|
|
36136
|
+
"value": "rectangular",
|
|
36137
|
+
"type": "string"
|
|
36138
|
+
},
|
|
36135
36139
|
{
|
|
36136
36140
|
"value": "round",
|
|
36137
36141
|
"type": "string"
|
|
36138
36142
|
},
|
|
36143
|
+
{
|
|
36144
|
+
"value": "soft",
|
|
36145
|
+
"type": "string"
|
|
36146
|
+
},
|
|
36139
36147
|
{
|
|
36140
36148
|
"type": "undefined"
|
|
36141
36149
|
}
|
|
@@ -10,11 +10,14 @@ const eyeSlashSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53M
|
|
|
10
10
|
|
|
11
11
|
const eyeSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDcuMzEsMTI0Ljc2Yy0uMzUtLjc5LTguODItMTkuNTgtMjcuNjUtMzguNDFDMTk0LjU3LDYxLjI2LDE2Mi44OCw0OCwxMjgsNDhTNjEuNDMsNjEuMjYsMzYuMzQsODYuMzVDMTcuNTEsMTA1LjE4LDksMTI0LDguNjksMTI0Ljc2YTgsOCwwLDAsMCwwLDYuNWMuMzUuNzksOC44MiwxOS41NywyNy42NSwzOC40QzYxLjQzLDE5NC43NCw5My4xMiwyMDgsMTI4LDIwOHM2Ni41Ny0xMy4yNiw5MS42Ni0zOC4zNGMxOC44My0xOC44MywyNy4zLTM3LjYxLDI3LjY1LTM4LjRBOCw4LDAsMCwwLDI0Ny4zMSwxMjQuNzZaTTEyOCwxOTJjLTMwLjc4LDAtNTcuNjctMTEuMTktNzkuOTMtMzMuMjVBMTMzLjQ3LDEzMy40NywwLDAsMSwyNSwxMjgsMTMzLjMzLDEzMy4zMywwLDAsMSw0OC4wNyw5Ny4yNUM3MC4zMyw3NS4xOSw5Ny4yMiw2NCwxMjgsNjRzNTcuNjcsMTEuMTksNzkuOTMsMzMuMjVBMTMzLjQ2LDEzMy40NiwwLDAsMSwyMzEuMDUsMTI4QzIyMy44NCwxNDEuNDYsMTkyLjQzLDE5MiwxMjgsMTkyWm0wLTExMmE0OCw0OCwwLDEsMCw0OCw0OEE0OC4wNSw0OC4wNSwwLDAsMCwxMjgsODBabTAsODBhMzIsMzIsMCwxLDEsMzItMzJBMzIsMzIsMCwwLDEsMTI4LDE2MFoiLz48L3N2Zz4=';
|
|
12
12
|
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const inputPasswordToggleIonicCss = ":host ion-button.button-has-icon-only{--padding-end:inherit;--color:var(--ionic-color-neutral-500, #a2a2a2);--margin-end:calc(-1 * var(--padding-end));-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:0;margin-bottom:0}";
|
|
14
|
+
const IonInputPasswordToggleIonicStyle0 = inputPasswordToggleIonicCss;
|
|
15
15
|
|
|
16
|
-
const
|
|
17
|
-
const
|
|
16
|
+
const iosInputPasswordToggleCommonCss = "";
|
|
17
|
+
const IonInputPasswordToggleIosStyle0 = iosInputPasswordToggleCommonCss;
|
|
18
|
+
|
|
19
|
+
const mdInputPasswordToggleCommonCss = "";
|
|
20
|
+
const IonInputPasswordToggleMdStyle0 = mdInputPasswordToggleCommonCss;
|
|
18
21
|
|
|
19
22
|
const InputPasswordToggle = class {
|
|
20
23
|
constructor(hostRef) {
|
|
@@ -99,16 +102,16 @@ const InputPasswordToggle = class {
|
|
|
99
102
|
const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
|
|
100
103
|
const mode = getIonMode(this);
|
|
101
104
|
const isPasswordVisible = type === 'text';
|
|
102
|
-
return (h(Host, { key: '
|
|
105
|
+
return (h(Host, { key: '140bda3fc0a5a4dda16c9dfcf1254cc94c60206e', class: createColorClasses(color, {
|
|
103
106
|
[mode]: true,
|
|
104
|
-
}) }, h("ion-button", { key: '
|
|
107
|
+
}) }, h("ion-button", { key: 'ec84dcf19d488f9454eadc860e10be8f8a306f0b', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
|
|
105
108
|
/**
|
|
106
109
|
* This prevents mobile browsers from
|
|
107
110
|
* blurring the input when the password toggle
|
|
108
111
|
* button is activated.
|
|
109
112
|
*/
|
|
110
113
|
ev.preventDefault();
|
|
111
|
-
}, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: '
|
|
114
|
+
}, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: '40d2804ffafda8cb18c4f55af8cb6f7916c7c466', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
|
|
112
115
|
}
|
|
113
116
|
get el() { return getElement(this); }
|
|
114
117
|
static get watchers() { return {
|
|
@@ -116,6 +119,7 @@ const InputPasswordToggle = class {
|
|
|
116
119
|
}; }
|
|
117
120
|
};
|
|
118
121
|
InputPasswordToggle.style = {
|
|
122
|
+
ionic: IonInputPasswordToggleIonicStyle0,
|
|
119
123
|
ios: IonInputPasswordToggleIosStyle0,
|
|
120
124
|
md: IonInputPasswordToggleMdStyle0
|
|
121
125
|
};
|
|
@@ -264,6 +264,14 @@ const Input = class {
|
|
|
264
264
|
getValue() {
|
|
265
265
|
return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();
|
|
266
266
|
}
|
|
267
|
+
getFill() {
|
|
268
|
+
const theme = getIonTheme(this);
|
|
269
|
+
const { fill } = this;
|
|
270
|
+
if (theme === 'ionic' && fill === undefined) {
|
|
271
|
+
return 'outline';
|
|
272
|
+
}
|
|
273
|
+
return fill;
|
|
274
|
+
}
|
|
267
275
|
getLabelPlacement() {
|
|
268
276
|
const theme = getIonTheme(this);
|
|
269
277
|
const { el, labelPlacement } = this;
|
|
@@ -449,9 +457,10 @@ const Input = class {
|
|
|
449
457
|
return config.get('inputClearIcon', defaultIcon);
|
|
450
458
|
}
|
|
451
459
|
render() {
|
|
452
|
-
const { disabled,
|
|
460
|
+
const { disabled, readonly, inputId, el, hasFocus, clearInput, inputClearIcon } = this;
|
|
453
461
|
const theme = getIonTheme(this);
|
|
454
462
|
const value = this.getValue();
|
|
463
|
+
const fill = this.getFill();
|
|
455
464
|
const size = this.getSize();
|
|
456
465
|
const shape = this.getShape();
|
|
457
466
|
const inItem = hostContext('ion-item', this.el);
|
|
@@ -477,7 +486,7 @@ const Input = class {
|
|
|
477
486
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
478
487
|
*/
|
|
479
488
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
480
|
-
return (h(Host, { key: '
|
|
489
|
+
return (h(Host, { key: '95fe18aa3f3056ce88a2f08c0e47382213e0eeb2', class: createColorClasses(this.color, {
|
|
481
490
|
[theme]: true,
|
|
482
491
|
'has-value': hasValue,
|
|
483
492
|
'has-focus': hasFocus,
|
|
@@ -490,7 +499,7 @@ const Input = class {
|
|
|
490
499
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
491
500
|
'input-disabled': disabled,
|
|
492
501
|
'input-readonly': readonly,
|
|
493
|
-
}) }, h("label", { key: '
|
|
502
|
+
}) }, h("label", { key: '088e5cbdc63481e83f2cecf1228e31533de11fe3', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: '0311bc8d8ca91920c9ed8630762933d10a5d8df4', class: "native-wrapper" },
|
|
494
503
|
/**
|
|
495
504
|
* For the ionic theme, we render the outline container here
|
|
496
505
|
* instead of higher up, so it can be positioned relative to
|
|
@@ -500,7 +509,7 @@ const Input = class {
|
|
|
500
509
|
* <label> element, ensuring that clicking the label text
|
|
501
510
|
* focuses the input.
|
|
502
511
|
*/
|
|
503
|
-
theme === 'ionic' && fill === 'outline' && h("div", { key: '
|
|
512
|
+
theme === 'ionic' && fill === 'outline' && h("div", { key: '8dd4695edebba5964e1dbb1d733b2d2e636ec581', class: "input-outline" }), h("slot", { key: '2065978166c9017f9383de71861babdfc3fb1cbe', name: "start" }), h("input", Object.assign({ key: '8fb6627afac9457eb23abb149607566a18175ef4', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (h("button", { key: '739f486081fc9e7ba6b1387dd6a813f3a2eb484a', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
504
513
|
/**
|
|
505
514
|
* This prevents mobile browsers from
|
|
506
515
|
* blurring the input when the clear
|
|
@@ -515,7 +524,7 @@ const Input = class {
|
|
|
515
524
|
* for screen readers as it means users would be unable to swipe past the clear button.
|
|
516
525
|
*/
|
|
517
526
|
ev.stopPropagation();
|
|
518
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
527
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { key: '0775e8fa9b9cf9df17743472edbc2f307e4f4b9a', "aria-hidden": "true", icon: inputClearIcon }))), h("slot", { key: '72e48a851f3fb2450af96f9d271b27dcb0bca047', name: "end" })), shouldRenderHighlight && h("div", { key: 'e91752ecd290374ae7adbe0b99163092a9e3f0fd', class: "input-highlight" })), this.renderBottomContent()));
|
|
519
528
|
}
|
|
520
529
|
get el() { return getElement(this); }
|
|
521
530
|
static get watchers() { return {
|