@ionic/core 8.8.4-dev.11775576543.172b7b99 → 8.8.4-dev.11775852701.1bbb2b3e
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/index.js +1 -1
- package/components/ion-accordion-group.js +1 -1
- 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-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker-legacy-column.js +1 -1
- package/components/ion-picker-legacy.js +1 -1
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-route-redirect.js +1 -1
- package/components/ion-route.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.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/ion-toolbar.js +1 -1
- package/components/p-1KVKSLu5.js +4 -0
- package/{dist/ionic/p-BsfuYVMP.js → components/p-9VcRUwdB.js} +1 -1
- package/components/p-ApmKVjaE.js +4 -0
- package/components/p-B6FQ0cKR.js +4 -0
- package/components/p-B6HaBl3o.js +4 -0
- package/components/p-B8b1Ukl9.js +4 -0
- package/components/p-BJoMtgfR.js +4 -0
- package/components/p-BNAG-aVv.js +4 -0
- package/components/p-BR3tZJmu.js +4 -0
- package/{dist/ionic/p-C8IHbcuP.js → components/p-BS1TtEiJ.js} +1 -1
- package/components/p-BTeL5HCK.js +4 -0
- package/components/{p-CHgKFg32.js → p-BUbsoBOV.js} +1 -1
- package/components/p-BVnB3eEn.js +4 -0
- package/components/p-BYDc3hSE.js +4 -0
- package/components/p-BagjAGC0.js +4 -0
- package/components/p-BegtE7nr.js +4 -0
- package/components/p-BgwEQWW6.js +4 -0
- package/components/p-Bk2zuNWT.js +4 -0
- package/components/p-BmVRXR1y.js +4 -0
- package/components/p-BxwWvu-b.js +4 -0
- package/components/p-C4jPsTQa.js +4 -0
- package/components/p-C59ryAuS.js +4 -0
- package/components/p-C7AoMl7c.js +4 -0
- package/components/p-CBzELu-H.js +4 -0
- package/components/p-CDfQnFrd.js +4 -0
- package/components/p-CH0NYjKq.js +4 -0
- package/components/p-CIGNaXM1.js +4 -0
- package/components/{p-0tC5Bj8z.js → p-CO7fmmxt.js} +1 -1
- package/components/p-CU1SSH8_.js +4 -0
- package/components/p-CgfaEEem.js +4 -0
- package/components/p-CgqKJg96.js +4 -0
- package/components/p-CneGxKsZ.js +4 -0
- package/components/p-CoA-aqGF.js +4 -0
- package/components/p-Cq8cQ0NL.js +4 -0
- package/components/p-Csw8xuz4.js +4 -0
- package/components/p-CtWGkNnJ.js +4 -0
- package/components/{p-CjSx8W-k.js → p-Cwv-vmkN.js} +1 -1
- package/components/p-Cy5XSfIk.js +4 -0
- package/components/p-Cyxa_4PV.js +4 -0
- package/components/p-Cz5nLPGT.js +4 -0
- package/{dist/ionic/p-SJmaFQ0H.js → components/p-D13Eaw-8.js} +1 -1
- package/components/p-D6NJwNJN.js +4 -0
- package/components/p-D6Ynv7Xh.js +4 -0
- package/components/p-D7GhgBM-.js +4 -0
- package/components/p-DHsZWn1l.js +4 -0
- package/components/p-DJMZehmW.js +4 -0
- package/components/p-DJztqcrH.js +4 -0
- package/components/p-DYdpXONG.js +4 -0
- package/components/p-DbISMmiI.js +4 -0
- package/components/p-DgbT0exM.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/p-DtUKO5i4.js +4 -0
- package/components/{p-zWP0sUV_.js → p-YLXPWgVj.js} +1 -1
- package/components/p-ZjP4CjeZ.js +4 -0
- package/{dist/ionic/p-ZqkJDyhe.js → components/p-ak_d-z48.js} +1 -1
- package/components/p-cvHphHJA.js +4 -0
- package/{dist/ionic/p-CbkICFBN.js → components/p-cyNmxje6.js} +1 -1
- package/components/p-fpbh6w3f.js +4 -0
- package/components/p-kvaDs24J.js +4 -0
- package/components/p-vEbVo2hO.js +4 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-DknMeJ3x.js → animation-Dg4yiuR2.js} +3 -3
- package/dist/cjs/{app-globals-DtAeky3x.js → app-globals-CLI8xCmk.js} +1 -1
- package/dist/cjs/{button-active-JoIWyYri.js → button-active-FscMI17-.js} +2 -2
- package/dist/cjs/{capacitor-BnRBm_ys.js → capacitor-DmA66EwP.js} +3 -3
- package/dist/cjs/{config-B0utyWaD.js → config-BukYi_pW.js} +1 -1
- package/dist/cjs/{data-DuOuKG7I.js → data-BYlBjkMU.js} +6 -6
- package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
- package/dist/cjs/{framework-delegate-Dx9FrqAC.js → framework-delegate-CRgp8o_p.js} +2 -4
- package/dist/cjs/{haptic-D3Ay9mmg.js → haptic-ClPPQ_PS.js} +1 -1
- package/dist/cjs/hardware-back-button-C4rMJ5uI.js +121 -0
- package/dist/cjs/{helpers-DJYxKN5U.js → helpers-CxTYJdbT.js} +4 -57
- package/dist/cjs/{index-D_mPAIqF.js → index-C845Ti6K.js} +4 -4
- package/dist/cjs/{index-Cer2Qy4I.js → index-CFUwM5x_.js} +15 -15
- package/dist/cjs/{index-CzcLEdQ5.js → index-CqT-2gKy.js} +4 -41
- package/dist/cjs/index-DkNv4J_i.js +10 -0
- package/dist/cjs/{index-BJrpF9T3.js → index-MbaBbWXk.js} +2 -2
- package/dist/cjs/{index-DMJjUhXH.js → index-YcSftOMz.js} +8 -9
- package/dist/cjs/index.cjs.js +14 -13
- package/dist/cjs/{input-shims-Dn33gFln.js → input-shims-Dl5cnc_e.js} +17 -18
- package/dist/cjs/{input.utils-DnVnhWEF.js → input.utils-DmeJ8dmo.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +28 -60
- package/dist/cjs/ion-action-sheet.cjs.entry.js +22 -25
- package/dist/cjs/ion-alert.cjs.entry.js +23 -25
- package/dist/cjs/ion-app_8.cjs.entry.js +157 -292
- package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
- package/dist/cjs/ion-back-button.cjs.entry.js +21 -30
- package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +17 -53
- package/dist/cjs/ion-button_2.cjs.entry.js +22 -59
- package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
- package/dist/cjs/ion-checkbox.cjs.entry.js +16 -34
- package/dist/cjs/ion-chip.cjs.entry.js +9 -50
- package/dist/cjs/ion-col_3.cjs.entry.js +57 -54
- package/dist/cjs/ion-datetime-button.cjs.entry.js +9 -13
- package/dist/cjs/ion-datetime_3.cjs.entry.js +43 -128
- package/dist/cjs/ion-fab_3.cjs.entry.js +27 -43
- package/dist/cjs/ion-img.cjs.entry.js +4 -8
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +16 -91
- package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +14 -52
- package/dist/cjs/ion-input.cjs.entry.js +33 -123
- package/dist/cjs/ion-item-option_3.cjs.entry.js +21 -50
- package/dist/cjs/ion-item_8.cjs.entry.js +48 -115
- package/dist/cjs/ion-loading.cjs.entry.js +18 -20
- package/dist/cjs/ion-menu_3.cjs.entry.js +28 -46
- package/dist/cjs/ion-modal.cjs.entry.js +78 -105
- package/dist/cjs/ion-nav_2.cjs.entry.js +11 -14
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -12
- package/dist/cjs/ion-picker-column.cjs.entry.js +15 -15
- package/dist/cjs/ion-picker.cjs.entry.js +6 -10
- package/dist/cjs/ion-popover.cjs.entry.js +18 -20
- package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
- package/dist/cjs/ion-radio_2.cjs.entry.js +17 -35
- package/dist/cjs/ion-range.cjs.entry.js +12 -16
- package/dist/cjs/ion-refresher_2.cjs.entry.js +20 -38
- package/dist/cjs/ion-reorder_2.cjs.entry.js +13 -37
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
- package/dist/cjs/ion-route_4.cjs.entry.js +9 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +23 -136
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +3 -6
- package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
- package/dist/cjs/ion-select-modal.cjs.entry.js +11 -17
- package/dist/cjs/ion-select_3.cjs.entry.js +41 -132
- package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
- package/dist/cjs/ion-split-pane.cjs.entry.js +9 -12
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +23 -77
- package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
- package/dist/cjs/ion-text.cjs.entry.js +7 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
- package/dist/cjs/ion-toast.cjs.entry.js +45 -68
- package/dist/cjs/ion-toggle.cjs.entry.js +24 -81
- package/dist/cjs/ionic-global-Bc3kJi1Z.js +151 -0
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-UCjoxA3D.js → ios.transition-trBiC95R.js} +5 -7
- package/dist/cjs/{keyboard-Dsczf-iT.js → keyboard-UuAS4D_9.js} +1 -1
- package/dist/cjs/{keyboard-controller-tqGDP9SU.js → keyboard-controller-GXBiBRKS.js} +9 -11
- package/dist/cjs/{keyboard-Bhav6x-R.js → keyboard-hHzlEQpk.js} +3 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CNwlchQn.js → md.transition-CUQECuvD.js} +5 -6
- package/dist/cjs/{notch-controller-CgtkBzy0.js → notch-controller-sD-lTpdc.js} +4 -4
- package/dist/cjs/{overlays-Dhoy6v_5.js → overlays-C2jiBSNQ.js} +12 -102
- package/dist/cjs/{status-tap-CTY2dMsZ.js → status-tap-CCJk5VgT.js} +3 -4
- package/dist/cjs/{swipe-back-jJFi5KCB.js → swipe-back-BGhTQ1CU.js} +2 -3
- package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
- package/dist/cjs/validity-BpS37YFM.js +19 -0
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/accordion/accordion.ios.css +58 -73
- package/dist/collection/components/accordion/accordion.js +27 -41
- package/dist/collection/components/accordion/accordion.md.css +59 -67
- package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
- package/dist/collection/components/accordion-group/accordion-group.js +8 -44
- package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
- package/dist/collection/components/action-sheet/action-sheet.ios.css +6 -18
- package/dist/collection/components/action-sheet/action-sheet.js +13 -17
- package/dist/collection/components/action-sheet/action-sheet.md.css +5 -17
- package/dist/collection/components/alert/alert.ios.css +1 -19
- package/dist/collection/components/alert/alert.js +13 -16
- package/dist/collection/components/alert/alert.md.css +1 -19
- package/dist/collection/components/app/app.js +83 -15
- package/dist/collection/components/avatar/avatar.ios.css +33 -7
- package/dist/collection/components/avatar/avatar.js +4 -120
- package/dist/collection/components/avatar/avatar.md.css +0 -51
- package/dist/collection/components/back-button/back-button.ios.css +48 -60
- package/dist/collection/components/back-button/back-button.js +19 -27
- package/dist/collection/components/back-button/back-button.md.css +48 -60
- package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
- package/dist/collection/components/backdrop/backdrop.js +6 -12
- package/dist/collection/components/backdrop/backdrop.md.css +19 -56
- package/dist/collection/components/badge/badge.ios.css +12 -139
- package/dist/collection/components/badge/badge.js +9 -145
- package/dist/collection/components/badge/badge.md.css +12 -123
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
- package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
- package/dist/collection/components/button/button.ios.css +46 -154
- package/dist/collection/components/button/button.js +27 -63
- package/dist/collection/components/button/button.md.css +50 -150
- package/dist/collection/components/buttons/buttons.ios.css +7 -59
- package/dist/collection/components/buttons/buttons.js +9 -15
- package/dist/collection/components/buttons/buttons.md.css +3 -55
- package/dist/collection/components/card/card.ios.css +14 -65
- package/dist/collection/components/card/card.js +10 -41
- package/dist/collection/components/card/card.md.css +14 -65
- package/dist/collection/components/card-content/card-content.ios.css +35 -20
- package/dist/collection/components/card-content/card-content.js +10 -12
- package/dist/collection/components/card-content/card-content.md.css +35 -20
- package/dist/collection/components/card-header/card-header.ios.css +15 -27
- package/dist/collection/components/card-header/card-header.js +10 -13
- package/dist/collection/components/card-header/card-header.md.css +15 -27
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
- package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
- package/dist/collection/components/card-title/card-title.ios.css +0 -73
- package/dist/collection/components/card-title/card-title.js +8 -11
- package/dist/collection/components/card-title/card-title.md.css +0 -73
- package/dist/collection/components/checkbox/checkbox.ios.css +101 -161
- package/dist/collection/components/checkbox/checkbox.js +14 -70
- package/dist/collection/components/checkbox/checkbox.md.css +102 -162
- package/dist/collection/components/chip/chip.ios.css +14 -67
- package/dist/collection/components/chip/chip.js +8 -108
- package/dist/collection/components/chip/chip.md.css +14 -67
- package/dist/collection/components/col/col.css +4 -192
- package/dist/collection/components/col/col.js +61 -210
- package/dist/collection/components/content/content.css +2 -8
- package/dist/collection/components/content/content.js +11 -16
- package/dist/collection/components/datetime/datetime.ios.css +106 -302
- package/dist/collection/components/datetime/datetime.js +23 -111
- package/dist/collection/components/datetime/datetime.md.css +96 -293
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
- package/dist/collection/components/datetime-button/datetime-button.js +8 -11
- package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
- package/dist/collection/components/fab/fab.css +1 -25
- package/dist/collection/components/fab/fab.js +5 -9
- package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
- package/dist/collection/components/fab-button/fab-button.js +21 -36
- package/dist/collection/components/fab-button/fab-button.md.css +8 -20
- package/dist/collection/components/fab-list/fab-list.css +0 -12
- package/dist/collection/components/fab-list/fab-list.js +5 -9
- package/dist/collection/components/footer/footer.ios.css +2 -14
- package/dist/collection/components/footer/footer.js +16 -21
- package/dist/collection/components/footer/footer.md.css +0 -12
- package/dist/collection/components/grid/grid.css +0 -12
- package/dist/collection/components/grid/grid.js +5 -9
- package/dist/collection/components/header/header.ios.css +10 -25
- package/dist/collection/components/header/header.js +19 -50
- package/dist/collection/components/header/header.md.css +8 -23
- package/dist/collection/components/header/header.utils.js +5 -5
- package/dist/collection/components/img/img.js +2 -8
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
- package/dist/collection/components/input/input.ios.css +135 -223
- package/dist/collection/components/input/input.js +37 -148
- package/dist/collection/components/input/input.md.css +207 -193
- package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
- package/dist/collection/components/input-otp/input-otp.js +6 -73
- package/dist/collection/components/input-otp/input-otp.md.css +60 -105
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
- package/dist/collection/components/item/item.ios.css +69 -109
- package/dist/collection/components/item/item.js +20 -51
- package/dist/collection/components/item/item.md.css +68 -120
- package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
- package/dist/collection/components/item-divider/item-divider.js +8 -11
- package/dist/collection/components/item-divider/item-divider.md.css +0 -18
- package/dist/collection/components/item-group/item-group.ios.css +0 -12
- package/dist/collection/components/item-group/item-group.js +7 -13
- package/dist/collection/components/item-group/item-group.md.css +0 -12
- package/dist/collection/components/item-option/item-option.ios.css +29 -136
- package/dist/collection/components/item-option/item-option.js +9 -73
- package/dist/collection/components/item-option/item-option.md.css +29 -136
- package/dist/collection/components/item-options/item-options.ios.css +34 -77
- package/dist/collection/components/item-options/item-options.js +7 -13
- package/dist/collection/components/item-options/item-options.md.css +34 -77
- package/dist/collection/components/item-sliding/item-sliding.css +0 -6
- package/dist/collection/components/item-sliding/item-sliding.js +4 -8
- package/dist/collection/components/label/label.ios.css +0 -18
- package/dist/collection/components/label/label.js +8 -11
- package/dist/collection/components/label/label.md.css +0 -18
- package/dist/collection/components/list/list.ios.css +14 -54
- package/dist/collection/components/list/list.js +9 -48
- package/dist/collection/components/list/list.md.css +16 -56
- package/dist/collection/components/list-header/list-header.ios.css +38 -82
- package/dist/collection/components/list-header/list-header.js +8 -11
- package/dist/collection/components/list-header/list-header.md.css +38 -82
- package/dist/collection/components/loading/loading.ios.css +1 -13
- package/dist/collection/components/loading/loading.js +11 -14
- package/dist/collection/components/loading/loading.md.css +1 -13
- package/dist/collection/components/menu/menu.ios.css +3 -15
- package/dist/collection/components/menu/menu.js +7 -12
- package/dist/collection/components/menu/menu.md.css +3 -15
- package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
- package/dist/collection/components/menu-button/menu-button.js +10 -26
- package/dist/collection/components/menu-button/menu-button.md.css +15 -49
- package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
- package/dist/collection/components/modal/animations/sheet.js +2 -8
- package/dist/collection/components/modal/gestures/sheet.js +6 -10
- package/dist/collection/components/modal/modal.ios.css +70 -178
- package/dist/collection/components/modal/modal.js +11 -48
- package/dist/collection/components/modal/modal.md.css +70 -178
- package/dist/collection/components/nav/nav.css +1 -7
- package/dist/collection/components/nav/nav.js +5 -11
- package/dist/collection/components/nav-link/nav-link.js +1 -5
- package/dist/collection/components/note/note.ios.css +0 -12
- package/dist/collection/components/note/note.js +8 -11
- package/dist/collection/components/note/note.md.css +0 -12
- package/dist/collection/components/picker/picker.ios.css +3 -15
- package/dist/collection/components/picker/picker.js +5 -8
- package/dist/collection/components/picker/picker.md.css +3 -15
- package/dist/collection/components/picker-column/picker-column.css +2 -9
- package/dist/collection/components/picker-column/picker-column.js +9 -10
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
- package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
- package/dist/collection/components/picker-legacy/picker.ios.css +1 -13
- package/dist/collection/components/picker-legacy/picker.js +6 -7
- package/dist/collection/components/picker-legacy/picker.md.css +1 -13
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -12
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -12
- package/dist/collection/components/popover/popover.ios.css +1 -13
- package/dist/collection/components/popover/popover.js +14 -17
- package/dist/collection/components/popover/popover.md.css +1 -13
- package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
- package/dist/collection/components/progress-bar/progress-bar.js +7 -43
- package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
- package/dist/collection/components/radio/radio.ios.css +91 -134
- package/dist/collection/components/radio/radio.js +10 -15
- package/dist/collection/components/radio/radio.md.css +91 -134
- package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
- package/dist/collection/components/radio-group/radio-group.js +7 -48
- package/dist/collection/components/radio-group/radio-group.md.css +19 -43
- package/dist/collection/components/range/range.ios.css +85 -128
- package/dist/collection/components/range/range.js +9 -12
- package/dist/collection/components/range/range.md.css +85 -128
- package/dist/collection/components/refresher/refresher.ios.css +1 -14
- package/dist/collection/components/refresher/refresher.js +8 -11
- package/dist/collection/components/refresher/refresher.md.css +2 -15
- package/dist/collection/components/refresher-content/refresher-content.js +7 -28
- package/dist/collection/components/reorder/reorder.ios.css +0 -6
- package/dist/collection/components/reorder/reorder.js +6 -33
- package/dist/collection/components/reorder/reorder.md.css +0 -6
- package/dist/collection/components/reorder-group/reorder-group.css +0 -6
- package/dist/collection/components/reorder-group/reorder-group.js +4 -8
- package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
- package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
- package/dist/collection/components/route/route.js +0 -4
- package/dist/collection/components/router/router.js +0 -4
- package/dist/collection/components/router-link/router-link.css +2 -8
- package/dist/collection/components/router-link/router-link.js +5 -9
- package/dist/collection/components/router-outlet/router-outlet.css +1 -7
- package/dist/collection/components/router-outlet/router-outlet.js +3 -6
- package/dist/collection/components/row/row.css +0 -16
- package/dist/collection/components/row/row.js +2 -9
- package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
- package/dist/collection/components/searchbar/searchbar.js +33 -180
- package/dist/collection/components/searchbar/searchbar.md.css +18 -56
- package/dist/collection/components/segment/segment.ios.css +2 -45
- package/dist/collection/components/segment/segment.js +8 -11
- package/dist/collection/components/segment/segment.md.css +2 -45
- package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
- package/dist/collection/components/segment-button/segment-button.js +8 -11
- package/dist/collection/components/segment-button/segment-button.md.css +107 -148
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
- package/dist/collection/components/segment-view/segment-view.js +4 -6
- package/dist/collection/components/segment-view/segment-view.md.css +0 -6
- package/dist/collection/components/select/select.ios.css +176 -315
- package/dist/collection/components/select/select.js +53 -156
- package/dist/collection/components/select/select.md.css +178 -331
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -18
- package/dist/collection/components/select-modal/select-modal.js +4 -11
- package/dist/collection/components/select-modal/select-modal.md.css +3 -7
- package/dist/collection/components/select-option/select-option.js +2 -9
- package/dist/collection/components/select-popover/select-popover.ios.css +0 -18
- package/dist/collection/components/select-popover/select-popover.js +4 -12
- package/dist/collection/components/select-popover/select-popover.md.css +0 -18
- package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
- package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
- package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
- package/dist/collection/components/spinner/spinner.js +6 -47
- package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
- package/dist/collection/components/split-pane/split-pane.js +8 -14
- package/dist/collection/components/split-pane/split-pane.md.css +2 -20
- package/dist/collection/components/tab/tab.js +2 -6
- package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -71
- package/dist/collection/components/tab-bar/tab-bar.js +11 -78
- package/dist/collection/components/tab-bar/tab-bar.md.css +43 -71
- package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
- package/dist/collection/components/tab-button/tab-button.js +9 -54
- package/dist/collection/components/tab-button/tab-button.md.css +93 -137
- package/dist/collection/components/tabs/tabs.css +1 -7
- package/dist/collection/components/tabs/tabs.js +1 -4
- package/dist/collection/components/text/text.css +0 -6
- package/dist/collection/components/text/text.js +6 -7
- package/dist/collection/components/textarea/textarea.ios.css +158 -298
- package/dist/collection/components/textarea/textarea.js +24 -162
- package/dist/collection/components/textarea/textarea.md.css +159 -312
- package/dist/collection/components/thumbnail/thumbnail.css +0 -6
- package/dist/collection/components/thumbnail/thumbnail.js +2 -9
- package/dist/collection/components/title/title.ios.css +4 -32
- package/dist/collection/components/title/title.js +7 -13
- package/dist/collection/components/title/title.md.css +4 -32
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ios.css +45 -84
- package/dist/collection/components/toast/toast.js +12 -75
- package/dist/collection/components/toast/toast.md.css +45 -84
- package/dist/collection/components/toggle/toggle.ios.css +131 -247
- package/dist/collection/components/toggle/toggle.js +18 -73
- package/dist/collection/components/toggle/toggle.md.css +131 -244
- package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
- package/dist/collection/components/toolbar/toolbar.js +13 -218
- package/dist/collection/components/toolbar/toolbar.md.css +47 -90
- package/dist/collection/global/ionic-global.js +13 -241
- package/dist/collection/utils/focus-trap.js +2 -13
- package/dist/collection/utils/focus-visible.js +0 -22
- package/dist/collection/utils/forms/validity.js +0 -31
- package/dist/collection/utils/framework-delegate.js +1 -3
- package/dist/collection/utils/hardware-back-button.js +0 -15
- package/dist/collection/utils/helpers.js +3 -57
- package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +1 -2
- package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
- package/dist/collection/utils/overlays.js +1 -82
- package/dist/collection/utils/test/playwright/generator.js +23 -48
- package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
- package/dist/collection/utils/theme.js +1 -25
- package/dist/collection/utils/transition/ios.transition.js +0 -1
- package/dist/docs.json +283 -8303
- package/dist/esm/{animation-Cqe2x-Pt.js → animation-CnGMT4ji.js} +2 -2
- package/dist/esm/{app-globals-Dk1rB3aE.js → app-globals-DhZjtldk.js} +1 -1
- package/dist/esm/{button-active-g6ZnZzDZ.js → button-active-BBx21brx.js} +2 -2
- package/dist/esm/{capacitor-C4lYa1nV.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/{config-BvDxfLa-.js → config-TO1rZH52.js} +1 -1
- package/dist/esm/{data-BNKYavC3.js → data-B9iGR5YO.js} +6 -6
- package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
- package/dist/esm/{framework-delegate-CjVwn_KZ.js → framework-delegate-CyxE1S_P.js} +2 -4
- package/dist/esm/{haptic-_88k1V5U.js → haptic-DzAMWJuk.js} +1 -1
- package/dist/esm/hardware-back-button-CTe4XmL7.js +115 -0
- package/dist/esm/{helpers-Do7zwvM1.js → helpers-Tl8jw6S2.js} +5 -58
- package/dist/esm/{index-CGthURny.js → index-B-hkiOUh.js} +4 -4
- package/dist/esm/{index-hpH08p5s.js → index-B2KwgBLx.js} +11 -11
- package/dist/esm/{index-C5t9-ciC.js → index-BtUdxPjv.js} +3 -4
- package/dist/esm/{index-COG0_eom.js → index-DV3sJJW8.js} +1 -1
- package/dist/esm/{index-Omi_TcwW.js → index-IGIE5vDm.js} +4 -41
- package/dist/esm/index-ZjP4CjeZ.js +7 -0
- package/dist/esm/{index-BmkLokUL.js → index-hW6eNZ3o.js} +2 -2
- package/dist/esm/index.js +14 -13
- package/dist/esm/{input-shims-vDjCsx95.js → input-shims-AaDhOpKN.js} +6 -7
- package/dist/esm/{input.utils-B9Q5xHp6.js → input.utils-Bxa_DQ7-.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +29 -61
- package/dist/esm/ion-action-sheet.entry.js +22 -25
- package/dist/esm/ion-alert.entry.js +23 -25
- package/dist/esm/ion-app_8.entry.js +157 -292
- package/dist/esm/ion-avatar_3.entry.js +13 -125
- package/dist/esm/ion-back-button.entry.js +22 -31
- package/dist/esm/ion-backdrop.entry.js +7 -10
- package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
- package/dist/esm/ion-button_2.entry.js +22 -59
- package/dist/esm/ion-card_5.entry.js +33 -55
- package/dist/esm/ion-checkbox.entry.js +16 -34
- package/dist/esm/ion-chip.entry.js +9 -50
- package/dist/esm/ion-col_3.entry.js +57 -54
- package/dist/esm/ion-datetime-button.entry.js +9 -13
- package/dist/esm/ion-datetime_3.entry.js +44 -129
- package/dist/esm/ion-fab_3.entry.js +28 -44
- package/dist/esm/ion-img.entry.js +4 -8
- package/dist/esm/ion-infinite-scroll_2.entry.js +16 -91
- package/dist/esm/ion-input-otp.entry.js +9 -74
- package/dist/esm/ion-input-password-toggle.entry.js +15 -53
- package/dist/esm/ion-input.entry.js +34 -124
- package/dist/esm/ion-item-option_3.entry.js +21 -50
- package/dist/esm/ion-item_8.entry.js +49 -116
- package/dist/esm/ion-loading.entry.js +18 -20
- package/dist/esm/ion-menu_3.entry.js +29 -47
- package/dist/esm/ion-modal.entry.js +31 -58
- package/dist/esm/ion-nav_2.entry.js +11 -14
- package/dist/esm/ion-picker-column-option.entry.js +8 -12
- package/dist/esm/ion-picker-column.entry.js +14 -14
- package/dist/esm/ion-picker.entry.js +6 -10
- package/dist/esm/ion-popover.entry.js +18 -20
- package/dist/esm/ion-progress-bar.entry.js +9 -27
- package/dist/esm/ion-radio_2.entry.js +17 -35
- package/dist/esm/ion-range.entry.js +12 -16
- package/dist/esm/ion-refresher_2.entry.js +21 -39
- package/dist/esm/ion-reorder_2.entry.js +14 -38
- package/dist/esm/ion-ripple-effect.entry.js +7 -15
- package/dist/esm/ion-route_4.entry.js +9 -10
- package/dist/esm/ion-searchbar.entry.js +24 -137
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +3 -6
- package/dist/esm/ion-segment_2.entry.js +16 -23
- package/dist/esm/ion-select-modal.entry.js +11 -17
- package/dist/esm/ion-select_3.entry.js +42 -133
- package/dist/esm/ion-spinner.entry.js +8 -30
- package/dist/esm/ion-split-pane.entry.js +9 -12
- package/dist/esm/ion-tab-bar_2.entry.js +23 -77
- package/dist/esm/ion-tab_2.entry.js +7 -8
- package/dist/esm/ion-text.entry.js +7 -7
- package/dist/esm/ion-textarea.entry.js +23 -137
- package/dist/esm/ion-toast.entry.js +20 -43
- package/dist/esm/ion-toggle.entry.js +25 -82
- package/dist/esm/ionic-global-DfbeLwcV.js +146 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-CzSncKQg.js → ios.transition--aMF-pDH.js} +5 -7
- package/dist/esm/{keyboard-Cpw6xVLJ.js → keyboard-CUw4ekVy.js} +1 -1
- package/dist/esm/{keyboard-controller-CAc33ylR.js → keyboard-controller-BaaVITYt.js} +3 -5
- package/dist/esm/{keyboard-DJpS2IGK.js → keyboard-ywgs5efA.js} +3 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-DIsWqYBZ.js → md.transition-BEVbfm8j.js} +5 -6
- package/dist/esm/{notch-controller-DiBq57w8.js → notch-controller-DAcvKU57.js} +2 -2
- package/dist/esm/{overlays-CvFHfO3y.js → overlays-F8GHPo-e.js} +9 -99
- package/dist/esm/{status-tap-fYFdZg6z.js → status-tap-BfJqFSLF.js} +3 -4
- package/dist/esm/{swipe-back-BzGqTrrq.js → swipe-back-BZBFwTQV.js} +2 -3
- package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
- package/dist/esm/validity-DJztqcrH.js +17 -0
- package/dist/html.html-data.json +155 -2503
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-031b76f7.entry.js +4 -0
- package/dist/ionic/p-045a6a42.entry.js +4 -0
- package/dist/ionic/p-07506134.entry.js +4 -0
- package/dist/ionic/p-084c25b2.entry.js +4 -0
- package/dist/ionic/p-0d8b5c38.entry.js +4 -0
- package/dist/ionic/p-16813ce7.entry.js +4 -0
- package/dist/ionic/p-16b65553.entry.js +4 -0
- package/dist/ionic/p-1b02923f.entry.js +4 -0
- package/dist/ionic/p-1b169fb6.entry.js +4 -0
- package/dist/ionic/p-23fac490.entry.js +4 -0
- package/dist/ionic/p-294f4bb5.entry.js +4 -0
- package/dist/ionic/p-2a68388b.entry.js +4 -0
- package/dist/ionic/p-2f5a8140.entry.js +4 -0
- package/dist/ionic/p-2fd110aa.entry.js +4 -0
- package/dist/ionic/p-301c43f8.entry.js +4 -0
- package/dist/ionic/p-370a60ee.entry.js +4 -0
- package/dist/ionic/p-4819b469.entry.js +4 -0
- package/dist/ionic/p-4dd5e8e0.entry.js +4 -0
- package/dist/ionic/p-51c11c47.entry.js +4 -0
- package/dist/ionic/p-53f750a5.entry.js +4 -0
- package/dist/ionic/p-5b52aa7d.entry.js +4 -0
- package/dist/ionic/p-6af16209.entry.js +4 -0
- package/dist/ionic/p-6b701daa.entry.js +4 -0
- package/dist/ionic/p-6b97f2a3.entry.js +4 -0
- package/dist/ionic/p-7620be24.entry.js +4 -0
- package/dist/ionic/p-771b27a5.entry.js +4 -0
- package/dist/ionic/p-7ca71c83.entry.js +4 -0
- package/dist/ionic/p-80cac7a2.entry.js +4 -0
- package/dist/ionic/p-87125490.entry.js +4 -0
- package/dist/ionic/p-9833cf63.entry.js +4 -0
- package/dist/ionic/p-9cbc6f1f.entry.js +4 -0
- package/dist/ionic/p-9cdbabbb.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-9fae83d8.entry.js +4 -0
- package/dist/ionic/{p-DKWXAwlR.js → p-B8xlpH8p.js} +1 -1
- package/dist/ionic/p-BAt5H1ac.js +4 -0
- package/dist/ionic/p-BW_TRJm8.js +4 -0
- package/dist/ionic/p-BmVRXR1y.js +4 -0
- package/dist/ionic/p-Bum7H1fw.js +4 -0
- package/{components/p-oF-CwZ0b.js → dist/ionic/p-BvFYtOdE.js} +1 -1
- package/dist/ionic/p-BxIcPWoV.js +4 -0
- package/dist/ionic/p-C0JvVFMv.js +4 -0
- package/dist/ionic/p-CGmVTdWh.js +4 -0
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/{components/p-BLysWQA1.js → dist/ionic/p-CKvCXMs9.js} +1 -1
- package/dist/ionic/p-CYbRmDdy.js +4 -0
- package/dist/ionic/p-CYvM5g3q.js +4 -0
- package/dist/ionic/p-CmFz1Mjc.js +4 -0
- package/dist/ionic/p-CtA-yJYy.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/{components/p-9gxM3tAr.js → dist/ionic/p-D13Eaw-8.js} +1 -1
- package/dist/ionic/p-D8HJQ1qq.js +4 -0
- package/dist/ionic/p-DB_iPQC-.js +4 -0
- package/dist/ionic/p-DJztqcrH.js +4 -0
- package/dist/ionic/p-DLbbmF9h.js +4 -0
- package/dist/ionic/p-DTPR1Wpn.js +4 -0
- package/dist/ionic/{p-COG0_eom.js → p-DV3sJJW8.js} +1 -1
- package/dist/ionic/p-DiVJyqlX.js +4 -0
- package/{components/p-B636tzQ7.js → dist/ionic/p-DjriolRs.js} +1 -1
- package/dist/ionic/p-DtVZDHlS.js +4 -0
- package/dist/ionic/p-IGIE5vDm.js +5 -0
- package/dist/ionic/p-NFFyoJ4Q.js +4 -0
- package/dist/ionic/p-ZjP4CjeZ.js +4 -0
- package/dist/ionic/p-a805674e.entry.js +4 -0
- package/dist/ionic/p-a84f2d21.entry.js +4 -0
- package/dist/ionic/p-abca709f.entry.js +4 -0
- package/dist/ionic/p-b325a113.entry.js +4 -0
- package/dist/ionic/p-b6e0ff03.entry.js +4 -0
- package/dist/ionic/p-bcaa827e.entry.js +4 -0
- package/dist/ionic/p-c3cce9d8.entry.js +4 -0
- package/dist/ionic/p-c744307d.entry.js +4 -0
- package/dist/ionic/p-ca31010f.entry.js +4 -0
- package/dist/ionic/p-d4e8b473.entry.js +4 -0
- package/dist/ionic/p-e663bc5a.entry.js +4 -0
- package/dist/ionic/p-e6c5f060.entry.js +4 -0
- package/dist/ionic/p-e6cedcd7.entry.js +4 -0
- package/dist/ionic/p-e863ffe8.entry.js +4 -0
- package/dist/ionic/p-f2deaceb.entry.js +4 -0
- package/dist/ionic/p-f5dfb9a3.entry.js +4 -0
- package/dist/ionic/p-f69a5f71.entry.js +4 -0
- package/dist/ionic/p-f8186550.entry.js +4 -0
- package/dist/ionic/p-fdbc90d4.entry.js +4 -0
- package/dist/ionic/{p-qYp06FUk.js → p-gbVXD275.js} +1 -1
- package/dist/ionic/p-hNN3VvaC.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +3 -6
- package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
- package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
- package/dist/types/components/alert/alert-interface.d.ts +7 -3
- package/dist/types/components/alert/alert.d.ts +2 -3
- package/dist/types/components/app/app.d.ts +5 -4
- package/dist/types/components/avatar/avatar.d.ts +0 -32
- package/dist/types/components/back-button/back-button.d.ts +1 -2
- package/dist/types/components/backdrop/backdrop.d.ts +0 -4
- package/dist/types/components/badge/badge.d.ts +1 -34
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +8 -23
- package/dist/types/components/buttons/buttons.d.ts +1 -5
- package/dist/types/components/card/card.d.ts +1 -8
- package/dist/types/components/card-content/card-content.d.ts +1 -2
- package/dist/types/components/card-header/card-header.d.ts +2 -3
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
- package/dist/types/components/card-title/card-title.d.ts +1 -2
- package/dist/types/components/checkbox/checkbox.d.ts +4 -14
- package/dist/types/components/chip/chip.d.ts +1 -26
- package/dist/types/components/col/col.d.ts +5 -52
- package/dist/types/components/content/content.d.ts +0 -3
- package/dist/types/components/datetime/datetime.d.ts +1 -27
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
- package/dist/types/components/fab/fab.d.ts +0 -4
- package/dist/types/components/fab-button/fab-button.d.ts +3 -5
- package/dist/types/components/fab-list/fab-list.d.ts +0 -4
- package/dist/types/components/footer/footer.d.ts +3 -4
- package/dist/types/components/grid/grid.d.ts +0 -4
- package/dist/types/components/header/header.d.ts +3 -9
- package/dist/types/components/header/header.utils.d.ts +3 -3
- package/dist/types/components/img/img.d.ts +0 -3
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
- package/dist/types/components/input/input.d.ts +5 -31
- package/dist/types/components/input-otp/input-otp.d.ts +0 -37
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
- package/dist/types/components/item/item.d.ts +4 -11
- package/dist/types/components/item-divider/item-divider.d.ts +1 -2
- package/dist/types/components/item-group/item-group.d.ts +0 -4
- package/dist/types/components/item-option/item-option.d.ts +1 -18
- package/dist/types/components/item-options/item-options.d.ts +0 -4
- package/dist/types/components/item-sliding/item-sliding.d.ts +0 -4
- package/dist/types/components/label/label.d.ts +1 -2
- package/dist/types/components/list/list.d.ts +1 -15
- package/dist/types/components/list-header/list-header.d.ts +1 -2
- package/dist/types/components/loading/loading-interface.d.ts +7 -2
- package/dist/types/components/loading/loading.d.ts +2 -3
- package/dist/types/components/menu/menu.d.ts +0 -3
- package/dist/types/components/menu-button/menu-button.d.ts +1 -3
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +7 -4
- package/dist/types/components/modal/modal.d.ts +1 -11
- package/dist/types/components/nav/nav-interface.d.ts +1 -9
- package/dist/types/components/nav/nav.d.ts +1 -5
- package/dist/types/components/nav-link/nav-link.d.ts +0 -4
- package/dist/types/components/note/note.d.ts +1 -2
- package/dist/types/components/picker/picker.d.ts +1 -2
- package/dist/types/components/picker-column/picker-column.d.ts +1 -2
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
- package/dist/types/components/picker-legacy/picker.d.ts +1 -2
- package/dist/types/components/popover/popover-interface.d.ts +6 -3
- package/dist/types/components/popover/popover.d.ts +5 -6
- package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
- package/dist/types/components/radio/radio.d.ts +1 -2
- package/dist/types/components/radio-group/radio-group.d.ts +0 -12
- package/dist/types/components/range/range.d.ts +1 -2
- package/dist/types/components/refresher/refresher.d.ts +1 -2
- package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
- package/dist/types/components/reorder/reorder.d.ts +0 -9
- package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
- package/dist/types/components/route/route.d.ts +0 -4
- package/dist/types/components/router/router.d.ts +0 -4
- package/dist/types/components/router-link/router-link.d.ts +0 -4
- package/dist/types/components/router-outlet/router-outlet.d.ts +1 -4
- package/dist/types/components/row/row.d.ts +0 -4
- package/dist/types/components/searchbar/searchbar.d.ts +9 -51
- package/dist/types/components/segment/segment.d.ts +1 -2
- package/dist/types/components/segment-button/segment-button.d.ts +1 -2
- package/dist/types/components/select/select.d.ts +13 -41
- package/dist/types/components/select-modal/select-modal.d.ts +0 -1
- package/dist/types/components/select-option/select-option.d.ts +0 -4
- package/dist/types/components/select-popover/select-popover.d.ts +0 -3
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
- package/dist/types/components/spinner/spinner.d.ts +0 -15
- package/dist/types/components/split-pane/split-pane.d.ts +0 -4
- package/dist/types/components/tab/tab.d.ts +0 -4
- package/dist/types/components/tab-bar/tab-bar.d.ts +2 -22
- package/dist/types/components/tab-button/tab-button.d.ts +1 -12
- package/dist/types/components/tabs/tabs.d.ts +0 -3
- package/dist/types/components/text/text.d.ts +1 -2
- package/dist/types/components/textarea/textarea.d.ts +4 -53
- package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
- package/dist/types/components/title/title.d.ts +0 -4
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +7 -3
- package/dist/types/components/toast/toast.d.ts +2 -19
- package/dist/types/components/toggle/toggle.d.ts +1 -15
- package/dist/types/components/toolbar/toolbar.d.ts +3 -43
- package/dist/types/components.d.ts +205 -1684
- package/dist/types/global/ionic-global.d.ts +2 -28
- package/dist/types/interface.d.ts +0 -3
- package/dist/types/utils/config.d.ts +2 -106
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +0 -13
- package/dist/types/utils/forms/validity.d.ts +0 -7
- package/dist/types/utils/helpers.d.ts +0 -11
- package/dist/types/utils/overlays-interface.d.ts +1 -31
- package/dist/types/utils/test/playwright/generator.d.ts +2 -31
- package/dist/types/utils/theme.d.ts +0 -9
- package/hydrate/index.js +1000 -3304
- package/hydrate/index.mjs +1000 -3304
- package/package.json +5 -9
- package/components/ion-divider.d.ts +0 -11
- package/components/ion-divider.js +0 -4
- package/components/p-0sa2JgYA.js +0 -4
- package/components/p-3Ni1Z654.js +0 -4
- package/components/p-B6czg-mf.js +0 -4
- package/components/p-BCDEEm9n.js +0 -4
- package/components/p-BDndEqui.js +0 -4
- package/components/p-BDqjX7Z_.js +0 -4
- package/components/p-BErKjY03.js +0 -4
- package/components/p-BFCM_1oE.js +0 -4
- package/components/p-BGHaEUgp.js +0 -4
- package/components/p-BO4aickU.js +0 -4
- package/components/p-BR9Yxas9.js +0 -4
- package/components/p-BU8N7ZrK.js +0 -4
- package/components/p-BYSs-jZz.js +0 -4
- package/components/p-BcbmT6b3.js +0 -4
- package/components/p-BeVlsaLA.js +0 -4
- package/components/p-BfHB6wX_.js +0 -4
- package/components/p-BhfW3d9j.js +0 -4
- package/components/p-BjW8SOqw.js +0 -4
- package/components/p-Bp__mr16.js +0 -4
- package/components/p-BqDiJgC_.js +0 -4
- package/components/p-Br3pqTOz.js +0 -4
- package/components/p-BtAlyZ0b.js +0 -4
- package/components/p-C-_EGKki.js +0 -4
- package/components/p-C00Y_WJv.js +0 -4
- package/components/p-C2cZvGcF.js +0 -4
- package/components/p-CBH_owa5.js +0 -4
- package/components/p-CKfNwyAb.js +0 -4
- package/components/p-CVBkx7m1.js +0 -4
- package/components/p-Cb9imMZh.js +0 -4
- package/components/p-CdYTq34D.js +0 -4
- package/components/p-CeYwuysM.js +0 -4
- package/components/p-Cf9-xP7P.js +0 -4
- package/components/p-Ch9P0ikq.js +0 -4
- package/components/p-CoarhFWH.js +0 -4
- package/components/p-D1t981Ih.js +0 -4
- package/components/p-D5lMX0xt.js +0 -4
- package/components/p-D8NAdIPC.js +0 -4
- package/components/p-DAeMHNER.js +0 -4
- package/components/p-DDw-NYxz.js +0 -4
- package/components/p-DVcs-2q3.js +0 -4
- package/components/p-DaJxRxSQ.js +0 -4
- package/components/p-Dhi5xtNS.js +0 -4
- package/components/p-DrhTPUzN.js +0 -4
- package/components/p-GnGGIfCd.js +0 -4
- package/components/p-GytrfCp8.js +0 -4
- package/components/p-XegQjlzJ.js +0 -4
- package/components/p-ZeIAjDcZ.js +0 -4
- package/components/p-fIOYmaqA.js +0 -4
- package/components/p-iwGbwewM.js +0 -4
- package/components/p-lIOqnNXn.js +0 -4
- package/components/p-sK-FK9CT.js +0 -4
- package/components/p-t98_NeNv.js +0 -4
- package/components/p-vCpF32Z7.js +0 -4
- package/components/p-vXpMhGrs.js +0 -4
- package/components/p-wCDzv5Q8.js +0 -4
- package/css/ionic/bundle.ionic.css +0 -1
- package/css/ionic/bundle.ionic.css.map +0 -1
- package/css/ionic/core.ionic.css +0 -1
- package/css/ionic/core.ionic.css.map +0 -1
- package/css/ionic/global.bundle.ionic.css +0 -1
- package/css/ionic/global.bundle.ionic.css.map +0 -1
- package/css/ionic/ionic-swiper.ionic.css +0 -1
- package/css/ionic/ionic-swiper.ionic.css.map +0 -1
- package/css/ionic/link.ionic.css +0 -1
- package/css/ionic/link.ionic.css.map +0 -1
- package/css/ionic/structure.ionic.css +0 -1
- package/css/ionic/structure.ionic.css.map +0 -1
- package/css/ionic/typography.ionic.css +0 -1
- package/css/ionic/typography.ionic.css.map +0 -1
- package/css/ionic/utils.bundle.ionic.css +0 -1
- package/css/ionic/utils.bundle.ionic.css.map +0 -1
- package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
- package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
- package/dist/cjs/caret-right-CRCgv98E.js +0 -8
- package/dist/cjs/ion-divider.cjs.entry.js +0 -51
- package/dist/cjs/ionic-global-CSEbHD_F.js +0 -519
- package/dist/cjs/list-a-7GSA6K.js +0 -8
- package/dist/cjs/validity-QmuwEptc.js +0 -51
- package/dist/cjs/x-BTF99yFH.js +0 -8
- package/dist/collection/components/accordion/accordion.ionic.css +0 -201
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
- package/dist/collection/components/avatar/avatar.ionic.css +0 -391
- package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
- package/dist/collection/components/badge/badge.ionic.css +0 -275
- package/dist/collection/components/button/button.ionic.css +0 -646
- package/dist/collection/components/buttons/buttons.ionic.css +0 -97
- package/dist/collection/components/card/card.ionic.css +0 -144
- package/dist/collection/components/card-content/card-content.ionic.css +0 -89
- package/dist/collection/components/card-header/card-header.ionic.css +0 -85
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
- package/dist/collection/components/checkbox/checkbox.ionic.css +0 -539
- package/dist/collection/components/chip/chip.ionic.css +0 -217
- package/dist/collection/components/datetime/datetime.ionic.css +0 -703
- package/dist/collection/components/divider/divider.ionic.css +0 -148
- package/dist/collection/components/divider/divider.ios.css +0 -87
- package/dist/collection/components/divider/divider.js +0 -94
- package/dist/collection/components/divider/divider.md.css +0 -87
- package/dist/collection/components/header/header.ionic.css +0 -97
- package/dist/collection/components/input/input.ionic.css +0 -889
- package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
- package/dist/collection/components/item/item.ionic.css +0 -508
- package/dist/collection/components/item-option/item-option.ionic.css +0 -278
- package/dist/collection/components/item-options/item-options.ionic.css +0 -221
- package/dist/collection/components/list/list.ionic.css +0 -212
- package/dist/collection/components/list-header/list-header.ionic.css +0 -190
- package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
- package/dist/collection/components/modal/modal.ionic.css +0 -247
- package/dist/collection/components/popover/popover.ionic.css +0 -274
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
- package/dist/collection/components/radio/radio.ionic.css +0 -422
- package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
- package/dist/collection/components/range/range.ionic.css +0 -563
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
- package/dist/collection/components/searchbar/searchbar.ionic.css +0 -626
- package/dist/collection/components/segment/segment.ionic.css +0 -115
- package/dist/collection/components/segment-button/segment-button.ionic.css +0 -353
- package/dist/collection/components/select/select.ionic.css +0 -777
- package/dist/collection/components/select-modal/select-modal.ionic.css +0 -130
- package/dist/collection/components/spinner/spinner.native.css +0 -199
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -201
- package/dist/collection/components/tab-button/tab-button.ionic.css +0 -348
- package/dist/collection/components/textarea/textarea.ionic.css +0 -898
- package/dist/collection/components/title/title.ionic.css +0 -127
- package/dist/collection/components/toast/toast.ionic.css +0 -394
- package/dist/collection/components/toggle/toggle.ionic.css +0 -508
- package/dist/collection/components/toolbar/test/image.svg +0 -1
- package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
- package/dist/esm/caret-down-D1t981Ih.js +0 -6
- package/dist/esm/caret-left-fIOYmaqA.js +0 -6
- package/dist/esm/caret-right-BYSs-jZz.js +0 -6
- package/dist/esm/ion-divider.entry.js +0 -49
- package/dist/esm/ionic-global-CAZb-5i-.js +0 -508
- package/dist/esm/list-Dhi5xtNS.js +0 -6
- package/dist/esm/validity-BjW8SOqw.js +0 -48
- package/dist/esm/x-BDqjX7Z_.js +0 -6
- package/dist/ionic/p-01bc266f.entry.js +0 -4
- package/dist/ionic/p-01f414fd.entry.js +0 -4
- package/dist/ionic/p-07d3388f.entry.js +0 -4
- package/dist/ionic/p-11nqcMM3.js +0 -4
- package/dist/ionic/p-139d02eb.entry.js +0 -4
- package/dist/ionic/p-1855fcb6.entry.js +0 -4
- package/dist/ionic/p-2095969c.entry.js +0 -4
- package/dist/ionic/p-2193e875.entry.js +0 -4
- package/dist/ionic/p-2311e660.entry.js +0 -4
- package/dist/ionic/p-27edb91a.entry.js +0 -4
- package/dist/ionic/p-2aa44c65.entry.js +0 -4
- package/dist/ionic/p-2bf931ae.entry.js +0 -4
- package/dist/ionic/p-2effd05d.entry.js +0 -4
- package/dist/ionic/p-304f8b0f.entry.js +0 -4
- package/dist/ionic/p-3093958a.entry.js +0 -4
- package/dist/ionic/p-3884bfa4.entry.js +0 -4
- package/dist/ionic/p-3bf01c2c.entry.js +0 -4
- package/dist/ionic/p-4091ad21.entry.js +0 -4
- package/dist/ionic/p-41914dc2.entry.js +0 -4
- package/dist/ionic/p-45825c2c.entry.js +0 -4
- package/dist/ionic/p-49799a34.entry.js +0 -4
- package/dist/ionic/p-4b0f5ffd.entry.js +0 -4
- package/dist/ionic/p-4e46439d.entry.js +0 -4
- package/dist/ionic/p-50d90690.entry.js +0 -4
- package/dist/ionic/p-5239fc93.entry.js +0 -4
- package/dist/ionic/p-64341e32.entry.js +0 -4
- package/dist/ionic/p-68c21b2a.entry.js +0 -4
- package/dist/ionic/p-6be2b2d3.entry.js +0 -4
- package/dist/ionic/p-6bffc700.entry.js +0 -4
- package/dist/ionic/p-6c8c37c2.entry.js +0 -4
- package/dist/ionic/p-6fbead83.entry.js +0 -4
- package/dist/ionic/p-7194f6fa.entry.js +0 -4
- package/dist/ionic/p-727bb80c.entry.js +0 -4
- package/dist/ionic/p-76d0e7ef.entry.js +0 -4
- package/dist/ionic/p-7d267dc6.entry.js +0 -4
- package/dist/ionic/p-8e42d109.entry.js +0 -4
- package/dist/ionic/p-8fc3b5de.entry.js +0 -4
- package/dist/ionic/p-8uDL7fql.js +0 -4
- package/dist/ionic/p-91e242e4.entry.js +0 -4
- package/dist/ionic/p-98c34fd7.entry.js +0 -4
- package/dist/ionic/p-9acd3fd3.entry.js +0 -4
- package/dist/ionic/p-9b9b1450.entry.js +0 -4
- package/dist/ionic/p-BDqjX7Z_.js +0 -4
- package/dist/ionic/p-BYSs-jZz.js +0 -4
- package/dist/ionic/p-BYtS2rae.js +0 -4
- package/dist/ionic/p-BjW8SOqw.js +0 -4
- package/dist/ionic/p-Bx0bt2Ar.js +0 -4
- package/dist/ionic/p-C2mpVKI1.js +0 -4
- package/dist/ionic/p-C5zxLmJ_.js +0 -4
- package/dist/ionic/p-CBV-BGvD.js +0 -4
- package/dist/ionic/p-CDn0uNJA.js +0 -4
- package/dist/ionic/p-CHE1xWbg.js +0 -4
- package/dist/ionic/p-CIk5QtPm.js +0 -4
- package/dist/ionic/p-CQKe4n56.js +0 -4
- package/dist/ionic/p-CVp2D--1.js +0 -4
- package/dist/ionic/p-CXqdKf1K.js +0 -4
- package/dist/ionic/p-Cb-0O4h8.js +0 -4
- package/dist/ionic/p-D1t981Ih.js +0 -4
- package/dist/ionic/p-DaJxRxSQ.js +0 -4
- package/dist/ionic/p-Dhi5xtNS.js +0 -4
- package/dist/ionic/p-DoyDJ2X5.js +0 -4
- package/dist/ionic/p-FvDKM4Ax.js +0 -4
- package/dist/ionic/p-Omi_TcwW.js +0 -5
- package/dist/ionic/p-SOASChNu.js +0 -4
- package/dist/ionic/p-a283aa4d.entry.js +0 -4
- package/dist/ionic/p-a53a3ecc.entry.js +0 -4
- package/dist/ionic/p-b00bbeb7.entry.js +0 -4
- package/dist/ionic/p-b049ae0f.entry.js +0 -4
- package/dist/ionic/p-bc5713f7.entry.js +0 -4
- package/dist/ionic/p-c136fa43.entry.js +0 -4
- package/dist/ionic/p-cdfbe4cc.entry.js +0 -4
- package/dist/ionic/p-db4f4eaf.entry.js +0 -4
- package/dist/ionic/p-dbf13f50.entry.js +0 -4
- package/dist/ionic/p-e1d04699.entry.js +0 -4
- package/dist/ionic/p-e9d6ce67.entry.js +0 -4
- package/dist/ionic/p-edb0b0c8.entry.js +0 -4
- package/dist/ionic/p-ef0c281a.entry.js +0 -4
- package/dist/ionic/p-fIOYmaqA.js +0 -4
- package/dist/ionic/p-qETiT38a.js +0 -4
- package/dist/ionic/p-vXpMhGrs.js +0 -4
- package/dist/types/components/divider/divider.d.ts +0 -20
- /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
|
@@ -1,155 +1,14 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { getMode, setMode } from "@stencil/core";
|
|
5
5
|
import { printIonWarning } from "../utils/logging/index";
|
|
6
|
-
import { shouldUseCloseWatcher } from "../utils/hardware-back-button";
|
|
7
6
|
import { isPlatform, setupPlatforms } from "../utils/platform";
|
|
8
7
|
import { config, configFromSession, configFromURL, saveConfig } from "./config";
|
|
8
|
+
// TODO(FW-2832): types
|
|
9
9
|
let defaultMode;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Prints a warning message to the developer to inform them of
|
|
14
|
-
* an invalid configuration of mode and theme.
|
|
15
|
-
* @param mode The invalid mode configuration.
|
|
16
|
-
* @param theme The invalid theme configuration.
|
|
17
|
-
*/
|
|
18
|
-
const printInvalidModeWarning = (mode, theme, ref) => {
|
|
19
|
-
printIonWarning(`Invalid mode and theme combination provided: mode: ${mode}, theme: ${theme}. Fallback mode ${getDefaultModeForTheme(theme)} will be used.`, ref);
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Validates if a mode is accepted for a theme configuration.
|
|
23
|
-
* @param mode The mode to validate.
|
|
24
|
-
* @param theme The theme the mode is being used with.
|
|
25
|
-
* @returns `true` if the mode is valid for the theme, `false` if invalid.
|
|
26
|
-
*/
|
|
27
|
-
export const isModeValidForTheme = (mode, theme) => {
|
|
28
|
-
if (mode === 'md') {
|
|
29
|
-
return theme === 'md' || theme === 'ionic';
|
|
30
|
-
}
|
|
31
|
-
else if (mode === 'ios') {
|
|
32
|
-
return theme === 'ios' || theme === 'ionic';
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Returns the default mode for a specified theme.
|
|
38
|
-
* @param theme The theme to return a default mode for.
|
|
39
|
-
* @returns The default mode, either `ios` or `md`.
|
|
40
|
-
*/
|
|
41
|
-
const getDefaultModeForTheme = (theme) => {
|
|
42
|
-
if (theme === 'ios') {
|
|
43
|
-
return 'ios';
|
|
44
|
-
}
|
|
45
|
-
return 'md';
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Returns the default theme for a specified mode.
|
|
49
|
-
* @param mode The mode to return a default theme for.
|
|
50
|
-
* @returns The default theme.
|
|
51
|
-
*/
|
|
52
|
-
const getDefaultThemeForMode = (mode) => {
|
|
53
|
-
if (mode === 'ios') {
|
|
54
|
-
return 'ios';
|
|
55
|
-
}
|
|
56
|
-
return 'md';
|
|
57
|
-
};
|
|
58
|
-
const isModeSupported = (elmMode) => ['ios', 'md'].includes(elmMode);
|
|
59
|
-
const isThemeSupported = (theme) => ['ios', 'md', 'ionic'].includes(theme);
|
|
60
|
-
const isIonicElement = (elm) => { var _a; return (_a = elm.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('ION-'); };
|
|
61
|
-
/**
|
|
62
|
-
* Returns the mode value of the element reference or the closest
|
|
63
|
-
* parent with a valid mode.
|
|
64
|
-
* @param ref The element reference to look up the mode for.
|
|
65
|
-
* @param theme Optionally can provide the theme to avoid an additional look-up.
|
|
66
|
-
* @returns The mode value for the element reference.
|
|
67
|
-
*/
|
|
68
|
-
export const getIonMode = (ref, theme = getIonTheme(ref)) => {
|
|
69
|
-
var _a;
|
|
70
|
-
if ((ref === null || ref === void 0 ? void 0 : ref.mode) && isModeValidForTheme(ref === null || ref === void 0 ? void 0 : ref.mode, theme)) {
|
|
71
|
-
/**
|
|
72
|
-
* If the reference already has a mode configuration,
|
|
73
|
-
* use it instead of performing a look-up.
|
|
74
|
-
*/
|
|
75
|
-
return ref.mode;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
const el = getElement(ref);
|
|
79
|
-
const mode = ((_a = el.closest('[mode]')) === null || _a === void 0 ? void 0 : _a.getAttribute('mode')) || defaultMode;
|
|
80
|
-
if (isModeValidForTheme(mode, theme)) {
|
|
81
|
-
/**
|
|
82
|
-
* The mode configuration is supported for the configured theme.
|
|
83
|
-
*/
|
|
84
|
-
return mode;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
printInvalidModeWarning(mode, theme, ref);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return getDefaultModeForTheme(theme);
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Returns the theme value of the element reference or the closest
|
|
94
|
-
* parent with a valid theme.
|
|
95
|
-
*
|
|
96
|
-
* @param ref The element reference to look up the theme for.
|
|
97
|
-
* @returns The theme value for the element reference, defaults to
|
|
98
|
-
* the default theme if it cannot be determined.
|
|
99
|
-
*/
|
|
100
|
-
export const getIonTheme = (ref) => {
|
|
101
|
-
var _a, _b;
|
|
102
|
-
const theme = ref && getMode(ref);
|
|
103
|
-
if (theme) {
|
|
104
|
-
return theme;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* If the theme cannot be detected, then fallback to using
|
|
108
|
-
* the `mode` attribute to determine the style sheets to use.
|
|
109
|
-
*/
|
|
110
|
-
const el = getElement(ref);
|
|
111
|
-
const mode = (_a = ref === null || ref === void 0 ? void 0 : ref.mode) !== null && _a !== void 0 ? _a : (_b = el.closest('[mode]')) === null || _b === void 0 ? void 0 : _b.getAttribute('mode');
|
|
112
|
-
if (mode) {
|
|
113
|
-
return getDefaultThemeForMode(mode);
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* If a mode is not detected, then fallback to using the
|
|
117
|
-
* default theme.
|
|
118
|
-
*/
|
|
119
|
-
return defaultTheme;
|
|
120
|
-
};
|
|
121
|
-
export const rIC = (callback) => {
|
|
122
|
-
if ('requestIdleCallback' in window) {
|
|
123
|
-
return window.requestIdleCallback(callback);
|
|
124
|
-
}
|
|
125
|
-
return setTimeout(callback, 32);
|
|
126
|
-
};
|
|
127
|
-
export const cIC = (id) => {
|
|
128
|
-
if ('cancelIdleCallback' in window) {
|
|
129
|
-
window.cancelIdleCallback(id);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
clearTimeout(id);
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
export const needInputShims = () => {
|
|
136
|
-
/**
|
|
137
|
-
* iOS always needs input shims
|
|
138
|
-
*/
|
|
139
|
-
const needsShimsIOS = isPlatform(window, 'ios') && isPlatform(window, 'mobile');
|
|
140
|
-
if (needsShimsIOS) {
|
|
141
|
-
return true;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Android only needs input shims when running
|
|
145
|
-
* in the browser and only if the browser is using the
|
|
146
|
-
* new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
|
|
147
|
-
*/
|
|
148
|
-
const isAndroidMobileWeb = isPlatform(window, 'android') && isPlatform(window, 'mobileweb');
|
|
149
|
-
if (isAndroidMobileWeb) {
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
return false;
|
|
10
|
+
export const getIonMode = (ref) => {
|
|
11
|
+
return (ref && getMode(ref)) || defaultMode;
|
|
153
12
|
};
|
|
154
13
|
export const initialize = (userConfig = {}) => {
|
|
155
14
|
if (typeof window === 'undefined') {
|
|
@@ -167,120 +26,33 @@ export const initialize = (userConfig = {}) => {
|
|
|
167
26
|
}
|
|
168
27
|
// Setup platforms
|
|
169
28
|
setupPlatforms(win);
|
|
29
|
+
// first see if the mode was set as an attribute on <html>
|
|
30
|
+
// which could have been set by the user, or by pre-rendering
|
|
31
|
+
// otherwise get the mode via config settings, and fallback to md
|
|
170
32
|
Ionic.config = config;
|
|
171
|
-
/**
|
|
172
|
-
* Check if the mode was set as an attribute on <html>
|
|
173
|
-
* which could have been set by the user, or by pre-rendering
|
|
174
|
-
* otherwise get the mode via config settings, and fallback to md.
|
|
175
|
-
*/
|
|
176
33
|
Ionic.mode = defaultMode = config.get('mode', doc.documentElement.getAttribute('mode') || (isPlatform(win, 'ios') ? 'ios' : 'md'));
|
|
177
|
-
/**
|
|
178
|
-
* Check if the theme was set as an attribute on <html>
|
|
179
|
-
* which could have been set by the user, or by pre-rendering
|
|
180
|
-
* otherwise get the theme via config settings, and fallback to md.
|
|
181
|
-
*/
|
|
182
|
-
Ionic.theme = defaultTheme = config.get('theme', doc.documentElement.getAttribute('theme') || getDefaultThemeForMode(defaultMode));
|
|
183
|
-
if (!isModeValidForTheme(defaultMode, defaultTheme)) {
|
|
184
|
-
printInvalidModeWarning(defaultMode, defaultTheme, configObj);
|
|
185
|
-
defaultMode = getDefaultModeForTheme(defaultTheme);
|
|
186
|
-
}
|
|
187
34
|
config.set('mode', defaultMode);
|
|
188
35
|
doc.documentElement.setAttribute('mode', defaultMode);
|
|
189
36
|
doc.documentElement.classList.add(defaultMode);
|
|
190
|
-
config.set('theme', defaultTheme);
|
|
191
|
-
doc.documentElement.setAttribute('theme', defaultTheme);
|
|
192
|
-
doc.documentElement.classList.add(defaultTheme);
|
|
193
37
|
if (config.getBoolean('_testing')) {
|
|
194
38
|
config.set('animated', false);
|
|
195
39
|
}
|
|
40
|
+
const isIonicElement = (elm) => { var _a; return (_a = elm.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('ION-'); };
|
|
41
|
+
const isAllowedIonicModeValue = (elmMode) => ['ios', 'md'].includes(elmMode);
|
|
196
42
|
setMode((elm) => {
|
|
197
|
-
/**
|
|
198
|
-
* Iterate over all the element nodes, to both validate and
|
|
199
|
-
* set the "mode" that is used for determining the styles to
|
|
200
|
-
* apply to the element.
|
|
201
|
-
*
|
|
202
|
-
* setMode refers to Stencil's internal metadata for "mode",
|
|
203
|
-
* which is used to set the correct styleUrl for the component.
|
|
204
|
-
*
|
|
205
|
-
* If the "theme" attribute or property is set, then use it
|
|
206
|
-
* to determine the style sheets to use.
|
|
207
|
-
*
|
|
208
|
-
* If the "mode" attribute or property is set, then use it
|
|
209
|
-
* to determine the style sheets to use. This is fallback
|
|
210
|
-
* behavior for applications that are not setting the "theme".
|
|
211
|
-
*/
|
|
212
43
|
while (elm) {
|
|
213
|
-
const
|
|
214
|
-
if (theme) {
|
|
215
|
-
if (isThemeSupported(theme)) {
|
|
216
|
-
return theme;
|
|
217
|
-
}
|
|
218
|
-
else if (isIonicElement(elm)) {
|
|
219
|
-
printIonWarning(`Invalid theme: "${theme}". Supported themes include: "ios" or "md".`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* If a theme is not detected, then fallback to using the
|
|
224
|
-
* `mode` attribute to determine the style sheets to use.
|
|
225
|
-
*/
|
|
226
|
-
const elmMode = elm.getAttribute('mode');
|
|
44
|
+
const elmMode = elm.mode || elm.getAttribute('mode');
|
|
227
45
|
if (elmMode) {
|
|
228
|
-
if (
|
|
46
|
+
if (isAllowedIonicModeValue(elmMode)) {
|
|
229
47
|
return elmMode;
|
|
230
48
|
}
|
|
231
49
|
else if (isIonicElement(elm)) {
|
|
232
|
-
printIonWarning(
|
|
50
|
+
printIonWarning('Invalid ionic mode: "' + elmMode + '", expected: "ios" or "md"');
|
|
233
51
|
}
|
|
234
52
|
}
|
|
235
53
|
elm = elm.parentElement;
|
|
236
54
|
}
|
|
237
|
-
return
|
|
55
|
+
return defaultMode;
|
|
238
56
|
});
|
|
239
|
-
// `IonApp` code
|
|
240
|
-
// ----------------------------------------------
|
|
241
|
-
if (Build.isBrowser) {
|
|
242
|
-
// If initialize is called again, clear the previous pending callback
|
|
243
|
-
if (rICHandle !== undefined) {
|
|
244
|
-
cIC(rICHandle);
|
|
245
|
-
}
|
|
246
|
-
rICHandle = rIC(async () => {
|
|
247
|
-
const isHybrid = isPlatform(window, 'hybrid');
|
|
248
|
-
if (!config.getBoolean('_testing')) {
|
|
249
|
-
import('../utils/tap-click').then((module) => module.startTapClick(config));
|
|
250
|
-
}
|
|
251
|
-
if (config.getBoolean('statusTap', isHybrid)) {
|
|
252
|
-
import('../utils/status-tap').then((module) => module.startStatusTap());
|
|
253
|
-
}
|
|
254
|
-
if (config.getBoolean('inputShims', needInputShims())) {
|
|
255
|
-
/**
|
|
256
|
-
* needInputShims() ensures that only iOS and Android
|
|
257
|
-
* platforms proceed into this block.
|
|
258
|
-
*/
|
|
259
|
-
const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
|
|
260
|
-
import('../utils/input-shims/input-shims').then((module) => module.startInputShims(config, platform));
|
|
261
|
-
}
|
|
262
|
-
const hardwareBackButtonModule = await import('../utils/hardware-back-button');
|
|
263
|
-
const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
|
|
264
|
-
if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
|
|
265
|
-
hardwareBackButtonModule.startHardwareBackButton();
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
/**
|
|
269
|
-
* If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
|
|
270
|
-
* then the close watcher will not be used.
|
|
271
|
-
*/
|
|
272
|
-
if (shouldUseCloseWatcher()) {
|
|
273
|
-
printIonWarning('[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
|
|
274
|
-
}
|
|
275
|
-
hardwareBackButtonModule.blockHardwareBackButton();
|
|
276
|
-
}
|
|
277
|
-
if (typeof window !== 'undefined') {
|
|
278
|
-
import('../utils/keyboard/keyboard').then((module) => module.startKeyboardAssist(window));
|
|
279
|
-
}
|
|
280
|
-
import('../utils/focus-visible').then((module) => module.getOrInitFocusVisibleUtility());
|
|
281
|
-
// Reset handle once executed
|
|
282
|
-
rICHandle = undefined;
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
57
|
};
|
|
286
58
|
export default initialize;
|
|
@@ -14,7 +14,7 @@ import { focusVisibleElement } from "./helpers";
|
|
|
14
14
|
* Note: We need this distinction because `disabled="false"` is
|
|
15
15
|
* valid usage for the disabled property on ion-button.
|
|
16
16
|
*/
|
|
17
|
-
export const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]),
|
|
17
|
+
export const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
18
18
|
/**
|
|
19
19
|
* Focuses the first descendant in a context
|
|
20
20
|
* that can receive focus. If none exists,
|
|
@@ -66,18 +66,7 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
|
|
|
66
66
|
const shadowRoot = hostToFocus === null || hostToFocus === void 0 ? void 0 : hostToFocus.shadowRoot;
|
|
67
67
|
if (shadowRoot) {
|
|
68
68
|
// If there are no inner focusable elements, just focus the host element.
|
|
69
|
-
|
|
70
|
-
// If the host has a setFocus() method, use it to delegate focus properly.
|
|
71
|
-
// This is needed for shadow DOM components like ion-textarea that override
|
|
72
|
-
// focus() to delegate to their inner native elements.
|
|
73
|
-
const hasSetFocus = typeof hostToFocus.setFocus === 'function';
|
|
74
|
-
if (innerFocusable && hasSetFocus) {
|
|
75
|
-
// Keep the host element so we can call setFocus() on it
|
|
76
|
-
elementToFocus = hostToFocus;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
elementToFocus = innerFocusable || hostToFocus;
|
|
80
|
-
}
|
|
69
|
+
elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
|
|
81
70
|
}
|
|
82
71
|
if (elementToFocus) {
|
|
83
72
|
const radioGroup = elementToFocus.closest('ion-radio-group');
|
|
@@ -17,28 +17,6 @@ const FOCUS_KEYS = [
|
|
|
17
17
|
'Home',
|
|
18
18
|
'End',
|
|
19
19
|
];
|
|
20
|
-
let focusVisibleUtility = null;
|
|
21
|
-
export const getOrInitFocusVisibleUtility = () => {
|
|
22
|
-
if (!focusVisibleUtility) {
|
|
23
|
-
focusVisibleUtility = startFocusVisible();
|
|
24
|
-
}
|
|
25
|
-
return focusVisibleUtility;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Used to set focus on an element that uses `ion-focusable`.
|
|
29
|
-
* Do not use this if focusing the element as a result of a keyboard
|
|
30
|
-
* event as the focus utility should handle this for us. This method
|
|
31
|
-
* should be used when we want to programmatically focus an element as
|
|
32
|
-
* a result of another user action. (Ex: We focus the first element
|
|
33
|
-
* inside of a popover when the user presents it, but the popover is not always
|
|
34
|
-
* presented as a result of keyboard action.)
|
|
35
|
-
*
|
|
36
|
-
* @param elements - The elements to set focus on.
|
|
37
|
-
*/
|
|
38
|
-
export const focusElements = (elements) => {
|
|
39
|
-
const focusVisible = getOrInitFocusVisibleUtility();
|
|
40
|
-
focusVisible.setFocus(elements);
|
|
41
|
-
};
|
|
42
20
|
export const startFocusVisible = (rootEl) => {
|
|
43
21
|
let currentFocus = [];
|
|
44
22
|
let keyboardMode = true;
|
|
@@ -13,34 +13,3 @@ export const checkInvalidState = (el) => {
|
|
|
13
13
|
const hasIonInvalid = el.classList.contains('ion-invalid');
|
|
14
14
|
return hasIonTouched && hasIonInvalid;
|
|
15
15
|
};
|
|
16
|
-
export const getValidityFlags = (validity) => {
|
|
17
|
-
return {
|
|
18
|
-
badInput: validity.badInput,
|
|
19
|
-
customError: validity.customError,
|
|
20
|
-
patternMismatch: validity.patternMismatch,
|
|
21
|
-
rangeOverflow: validity.rangeOverflow,
|
|
22
|
-
rangeUnderflow: validity.rangeUnderflow,
|
|
23
|
-
stepMismatch: validity.stepMismatch,
|
|
24
|
-
tooLong: validity.tooLong,
|
|
25
|
-
tooShort: validity.tooShort,
|
|
26
|
-
typeMismatch: validity.typeMismatch,
|
|
27
|
-
valueMissing: validity.valueMissing,
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Reports the validity state of a native form element to ElementInternals.
|
|
32
|
-
* This delegates to the native element's built-in validation, which automatically
|
|
33
|
-
* handles required, minlength, maxlength, and other constraints.
|
|
34
|
-
*/
|
|
35
|
-
export const reportValidityToElementInternals = (nativeElement, internals) => {
|
|
36
|
-
if (!(nativeElement === null || nativeElement === void 0 ? void 0 : nativeElement.validity)) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (nativeElement.validity.valid) {
|
|
40
|
-
internals.setValidity({});
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const validityFlags = getValidityFlags(nativeElement.validity);
|
|
44
|
-
internals.setValidity(validityFlags, nativeElement.validationMessage, nativeElement);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { config } from "../global/config";
|
|
5
4
|
import { componentOnReady } from "./helpers";
|
|
6
5
|
// TODO(FW-2832): types
|
|
7
6
|
export const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
|
|
@@ -102,8 +101,7 @@ export const CoreDelegate = () => {
|
|
|
102
101
|
* Get the root of the app and
|
|
103
102
|
* add the overlay there.
|
|
104
103
|
*/
|
|
105
|
-
const
|
|
106
|
-
const app = document.querySelector(appRootSelector) || document.body;
|
|
104
|
+
const app = document.querySelector('ion-app') || document.body;
|
|
107
105
|
/**
|
|
108
106
|
* Create a placeholder comment so that
|
|
109
107
|
* we can return this component to where
|
|
@@ -48,20 +48,6 @@ export const startHardwareBackButton = () => {
|
|
|
48
48
|
},
|
|
49
49
|
});
|
|
50
50
|
doc.dispatchEvent(ev);
|
|
51
|
-
/**
|
|
52
|
-
* If no handlers have been registered, fall back to the default
|
|
53
|
-
* behavior of navigating back in history. This ensures the hardware
|
|
54
|
-
* back button works even when no router or custom handler is present.
|
|
55
|
-
*/
|
|
56
|
-
if (handlers.length === 0) {
|
|
57
|
-
handlers.push({
|
|
58
|
-
priority: FALLBACK_BACK_BUTTON_PRIORITY,
|
|
59
|
-
handler: () => {
|
|
60
|
-
win === null || win === void 0 ? void 0 : win.history.back();
|
|
61
|
-
},
|
|
62
|
-
id: index++,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
51
|
const executeAction = async (handlerRegister) => {
|
|
66
52
|
try {
|
|
67
53
|
if (handlerRegister === null || handlerRegister === void 0 ? void 0 : handlerRegister.handler) {
|
|
@@ -125,4 +111,3 @@ export const startHardwareBackButton = () => {
|
|
|
125
111
|
};
|
|
126
112
|
export const OVERLAY_BACK_BUTTON_PRIORITY = 100;
|
|
127
113
|
export const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
|
|
128
|
-
const FALLBACK_BACK_BUTTON_PRIORITY = -1; // Fallback when no other handlers are registered
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { focusElements } from "./focus-visible";
|
|
5
4
|
import { printIonError } from "./logging/index";
|
|
6
|
-
import { config } from "../global/config";
|
|
7
5
|
export const transitionEndAsync = (el, expectedDuration = 0) => {
|
|
8
6
|
return new Promise((resolve) => {
|
|
9
7
|
transitionEnd(el, expectedDuration, resolve);
|
|
@@ -205,17 +203,6 @@ export const raf = (h) => {
|
|
|
205
203
|
export const hasShadowDom = (el) => {
|
|
206
204
|
return !!el.shadowRoot && !!el.attachShadow;
|
|
207
205
|
};
|
|
208
|
-
/**
|
|
209
|
-
* Focuses a given element while ensuring proper focus management
|
|
210
|
-
* within the Ionic framework. If the element is marked as `ion-focusable`,
|
|
211
|
-
* this function will delegate focus handling to `ion-app` or manually
|
|
212
|
-
* apply focus when a custom app root is used.
|
|
213
|
-
*
|
|
214
|
-
* This function helps maintain accessibility and expected focus behavior
|
|
215
|
-
* in both standard and custom root environments.
|
|
216
|
-
*
|
|
217
|
-
* @param el - The element to focus.
|
|
218
|
-
*/
|
|
219
206
|
export const focusVisibleElement = (el) => {
|
|
220
207
|
el.focus();
|
|
221
208
|
/**
|
|
@@ -225,52 +212,11 @@ export const focusVisibleElement = (el) => {
|
|
|
225
212
|
* however, there are times when we need to manually control
|
|
226
213
|
* this behavior so we call the `setFocus` method on ion-app
|
|
227
214
|
* which will let us explicitly set the elements to focus.
|
|
228
|
-
*
|
|
229
|
-
* Note: The element passed to this function might be an inner
|
|
230
|
-
* focusable element (e.g., a native <button> inside ion-button's
|
|
231
|
-
* shadow root). If so, we need to find the host element that has
|
|
232
|
-
* the ion-focusable class to pass to setFocus.
|
|
233
215
|
*/
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
// a shadow root and use the host element instead
|
|
237
|
-
if (!el.classList.contains('ion-focusable')) {
|
|
238
|
-
const rootNode = el.getRootNode();
|
|
239
|
-
if (rootNode instanceof ShadowRoot && rootNode.host instanceof HTMLElement) {
|
|
240
|
-
elToFocus = rootNode.host;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
if (elToFocus.classList.contains('ion-focusable')) {
|
|
244
|
-
const appRootSelector = config.get('appRootSelector', 'ion-app');
|
|
245
|
-
const app = elToFocus.closest(appRootSelector);
|
|
216
|
+
if (el.classList.contains('ion-focusable')) {
|
|
217
|
+
const app = el.closest('ion-app');
|
|
246
218
|
if (app) {
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* If the app root is the default, then it will be
|
|
250
|
-
* in charge of setting focus. This is because the
|
|
251
|
-
* focus-visible utility is attached to the app root
|
|
252
|
-
* and will handle setting focus on the correct element.
|
|
253
|
-
*/
|
|
254
|
-
app.setFocus([elToFocus]);
|
|
255
|
-
}
|
|
256
|
-
else {
|
|
257
|
-
/**
|
|
258
|
-
* When using a custom app root selector, the focus-visible
|
|
259
|
-
* utility is not available to manage focus automatically.
|
|
260
|
-
* If we set focus immediately, the element may not be fully
|
|
261
|
-
* rendered or interactive, especially if it was just added
|
|
262
|
-
* to the DOM. Using requestAnimationFrame ensures that focus
|
|
263
|
-
* is applied on the next frame, allowing the DOM to settle
|
|
264
|
-
* before changing focus.
|
|
265
|
-
*/
|
|
266
|
-
requestAnimationFrame(() => {
|
|
267
|
-
/**
|
|
268
|
-
* The focus-visible utility is used to set focus on an
|
|
269
|
-
* element that uses `ion-focusable`.
|
|
270
|
-
*/
|
|
271
|
-
focusElements([elToFocus]);
|
|
272
|
-
});
|
|
273
|
-
}
|
|
219
|
+
app.setFocus([el]);
|
|
274
220
|
}
|
|
275
221
|
}
|
|
276
222
|
};
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { doc, win } from "../browser/index";
|
|
5
|
-
import { config } from "../../global/config";
|
|
6
5
|
import { Keyboard, KeyboardResize } from "../native/keyboard";
|
|
7
6
|
/**
|
|
8
7
|
* The element that resizes when the keyboard opens
|
|
@@ -26,8 +25,7 @@ const getResizeContainer = (resizeMode) => {
|
|
|
26
25
|
* on that. In the event `ion-app` is not available then
|
|
27
26
|
* we can fall back to `body`.
|
|
28
27
|
*/
|
|
29
|
-
const
|
|
30
|
-
const ionApp = doc.querySelector(appRootSelector);
|
|
28
|
+
const ionApp = doc.querySelector('ion-app');
|
|
31
29
|
return ionApp !== null && ionApp !== void 0 ? ionApp : doc.body;
|
|
32
30
|
};
|
|
33
31
|
/**
|
|
@@ -27,8 +27,8 @@ export const menuOverlayAnimation = (menu) => {
|
|
|
27
27
|
}
|
|
28
28
|
menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);
|
|
29
29
|
const mode = getIonMode(menu);
|
|
30
|
-
const
|
|
31
|
-
const opacity =
|
|
30
|
+
const isIos = mode === 'ios';
|
|
31
|
+
const opacity = isIos ? 0.2 : 0.25;
|
|
32
32
|
backdropAnimation.addElement(menu.backdropEl).fromTo('opacity', 0.01, opacity);
|
|
33
|
-
return baseAnimation(
|
|
33
|
+
return baseAnimation(isIos).addAnimation([menuAnimation, backdropAnimation]);
|
|
34
34
|
};
|
|
@@ -14,7 +14,6 @@ export const menuPushAnimation = (menu) => {
|
|
|
14
14
|
let menuClosedX;
|
|
15
15
|
const mode = getIonMode(menu);
|
|
16
16
|
const width = menu.width;
|
|
17
|
-
const isIOS = mode === 'ios';
|
|
18
17
|
if (menu.isEndSide) {
|
|
19
18
|
contentOpenedX = -width + 'px';
|
|
20
19
|
menuClosedX = width + 'px';
|
|
@@ -30,5 +29,5 @@ export const menuPushAnimation = (menu) => {
|
|
|
30
29
|
.addElement(menu.contentEl)
|
|
31
30
|
.fromTo('transform', 'translateX(0px)', `translateX(${contentOpenedX})`);
|
|
32
31
|
const backdropAnimation = createAnimation().addElement(menu.backdropEl).fromTo('opacity', 0.01, 0.32);
|
|
33
|
-
return baseAnimation(
|
|
32
|
+
return baseAnimation(mode === 'ios').addAnimation([menuAnimation, contentAnimation, backdropAnimation]);
|
|
34
33
|
};
|
|
@@ -11,10 +11,9 @@ import { baseAnimation } from "./base";
|
|
|
11
11
|
*/
|
|
12
12
|
export const menuRevealAnimation = (menu) => {
|
|
13
13
|
const mode = getIonMode(menu);
|
|
14
|
-
const isIOS = mode === 'ios';
|
|
15
14
|
const openedX = menu.width * (menu.isEndSide ? -1 : 1) + 'px';
|
|
16
15
|
const contentOpen = createAnimation()
|
|
17
16
|
.addElement(menu.contentEl) // REVIEW
|
|
18
17
|
.fromTo('transform', 'translateX(0px)', `translateX(${openedX})`);
|
|
19
|
-
return baseAnimation(
|
|
18
|
+
return baseAnimation(mode === 'ios').addAnimation(contentOpen);
|
|
20
19
|
};
|
|
@@ -319,86 +319,6 @@ const connectListeners = (doc) => {
|
|
|
319
319
|
doc.addEventListener('focus', (ev) => {
|
|
320
320
|
trapKeyboardFocus(ev, doc);
|
|
321
321
|
}, true);
|
|
322
|
-
// Listen for keydown events to intercept Tab navigation.
|
|
323
|
-
// This is needed for Safari and Firefox which may skip focusable
|
|
324
|
-
// elements or allow focus to escape the overlay.
|
|
325
|
-
// It also ensures proper focus delegation for shadow DOM elements
|
|
326
|
-
// like ion-textarea.
|
|
327
|
-
doc.addEventListener('keydown', (ev) => {
|
|
328
|
-
var _a, _b, _c;
|
|
329
|
-
if (ev.key !== 'Tab' && ev.key !== 'Alt+Tab')
|
|
330
|
-
return;
|
|
331
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
|
|
332
|
-
if (!lastOverlay || lastOverlay.classList.contains(FOCUS_TRAP_DISABLE_CLASS))
|
|
333
|
-
return;
|
|
334
|
-
const activeElement = doc.activeElement;
|
|
335
|
-
if (activeElement === lastOverlay) {
|
|
336
|
-
ev.preventDefault();
|
|
337
|
-
focusFirstDescendant(lastOverlay);
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
// Check if activeElement is inside the overlay (including shadow DOM)
|
|
341
|
-
const isInsideOverlay = activeElement
|
|
342
|
-
? lastOverlay.contains(activeElement) ||
|
|
343
|
-
(activeElement.getRootNode() instanceof ShadowRoot &&
|
|
344
|
-
lastOverlay.contains(activeElement.getRootNode().host)) ||
|
|
345
|
-
((_b = (_a = lastOverlay.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement)) !== null && _b !== void 0 ? _b : false)
|
|
346
|
-
: false;
|
|
347
|
-
if (!isInsideOverlay)
|
|
348
|
-
return;
|
|
349
|
-
// Get all focusable elements from both light and shadow DOM
|
|
350
|
-
const allFocusable = [
|
|
351
|
-
...lastOverlay.querySelectorAll(focusableQueryString),
|
|
352
|
-
...(((_c = lastOverlay.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelectorAll(focusableQueryString)) || []),
|
|
353
|
-
];
|
|
354
|
-
if (allFocusable.length === 0) {
|
|
355
|
-
ev.preventDefault();
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
// Find current element's index (accounting for shadow DOM)
|
|
359
|
-
const currentIndex = activeElement
|
|
360
|
-
? allFocusable.findIndex((el) => {
|
|
361
|
-
var _a;
|
|
362
|
-
if (el === activeElement)
|
|
363
|
-
return true;
|
|
364
|
-
if ((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement))
|
|
365
|
-
return true;
|
|
366
|
-
const rootNode = activeElement.getRootNode();
|
|
367
|
-
return rootNode instanceof ShadowRoot && rootNode.host === el;
|
|
368
|
-
})
|
|
369
|
-
: -1;
|
|
370
|
-
ev.preventDefault();
|
|
371
|
-
// Helper to focus an element, handling shadow DOM properly
|
|
372
|
-
const focusElement = (element) => {
|
|
373
|
-
const shadowRoot = element.shadowRoot;
|
|
374
|
-
if (shadowRoot) {
|
|
375
|
-
const innerFocusable = shadowRoot.querySelector(focusableQueryString);
|
|
376
|
-
if (innerFocusable && typeof element.setFocus !== 'function') {
|
|
377
|
-
focusVisibleElement(innerFocusable);
|
|
378
|
-
return;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
focusVisibleElement(element);
|
|
382
|
-
};
|
|
383
|
-
if (ev.shiftKey) {
|
|
384
|
-
// Shift+Tab: previous element, wrap to last if at first
|
|
385
|
-
if (currentIndex <= 0) {
|
|
386
|
-
focusLastDescendant(lastOverlay);
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
focusElement(allFocusable[currentIndex - 1]);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
else {
|
|
393
|
-
// Tab: next element, wrap to first if at last
|
|
394
|
-
if (currentIndex < 0 || currentIndex >= allFocusable.length - 1) {
|
|
395
|
-
focusFirstDescendant(lastOverlay);
|
|
396
|
-
}
|
|
397
|
-
else {
|
|
398
|
-
focusElement(allFocusable[currentIndex + 1]);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}, true);
|
|
402
322
|
// handle back-button click
|
|
403
323
|
doc.addEventListener('ionBackButton', (ev) => {
|
|
404
324
|
const lastOverlay = getPresentedOverlay(doc);
|
|
@@ -719,8 +639,7 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
|
|
|
719
639
|
return true;
|
|
720
640
|
};
|
|
721
641
|
const getAppRoot = (doc) => {
|
|
722
|
-
|
|
723
|
-
return doc.querySelector(appRootSelector) || doc.body;
|
|
642
|
+
return doc.querySelector('ion-app') || doc.body;
|
|
724
643
|
};
|
|
725
644
|
const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
|
|
726
645
|
// Make overlay visible in case it's hidden
|