@ionic/core 8.8.18-dev.11786399582.1d58c37d → 8.8.18-dev.11786487682.1e6f798f
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-divider.d.ts +11 -0
- package/components/ion-divider.js +4 -0
- 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-gallery-item.d.ts +11 -0
- package/components/ion-gallery-item.js +4 -0
- package/components/ion-gallery.d.ts +11 -0
- package/components/ion-gallery.js +4 -0
- 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-3VXQGlP7.js +4 -0
- package/components/{p-BkKAANMJ.js → p-B2SvA6NE.js} +1 -1
- package/components/p-B5krYTuW.js +4 -0
- package/components/p-B6a9IJZ0.js +4 -0
- package/components/p-BArGQkuV.js +4 -0
- package/components/p-BDqjX7Z_.js +4 -0
- package/components/{p-Cf2jSDS8.js → p-BE21dB_a.js} +1 -1
- package/components/p-BG-Q139o.js +4 -0
- package/components/{p-cyNmxje6.js → p-BPxMDyfV.js} +1 -1
- package/components/p-BT8fsdEQ.js +4 -0
- package/components/p-BWH3I3Dl.js +4 -0
- package/components/p-BYSs-jZz.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-BZwQa9ey.js} +1 -1
- package/components/{p-C_hpsif8.js → p-B_jBop0E.js} +1 -1
- package/components/p-BbVhJs-a.js +4 -0
- package/components/p-Bc6odfwr.js +4 -0
- package/components/p-BjW8SOqw.js +4 -0
- package/components/p-BkWXBpOv.js +4 -0
- package/components/p-Bt9GDUv-.js +4 -0
- package/components/p-BvNVjXg4.js +4 -0
- package/components/p-BwKpO3Is.js +4 -0
- package/components/p-BwlU9cX_.js +4 -0
- package/components/{p-Osve4qkc.js → p-Bz4JFPmj.js} +1 -1
- package/components/p-CBxy8OYq.js +4 -0
- package/components/p-CGdeq57o.js +4 -0
- package/components/p-CHPdgLHZ.js +4 -0
- package/components/p-CMZlqiT7.js +4 -0
- package/components/p-CMzkbes2.js +4 -0
- package/components/p-CODBQrPj.js +4 -0
- package/components/p-COPA4jD9.js +4 -0
- package/components/p-CPnW-OVE.js +4 -0
- package/components/p-CRmBpp1v.js +4 -0
- package/components/p-CT3P-wjL.js +4 -0
- package/components/p-CVYFPBs-.js +4 -0
- package/components/p-CVqhQif1.js +4 -0
- package/components/p-Cc3oC60a.js +4 -0
- package/components/p-CjY4Hs1X.js +4 -0
- package/components/p-CrYjk-l3.js +4 -0
- package/components/p-CsUcWJuB.js +4 -0
- package/components/p-D0Iqw6OZ.js +4 -0
- package/{dist/ionic/p-D13Eaw-8.js → components/p-D0fnq0lf.js} +1 -1
- package/components/p-D1kNlmYt.js +4 -0
- package/components/p-D1t981Ih.js +4 -0
- package/components/p-D9C5yWpF.js +4 -0
- package/components/p-DDNG-IsR.js +4 -0
- package/components/p-DJSp7Si8.js +4 -0
- package/components/p-DL5wyRub.js +4 -0
- package/components/{p-ChIZKXUu.js → p-DWoO0801.js} +1 -1
- package/components/p-DXKZXLjV.js +4 -0
- package/components/p-DaJxRxSQ.js +4 -0
- package/components/p-Dhi5xtNS.js +4 -0
- package/components/p-Do8qRv6r.js +4 -0
- package/components/p-Dt--PjSF.js +4 -0
- package/components/p-DylrHLJF.js +4 -0
- package/components/p-FCT_QxQG.js +4 -0
- package/components/p-OCde3AhO.js +4 -0
- package/components/p-OPFCgx0m.js +4 -0
- package/{dist/ionic/p-VAemlbDS.js → components/p-PCVpe9Tq.js} +1 -1
- package/components/p-Rkm2AOZ2.js +4 -0
- package/components/p-WSZErkoI.js +4 -0
- package/components/p-bHSMZulH.js +4 -0
- package/components/p-fIOYmaqA.js +4 -0
- package/components/p-hNcst9K9.js +4 -0
- package/components/p-hW_3y-wm.js +4 -0
- package/components/p-nLMDgmzd.js +4 -0
- package/components/p-oI96rnOD.js +4 -0
- package/components/p-r_CFQBc1.js +4 -0
- package/components/p-vXpMhGrs.js +4 -0
- package/components/p-zBZRdRDd.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/bundle.ionic.css +1 -0
- package/css/ionic/bundle.ionic.css.map +1 -0
- package/css/ionic/core.ionic.css +1 -0
- package/css/ionic/core.ionic.css.map +1 -0
- package/css/ionic/global.bundle.ionic.css +1 -0
- package/css/ionic/global.bundle.ionic.css.map +1 -0
- package/css/ionic/ionic-swiper.ionic.css +1 -0
- package/css/ionic/ionic-swiper.ionic.css.map +1 -0
- package/css/ionic/link.ionic.css +1 -0
- package/css/ionic/link.ionic.css.map +1 -0
- package/css/ionic/structure.ionic.css +1 -0
- package/css/ionic/structure.ionic.css.map +1 -0
- package/css/ionic/typography.ionic.css +1 -0
- package/css/ionic/typography.ionic.css.map +1 -0
- package/css/ionic/utils.bundle.ionic.css +1 -0
- package/css/ionic/utils.bundle.ionic.css.map +1 -0
- 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.map +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +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-Ch16T-Nb.js → animation-B3xfVcDO.js} +3 -3
- package/dist/cjs/{app-globals-Dd89e0MR.js → app-globals-3ZoCVkn-.js} +1 -1
- package/dist/cjs/{button-active-COnxOe4X.js → button-active-3tZKuPbT.js} +2 -2
- package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-CQSg1uCo.js} +3 -3
- package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
- package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
- package/dist/cjs/caret-right-CRCgv98E.js +8 -0
- package/dist/cjs/clear-button-press-controller-DGX8X5js.js +45 -0
- package/dist/cjs/config-DWdFbSNK.js +35 -0
- package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
- package/dist/cjs/{format-BUFWn4Bn.js → format-BCIkDef_.js} +1 -1
- package/dist/cjs/{framework-delegate-BgU6U9Ez.js → framework-delegate-DC5nq_NN.js} +4 -2
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-eix26ESE.js} +1 -1
- package/dist/cjs/{helpers-gntk8bfm.js → helpers-DiOgV5hw.js} +71 -4
- package/dist/cjs/{index-BS2uhvhT.js → index-BaJ7_YbC.js} +4 -4
- package/dist/cjs/index-Bj07IRTB.js +429 -0
- package/dist/cjs/{index-BiRrzGDi.js → index-BxEZd5IE.js} +2 -34
- package/dist/cjs/{index-DqmRDbxg.js → index-CxDnX7hd.js} +3 -1
- package/dist/cjs/{index-ooS8B4p9.js → index-DYRcC3bw.js} +15 -15
- package/dist/cjs/{index-BfaXsATC.js → index-GZU9YrFc.js} +43 -241
- package/dist/cjs/{index-BhhuJ1Yx.js → index-bX3nz2vw.js} +9 -8
- package/dist/cjs/index.cjs.js +16 -16
- package/dist/cjs/{input-shims-Bn1cXfCM.js → input-shims-BSEBw22J.js} +18 -17
- package/dist/cjs/{input.utils-BwhxZooW.js → input.utils-D68wgI2Y.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +61 -29
- package/dist/cjs/ion-action-sheet.cjs.entry.js +41 -22
- package/dist/cjs/ion-alert.cjs.entry.js +78 -41
- package/dist/cjs/ion-app_8.cjs.entry.js +458 -244
- package/dist/cjs/ion-avatar_3.cjs.entry.js +125 -13
- package/dist/cjs/ion-back-button.cjs.entry.js +31 -22
- package/dist/cjs/ion-backdrop.cjs.entry.js +10 -7
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +54 -18
- package/dist/cjs/ion-button_2.cjs.entry.js +61 -24
- package/dist/cjs/ion-card_5.cjs.entry.js +55 -33
- package/dist/cjs/ion-checkbox.cjs.entry.js +34 -17
- package/dist/cjs/ion-chip.cjs.entry.js +50 -9
- package/dist/cjs/ion-col_3.cjs.entry.js +56 -57
- package/dist/cjs/ion-datetime-button.cjs.entry.js +13 -9
- package/dist/cjs/ion-datetime_3.cjs.entry.js +123 -51
- package/dist/cjs/ion-divider.cjs.entry.js +51 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +44 -28
- package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
- package/dist/cjs/ion-gallery.cjs.entry.js +607 -0
- package/dist/cjs/ion-img.cjs.entry.js +8 -4
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +93 -17
- package/dist/cjs/ion-input-otp.cjs.entry.js +74 -9
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +53 -15
- package/dist/cjs/ion-input.cjs.entry.js +132 -40
- package/dist/cjs/ion-item-option_3.cjs.entry.js +467 -52
- package/dist/cjs/ion-item_8.cjs.entry.js +121 -50
- package/dist/cjs/ion-loading.cjs.entry.js +22 -19
- package/dist/cjs/ion-menu_3.cjs.entry.js +47 -29
- package/dist/cjs/ion-modal.cjs.entry.js +309 -215
- package/dist/cjs/ion-nav_2.cjs.entry.js +14 -11
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +12 -8
- package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
- package/dist/cjs/ion-picker.cjs.entry.js +10 -6
- package/dist/cjs/ion-popover.cjs.entry.js +21 -19
- package/dist/cjs/ion-progress-bar.cjs.entry.js +27 -9
- package/dist/cjs/ion-radio_2.cjs.entry.js +36 -18
- package/dist/cjs/ion-range.cjs.entry.js +20 -13
- package/dist/cjs/ion-refresher_2.cjs.entry.js +43 -24
- package/dist/cjs/ion-reorder_2.cjs.entry.js +38 -14
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +15 -7
- package/dist/cjs/ion-route_4.cjs.entry.js +11 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +146 -32
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +23 -16
- package/dist/cjs/ion-select-modal.cjs.entry.js +114 -38
- package/dist/cjs/ion-select_3.cjs.entry.js +557 -108
- package/dist/cjs/ion-spinner.cjs.entry.js +30 -8
- package/dist/cjs/ion-split-pane.cjs.entry.js +13 -9
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -28
- package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
- package/dist/cjs/ion-text.cjs.entry.js +7 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +137 -23
- package/dist/cjs/ion-toast.cjs.entry.js +70 -46
- package/dist/cjs/ion-toggle.cjs.entry.js +82 -26
- package/dist/cjs/ionic-global-QoUqobrQ.js +519 -0
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-IMJRwn29.js → ios.transition-DpFQfFfT.js} +7 -5
- package/dist/cjs/{item-multiple-inputs-jOJZE_I0.js → item-multiple-inputs-BG9f5_eV.js} +1 -1
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-Bn0Ppim6.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-faZBQysj.js} +4 -3
- package/dist/cjs/list-a-7GSA6K.js +8 -0
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CgQZxcoT.js → md.transition-ChJcoZUH.js} +6 -5
- package/dist/cjs/{notch-controller-_SwR025y.js → notch-controller-BO0UGB4F.js} +4 -4
- package/dist/cjs/overlay-control-label-DnRLQR1t.js +52 -0
- package/dist/cjs/{overlays-DuSEMhIW.js → overlays-CFGbPUmE.js} +309 -18
- package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +345 -0
- package/dist/cjs/select-option-render-DqBHEjDn.js +124 -0
- package/dist/cjs/{status-tap-CSvBT7FV.js → status-tap-x2qDo5QR.js} +4 -3
- package/dist/cjs/{swipe-back-CuIiziaa.js → swipe-back-CvZt_4YX.js} +3 -2
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-IlOsGAz7.js} +25 -1
- package/dist/cjs/validity-QmuwEptc.js +51 -0
- package/dist/cjs/x-BTF99yFH.js +8 -0
- package/dist/collection/collection-manifest.json +9 -1
- package/dist/collection/components/accordion/accordion.ionic.css +201 -0
- package/dist/collection/components/accordion/accordion.ios.css +73 -58
- package/dist/collection/components/accordion/accordion.js +41 -27
- package/dist/collection/components/accordion/accordion.md.css +67 -59
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
- package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
- package/dist/collection/components/accordion-group/accordion-group.js +44 -8
- package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +494 -0
- package/dist/collection/components/action-sheet/action-sheet.ios.css +367 -11
- package/dist/collection/components/action-sheet/action-sheet.js +32 -13
- package/dist/collection/components/action-sheet/action-sheet.md.css +306 -10
- package/dist/collection/components/alert/alert.ionic.css +787 -0
- package/dist/collection/components/alert/alert.ios.css +481 -19
- package/dist/collection/components/alert/alert.js +67 -30
- package/dist/collection/components/alert/alert.md.css +464 -29
- package/dist/collection/components/app/app.js +15 -83
- package/dist/collection/components/avatar/avatar.ionic.css +385 -0
- package/dist/collection/components/avatar/avatar.ios.css +7 -33
- package/dist/collection/components/avatar/avatar.js +120 -4
- package/dist/collection/components/avatar/avatar.md.css +51 -0
- package/dist/collection/components/back-button/back-button.ios.css +60 -48
- package/dist/collection/components/back-button/back-button.js +27 -19
- package/dist/collection/components/back-button/back-button.md.css +60 -48
- package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
- package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
- package/dist/collection/components/backdrop/backdrop.js +12 -6
- package/dist/collection/components/backdrop/backdrop.md.css +56 -19
- package/dist/collection/components/badge/badge.ionic.css +272 -0
- package/dist/collection/components/badge/badge.ios.css +137 -12
- package/dist/collection/components/badge/badge.js +145 -9
- package/dist/collection/components/badge/badge.md.css +122 -12
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
- package/dist/collection/components/button/button.ionic.css +644 -0
- package/dist/collection/components/button/button.ios.css +154 -46
- package/dist/collection/components/button/button.js +63 -27
- package/dist/collection/components/button/button.md.css +150 -50
- package/dist/collection/components/buttons/buttons.ionic.css +97 -0
- package/dist/collection/components/buttons/buttons.ios.css +59 -7
- package/dist/collection/components/buttons/buttons.js +15 -9
- package/dist/collection/components/buttons/buttons.md.css +55 -3
- package/dist/collection/components/card/card.ionic.css +144 -0
- package/dist/collection/components/card/card.ios.css +65 -14
- package/dist/collection/components/card/card.js +41 -10
- package/dist/collection/components/card/card.md.css +65 -14
- package/dist/collection/components/card-content/card-content.ionic.css +89 -0
- package/dist/collection/components/card-content/card-content.ios.css +20 -35
- package/dist/collection/components/card-content/card-content.js +12 -10
- package/dist/collection/components/card-content/card-content.md.css +20 -35
- package/dist/collection/components/card-header/card-header.ionic.css +85 -0
- package/dist/collection/components/card-header/card-header.ios.css +27 -15
- package/dist/collection/components/card-header/card-header.js +13 -10
- package/dist/collection/components/card-header/card-header.md.css +27 -15
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
- package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
- package/dist/collection/components/card-title/card-title.ios.css +73 -0
- package/dist/collection/components/card-title/card-title.js +11 -8
- package/dist/collection/components/card-title/card-title.md.css +73 -0
- package/dist/collection/components/checkbox/checkbox.ionic.css +543 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +242 -117
- package/dist/collection/components/checkbox/checkbox.js +69 -14
- package/dist/collection/components/checkbox/checkbox.md.css +243 -118
- package/dist/collection/components/chip/chip.ionic.css +217 -0
- package/dist/collection/components/chip/chip.ios.css +67 -14
- package/dist/collection/components/chip/chip.js +108 -8
- package/dist/collection/components/chip/chip.md.css +67 -14
- package/dist/collection/components/col/col.css +192 -4
- package/dist/collection/components/col/col.js +211 -61
- package/dist/collection/components/content/content.css +47 -2
- package/dist/collection/components/content/content.js +17 -63
- package/dist/collection/components/datetime/datetime.ionic.css +703 -0
- package/dist/collection/components/datetime/datetime.ios.css +302 -106
- package/dist/collection/components/datetime/datetime.js +100 -26
- package/dist/collection/components/datetime/datetime.md.css +293 -96
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
- package/dist/collection/components/datetime-button/datetime-button.js +11 -8
- package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
- package/dist/collection/components/divider/divider.ionic.css +148 -0
- package/dist/collection/components/divider/divider.ios.css +87 -0
- package/dist/collection/components/divider/divider.js +94 -0
- package/dist/collection/components/divider/divider.md.css +87 -0
- package/dist/collection/components/fab/fab.css +25 -1
- package/dist/collection/components/fab/fab.js +9 -5
- package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
- package/dist/collection/components/fab-button/fab-button.js +36 -21
- package/dist/collection/components/fab-button/fab-button.md.css +20 -8
- package/dist/collection/components/fab-list/fab-list.css +12 -0
- package/dist/collection/components/fab-list/fab-list.js +9 -5
- package/dist/collection/components/footer/footer-interface.js +1 -0
- package/dist/collection/components/footer/footer.ios.css +33 -6
- package/dist/collection/components/footer/footer.js +117 -25
- package/dist/collection/components/footer/footer.md.css +40 -0
- package/dist/collection/components/gallery/gallery-constants.js +12 -0
- package/dist/collection/components/gallery/gallery-interface.js +1 -0
- package/dist/collection/components/gallery/gallery.css +15 -0
- package/dist/collection/components/gallery/gallery.js +679 -0
- package/dist/collection/components/gallery/test/utils.js +100 -0
- package/dist/collection/components/gallery-item/gallery-item.css +49 -0
- package/dist/collection/components/gallery-item/gallery-item.js +99 -0
- package/dist/collection/components/grid/grid.css +12 -0
- package/dist/collection/components/grid/grid.js +9 -5
- package/dist/collection/components/header/header-interface.js +1 -0
- package/dist/collection/components/header/header.ionic.css +250 -0
- package/dist/collection/components/header/header.ios.css +178 -133
- package/dist/collection/components/header/header.js +181 -39
- package/dist/collection/components/header/header.md.css +199 -9
- package/dist/collection/components/header/header.utils.js +6 -13
- package/dist/collection/components/img/img.js +8 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +100 -5
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
- package/dist/collection/components/input/input.ionic.css +891 -0
- package/dist/collection/components/input/input.ios.css +224 -137
- package/dist/collection/components/input/input.js +158 -45
- package/dist/collection/components/input/input.md.css +194 -209
- package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
- package/dist/collection/components/input-otp/input-otp.js +74 -7
- package/dist/collection/components/input-otp/input-otp.md.css +105 -60
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -12
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
- package/dist/collection/components/item/item.ionic.css +496 -0
- package/dist/collection/components/item/item.ios.css +120 -80
- package/dist/collection/components/item/item.js +56 -21
- package/dist/collection/components/item/item.md.css +131 -79
- package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
- package/dist/collection/components/item-divider/item-divider.js +11 -8
- package/dist/collection/components/item-divider/item-divider.md.css +18 -0
- package/dist/collection/components/item-group/item-group.ios.css +12 -0
- package/dist/collection/components/item-group/item-group.js +13 -7
- package/dist/collection/components/item-group/item-group.md.css +12 -0
- package/dist/collection/components/item-option/item-option.ionic.css +277 -0
- package/dist/collection/components/item-option/item-option.ios.css +136 -29
- package/dist/collection/components/item-option/item-option.js +73 -9
- package/dist/collection/components/item-option/item-option.md.css +136 -29
- package/dist/collection/components/item-options/item-options.ionic.css +221 -0
- package/dist/collection/components/item-options/item-options.ios.css +77 -34
- package/dist/collection/components/item-options/item-options.js +13 -7
- package/dist/collection/components/item-options/item-options.md.css +77 -34
- package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
- package/dist/collection/components/item-sliding/item-sliding.js +421 -35
- package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
- package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
- package/dist/collection/components/label/label.ios.css +18 -0
- package/dist/collection/components/label/label.js +11 -8
- package/dist/collection/components/label/label.md.css +18 -0
- package/dist/collection/components/list/list.ionic.css +212 -0
- package/dist/collection/components/list/list.ios.css +54 -14
- package/dist/collection/components/list/list.js +48 -9
- package/dist/collection/components/list/list.md.css +56 -16
- package/dist/collection/components/list-header/list-header.ionic.css +190 -0
- package/dist/collection/components/list-header/list-header.ios.css +82 -38
- package/dist/collection/components/list-header/list-header.js +11 -8
- package/dist/collection/components/list-header/list-header.md.css +82 -38
- package/dist/collection/components/loading/loading.ios.css +13 -1
- package/dist/collection/components/loading/loading.js +14 -11
- package/dist/collection/components/loading/loading.md.css +13 -1
- package/dist/collection/components/menu/menu.ios.css +15 -3
- package/dist/collection/components/menu/menu.js +12 -7
- package/dist/collection/components/menu/menu.md.css +15 -3
- package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
- package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
- package/dist/collection/components/menu-button/menu-button.js +26 -10
- package/dist/collection/components/menu-button/menu-button.md.css +49 -15
- package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
- package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
- package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
- package/dist/collection/components/modal/animations/sheet.js +8 -2
- package/dist/collection/components/modal/gestures/sheet.js +102 -32
- package/dist/collection/components/modal/gestures/swipe-to-close.js +32 -3
- package/dist/collection/components/modal/gestures/utils.js +0 -17
- package/dist/collection/components/modal/modal.ionic.css +255 -0
- package/dist/collection/components/modal/modal.ios.css +178 -70
- package/dist/collection/components/modal/modal.js +59 -34
- package/dist/collection/components/modal/modal.md.css +178 -70
- package/dist/collection/components/modal/safe-area-utils.js +0 -35
- package/dist/collection/components/nav/nav.css +7 -1
- package/dist/collection/components/nav/nav.js +11 -5
- package/dist/collection/components/nav-link/nav-link.js +5 -1
- package/dist/collection/components/note/note.ios.css +12 -0
- package/dist/collection/components/note/note.js +11 -8
- package/dist/collection/components/note/note.md.css +12 -0
- package/dist/collection/components/picker/picker.ios.css +15 -3
- package/dist/collection/components/picker/picker.js +8 -5
- package/dist/collection/components/picker/picker.md.css +15 -3
- package/dist/collection/components/picker-column/picker-column.css +9 -2
- package/dist/collection/components/picker-column/picker-column.js +8 -7
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
- package/dist/collection/components/picker-legacy/picker.js +7 -6
- package/dist/collection/components/picker-legacy/picker.md.css +13 -1
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
- package/dist/collection/components/popover/popover.ionic.css +290 -0
- package/dist/collection/components/popover/popover.ios.css +29 -1
- package/dist/collection/components/popover/popover.js +18 -15
- package/dist/collection/components/popover/popover.md.css +29 -1
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
- package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
- package/dist/collection/components/progress-bar/progress-bar.js +43 -7
- package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
- package/dist/collection/components/radio/radio.ionic.css +422 -0
- package/dist/collection/components/radio/radio.ios.css +207 -102
- package/dist/collection/components/radio/radio.js +14 -9
- package/dist/collection/components/radio/radio.md.css +207 -102
- package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
- package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
- package/dist/collection/components/radio-group/radio-group.js +48 -7
- package/dist/collection/components/radio-group/radio-group.md.css +43 -19
- package/dist/collection/components/range/range.ionic.css +567 -0
- package/dist/collection/components/range/range.ios.css +128 -85
- package/dist/collection/components/range/range.js +16 -10
- package/dist/collection/components/range/range.md.css +128 -85
- package/dist/collection/components/refresher/refresher.ios.css +14 -1
- package/dist/collection/components/refresher/refresher.js +13 -10
- package/dist/collection/components/refresher/refresher.md.css +15 -2
- package/dist/collection/components/refresher-content/refresher-content.js +28 -7
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +33 -6
- package/dist/collection/components/reorder/reorder.md.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.js +8 -4
- package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
- package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
- package/dist/collection/components/route/route.js +4 -0
- package/dist/collection/components/router/router.js +4 -0
- package/dist/collection/components/router-link/router-link.css +8 -2
- package/dist/collection/components/router-link/router-link.js +9 -5
- package/dist/collection/components/router-outlet/router-outlet.css +7 -1
- package/dist/collection/components/router-outlet/router-outlet.js +6 -3
- package/dist/collection/components/row/row.css +16 -0
- package/dist/collection/components/row/row.js +9 -2
- package/dist/collection/components/searchbar/searchbar.ionic.css +622 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
- package/dist/collection/components/searchbar/searchbar.js +191 -42
- package/dist/collection/components/searchbar/searchbar.md.css +56 -18
- package/dist/collection/components/segment/segment.ionic.css +115 -0
- package/dist/collection/components/segment/segment.ios.css +45 -2
- package/dist/collection/components/segment/segment.js +11 -8
- package/dist/collection/components/segment/segment.md.css +45 -2
- package/dist/collection/components/segment-button/segment-button.ionic.css +352 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
- package/dist/collection/components/segment-button/segment-button.js +11 -8
- package/dist/collection/components/segment-button/segment-button.md.css +148 -107
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
- package/dist/collection/components/segment-view/segment-view.js +13 -4
- package/dist/collection/components/segment-view/segment-view.md.css +6 -0
- package/dist/collection/components/select/select.ionic.css +809 -0
- package/dist/collection/components/select/select.ios.css +348 -176
- package/dist/collection/components/select/select.js +521 -92
- package/dist/collection/components/select/select.md.css +364 -178
- package/dist/collection/components/select-modal/select-modal.ionic.css +257 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +466 -0
- package/dist/collection/components/select-modal/select-modal.js +126 -30
- package/dist/collection/components/select-modal/select-modal.md.css +394 -0
- package/dist/collection/components/select-option/select-option.js +72 -4
- package/dist/collection/components/select-popover/select-popover.ionic.css +255 -0
- package/dist/collection/components/select-popover/select-popover.ios.css +302 -20
- package/dist/collection/components/select-popover/select-popover.js +89 -29
- package/dist/collection/components/select-popover/select-popover.md.css +345 -0
- package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
- package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
- package/dist/collection/components/spinner/spinner.js +47 -6
- package/dist/collection/components/spinner/spinner.native.css +199 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
- package/dist/collection/components/split-pane/split-pane.js +15 -8
- package/dist/collection/components/split-pane/split-pane.md.css +20 -2
- package/dist/collection/components/tab/tab.js +6 -2
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
- package/dist/collection/components/tab-bar/tab-bar.js +179 -15
- package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
- package/dist/collection/components/tab-button/tab-button.ionic.css +373 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
- package/dist/collection/components/tab-button/tab-button.js +54 -9
- package/dist/collection/components/tab-button/tab-button.md.css +137 -93
- package/dist/collection/components/tabs/tabs.css +7 -1
- package/dist/collection/components/tabs/tabs.js +4 -1
- package/dist/collection/components/text/text.css +6 -0
- package/dist/collection/components/text/text.js +7 -6
- package/dist/collection/components/textarea/textarea.ionic.css +898 -0
- package/dist/collection/components/textarea/textarea.ios.css +298 -158
- package/dist/collection/components/textarea/textarea.js +162 -24
- package/dist/collection/components/textarea/textarea.md.css +312 -159
- package/dist/collection/components/thumbnail/thumbnail.css +6 -0
- package/dist/collection/components/thumbnail/thumbnail.js +9 -2
- package/dist/collection/components/title/title.ionic.css +127 -0
- package/dist/collection/components/title/title.ios.css +32 -4
- package/dist/collection/components/title/title.js +13 -7
- package/dist/collection/components/title/title.md.css +39 -4
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ionic.css +394 -0
- package/dist/collection/components/toast/toast.ios.css +84 -45
- package/dist/collection/components/toast/toast.js +76 -13
- package/dist/collection/components/toast/toast.md.css +84 -45
- package/dist/collection/components/toggle/toggle.ionic.css +512 -0
- package/dist/collection/components/toggle/toggle.ios.css +247 -127
- package/dist/collection/components/toggle/toggle.js +72 -18
- package/dist/collection/components/toggle/toggle.md.css +245 -127
- package/dist/collection/components/toolbar/test/image.svg +1 -0
- package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
- package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
- package/dist/collection/components/toolbar/toolbar.js +218 -13
- package/dist/collection/components/toolbar/toolbar.md.css +90 -47
- package/dist/collection/global/ionic-global.js +241 -13
- package/dist/collection/utils/content/index.js +0 -30
- package/dist/collection/utils/css-value-validation.js +39 -0
- package/dist/collection/utils/focus-trap.js +13 -2
- package/dist/collection/utils/focus-visible.js +22 -0
- package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/forms/validity.js +31 -0
- package/dist/collection/utils/framework-delegate.js +3 -1
- package/dist/collection/utils/hardware-back-button.js +15 -0
- package/dist/collection/utils/helpers.js +70 -3
- package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
- package/dist/collection/utils/media.js +1 -0
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +2 -1
- package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
- package/dist/collection/utils/overlay-control-label.js +47 -0
- package/dist/collection/utils/overlays.js +290 -8
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/scroll-hide-controller.js +178 -0
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/collection/utils/test/playwright/drag-element.js +32 -9
- package/dist/collection/utils/test/playwright/generator.js +48 -23
- package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
- package/dist/collection/utils/theme.js +25 -1
- package/dist/collection/utils/transition/ios.transition.js +1 -0
- package/dist/docs.json +9091 -287
- package/dist/esm/{animation-DLJpuoEz.js → animation-B2qdQ_ou.js} +2 -2
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-DZ-iIjxA.js} +1 -1
- package/dist/esm/{button-active-BSpTQmS9.js → button-active-BmajAby6.js} +2 -2
- package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CtQSWUU0.js} +1 -1
- package/dist/esm/caret-down-D1t981Ih.js +6 -0
- package/dist/esm/caret-left-fIOYmaqA.js +6 -0
- package/dist/esm/caret-right-BYSs-jZz.js +6 -0
- package/dist/esm/clear-button-press-controller-C7AAVMKK.js +43 -0
- package/dist/esm/config-BwKpO3Is.js +31 -0
- package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
- package/dist/esm/{format-CAmvpAez.js → format-2WlZcMvG.js} +1 -1
- package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-DO2QXccA.js} +4 -2
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-DFgKNCce.js} +1 -1
- package/dist/esm/{helpers-HEqiOzXb.js → helpers-DfF5_wJc.js} +71 -5
- package/dist/esm/{index-DV3sJJW8.js → index-B4Kq2YNk.js} +3 -2
- package/dist/esm/{index-B_dQk_WE.js → index-BIUWGRUl.js} +4 -4
- package/dist/esm/{index-BRHzoo00.js → index-BjaaZqVY.js} +4 -3
- package/dist/esm/{index-tcQvqkiX.js → index-C0EQceqV.js} +42 -222
- package/dist/esm/{index-Q6UPU0Ay.js → index-Di034G4O.js} +11 -11
- package/dist/esm/{index-Dw-wN0Ja.js → index-KxK0gcRp.js} +3 -33
- package/dist/esm/index-Mq5pCWmZ.js +424 -0
- package/dist/esm/index.js +14 -14
- package/dist/esm/{input-shims-LXhI7LEx.js → input-shims-DvNNw70a.js} +7 -6
- package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-_LkBfBWt.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +61 -29
- package/dist/esm/ion-action-sheet.entry.js +41 -22
- package/dist/esm/ion-alert.entry.js +77 -40
- package/dist/esm/ion-app_8.entry.js +457 -243
- package/dist/esm/ion-avatar_3.entry.js +125 -13
- package/dist/esm/ion-back-button.entry.js +31 -22
- package/dist/esm/ion-backdrop.entry.js +10 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +54 -18
- package/dist/esm/ion-button_2.entry.js +61 -24
- package/dist/esm/ion-card_5.entry.js +55 -33
- package/dist/esm/ion-checkbox.entry.js +34 -17
- package/dist/esm/ion-chip.entry.js +50 -9
- package/dist/esm/ion-col_3.entry.js +56 -57
- package/dist/esm/ion-datetime-button.entry.js +13 -9
- package/dist/esm/ion-datetime_3.entry.js +123 -51
- package/dist/esm/ion-divider.entry.js +49 -0
- package/dist/esm/ion-fab_3.entry.js +44 -28
- package/dist/esm/ion-gallery-item.entry.js +57 -0
- package/dist/esm/ion-gallery.entry.js +605 -0
- package/dist/esm/ion-img.entry.js +8 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +92 -16
- package/dist/esm/ion-input-otp.entry.js +74 -9
- package/dist/esm/ion-input-password-toggle.entry.js +53 -15
- package/dist/esm/ion-input.entry.js +132 -40
- package/dist/esm/ion-item-option_3.entry.js +467 -52
- package/dist/esm/ion-item_8.entry.js +121 -50
- package/dist/esm/ion-loading.entry.js +21 -18
- package/dist/esm/ion-menu_3.entry.js +47 -29
- package/dist/esm/ion-modal.entry.js +275 -181
- package/dist/esm/ion-nav_2.entry.js +14 -11
- package/dist/esm/ion-picker-column-option.entry.js +12 -8
- package/dist/esm/ion-picker-column.entry.js +13 -13
- package/dist/esm/ion-picker.entry.js +10 -6
- package/dist/esm/ion-popover.entry.js +21 -19
- package/dist/esm/ion-progress-bar.entry.js +27 -9
- package/dist/esm/ion-radio_2.entry.js +36 -18
- package/dist/esm/ion-range.entry.js +20 -13
- package/dist/esm/ion-refresher_2.entry.js +41 -22
- package/dist/esm/ion-reorder_2.entry.js +38 -14
- package/dist/esm/ion-ripple-effect.entry.js +15 -7
- package/dist/esm/ion-route_4.entry.js +11 -10
- package/dist/esm/ion-searchbar.entry.js +146 -32
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +13 -3
- package/dist/esm/ion-segment_2.entry.js +23 -16
- package/dist/esm/ion-select-modal.entry.js +114 -38
- package/dist/esm/ion-select_3.entry.js +557 -108
- package/dist/esm/ion-spinner.entry.js +30 -8
- package/dist/esm/ion-split-pane.entry.js +13 -9
- package/dist/esm/ion-tab-bar_2.entry.js +149 -27
- package/dist/esm/ion-tab_2.entry.js +8 -7
- package/dist/esm/ion-text.entry.js +7 -7
- package/dist/esm/ion-textarea.entry.js +137 -23
- package/dist/esm/ion-toast.entry.js +45 -21
- package/dist/esm/ion-toggle.entry.js +82 -26
- package/dist/esm/ionic-global-BpkTponr.js +508 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CgScDbsb.js} +7 -5
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-C6onMFOo.js} +1 -1
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-CyyguLDw.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-WJix-wcz.js} +4 -3
- package/dist/esm/list-Dhi5xtNS.js +6 -0
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-D0msQmzI.js → md.transition-DThqYazt.js} +6 -5
- package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-MTblRxjD.js} +2 -2
- package/dist/esm/overlay-control-label-CODBQrPj.js +49 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-tv6nLsmk.js} +306 -15
- package/dist/esm/scroll-hide-controller-CUNW7EpD.js +342 -0
- package/dist/esm/select-option-render-BlKZ2H83.js +122 -0
- package/dist/esm/{status-tap-vO-6s4Yp.js → status-tap-CoPI1M2q.js} +4 -3
- package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-qmvTRnSq.js} +3 -2
- package/dist/esm/{theme-DiVJyqlX.js → theme-DaJxRxSQ.js} +25 -1
- package/dist/esm/validity-BjW8SOqw.js +48 -0
- package/dist/esm/x-BDqjX7Z_.js +6 -0
- package/dist/html.html-data.json +2708 -169
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p--sroV-k-.js +4 -0
- package/dist/ionic/p-05ce9821.entry.js +4 -0
- package/dist/ionic/p-085b8cdf.entry.js +4 -0
- package/dist/ionic/p-0ef6bfc4.entry.js +4 -0
- package/dist/ionic/p-18b7771e.entry.js +4 -0
- package/dist/ionic/p-19f34fe5.entry.js +4 -0
- package/dist/ionic/p-1b6e3914.entry.js +4 -0
- package/dist/ionic/p-2740db6e.entry.js +4 -0
- package/dist/ionic/p-2a1abbb1.entry.js +4 -0
- package/dist/ionic/p-2d9c681b.entry.js +4 -0
- package/dist/ionic/p-2fba8f15.entry.js +4 -0
- package/dist/ionic/p-3886bfbe.entry.js +4 -0
- package/dist/ionic/p-3ab9c35a.entry.js +4 -0
- package/dist/ionic/p-3b4c5cb5.entry.js +4 -0
- package/dist/ionic/p-3cfb4ff2.entry.js +4 -0
- package/dist/ionic/p-41afaf15.entry.js +4 -0
- package/dist/ionic/p-47b9dac0.entry.js +4 -0
- package/dist/ionic/p-54419365.entry.js +4 -0
- package/dist/ionic/p-54b7972e.entry.js +4 -0
- package/dist/ionic/p-602cf876.entry.js +4 -0
- package/dist/ionic/p-678ee14a.entry.js +4 -0
- package/dist/ionic/p-679c1448.entry.js +4 -0
- package/dist/ionic/p-68ea8ed1.entry.js +4 -0
- package/dist/ionic/p-6e1ec775.entry.js +4 -0
- package/dist/ionic/p-745d6b2b.entry.js +4 -0
- package/dist/ionic/p-77254b78.entry.js +4 -0
- package/dist/ionic/{p-C0eMdTCW.js → p-7k7Q1A38.js} +1 -1
- package/dist/ionic/p-898691b3.entry.js +4 -0
- package/dist/ionic/p-89fedfda.entry.js +4 -0
- package/dist/ionic/p-8cf82b85.entry.js +4 -0
- package/dist/ionic/p-8d5fd199.entry.js +4 -0
- package/dist/ionic/p-9087119f.entry.js +4 -0
- package/dist/ionic/p-9c508a22.entry.js +4 -0
- package/dist/ionic/p-B4Kq2YNk.js +4 -0
- package/dist/ionic/p-BDSH5ckF.js +4 -0
- package/dist/ionic/p-BDqjX7Z_.js +4 -0
- package/dist/ionic/p-BFy_BK46.js +4 -0
- package/dist/ionic/p-BYSs-jZz.js +4 -0
- package/dist/ionic/p-BjW8SOqw.js +4 -0
- package/dist/ionic/p-BlZo7Gy-.js +4 -0
- package/dist/ionic/p-Bq8S4vhI.js +4 -0
- package/dist/ionic/p-Btc4flkw.js +4 -0
- package/dist/ionic/p-BwKpO3Is.js +4 -0
- package/dist/ionic/p-C0EQceqV.js +5 -0
- package/dist/ionic/p-C1I_d964.js +4 -0
- package/dist/ionic/p-CB91Gr9M.js +4 -0
- package/dist/ionic/p-CEkwLb3L.js +4 -0
- package/dist/ionic/p-CJsJQPQD.js +4 -0
- package/dist/ionic/p-CODBQrPj.js +4 -0
- package/dist/ionic/p-Ch7MBNn_.js +4 -0
- package/dist/ionic/p-Cipl19Qe.js +4 -0
- package/dist/ionic/{p-DC3RagnA.js → p-Cm20lBQw.js} +1 -1
- package/dist/ionic/p-CnAWnbNK.js +4 -0
- package/dist/ionic/p-D1t981Ih.js +4 -0
- package/dist/ionic/p-D4MT1z4_.js +4 -0
- package/dist/ionic/p-D4veLKCq.js +4 -0
- package/dist/ionic/p-DF7ubVci.js +4 -0
- package/dist/ionic/p-DMaSfupH.js +4 -0
- package/{components/p-D13Eaw-8.js → dist/ionic/p-DQDmksdT.js} +1 -1
- package/dist/ionic/p-DTsDGZPd.js +4 -0
- package/dist/ionic/p-DaJxRxSQ.js +4 -0
- package/dist/ionic/p-DdCaKRle.js +4 -0
- package/dist/ionic/p-Dhi5xtNS.js +4 -0
- package/dist/ionic/p-Dy243NXW.js +4 -0
- package/dist/ionic/{p-CKvCXMs9.js → p-OkgYzj-7.js} +1 -1
- package/dist/ionic/p-YIsE5bNG.js +4 -0
- package/dist/ionic/p-a4af8e39.entry.js +4 -0
- package/dist/ionic/p-b2368a93.entry.js +4 -0
- package/dist/ionic/p-b275f17e.entry.js +4 -0
- package/dist/ionic/p-c5635175.entry.js +4 -0
- package/dist/ionic/p-c76d57fb.entry.js +4 -0
- package/dist/ionic/p-ca3a07b5.entry.js +4 -0
- package/dist/ionic/p-ced3cda1.entry.js +4 -0
- package/dist/ionic/p-cf22e991.entry.js +4 -0
- package/dist/ionic/p-d0c1d21d.entry.js +4 -0
- package/dist/ionic/p-d0d42da6.entry.js +4 -0
- package/dist/ionic/p-d33dfc12.entry.js +4 -0
- package/dist/ionic/p-d34bfb61.entry.js +4 -0
- package/dist/ionic/p-dbc08f67.entry.js +4 -0
- package/dist/ionic/p-dc8e0b91.entry.js +4 -0
- package/dist/ionic/p-df642ef5.entry.js +4 -0
- package/dist/ionic/p-e04d63e1.entry.js +4 -0
- package/dist/ionic/p-e3615478.entry.js +4 -0
- package/dist/ionic/p-f1810d29.entry.js +4 -0
- package/dist/ionic/p-f1a8aead.entry.js +4 -0
- package/dist/ionic/p-f69af9d3.entry.js +4 -0
- package/dist/ionic/p-f760f90e.entry.js +4 -0
- package/dist/ionic/p-f8001f8f.entry.js +4 -0
- package/dist/ionic/p-f8b63ebb.entry.js +4 -0
- package/dist/ionic/p-fIOYmaqA.js +4 -0
- package/dist/ionic/p-fc6d26ff.entry.js +4 -0
- package/dist/ionic/p-im8OkZlj.js +4 -0
- package/dist/ionic/p-lMb_45ax.js +4 -0
- package/dist/ionic/p-oUgyLDGL.js +4 -0
- package/dist/ionic/p-vXpMhGrs.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +6 -3
- package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
- package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
- package/dist/types/components/alert/alert-interface.d.ts +3 -7
- package/dist/types/components/alert/alert.d.ts +3 -2
- package/dist/types/components/app/app.d.ts +4 -5
- package/dist/types/components/avatar/avatar.d.ts +32 -0
- package/dist/types/components/back-button/back-button.d.ts +2 -1
- package/dist/types/components/backdrop/backdrop.d.ts +4 -0
- package/dist/types/components/badge/badge.d.ts +34 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +23 -8
- package/dist/types/components/buttons/buttons.d.ts +5 -1
- package/dist/types/components/card/card.d.ts +8 -1
- package/dist/types/components/card-content/card-content.d.ts +2 -1
- package/dist/types/components/card-header/card-header.d.ts +3 -2
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
- package/dist/types/components/card-title/card-title.d.ts +2 -1
- package/dist/types/components/checkbox/checkbox.d.ts +14 -4
- package/dist/types/components/chip/chip.d.ts +26 -1
- package/dist/types/components/col/col.d.ts +52 -5
- package/dist/types/components/content/content.d.ts +3 -12
- package/dist/types/components/datetime/datetime.d.ts +27 -6
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
- package/dist/types/components/divider/divider.d.ts +20 -0
- package/dist/types/components/fab/fab.d.ts +4 -0
- package/dist/types/components/fab-button/fab-button.d.ts +5 -3
- package/dist/types/components/fab-list/fab-list.d.ts +4 -0
- package/dist/types/components/footer/footer-interface.d.ts +1 -0
- package/dist/types/components/footer/footer.d.ts +20 -3
- package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
- package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
- package/dist/types/components/gallery/gallery.d.ts +218 -0
- package/dist/types/components/gallery/test/utils.d.ts +3 -0
- package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
- package/dist/types/components/grid/grid.d.ts +4 -0
- package/dist/types/components/header/header-interface.d.ts +1 -0
- package/dist/types/components/header/header.d.ts +26 -3
- package/dist/types/components/header/header.utils.d.ts +4 -5
- package/dist/types/components/img/img.d.ts +3 -0
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
- package/dist/types/components/input/input.d.ts +34 -5
- package/dist/types/components/input-otp/input-otp.d.ts +37 -0
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
- package/dist/types/components/item/item.d.ts +11 -4
- package/dist/types/components/item-divider/item-divider.d.ts +2 -1
- package/dist/types/components/item-group/item-group.d.ts +4 -0
- package/dist/types/components/item-option/item-option.d.ts +18 -1
- package/dist/types/components/item-options/item-options.d.ts +4 -0
- package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
- package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
- package/dist/types/components/label/label.d.ts +2 -1
- package/dist/types/components/list/list.d.ts +15 -1
- package/dist/types/components/list-header/list-header.d.ts +2 -1
- package/dist/types/components/loading/loading-interface.d.ts +2 -7
- package/dist/types/components/loading/loading.d.ts +3 -2
- package/dist/types/components/menu/menu.d.ts +3 -0
- package/dist/types/components/menu-button/menu-button.d.ts +3 -1
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
- package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
- package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -2
- package/dist/types/components/modal/gestures/utils.d.ts +0 -11
- package/dist/types/components/modal/modal-interface.d.ts +4 -7
- package/dist/types/components/modal/modal.d.ts +14 -7
- package/dist/types/components/modal/safe-area-utils.d.ts +0 -6
- package/dist/types/components/nav/nav-interface.d.ts +9 -1
- package/dist/types/components/nav/nav.d.ts +5 -1
- package/dist/types/components/nav-link/nav-link.d.ts +4 -0
- package/dist/types/components/note/note.d.ts +2 -1
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/picker-column/picker-column.d.ts +2 -1
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
- package/dist/types/components/picker-legacy/picker.d.ts +2 -1
- package/dist/types/components/popover/popover-interface.d.ts +3 -6
- package/dist/types/components/popover/popover.d.ts +6 -5
- package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
- package/dist/types/components/radio/radio.d.ts +2 -1
- package/dist/types/components/radio-group/radio-group.d.ts +12 -0
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/refresher/refresher.d.ts +2 -1
- package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
- package/dist/types/components/reorder/reorder.d.ts +9 -0
- package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
- package/dist/types/components/route/route.d.ts +4 -0
- package/dist/types/components/router/router.d.ts +4 -0
- package/dist/types/components/router-link/router-link.d.ts +4 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
- package/dist/types/components/row/row.d.ts +4 -0
- package/dist/types/components/searchbar/searchbar.d.ts +56 -10
- package/dist/types/components/segment/segment.d.ts +2 -1
- package/dist/types/components/segment-button/segment-button.d.ts +2 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +66 -13
- package/dist/types/components/select-modal/select-modal.d.ts +8 -0
- package/dist/types/components/select-option/select-option.d.ts +45 -1
- package/dist/types/components/select-popover/select-popover.d.ts +3 -0
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
- package/dist/types/components/spinner/spinner.d.ts +15 -0
- package/dist/types/components/split-pane/split-pane.d.ts +4 -0
- package/dist/types/components/tab/tab.d.ts +4 -0
- package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
- package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
- package/dist/types/components/tab-button/tab-button.d.ts +12 -1
- package/dist/types/components/tabs/tabs.d.ts +3 -0
- package/dist/types/components/text/text.d.ts +2 -1
- package/dist/types/components/textarea/textarea.d.ts +53 -4
- package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
- package/dist/types/components/title/title.d.ts +4 -0
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +3 -7
- package/dist/types/components/toast/toast.d.ts +19 -2
- package/dist/types/components/toggle/toggle.d.ts +15 -1
- package/dist/types/components/toolbar/toolbar.d.ts +43 -3
- package/dist/types/components.d.ts +1883 -212
- package/dist/types/global/ionic-global.d.ts +28 -2
- package/dist/types/interface.d.ts +3 -0
- package/dist/types/utils/config.d.ts +106 -2
- package/dist/types/utils/content/index.d.ts +0 -12
- package/dist/types/utils/css-value-validation.d.ts +21 -0
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +13 -0
- package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/forms/validity.d.ts +7 -0
- package/dist/types/utils/helpers.d.ts +22 -0
- package/dist/types/utils/overlay-control-label.d.ts +34 -0
- package/dist/types/utils/overlays-interface.d.ts +31 -1
- package/dist/types/utils/overlays.d.ts +1 -1
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
- package/dist/types/utils/test/playwright/generator.d.ts +31 -2
- package/dist/types/utils/theme.d.ts +9 -0
- package/hydrate/index.js +6465 -1565
- package/hydrate/index.mjs +6465 -1565
- package/package.json +10 -7
- package/components/p--JUspHvy.js +0 -4
- package/components/p-A3O24YmY.js +0 -4
- package/components/p-ABkNVeU9.js +0 -4
- package/components/p-B-JJgYSG.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMI53wYL.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BlIAuGv2.js +0 -4
- package/components/p-BmVRXR1y.js +0 -4
- package/components/p-Bnsn6KaP.js +0 -4
- package/components/p-BsBCoGa-.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CIGNaXM1.js +0 -4
- package/components/p-CO7fmmxt.js +0 -4
- package/components/p-CQGnMY3n.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-C_xFdyXe.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CkMSOsFF.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-Cp4GRDqq.js +0 -4
- package/components/p-CsNJ1ULL.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-CzCbeKys.js +0 -4
- package/components/p-D-aHdMxW.js +0 -4
- package/components/p-D0d8qTwj.js +0 -4
- package/components/p-D3xo7hqU.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-D7uN07a3.js +0 -4
- package/components/p-DCnGU1fF.js +0 -4
- package/components/p-DGvrK8dD.js +0 -4
- package/components/p-DJztqcrH.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DRxvM2Ic.js +0 -4
- package/components/p-DV5mPYQS.js +0 -4
- package/components/p-DWkAgceV.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-R8zmRi4c.js +0 -4
- package/components/p-SLS1rDZM.js +0 -4
- package/components/p-ZjP4CjeZ.js +0 -4
- package/components/p-aJ6PBUvj.js +0 -4
- package/components/p-gAg0kXZp.js +0 -4
- package/components/p-gYiraiT_.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-oD4kcBRX.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/components/p-vRBNsYbs.js +0 -4
- package/components/p-yEQxMl70.js +0 -4
- package/components/p-yzCsOZE2.js +0 -4
- package/dist/cjs/config-D6C-KlA9.js +0 -201
- package/dist/cjs/hardware-back-button-CXmUnTJC.js +0 -121
- package/dist/cjs/index-DkNv4J_i.js +0 -10
- package/dist/cjs/ionic-global-BerQGEpE.js +0 -151
- package/dist/cjs/keyboard-controller-GXBiBRKS.js +0 -167
- package/dist/cjs/validity-BpS37YFM.js +0 -19
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/esm/hardware-back-button-B93Gru0Y.js +0 -115
- package/dist/esm/index-ZjP4CjeZ.js +0 -7
- package/dist/esm/ionic-global-Cp_eT4sZ.js +0 -146
- package/dist/esm/keyboard-controller-BaaVITYt.js +0 -165
- package/dist/esm/validity-DJztqcrH.js +0 -17
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0caa922c.entry.js +0 -4
- package/dist/ionic/p-0dc33652.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-10e833ef.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2a05aa64.entry.js +0 -4
- package/dist/ionic/p-2b204c59.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2fa58e80.entry.js +0 -4
- package/dist/ionic/p-3353c229.entry.js +0 -4
- package/dist/ionic/p-34586ead.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-390ca786.entry.js +0 -4
- package/dist/ionic/p-3ae5f277.entry.js +0 -4
- package/dist/ionic/p-4654ae1c.entry.js +0 -4
- package/dist/ionic/p-4745f534.entry.js +0 -4
- package/dist/ionic/p-4858af1f.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4e92a11f.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5334df12.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5e2f73ee.entry.js +0 -4
- package/dist/ionic/p-5eb8e86d.entry.js +0 -4
- package/dist/ionic/p-65ebdf1b.entry.js +0 -4
- package/dist/ionic/p-746fa988.entry.js +0 -4
- package/dist/ionic/p-75dc25ba.entry.js +0 -4
- package/dist/ionic/p-7c319341.entry.js +0 -4
- package/dist/ionic/p-829367ed.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-874b4bd8.entry.js +0 -4
- package/dist/ionic/p-8eb8ee76.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9f9db3a2.entry.js +0 -4
- package/dist/ionic/p-9fa3c405.entry.js +0 -4
- package/dist/ionic/p-BGqMS-oh.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-BmVRXR1y.js +0 -4
- package/dist/ionic/p-CFlfIb2g.js +0 -4
- package/dist/ionic/p-CIGNaXM1.js +0 -4
- package/dist/ionic/p-CmcFnK-B.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-Cx3IXROA.js +0 -4
- package/dist/ionic/p-D-3ycHmd.js +0 -4
- package/dist/ionic/p-D4uTWt4-.js +0 -4
- package/dist/ionic/p-DIuEbVLu.js +0 -4
- package/dist/ionic/p-DJztqcrH.js +0 -4
- package/dist/ionic/p-DV3sJJW8.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DoJvtrbw.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-KjNvRoEp.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-ZjP4CjeZ.js +0 -4
- package/dist/ionic/p-a3bdcae6.entry.js +0 -4
- package/dist/ionic/p-aaeedb6b.entry.js +0 -4
- package/dist/ionic/p-af55a72f.entry.js +0 -4
- package/dist/ionic/p-b2020591.entry.js +0 -4
- package/dist/ionic/p-b9fadbfe.entry.js +0 -4
- package/dist/ionic/p-biz8zWmJ.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-c6e49f3f.entry.js +0 -4
- package/dist/ionic/p-ca2ab74d.entry.js +0 -4
- package/dist/ionic/p-d889ff6d.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-ea56626d.entry.js +0 -4
- package/dist/ionic/p-ef4c3bee.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- package/dist/ionic/p-uWtqTrG8.js +0 -4
- package/dist/ionic/p-viFHDgRs.js +0 -4
- package/dist/ionic/p-xWb6fgfq.js +0 -4
- /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-
|
|
5
|
-
import {
|
|
6
|
-
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-
|
|
7
|
-
import { g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-
|
|
4
|
+
import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-C0EQceqV.js';
|
|
5
|
+
import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-KxK0gcRp.js';
|
|
6
|
+
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-DO2QXccA.js';
|
|
7
|
+
import { g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-DfF5_wJc.js';
|
|
8
8
|
import { c as createLockController } from './lock-controller-B-hirT0v.js';
|
|
9
|
-
import { g as getCapacitor } from './capacitor-
|
|
10
|
-
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-
|
|
11
|
-
import { g as getClassMap } from './theme-
|
|
12
|
-
import { e as deepReady, w as waitForMount } from './index-
|
|
13
|
-
import { b as getIonMode } from './ionic-global-
|
|
14
|
-
import { KEYBOARD_DID_OPEN } from './keyboard-
|
|
15
|
-
import { c as createAnimation } from './animation-
|
|
9
|
+
import { g as getCapacitor } from './capacitor-CtQSWUU0.js';
|
|
10
|
+
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-tv6nLsmk.js';
|
|
11
|
+
import { g as getClassMap } from './theme-DaJxRxSQ.js';
|
|
12
|
+
import { e as deepReady, w as waitForMount } from './index-BIUWGRUl.js';
|
|
13
|
+
import { w as win, b as getIonMode, c as getIonTheme } from './ionic-global-BpkTponr.js';
|
|
14
|
+
import { KEYBOARD_DID_OPEN } from './keyboard-WJix-wcz.js';
|
|
15
|
+
import { c as createAnimation } from './animation-B2qdQ_ou.js';
|
|
16
16
|
import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
|
|
17
17
|
import { createGesture } from './index-CfgBF1SE.js';
|
|
18
|
-
import
|
|
19
|
-
import './hardware-back-button-B93Gru0Y.js';
|
|
18
|
+
import './focus-visible-vXpMhGrs.js';
|
|
20
19
|
import './gesture-controller-BTEOs1at.js';
|
|
21
|
-
import './keyboard-
|
|
20
|
+
import './keyboard-CyyguLDw.js';
|
|
22
21
|
|
|
23
22
|
var Style;
|
|
24
23
|
(function (Style) {
|
|
@@ -127,21 +126,104 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
|
|
|
127
126
|
StatusBar.setStyle({ style: defaultStyle });
|
|
128
127
|
};
|
|
129
128
|
|
|
129
|
+
const createSheetEnterAnimation = (opts) => {
|
|
130
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
|
|
131
|
+
/**
|
|
132
|
+
* If the backdropBreakpoint is undefined, then the backdrop
|
|
133
|
+
* should always fade in. If the backdropBreakpoint came before the
|
|
134
|
+
* current breakpoint, then the backdrop should be fading in.
|
|
135
|
+
*/
|
|
136
|
+
const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
|
|
137
|
+
let initialBackdrop = '0';
|
|
138
|
+
if (staticBackdropOpacity) {
|
|
139
|
+
initialBackdrop = 'calc(var(--backdrop-opacity)';
|
|
140
|
+
}
|
|
141
|
+
else if (shouldShowBackdrop) {
|
|
142
|
+
initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
|
|
143
|
+
}
|
|
144
|
+
const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
|
|
145
|
+
if (shouldShowBackdrop) {
|
|
146
|
+
backdropAnimation
|
|
147
|
+
.beforeStyles({
|
|
148
|
+
'pointer-events': 'none',
|
|
149
|
+
})
|
|
150
|
+
.afterClearStyles(['pointer-events']);
|
|
151
|
+
}
|
|
152
|
+
const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
|
|
153
|
+
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
154
|
+
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
155
|
+
]);
|
|
156
|
+
/**
|
|
157
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
158
|
+
*/
|
|
159
|
+
const contentAnimation = !expandToScroll
|
|
160
|
+
? createAnimation('contentAnimation').keyframes([
|
|
161
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
162
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
163
|
+
])
|
|
164
|
+
: undefined;
|
|
165
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
166
|
+
};
|
|
167
|
+
const createSheetLeaveAnimation = (opts) => {
|
|
168
|
+
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
169
|
+
/**
|
|
170
|
+
* Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
|
|
171
|
+
* is defined, so we need to account for that offset by figuring out
|
|
172
|
+
* what the current backdrop value should be.
|
|
173
|
+
*/
|
|
174
|
+
const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
|
|
175
|
+
const defaultBackdrop = [
|
|
176
|
+
{ offset: 0, opacity: backdropValue },
|
|
177
|
+
{ offset: 1, opacity: 0 },
|
|
178
|
+
];
|
|
179
|
+
const customBackdrop = [
|
|
180
|
+
{ offset: 0, opacity: backdropValue },
|
|
181
|
+
{ offset: backdropBreakpoint, opacity: 0 },
|
|
182
|
+
{ offset: 1, opacity: 0 },
|
|
183
|
+
];
|
|
184
|
+
const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
|
|
185
|
+
const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
|
|
186
|
+
{ offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
187
|
+
{ offset: 1, opacity: 1, transform: `translateY(100%)` },
|
|
188
|
+
]);
|
|
189
|
+
return { wrapperAnimation, backdropAnimation };
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
const createEnterAnimation$2 = () => {
|
|
193
|
+
const backdropAnimation = createAnimation()
|
|
194
|
+
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
195
|
+
.beforeStyles({
|
|
196
|
+
'pointer-events': 'none',
|
|
197
|
+
})
|
|
198
|
+
.afterClearStyles(['pointer-events']);
|
|
199
|
+
const wrapperAnimation = createAnimation().keyframes([
|
|
200
|
+
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
201
|
+
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
202
|
+
]);
|
|
203
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
204
|
+
};
|
|
130
205
|
/**
|
|
131
|
-
*
|
|
132
|
-
* do not interfere with scrolling, and never on content with a refresher.
|
|
133
|
-
*
|
|
134
|
-
* Note: We cannot solve the refresher case with gesture priority as the iOS
|
|
135
|
-
* native refresh gesture uses a scroll listener in addition to a gesture.
|
|
136
|
-
*
|
|
137
|
-
* Note: Do not use `getScrollElement` here because we need this to be a
|
|
138
|
-
* synchronous operation, and `getScrollElement` is asynchronous.
|
|
206
|
+
* Ionic Modal Enter Animation
|
|
139
207
|
*/
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
const
|
|
143
|
-
|
|
208
|
+
const ionicEnterAnimation = (baseEl, opts) => {
|
|
209
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
210
|
+
const root = getElementRoot(baseEl);
|
|
211
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$2();
|
|
212
|
+
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
213
|
+
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
214
|
+
// The content animation is only added if scrolling is enabled for
|
|
215
|
+
// all the breakpoints.
|
|
216
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
217
|
+
backdropAnimation.duration(300).easing('ease-out');
|
|
218
|
+
wrapperAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
|
|
219
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
|
|
220
|
+
const baseAnimation = createAnimation().addElement(baseEl).addAnimation([backdropAnimation, wrapperAnimation]);
|
|
221
|
+
if (contentAnimation) {
|
|
222
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
223
|
+
}
|
|
224
|
+
return baseAnimation;
|
|
144
225
|
};
|
|
226
|
+
|
|
145
227
|
const handleCanDismiss = async (el, animation) => {
|
|
146
228
|
/**
|
|
147
229
|
* If canDismiss is not a function
|
|
@@ -272,6 +354,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
272
354
|
let isOpen = false;
|
|
273
355
|
let canDismissBlocksGesture = false;
|
|
274
356
|
let contentEl = null;
|
|
357
|
+
let scrollEl = null;
|
|
275
358
|
const canDismissMaxStep = 0.2;
|
|
276
359
|
let initialScrollY = true;
|
|
277
360
|
let lastStep = 0;
|
|
@@ -294,6 +377,12 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
294
377
|
return true;
|
|
295
378
|
}
|
|
296
379
|
/**
|
|
380
|
+
* If we are swiping on the content,
|
|
381
|
+
* swiping should only be possible if
|
|
382
|
+
* the content is scrolled all the way
|
|
383
|
+
* to the top so that we do not interfere
|
|
384
|
+
* with scrolling.
|
|
385
|
+
*
|
|
297
386
|
* We cannot assume that the `ion-content`
|
|
298
387
|
* target will remain consistent between
|
|
299
388
|
* swipes. For example, when using
|
|
@@ -304,7 +393,29 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
304
393
|
*/
|
|
305
394
|
contentEl = findClosestIonContent(target);
|
|
306
395
|
if (contentEl) {
|
|
307
|
-
|
|
396
|
+
/**
|
|
397
|
+
* The card should never swipe to close
|
|
398
|
+
* on the content with a refresher.
|
|
399
|
+
* Note: We cannot solve this by making the
|
|
400
|
+
* swipeToClose gesture have a higher priority
|
|
401
|
+
* than the refresher gesture as the iOS native
|
|
402
|
+
* refresh gesture uses a scroll listener in
|
|
403
|
+
* addition to a gesture.
|
|
404
|
+
*
|
|
405
|
+
* Note: Do not use getScrollElement here
|
|
406
|
+
* because we need this to be a synchronous
|
|
407
|
+
* operation, and getScrollElement is
|
|
408
|
+
* asynchronous.
|
|
409
|
+
*/
|
|
410
|
+
if (isIonContent(contentEl)) {
|
|
411
|
+
const root = getElementRoot(contentEl);
|
|
412
|
+
scrollEl = root.querySelector('.inner-scroll');
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
scrollEl = contentEl;
|
|
416
|
+
}
|
|
417
|
+
const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
|
|
418
|
+
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
308
419
|
}
|
|
309
420
|
/**
|
|
310
421
|
* Card should be swipeable on all
|
|
@@ -546,63 +657,6 @@ const calculateProgress = (el, deltaY) => {
|
|
|
546
657
|
return Math.max(0, Math.min(1, roundedProgress));
|
|
547
658
|
};
|
|
548
659
|
|
|
549
|
-
const createSheetEnterAnimation = (opts) => {
|
|
550
|
-
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
551
|
-
/**
|
|
552
|
-
* If the backdropBreakpoint is undefined, then the backdrop
|
|
553
|
-
* should always fade in. If the backdropBreakpoint came before the
|
|
554
|
-
* current breakpoint, then the backdrop should be fading in.
|
|
555
|
-
*/
|
|
556
|
-
const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
|
|
557
|
-
const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';
|
|
558
|
-
const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
|
|
559
|
-
if (shouldShowBackdrop) {
|
|
560
|
-
backdropAnimation
|
|
561
|
-
.beforeStyles({
|
|
562
|
-
'pointer-events': 'none',
|
|
563
|
-
})
|
|
564
|
-
.afterClearStyles(['pointer-events']);
|
|
565
|
-
}
|
|
566
|
-
const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
|
|
567
|
-
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
568
|
-
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
569
|
-
]);
|
|
570
|
-
/**
|
|
571
|
-
* This allows the content to be scrollable at any breakpoint.
|
|
572
|
-
*/
|
|
573
|
-
const contentAnimation = !expandToScroll
|
|
574
|
-
? createAnimation('contentAnimation').keyframes([
|
|
575
|
-
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
576
|
-
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
577
|
-
])
|
|
578
|
-
: undefined;
|
|
579
|
-
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
580
|
-
};
|
|
581
|
-
const createSheetLeaveAnimation = (opts) => {
|
|
582
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
583
|
-
/**
|
|
584
|
-
* Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
|
|
585
|
-
* is defined, so we need to account for that offset by figuring out
|
|
586
|
-
* what the current backdrop value should be.
|
|
587
|
-
*/
|
|
588
|
-
const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
|
|
589
|
-
const defaultBackdrop = [
|
|
590
|
-
{ offset: 0, opacity: backdropValue },
|
|
591
|
-
{ offset: 1, opacity: 0 },
|
|
592
|
-
];
|
|
593
|
-
const customBackdrop = [
|
|
594
|
-
{ offset: 0, opacity: backdropValue },
|
|
595
|
-
{ offset: backdropBreakpoint, opacity: 0 },
|
|
596
|
-
{ offset: 1, opacity: 0 },
|
|
597
|
-
];
|
|
598
|
-
const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
|
|
599
|
-
const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
|
|
600
|
-
{ offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
601
|
-
{ offset: 1, opacity: 1, transform: `translateY(100%)` },
|
|
602
|
-
]);
|
|
603
|
-
return { wrapperAnimation, backdropAnimation };
|
|
604
|
-
};
|
|
605
|
-
|
|
606
660
|
const createEnterAnimation$1 = () => {
|
|
607
661
|
const backdropAnimation = createAnimation()
|
|
608
662
|
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
@@ -993,17 +1047,16 @@ const mdLeaveAnimation = (baseEl, opts) => {
|
|
|
993
1047
|
return baseAnimation;
|
|
994
1048
|
};
|
|
995
1049
|
|
|
996
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, onDragStart, onDragMove, onDragEnd) => {
|
|
997
|
-
var _a;
|
|
1050
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, usePhysicsBasedGesture, onDragStart, onDragMove, onDragEnd) => {
|
|
998
1051
|
// Defaults for the sheet swipe animation
|
|
999
1052
|
const defaultBackdrop = [
|
|
1000
1053
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
1001
|
-
{ offset: 1, opacity: 0.01 },
|
|
1054
|
+
{ offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0.01 },
|
|
1002
1055
|
];
|
|
1003
1056
|
const customBackdrop = [
|
|
1004
1057
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
1005
|
-
{ offset: 1 - backdropBreakpoint, opacity: 0 },
|
|
1006
|
-
{ offset: 1, opacity: 0 },
|
|
1058
|
+
{ offset: 1 - backdropBreakpoint, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
|
|
1059
|
+
{ offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
|
|
1007
1060
|
];
|
|
1008
1061
|
const SheetDefaults = {
|
|
1009
1062
|
WRAPPER_KEYFRAMES: [
|
|
@@ -1017,8 +1070,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1017
1070
|
],
|
|
1018
1071
|
};
|
|
1019
1072
|
const contentEl = baseEl.querySelector('ion-content');
|
|
1020
|
-
// Cache the initial value so the gesture restores it instead of forcing scrolling on.
|
|
1021
|
-
const initialContentScrollY = (_a = contentEl === null || contentEl === void 0 ? void 0 : contentEl.scrollY) !== null && _a !== void 0 ? _a : true;
|
|
1022
1073
|
const height = wrapperEl.clientHeight;
|
|
1023
1074
|
let currentBreakpoint = initialBreakpoint;
|
|
1024
1075
|
let offset = 0;
|
|
@@ -1179,6 +1230,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1179
1230
|
}
|
|
1180
1231
|
const canStart = (detail) => {
|
|
1181
1232
|
/**
|
|
1233
|
+
* If we are swiping on the content, swiping should only be possible if the content
|
|
1234
|
+
* is scrolled all the way to the top so that we do not interfere with scrolling.
|
|
1235
|
+
*
|
|
1182
1236
|
* We cannot assume that the `ion-content` target will remain consistent between swipes.
|
|
1183
1237
|
* For example, when using ion-nav within a modal it is possible to swipe, push a view,
|
|
1184
1238
|
* and then swipe again. The target content will not be the same between swipes.
|
|
@@ -1186,11 +1240,26 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1186
1240
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
1187
1241
|
currentBreakpoint = getCurrentBreakpoint();
|
|
1188
1242
|
/**
|
|
1189
|
-
*
|
|
1190
|
-
*
|
|
1243
|
+
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
1244
|
+
* to start if the content is not scrolled to the top.
|
|
1191
1245
|
*/
|
|
1192
|
-
if (
|
|
1193
|
-
|
|
1246
|
+
if (!expandToScroll && contentEl) {
|
|
1247
|
+
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
1248
|
+
return scrollEl.scrollTop === 0;
|
|
1249
|
+
}
|
|
1250
|
+
if (currentBreakpoint === 1 && contentEl) {
|
|
1251
|
+
/**
|
|
1252
|
+
* The modal should never swipe to close on the content with a refresher.
|
|
1253
|
+
* Note 1: We cannot solve this by making this gesture have a higher priority than
|
|
1254
|
+
* the refresher gesture as the iOS native refresh gesture uses a scroll listener in
|
|
1255
|
+
* addition to a gesture.
|
|
1256
|
+
*
|
|
1257
|
+
* Note 2: Do not use getScrollElement here because we need this to be a synchronous
|
|
1258
|
+
* operation, and getScrollElement is asynchronous.
|
|
1259
|
+
*/
|
|
1260
|
+
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
1261
|
+
const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
|
|
1262
|
+
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
1194
1263
|
}
|
|
1195
1264
|
return true;
|
|
1196
1265
|
};
|
|
@@ -1317,7 +1386,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1317
1386
|
: step;
|
|
1318
1387
|
offset = clamp(0.0001, processedStep, maxStep);
|
|
1319
1388
|
animation.progressStep(offset);
|
|
1320
|
-
const snapBreakpoint =
|
|
1389
|
+
const snapBreakpoint = usePhysicsBasedGesture
|
|
1390
|
+
? calculateVelocitySnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
|
|
1391
|
+
: calculatePositionSnapBreakpoint(detail.deltaY);
|
|
1321
1392
|
const eventDetail = {
|
|
1322
1393
|
currentY: detail.currentY,
|
|
1323
1394
|
deltaY: detail.deltaY,
|
|
@@ -1328,7 +1399,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1328
1399
|
onDragMove(eventDetail);
|
|
1329
1400
|
};
|
|
1330
1401
|
const onEnd = (detail) => {
|
|
1331
|
-
const snapBreakpoint =
|
|
1402
|
+
const snapBreakpoint = usePhysicsBasedGesture
|
|
1403
|
+
? calculateVelocitySnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
|
|
1404
|
+
: calculatePositionSnapBreakpoint(detail.deltaY);
|
|
1332
1405
|
const eventDetail = {
|
|
1333
1406
|
currentY: detail.currentY,
|
|
1334
1407
|
deltaY: detail.deltaY,
|
|
@@ -1375,6 +1448,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1375
1448
|
*/
|
|
1376
1449
|
const shouldPreventDismiss = canDismiss && breakpoint === 0;
|
|
1377
1450
|
const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
|
|
1451
|
+
/**
|
|
1452
|
+
* Detect snap-back behavior: when the snap target is the same as the current breakpoint,
|
|
1453
|
+
* the user released before crossing the threshold to a new breakpoint.
|
|
1454
|
+
* Apply different timing and easing for snap-back vs. snap-to-new.
|
|
1455
|
+
*/
|
|
1456
|
+
const isSnapBack = snapToBreakpoint === currentBreakpoint;
|
|
1457
|
+
const duration = usePhysicsBasedGesture ? (isSnapBack ? 300 : 400) : 500;
|
|
1458
|
+
const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
|
|
1378
1459
|
const shouldRemainOpen = snapToBreakpoint !== 0;
|
|
1379
1460
|
currentBreakpoint = 0;
|
|
1380
1461
|
/**
|
|
@@ -1389,11 +1470,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1389
1470
|
backdropAnimation.keyframes([
|
|
1390
1471
|
{
|
|
1391
1472
|
offset: 0,
|
|
1392
|
-
opacity:
|
|
1473
|
+
opacity: usePhysicsBasedGesture
|
|
1474
|
+
? 'var(--backdrop-opacity)'
|
|
1475
|
+
: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
|
|
1393
1476
|
},
|
|
1394
1477
|
{
|
|
1395
1478
|
offset: 1,
|
|
1396
|
-
opacity:
|
|
1479
|
+
opacity: usePhysicsBasedGesture
|
|
1480
|
+
? 'var(--backdrop-opacity)'
|
|
1481
|
+
: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
1397
1482
|
},
|
|
1398
1483
|
]);
|
|
1399
1484
|
if (contentAnimation) {
|
|
@@ -1411,6 +1496,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1411
1496
|
}
|
|
1412
1497
|
animation.progressStep(0);
|
|
1413
1498
|
}
|
|
1499
|
+
/**
|
|
1500
|
+
* Apply the appropriate easing curve for this snap behavior.
|
|
1501
|
+
*/
|
|
1502
|
+
if (usePhysicsBasedGesture) {
|
|
1503
|
+
animation.easing(easing);
|
|
1504
|
+
}
|
|
1414
1505
|
/**
|
|
1415
1506
|
* Gesture should remain disabled until the
|
|
1416
1507
|
* snapping animation completes.
|
|
@@ -1423,14 +1514,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1423
1514
|
onDismiss();
|
|
1424
1515
|
}
|
|
1425
1516
|
/**
|
|
1426
|
-
*
|
|
1427
|
-
*
|
|
1517
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
1518
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
1428
1519
|
* be a ~500ms delay while the modal animation completes, causing a
|
|
1429
1520
|
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
1430
1521
|
* released, so we align with that behavior.
|
|
1431
1522
|
*/
|
|
1432
1523
|
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
1433
|
-
contentEl.scrollY =
|
|
1524
|
+
contentEl.scrollY = true;
|
|
1434
1525
|
}
|
|
1435
1526
|
/**
|
|
1436
1527
|
* If expandToScroll is disabled and we're animating
|
|
@@ -1500,7 +1591,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1500
1591
|
* be added every time onEnd runs.
|
|
1501
1592
|
*/
|
|
1502
1593
|
}, { oneTimeCallback: true })
|
|
1503
|
-
.progressEnd(1, 0, animated ?
|
|
1594
|
+
.progressEnd(1, 0, animated ? duration : 0);
|
|
1504
1595
|
});
|
|
1505
1596
|
};
|
|
1506
1597
|
/**
|
|
@@ -1511,7 +1602,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1511
1602
|
* @param deltaY The change in Y position since the gesture started.
|
|
1512
1603
|
* @returns The snap breakpoint value.
|
|
1513
1604
|
*/
|
|
1514
|
-
const
|
|
1605
|
+
const calculatePositionSnapBreakpoint = (deltaY) => {
|
|
1515
1606
|
/**
|
|
1516
1607
|
* Calculates the real-time vertical position of the modal.
|
|
1517
1608
|
* We combine the wrapper's current bounding box position with the
|
|
@@ -1531,6 +1622,50 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1531
1622
|
});
|
|
1532
1623
|
return snapBreakpoint;
|
|
1533
1624
|
};
|
|
1625
|
+
/**
|
|
1626
|
+
* Calculates the snap breakpoint using velocity-based logic.
|
|
1627
|
+
* This provides a more intuitive and responsive sheet behavior for the Ionic theme.
|
|
1628
|
+
*
|
|
1629
|
+
* Rules:
|
|
1630
|
+
* 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
|
|
1631
|
+
* 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
|
|
1632
|
+
* 3. If dragged 40% below current snap point without fast upward flick, dismisses
|
|
1633
|
+
* 4. Otherwise, falls back to position-based snap (closest breakpoint)
|
|
1634
|
+
*
|
|
1635
|
+
* @param deltaY The change in Y position since gesture started
|
|
1636
|
+
* @param velocityY The velocity in pixels per millisecond
|
|
1637
|
+
* @param currentY The current Y position of the gesture
|
|
1638
|
+
* @returns The snap breakpoint value
|
|
1639
|
+
*/
|
|
1640
|
+
const calculateVelocitySnapBreakpoint = (deltaY, velocityY, currentY) => {
|
|
1641
|
+
// Convert velocity from px/ms to px/s for easier threshold comparison
|
|
1642
|
+
const velocityYPerSecond = velocityY * 1000;
|
|
1643
|
+
// Calculate current progress (0 = fully closed, 1 = fully expanded)
|
|
1644
|
+
const currentProgress = calculateProgress(currentY);
|
|
1645
|
+
// Rule 1: Fast downward flick always dismisses
|
|
1646
|
+
if (velocityYPerSecond > 500) {
|
|
1647
|
+
return minBreakpoint;
|
|
1648
|
+
}
|
|
1649
|
+
// Rule 2: Fast upward flick moves to next breakpoint above
|
|
1650
|
+
if (velocityYPerSecond < -400) {
|
|
1651
|
+
// Find next breakpoint above current position
|
|
1652
|
+
const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
|
|
1653
|
+
// If no breakpoint above, stay at max breakpoint
|
|
1654
|
+
return nextBreakpoint !== null && nextBreakpoint !== void 0 ? nextBreakpoint : maxBreakpoint;
|
|
1655
|
+
}
|
|
1656
|
+
// Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
|
|
1657
|
+
if (minBreakpoint === 0 && currentBreakpoint > 0) {
|
|
1658
|
+
// Calculate how far we've moved below the current snap point
|
|
1659
|
+
const distanceBelowSnap = currentBreakpoint - currentProgress;
|
|
1660
|
+
const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
|
|
1661
|
+
// If dragged more than 40% below and not flicking up, dismiss
|
|
1662
|
+
if (percentageBelowSnap > 0.4 && velocityYPerSecond <= 400) {
|
|
1663
|
+
return 0;
|
|
1664
|
+
}
|
|
1665
|
+
}
|
|
1666
|
+
// Rule 4: Fallback to position-based snap (existing logic)
|
|
1667
|
+
return calculatePositionSnapBreakpoint(deltaY);
|
|
1668
|
+
};
|
|
1534
1669
|
/**
|
|
1535
1670
|
* Calculates the progress of the swipe gesture.
|
|
1536
1671
|
*
|
|
@@ -1612,20 +1747,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1612
1747
|
onMove,
|
|
1613
1748
|
onEnd,
|
|
1614
1749
|
});
|
|
1615
|
-
/**
|
|
1616
|
-
* Puts the content back the way the app declared it. A sheet can dismiss
|
|
1617
|
-
* without going through moveSheetToBreakpoint, and an inline modal reuses
|
|
1618
|
-
* the same element on the next present.
|
|
1619
|
-
*/
|
|
1620
|
-
const resetContentScroll = () => {
|
|
1621
|
-
if (contentEl) {
|
|
1622
|
-
contentEl.scrollY = initialContentScrollY;
|
|
1623
|
-
}
|
|
1624
|
-
};
|
|
1625
1750
|
return {
|
|
1626
1751
|
gesture,
|
|
1627
1752
|
moveSheetToBreakpoint,
|
|
1628
|
-
resetContentScroll,
|
|
1629
1753
|
};
|
|
1630
1754
|
};
|
|
1631
1755
|
|
|
@@ -1695,41 +1819,6 @@ const getRootSafeAreaTop = () => {
|
|
|
1695
1819
|
}
|
|
1696
1820
|
return value;
|
|
1697
1821
|
};
|
|
1698
|
-
/**
|
|
1699
|
-
* Calls back when the resolved root `--ion-safe-area-top` changes, which no
|
|
1700
|
-
* event and no window resize covers. The probe's height tracks the variable, so
|
|
1701
|
-
* a change to it becomes a size change the observer can see.
|
|
1702
|
-
*/
|
|
1703
|
-
const onRootSafeAreaTopChange = (callback) => {
|
|
1704
|
-
const doc = win === null || win === void 0 ? void 0 : win.document;
|
|
1705
|
-
if (!(doc === null || doc === void 0 ? void 0 : doc.body) || typeof ResizeObserver === 'undefined') {
|
|
1706
|
-
return () => undefined;
|
|
1707
|
-
}
|
|
1708
|
-
const probe = doc.createElement('div');
|
|
1709
|
-
probe.style.cssText =
|
|
1710
|
-
'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;' +
|
|
1711
|
-
'height:var(--ion-safe-area-top,0px);';
|
|
1712
|
-
doc.body.appendChild(probe);
|
|
1713
|
-
/**
|
|
1714
|
-
* Seeded with the value the caller has already applied, so a change that
|
|
1715
|
-
* lands before the observer's first delivery still gets reported. Comparing
|
|
1716
|
-
* against an unset value instead would consume that first delivery and treat
|
|
1717
|
-
* the new inset as the baseline.
|
|
1718
|
-
*/
|
|
1719
|
-
let lastHeight = getRootSafeAreaTop();
|
|
1720
|
-
const observer = new ResizeObserver((entries) => {
|
|
1721
|
-
const { height } = entries[0].contentRect;
|
|
1722
|
-
if (height !== lastHeight) {
|
|
1723
|
-
lastHeight = height;
|
|
1724
|
-
callback(height);
|
|
1725
|
-
}
|
|
1726
|
-
});
|
|
1727
|
-
observer.observe(probe);
|
|
1728
|
-
return () => {
|
|
1729
|
-
observer.disconnect();
|
|
1730
|
-
probe.remove();
|
|
1731
|
-
};
|
|
1732
|
-
};
|
|
1733
1822
|
/**
|
|
1734
1823
|
* True when the modal host declares BOTH a non-fullscreen `--width` AND a
|
|
1735
1824
|
* non-fullscreen `--height` (i.e. a centered-dialog-like modal that doesn't
|
|
@@ -1850,9 +1939,11 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
1850
1939
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
1851
1940
|
};
|
|
1852
1941
|
|
|
1853
|
-
const
|
|
1942
|
+
const modalIonicCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--box-shadow:var(--token-elevation-3, 0px 2px 7px 0px rgba(0, 0, 0, 0.05), 0px 6px 32px 0px rgba(0, 0, 0, 0.16));--backdrop-opacity:0.7;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424))}:host(.modal-round){--border-radius:var(--token-border-radius-1000, var(--token-scale-1000, 40px))}:host(.modal-soft){--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.modal-rectangular){--border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}:host(.select-modal.modal-default){--max-height:45%;--max-width:calc(100% - (var(--token-space-400, var(--token-scale-400, 16px)) * 2));--min-height:340px}.modal-handle{right:0px;left:0px;top:var(--token-space-300, var(--token-scale-300, 12px));border-radius:var(--token-border-radius-100, var(--token-scale-100, 4px));width:var(--token-scale-1100, 44px);height:var(--token-scale-100, 4px);background-color:var(--token-primitives-neutral-300, #e0e0e0)}.modal-handle::before{-webkit-padding-start:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-padding-end:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-end:var(--token-space-100, var(--token-scale-100, 4px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + var(--token-scale-250, 10px)))}`;
|
|
1854
1943
|
|
|
1855
|
-
const
|
|
1944
|
+
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--background:var(--ion-background-color, #fff);--border-radius:0;--backdrop-opacity:0;color:var(--ion-text-color, #000)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{right:0px;left:0px;top:5px;border-radius:8px;width:36px;height:5px;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be))}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;width:36px;height:5px}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
|
|
1945
|
+
|
|
1946
|
+
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--background:var(--ion-background-color, #fff);--border-radius:0;--backdrop-opacity:0;color:var(--ion-text-color, #000)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{right:0px;left:0px;top:5px;border-radius:8px;width:36px;height:5px;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be))}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;width:36px;height:5px}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
|
|
1856
1947
|
|
|
1857
1948
|
const Modal = class {
|
|
1858
1949
|
constructor(hostRef) {
|
|
@@ -2292,11 +2383,12 @@ const Modal = class {
|
|
|
2292
2383
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
2293
2384
|
setCardStatusBarDark();
|
|
2294
2385
|
}
|
|
2295
|
-
await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
|
|
2386
|
+
await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
|
|
2296
2387
|
presentingEl: presentingElement,
|
|
2297
2388
|
currentBreakpoint: this.initialBreakpoint,
|
|
2298
2389
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
2299
2390
|
expandToScroll: this.expandToScroll,
|
|
2391
|
+
staticBackdropOpacity: getIonTheme(this) === 'ionic',
|
|
2300
2392
|
});
|
|
2301
2393
|
// Update safe-area based on actual position after animation
|
|
2302
2394
|
this.updateSafeAreaOverrides();
|
|
@@ -2379,17 +2471,17 @@ const Modal = class {
|
|
|
2379
2471
|
currentBreakpoint: initialBreakpoint,
|
|
2380
2472
|
backdropBreakpoint,
|
|
2381
2473
|
expandToScroll: this.expandToScroll,
|
|
2474
|
+
staticBackdropOpacity: getIonTheme(this) === 'ionic',
|
|
2382
2475
|
}));
|
|
2383
2476
|
ani.progressStart(true, 1);
|
|
2384
|
-
const { gesture, moveSheetToBreakpoint
|
|
2477
|
+
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
2385
2478
|
if (this.currentBreakpoint !== breakpoint) {
|
|
2386
2479
|
this.currentBreakpoint = breakpoint;
|
|
2387
2480
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
2388
2481
|
}
|
|
2389
|
-
}, () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
|
|
2482
|
+
}, getIonTheme(this) === 'ionic', () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
|
|
2390
2483
|
this.gesture = gesture;
|
|
2391
2484
|
this.moveSheetToBreakpoint = moveSheetToBreakpoint;
|
|
2392
|
-
this.resetSheetContentScroll = resetContentScroll;
|
|
2393
2485
|
this.gesture.enable(true);
|
|
2394
2486
|
/**
|
|
2395
2487
|
* When backdrop interaction is allowed, nested router outlets from child routes
|
|
@@ -2521,7 +2613,7 @@ const Modal = class {
|
|
|
2521
2613
|
* For example, `cancel` or `backdrop`.
|
|
2522
2614
|
*/
|
|
2523
2615
|
async dismiss(data, role) {
|
|
2524
|
-
var _a
|
|
2616
|
+
var _a;
|
|
2525
2617
|
if (this.gestureAnimationDismissing && role !== GESTURE) {
|
|
2526
2618
|
return false;
|
|
2527
2619
|
}
|
|
@@ -2580,13 +2672,6 @@ const Modal = class {
|
|
|
2580
2672
|
if (this.gesture) {
|
|
2581
2673
|
this.gesture.destroy();
|
|
2582
2674
|
}
|
|
2583
|
-
/**
|
|
2584
|
-
* The sheet gesture turns content scrolling off while the sheet sits below
|
|
2585
|
-
* the top breakpoint. Inline modals reuse the same content on the next
|
|
2586
|
-
* present, so hand it back before the gesture goes away.
|
|
2587
|
-
*/
|
|
2588
|
-
(_b = this.resetSheetContentScroll) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
2589
|
-
this.resetSheetContentScroll = undefined;
|
|
2590
2675
|
this.cleanupViewTransitionListener();
|
|
2591
2676
|
this.cleanupParentRemovalObserver();
|
|
2592
2677
|
this.cleanupSafeAreaOverrides();
|
|
@@ -2666,6 +2751,18 @@ const Modal = class {
|
|
|
2666
2751
|
await this.setCurrentBreakpoint(nextBreakpoint);
|
|
2667
2752
|
return true;
|
|
2668
2753
|
}
|
|
2754
|
+
getShape() {
|
|
2755
|
+
const theme = getIonTheme(this);
|
|
2756
|
+
const { shape } = this;
|
|
2757
|
+
// TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
|
|
2758
|
+
if (theme !== 'ionic') {
|
|
2759
|
+
return undefined;
|
|
2760
|
+
}
|
|
2761
|
+
if (shape === undefined) {
|
|
2762
|
+
return 'round';
|
|
2763
|
+
}
|
|
2764
|
+
return shape;
|
|
2765
|
+
}
|
|
2669
2766
|
initViewTransitionListener() {
|
|
2670
2767
|
// Only enable for iOS card modals when no custom animations are provided
|
|
2671
2768
|
if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
|
|
@@ -2882,18 +2979,16 @@ const Modal = class {
|
|
|
2882
2979
|
// Set the internal offset property with the resolved root safe-area-top value
|
|
2883
2980
|
if (context.isSheetModal) {
|
|
2884
2981
|
this.updateSheetOffsetTop();
|
|
2885
|
-
this.unsubscribeRootSafeAreaTop = onRootSafeAreaTopChange((safeAreaTop) => this.updateSheetOffsetTop(safeAreaTop));
|
|
2886
2982
|
}
|
|
2887
2983
|
}
|
|
2888
2984
|
/**
|
|
2889
|
-
*
|
|
2890
|
-
*
|
|
2891
|
-
* Called on present
|
|
2892
|
-
* and whenever the root safe-area value itself changes.
|
|
2985
|
+
* Resolves the current root --ion-safe-area-top value and sets the
|
|
2986
|
+
* internal --ion-modal-offset-top property on the host element.
|
|
2987
|
+
* Called on present and on resize (e.g., device rotation changes safe-area).
|
|
2893
2988
|
*/
|
|
2894
|
-
updateSheetOffsetTop(
|
|
2895
|
-
const
|
|
2896
|
-
this.el.style.setProperty('--ion-modal-offset-top', `${
|
|
2989
|
+
updateSheetOffsetTop() {
|
|
2990
|
+
const safeAreaTop = getRootSafeAreaTop();
|
|
2991
|
+
this.el.style.setProperty('--ion-modal-offset-top', `${safeAreaTop}px`);
|
|
2897
2992
|
}
|
|
2898
2993
|
/**
|
|
2899
2994
|
* Updates safe-area overrides during dynamic state changes.
|
|
@@ -2992,10 +3087,7 @@ const Modal = class {
|
|
|
2992
3087
|
* Clears all safe-area overrides and padding.
|
|
2993
3088
|
*/
|
|
2994
3089
|
cleanupSafeAreaOverrides() {
|
|
2995
|
-
var _a;
|
|
2996
3090
|
clearSafeAreaOverrides(this.el);
|
|
2997
|
-
(_a = this.unsubscribeRootSafeAreaTop) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
2998
|
-
this.unsubscribeRootSafeAreaTop = undefined;
|
|
2999
3091
|
// Remove internal sheet offset property
|
|
3000
3092
|
this.el.style.removeProperty('--ion-modal-offset-top');
|
|
3001
3093
|
const { contentEl } = this.findContentAndFooter();
|
|
@@ -3004,15 +3096,16 @@ const Modal = class {
|
|
|
3004
3096
|
render() {
|
|
3005
3097
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
3006
3098
|
const showHandle = handle !== false && isSheetModal;
|
|
3007
|
-
const
|
|
3008
|
-
const isCardModal = presentingElement !== undefined &&
|
|
3099
|
+
const theme = getIonTheme(this);
|
|
3100
|
+
const isCardModal = presentingElement !== undefined && theme === 'ios';
|
|
3009
3101
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
3102
|
+
const shape = this.getShape();
|
|
3010
3103
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
3011
|
-
return (h(Host, Object.assign({ key: '
|
|
3104
|
+
return (h(Host, Object.assign({ key: 'aa0c8c6926534d17df0b76ba0c3bad143f22f577', "no-router": true,
|
|
3012
3105
|
// Allow the modal to be navigable when the handle is focusable
|
|
3013
3106
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
3014
3107
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
3015
|
-
}, class: Object.assign({ [
|
|
3108
|
+
}, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: '9d9421370a86dbe4bb4ff27681f22bea168d7297', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && h("div", { key: '9a4e349ed6234bf18c07995fcd97dd0e1d65a2bd', class: "modal-shadow" }), h("div", Object.assign({ key: '3649cb4a4b63f4335f607b7fe7b6048a6742c9c4',
|
|
3016
3109
|
/*
|
|
3017
3110
|
role and aria-modal must be used on the
|
|
3018
3111
|
same element. They must also be set inside the
|
|
@@ -3025,9 +3118,9 @@ const Modal = class {
|
|
|
3025
3118
|
without the tabindex focus() would be a no-op and screen readers
|
|
3026
3119
|
may not properly announce the dialog and its content when it opens.
|
|
3027
3120
|
*/
|
|
3028
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
3121
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e12aa8cdea0657254dec4534a52d79bd00fa7351', class: "modal-handle",
|
|
3029
3122
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
3030
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '
|
|
3123
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", "data-focus-order": "1", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '744f526d2a1111a936a517dfad4ae0b2551cf834', onSlotchange: this.onSlotChange }))));
|
|
3031
3124
|
}
|
|
3032
3125
|
get el() { return getElement(this); }
|
|
3033
3126
|
static get watchers() { return {
|
|
@@ -3049,6 +3142,7 @@ const LIFECYCLE_MAP = {
|
|
|
3049
3142
|
ionModalDidDismiss: 'ionViewDidLeave',
|
|
3050
3143
|
};
|
|
3051
3144
|
Modal.style = {
|
|
3145
|
+
ionic: modalIonicCss(),
|
|
3052
3146
|
ios: modalIosCss(),
|
|
3053
3147
|
md: modalMdCss()
|
|
3054
3148
|
};
|