@ionic/core 9.0.10 → 9.0.11-dev.11793705116.185a3203
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.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-0rXxxCTt.js +4 -0
- package/components/p-3Qs1sQxU.js +4 -0
- package/components/p-3SVb97od.js +4 -0
- package/components/p-7-zF1amS.js +4 -0
- package/components/p-AgF3xGwz.js +4 -0
- package/components/{p-ChkSQqfP.js → p-B8TMb1l1.js} +1 -1
- package/{dist/ionic/p-BO10QT9r.js → components/p-BCQSEpww.js} +1 -1
- package/components/p-BCYVFy50.js +4 -0
- package/components/p-BHiggB_l.js +4 -0
- package/components/p-BNBa8_Ls.js +4 -0
- package/components/p-BNV7BMZo.js +4 -0
- package/components/p-BUF_V-Kg.js +4 -0
- package/components/p-BYk20Mf5.js +4 -0
- package/components/p-B_o50gvn.js +4 -0
- package/components/p-BfDzKnZ-.js +4 -0
- package/{dist/ionic/p-BWKtcudz.js → components/p-BmfO2-NE.js} +1 -1
- package/components/{p-BWbz71uB.js → p-BmnPbSf3.js} +1 -1
- package/components/p-ByE0slik.js +4 -0
- package/components/p-C0H1LYQ5.js +4 -0
- package/components/p-C7BPrXxF.js +4 -0
- package/components/p-C93i7QCU.js +4 -0
- package/components/p-C9qQ2zBV.js +4 -0
- package/components/p-CAekGbOf.js +4 -0
- package/components/p-CE7N7-7s.js +4 -0
- package/components/p-CL3vSQL7.js +4 -0
- package/components/p-CODBQrPj.js +4 -0
- package/components/{p-Dbi3KqKm.js → p-CSSj6cqb.js} +1 -1
- package/components/{p-ChsJlFCQ.js → p-CXzJ234J.js} +1 -1
- package/components/p-CehdCO1m.js +4 -0
- package/components/{p-CwEis84J.js → p-CiEBXUnh.js} +1 -1
- package/components/p-CvxND1-3.js +4 -0
- package/components/p-CyvtM0H1.js +4 -0
- package/components/p-CzDkZh7h.js +4 -0
- package/components/p-DEh2reav.js +4 -0
- package/components/p-DFBWAYvo.js +4 -0
- package/components/p-DFjX2uxL.js +4 -0
- package/components/p-DLXAGW46.js +4 -0
- package/components/p-DQwGbYN_.js +4 -0
- package/components/p-DRpeTf7R.js +4 -0
- package/components/p-DbKRl9BQ.js +4 -0
- package/components/{p-07wRJfkt.js → p-Dce65ayP.js} +1 -1
- package/components/p-DdOVnjsY.js +4 -0
- package/components/p-DibGn4gb.js +4 -0
- package/components/p-DktrWeJE.js +4 -0
- package/components/p-DmdTkb5k.js +4 -0
- package/components/p-DmhWSY74.js +4 -0
- package/components/p-DtZimz8H.js +4 -0
- package/components/p-ET0FZop5.js +4 -0
- package/components/p-LoXpKVmq.js +4 -0
- package/components/p-NZGZhPF5.js +4 -0
- package/components/p-NcQUGze-.js +4 -0
- package/components/p-PFwuhbqg.js +4 -0
- package/components/{p-CqvARtmt.js → p-YAWKbhjV.js} +1 -1
- package/components/{p-DHo45oj7.js → p-cm7z1a2E.js} +1 -1
- package/components/p-fU4OdAZ9.js +4 -0
- package/components/{p-CCFj0kgH.js → p-i08Rz__6.js} +1 -1
- package/components/p-iNIvlAGo.js +4 -0
- package/{dist/ionic/p-CJmyfI8x.js → components/p-o89R3aqe.js} +1 -1
- package/components/p-qbig9BW8.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-UiXhXV49.js → animation-zKIdNEmG.js} +3 -3
- package/dist/cjs/{app-globals-BoFCZq0K.js → app-globals-BDrxn8eR.js} +1 -1
- package/dist/cjs/{attribute-controller-0-lwbVEj.js → attribute-controller-D7O2snOZ.js} +3 -2
- package/dist/cjs/{button-active-DzN1aPt-.js → button-active-CY7cZvH5.js} +2 -2
- package/dist/cjs/{capacitor-BTjfXFlK.js → capacitor-DmA66EwP.js} +3 -3
- package/dist/cjs/clear-button-press-controller-C6PTS3jC.js +45 -0
- package/dist/cjs/focus-visible-DGPRKkcx.js +151 -0
- package/dist/cjs/{format-CVjpvAl1.js → format-C6r4Asi4.js} +1 -1
- package/dist/cjs/{framework-delegate-hNMKEiQC.js → framework-delegate-CAdDEnFS.js} +4 -2
- package/dist/cjs/{haptic-BD5qPgy8.js → haptic-Ch-X4gRx.js} +1 -1
- package/dist/cjs/{helpers-BrETKUUX.js → helpers-DHNLF4fD.js} +88 -10
- package/dist/cjs/{index-B4ONUQRp.js → index-B3s1jjBU.js} +1 -1
- package/dist/cjs/{index-BTc0Jnhx.js → index-C3pmpKlo.js} +17 -15
- package/dist/cjs/{index-bwclzjks.js → index-C6QFfpm5.js} +9 -7
- package/dist/cjs/{index-BiQyIvoc.js → index-CB1PuDlX.js} +55 -5
- package/dist/cjs/{index-wOmugbdg.js → index-CxDnX7hd.js} +2 -0
- package/dist/cjs/{index-DMz2Eyis.js → index-DhGCo_n8.js} +2 -2
- package/dist/cjs/index-DkNv4J_i.js +10 -0
- package/dist/cjs/{index-DNBYnlrc.js → index-lD5wTj_b.js} +4 -4
- package/dist/cjs/index.cjs.js +20 -18
- package/dist/cjs/{input-shims-CRmdShL9.js → input-shims-CjkWx7ae.js} +18 -16
- package/dist/cjs/{input.utils-Becpo0ax.js → input.utils-CD4DNiim.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +57 -29
- package/dist/cjs/ion-action-sheet.cjs.entry.js +42 -37
- package/dist/cjs/ion-alert.cjs.entry.js +50 -45
- package/dist/cjs/ion-app_8.cjs.entry.js +457 -195
- package/dist/cjs/ion-avatar_3.cjs.entry.js +124 -13
- package/dist/cjs/ion-back-button.cjs.entry.js +31 -23
- package/dist/cjs/ion-backdrop.cjs.entry.js +11 -7
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +42 -18
- package/dist/cjs/ion-button_2.cjs.entry.js +61 -23
- package/dist/cjs/ion-card_5.cjs.entry.js +57 -34
- package/dist/cjs/ion-checkbox.cjs.entry.js +43 -17
- package/dist/cjs/ion-chip.cjs.entry.js +51 -9
- package/dist/cjs/ion-col_3.cjs.entry.js +56 -63
- package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -9
- package/dist/cjs/ion-datetime.cjs.entry.js +75 -33
- package/dist/cjs/ion-divider.cjs.entry.js +52 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +40 -28
- package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
- package/dist/cjs/ion-gallery.cjs.entry.js +608 -0
- package/dist/cjs/ion-img.cjs.entry.js +9 -4
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +91 -16
- package/dist/cjs/ion-input-otp.cjs.entry.js +75 -10
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +42 -14
- package/dist/cjs/ion-input.cjs.entry.js +147 -38
- package/dist/cjs/ion-item-option_3.cjs.entry.js +466 -52
- package/dist/cjs/ion-item_8.cjs.entry.js +118 -51
- package/dist/cjs/ion-loading.cjs.entry.js +33 -28
- package/dist/cjs/ion-menu_3.cjs.entry.js +54 -36
- package/dist/cjs/ion-modal.cjs.entry.js +304 -155
- package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +13 -8
- package/dist/cjs/ion-picker-column.cjs.entry.js +17 -15
- package/dist/cjs/ion-picker.cjs.entry.js +11 -6
- package/dist/cjs/ion-popover.cjs.entry.js +33 -28
- package/dist/cjs/ion-progress-bar.cjs.entry.js +28 -9
- package/dist/cjs/ion-radio_2.cjs.entry.js +37 -18
- package/dist/cjs/ion-range.cjs.entry.js +21 -13
- package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -20
- package/dist/cjs/ion-reorder_2.cjs.entry.js +31 -13
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +16 -7
- package/dist/cjs/ion-route_4.cjs.entry.js +12 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +118 -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 +24 -16
- package/dist/cjs/ion-select-modal.cjs.entry.js +54 -25
- package/dist/cjs/ion-select_3.cjs.entry.js +203 -81
- package/dist/cjs/ion-spinner.cjs.entry.js +31 -8
- package/dist/cjs/ion-split-pane.cjs.entry.js +14 -9
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -27
- package/dist/cjs/ion-tab_2.cjs.entry.js +9 -7
- package/dist/cjs/ion-text.cjs.entry.js +8 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +178 -41
- package/dist/cjs/ion-toast.cjs.entry.js +86 -57
- package/dist/cjs/ion-toggle.cjs.entry.js +67 -25
- package/dist/cjs/ionic-global-CZX42KL4.js +551 -0
- package/dist/cjs/ionic.cjs.js +5 -4
- package/dist/cjs/{ios.transition-CN092Fh6.js → ios.transition-BjOYqzH0.js} +7 -4
- package/dist/cjs/{item-multiple-inputs-C-hz7xrh.js → item-multiple-inputs-D0lzjl68.js} +1 -1
- package/dist/cjs/{keyboard-4OBzkjOG.js → keyboard-Cix5TVkD.js} +3 -5
- package/dist/cjs/{keyboard-BMpscicm.js → keyboard-cHxZlTyz.js} +1 -1
- package/dist/cjs/loader.cjs.js +5 -4
- package/dist/cjs/{md.transition-B6961Ny9.js → md.transition-C4i7l6ui.js} +6 -4
- package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
- package/dist/cjs/{overlays-BbVQG3UT.js → overlays-DziOxcCT.js} +314 -176
- package/dist/cjs/scroll-hide-controller-BSVBCkbw.js +345 -0
- package/dist/cjs/{select-option-render-CzyhrkOu.js → select-option-render-X_iZ-xeh.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-CRa_cKOh.js → slot-mutation-controller-BS-L1szN.js} +100 -13
- package/dist/cjs/{status-tap-hRIvObiJ.js → status-tap-D5yiKwdj.js} +5 -3
- package/dist/cjs/{swipe-back-C-aigThB.js → swipe-back-xM_5R5s-.js} +4 -2
- package/dist/cjs/{theme-Bw0rpaNN.js → theme-Cy4joHPt.js} +25 -1
- package/dist/cjs/validity-CoPMWggj.js +51 -0
- package/dist/collection/collection-manifest.json +8 -0
- package/dist/collection/components/accordion/accordion.ionic.css +199 -0
- package/dist/collection/components/accordion/accordion.ios.css +73 -58
- package/dist/collection/components/accordion/accordion.js +36 -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 +490 -0
- package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
- package/dist/collection/components/action-sheet/action-sheet.js +16 -13
- package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
- package/dist/collection/components/alert/alert.ionic.css +779 -0
- package/dist/collection/components/alert/alert.ios.css +247 -54
- package/dist/collection/components/alert/alert.js +22 -19
- package/dist/collection/components/alert/alert.md.css +243 -56
- package/dist/collection/components/app/app.js +15 -83
- package/dist/collection/components/avatar/avatar.ionic.css +379 -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 +26 -20
- 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 +269 -0
- package/dist/collection/components/badge/badge.ios.css +137 -12
- package/dist/collection/components/badge/badge.js +143 -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 +31 -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 +640 -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 +88 -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 +143 -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 +535 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +244 -115
- package/dist/collection/components/checkbox/checkbox.js +80 -15
- package/dist/collection/components/checkbox/checkbox.md.css +245 -116
- package/dist/collection/components/chip/chip.ionic.css +216 -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 +210 -67
- package/dist/collection/components/content/content.css +47 -2
- package/dist/collection/components/content/content.js +16 -11
- package/dist/collection/components/datetime/datetime.ionic.css +697 -0
- package/dist/collection/components/datetime/datetime.ios.css +305 -114
- package/dist/collection/components/datetime/datetime.js +61 -20
- package/dist/collection/components/datetime/datetime.md.css +295 -103
- 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 +31 -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 +678 -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 +98 -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 +286 -0
- package/dist/collection/components/header/header.ios.css +178 -133
- package/dist/collection/components/header/header.js +180 -39
- package/dist/collection/components/header/header.md.css +199 -9
- package/dist/collection/components/header/header.utils.js +5 -13
- package/dist/collection/components/img/img.js +7 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +99 -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 +961 -0
- package/dist/collection/components/input/input.ios.css +254 -160
- package/dist/collection/components/input/input.js +172 -44
- package/dist/collection/components/input/input.md.css +224 -232
- package/dist/collection/components/input-otp/input-otp.ionic.css +369 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
- package/dist/collection/components/input-otp/input-otp.js +74 -8
- 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 +37 -10
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
- package/dist/collection/components/item/item.ionic.css +495 -0
- package/dist/collection/components/item/item.ios.css +120 -80
- package/dist/collection/components/item/item.js +51 -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 +276 -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 +419 -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 +189 -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 +15 -12
- 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 +23 -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 +96 -8
- package/dist/collection/components/modal/modal.ionic.css +266 -0
- package/dist/collection/components/modal/modal.ios.css +178 -70
- package/dist/collection/components/modal/modal.js +52 -13
- package/dist/collection/components/modal/modal.md.css +178 -70
- package/dist/collection/components/nav/nav.css +7 -1
- package/dist/collection/components/nav/nav.js +10 -4
- 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/popover/popover.ionic.css +290 -0
- package/dist/collection/components/popover/popover.ios.css +13 -1
- package/dist/collection/components/popover/popover.js +19 -16
- package/dist/collection/components/popover/popover.md.css +13 -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 +421 -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 +118 -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 +566 -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 +11 -8
- package/dist/collection/components/refresher/refresher.md.css +15 -2
- package/dist/collection/components/refresher-content/refresher-content.js +34 -7
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +25 -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 +621 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
- package/dist/collection/components/searchbar/searchbar.js +164 -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 +351 -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 +976 -0
- package/dist/collection/components/select/select.ios.css +304 -148
- package/dist/collection/components/select/select.js +232 -82
- package/dist/collection/components/select/select.md.css +320 -150
- package/dist/collection/components/select-modal/select-modal.ionic.css +254 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
- package/dist/collection/components/select-modal/select-modal.js +63 -15
- package/dist/collection/components/select-modal/select-modal.md.css +273 -43
- package/dist/collection/components/select-option/select-option.js +8 -4
- package/dist/collection/components/select-popover/select-popover.ionic.css +253 -0
- package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
- package/dist/collection/components/select-popover/select-popover.js +17 -9
- package/dist/collection/components/select-popover/select-popover.md.css +228 -47
- 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 +178 -15
- package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
- package/dist/collection/components/tab-button/tab-button.ionic.css +372 -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 +989 -0
- package/dist/collection/components/textarea/textarea.ios.css +322 -174
- package/dist/collection/components/textarea/textarea.js +205 -43
- package/dist/collection/components/textarea/textarea.md.css +339 -176
- 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 +125 -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 +391 -0
- package/dist/collection/components/toast/toast.ios.css +84 -45
- package/dist/collection/components/toast/toast.js +79 -13
- package/dist/collection/components/toast/toast.md.css +84 -45
- package/dist/collection/components/toggle/toggle.ionic.css +510 -0
- package/dist/collection/components/toggle/toggle.ios.css +247 -127
- package/dist/collection/components/toggle/toggle.js +58 -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 +216 -14
- package/dist/collection/components/toolbar/toolbar.md.css +90 -47
- package/dist/collection/global/ionic-global.js +239 -13
- package/dist/collection/utils/css-value-validation.js +39 -0
- package/dist/collection/utils/focus-trap.js +15 -4
- package/dist/collection/utils/focus-visible.js +73 -2
- package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
- package/dist/collection/utils/forms/click-controller.js +95 -9
- 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 +84 -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 +13 -11
- package/dist/collection/utils/overlays.js +289 -10
- package/dist/collection/utils/scroll-hide-controller.js +178 -0
- package/dist/collection/utils/test/playwright/drag-element.js +32 -9
- package/dist/collection/utils/test/playwright/field-geometry.js +34 -0
- package/dist/collection/utils/test/playwright/generator.js +48 -23
- package/dist/collection/utils/test/playwright/index.js +1 -0
- package/dist/collection/utils/test/playwright/page/utils/goto.js +10 -1
- 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 +8889 -293
- package/dist/esm/{animation-C_V9lXzL.js → animation-GasMiLY0.js} +2 -2
- package/dist/esm/{app-globals-CNfpAPW6.js → app-globals-DbCTe1Vv.js} +1 -1
- package/dist/esm/{attribute-controller-ItNOXNp9.js → attribute-controller-CbJaN4Zr.js} +2 -1
- package/dist/esm/{button-active-rB-Ct9KZ.js → button-active-DLOYzeXl.js} +2 -2
- package/dist/esm/{capacitor-BY7l8HgR.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/clear-button-press-controller-6ph4kKYn.js +43 -0
- package/dist/esm/focus-visible-BYk20Mf5.js +146 -0
- package/dist/esm/{format-Ck1cw5z7.js → format-NT7iHsbA.js} +1 -1
- package/dist/esm/{framework-delegate-CW5_kWfc.js → framework-delegate-99Ms_INy.js} +4 -2
- package/dist/esm/{haptic-ES_sSPLn.js → haptic-Cq4UAeka.js} +1 -1
- package/dist/esm/{helpers-p94IkmEA.js → helpers-B_F2b1gy.js} +86 -8
- package/dist/esm/{index-CK8uF0iB.js → index-BRYliuA-.js} +1 -1
- package/dist/esm/{index-CBkVO5D0.js → index-BeR_5uou.js} +2 -2
- package/dist/esm/{index-BvabGprD.js → index-BkJpfpXI.js} +2 -1
- package/dist/esm/{index-DLDbwWW7.js → index-BoEdvSPU.js} +4 -2
- package/dist/esm/{index-vgPixHgF.js → index-D5lNz-tr.js} +4 -4
- package/dist/esm/{index-txcXIB3P.js → index-D86Q8ZLS.js} +12 -10
- package/dist/esm/index-ZjP4CjeZ.js +7 -0
- package/dist/esm/{index-BpRUsN_W.js → index-hR6kxzTq.js} +55 -5
- package/dist/esm/index.js +14 -12
- package/dist/esm/{input-shims-KNXj3DAv.js → input-shims-CJVi9djP.js} +7 -5
- package/dist/esm/{input.utils-DZY_K8Po.js → input.utils-gPgFKve4.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +57 -29
- package/dist/esm/ion-action-sheet.entry.js +27 -22
- package/dist/esm/ion-alert.entry.js +34 -29
- package/dist/esm/ion-app_8.entry.js +455 -193
- package/dist/esm/ion-avatar_3.entry.js +124 -13
- package/dist/esm/ion-back-button.entry.js +31 -23
- package/dist/esm/ion-backdrop.entry.js +11 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +42 -18
- package/dist/esm/ion-button_2.entry.js +61 -23
- package/dist/esm/ion-card_5.entry.js +57 -34
- package/dist/esm/ion-checkbox.entry.js +43 -17
- package/dist/esm/ion-chip.entry.js +51 -9
- package/dist/esm/ion-col_3.entry.js +56 -63
- package/dist/esm/ion-datetime-button.entry.js +14 -9
- package/dist/esm/ion-datetime.entry.js +74 -32
- package/dist/esm/ion-divider.entry.js +50 -0
- package/dist/esm/ion-fab_3.entry.js +40 -28
- package/dist/esm/ion-gallery-item.entry.js +57 -0
- package/dist/esm/ion-gallery.entry.js +606 -0
- package/dist/esm/ion-img.entry.js +9 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +91 -16
- package/dist/esm/ion-input-otp.entry.js +75 -10
- package/dist/esm/ion-input-password-toggle.entry.js +42 -14
- package/dist/esm/ion-input.entry.js +147 -38
- package/dist/esm/ion-item-option_3.entry.js +466 -52
- package/dist/esm/ion-item_8.entry.js +118 -51
- package/dist/esm/ion-loading.entry.js +22 -17
- package/dist/esm/ion-menu_3.entry.js +45 -27
- package/dist/esm/ion-modal.entry.js +237 -88
- package/dist/esm/ion-nav_2.entry.js +14 -10
- package/dist/esm/ion-picker-column-option.entry.js +13 -8
- package/dist/esm/ion-picker-column.entry.js +14 -12
- package/dist/esm/ion-picker.entry.js +11 -6
- package/dist/esm/ion-popover.entry.js +23 -18
- package/dist/esm/ion-progress-bar.entry.js +28 -9
- package/dist/esm/ion-radio_2.entry.js +37 -18
- package/dist/esm/ion-range.entry.js +21 -13
- package/dist/esm/ion-refresher_2.entry.js +45 -20
- package/dist/esm/ion-reorder_2.entry.js +31 -13
- package/dist/esm/ion-ripple-effect.entry.js +16 -7
- package/dist/esm/ion-route_4.entry.js +12 -10
- package/dist/esm/ion-searchbar.entry.js +118 -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 +24 -16
- package/dist/esm/ion-select-modal.entry.js +53 -24
- package/dist/esm/ion-select_3.entry.js +198 -76
- package/dist/esm/ion-spinner.entry.js +31 -8
- package/dist/esm/ion-split-pane.entry.js +14 -9
- package/dist/esm/ion-tab-bar_2.entry.js +149 -26
- package/dist/esm/ion-tab_2.entry.js +9 -7
- package/dist/esm/ion-text.entry.js +8 -7
- package/dist/esm/ion-textarea.entry.js +178 -41
- package/dist/esm/ion-toast.entry.js +48 -19
- package/dist/esm/ion-toggle.entry.js +67 -25
- package/dist/esm/ionic-global-DSbFWXp3.js +540 -0
- package/dist/esm/ionic.js +6 -5
- package/dist/esm/{ios.transition-CW92wRDL.js → ios.transition-C9thfQYf.js} +7 -4
- package/dist/esm/{item-multiple-inputs-Bd2LO7qK.js → item-multiple-inputs-CSJsB7-I.js} +1 -1
- package/dist/esm/{keyboard-BumguZrM.js → keyboard-Cj8mLJeq.js} +3 -5
- package/dist/esm/{keyboard-CutS8BPd.js → keyboard-DAF8GNJ9.js} +1 -1
- package/dist/esm/loader.js +6 -5
- package/dist/esm/{md.transition-yhfkYX1P.js → md.transition-BEhPsy_z.js} +6 -4
- package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
- package/dist/esm/{overlays-BBgMM61s.js → overlays-C8sf7PId.js} +307 -164
- package/dist/esm/scroll-hide-controller-Chts2wJU.js +342 -0
- package/dist/esm/{select-option-render-BSDT9oSA.js → select-option-render-D5kt0cO9.js} +2 -2
- package/dist/esm/{slot-mutation-controller-uKdPbY9K.js → slot-mutation-controller-DanfZTCH.js} +97 -10
- package/dist/esm/{status-tap-BskkGI4e.js → status-tap-B8UQS38n.js} +5 -3
- package/dist/esm/{swipe-back-BZdyM2Q-.js → swipe-back-Bgftkxen.js} +4 -2
- package/dist/esm/{theme-byZM6qHV.js → theme-BUF_V-Kg.js} +25 -1
- package/dist/esm/validity-NcQUGze-.js +48 -0
- package/dist/html.html-data.json +2631 -150
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-038465e3.entry.js +4 -0
- package/dist/ionic/p-0743a26a.entry.js +4 -0
- package/dist/ionic/p-0b453760.entry.js +4 -0
- package/dist/ionic/p-0bd5a7c9.entry.js +4 -0
- package/dist/ionic/p-188a2e35.entry.js +4 -0
- package/dist/ionic/p-1b045882.entry.js +4 -0
- package/dist/ionic/p-1b769779.entry.js +4 -0
- package/dist/ionic/p-1d735170.entry.js +4 -0
- package/dist/ionic/p-1d87b153.entry.js +4 -0
- package/dist/ionic/p-2b1e9500.entry.js +4 -0
- package/dist/ionic/p-2gcJ-f11.js +4 -0
- package/dist/ionic/p-308f9b89.entry.js +4 -0
- package/dist/ionic/p-338cb1e7.entry.js +4 -0
- package/dist/ionic/p-3a03d05e.entry.js +4 -0
- package/dist/ionic/p-3a54495e.entry.js +4 -0
- package/dist/ionic/p-3b47fdc7.entry.js +4 -0
- package/dist/ionic/p-3be131ed.entry.js +4 -0
- package/dist/ionic/p-3ddd32cc.entry.js +4 -0
- package/dist/ionic/p-3f15086f.entry.js +4 -0
- package/dist/ionic/p-4152cb6a.entry.js +4 -0
- package/dist/ionic/p-41680415.entry.js +4 -0
- package/dist/ionic/p-49edfb46.entry.js +4 -0
- package/dist/ionic/p-522663a4.entry.js +4 -0
- package/dist/ionic/p-561cfcc1.entry.js +4 -0
- package/dist/ionic/p-6dc9331b.entry.js +4 -0
- package/dist/ionic/p-7df4dcb4.entry.js +4 -0
- package/dist/ionic/p-8183df6b.entry.js +4 -0
- package/dist/ionic/p-8231e914.entry.js +4 -0
- package/dist/ionic/p-82efbf09.entry.js +4 -0
- package/dist/ionic/p-86bf24f4.entry.js +4 -0
- package/dist/ionic/p-8b107444.entry.js +4 -0
- package/dist/ionic/p-8ecb459a.entry.js +4 -0
- package/dist/ionic/p-8ff4bf6c.entry.js +4 -0
- package/dist/ionic/p-905c8b38.entry.js +4 -0
- package/dist/ionic/p-9613f2c3.entry.js +4 -0
- package/dist/ionic/p-973f8069.entry.js +4 -0
- package/dist/ionic/p-9b41acf3.entry.js +4 -0
- package/dist/ionic/p-B36ii-hs.js +4 -0
- package/{components/p-LkEGRiq0.js → dist/ionic/p-B7XMQegr.js} +1 -1
- package/dist/ionic/p-BKwe4f9b.js +4 -0
- package/dist/ionic/{p-5a3UxQAh.js → p-BMPN55of.js} +1 -1
- package/{components/p-D5_mEbGJ.js → dist/ionic/p-BPA4-c6T.js} +1 -1
- package/dist/ionic/p-BUF_V-Kg.js +4 -0
- package/dist/ionic/p-BXRdzJMJ.js +4 -0
- package/dist/ionic/p-BYk20Mf5.js +4 -0
- package/dist/ionic/p-BfDzKnZ-.js +4 -0
- package/dist/ionic/p-BfUzA1cP.js +4 -0
- package/dist/ionic/{p-DCmOKz8e.js → p-Bjt84heL.js} +1 -1
- package/dist/ionic/p-BkJpfpXI.js +4 -0
- package/{components/p-CdrNHfZl.js → dist/ionic/p-BtccSO5J.js} +1 -1
- package/dist/ionic/p-C3TLUO-J.js +4 -0
- package/dist/ionic/p-C4WiowQL.js +4 -0
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/dist/ionic/p-CODBQrPj.js +4 -0
- package/dist/ionic/p-CXkgZKSx.js +4 -0
- package/dist/ionic/{p-DxftXYZp.js → p-CeHcVwSj.js} +1 -1
- package/dist/ionic/p-Co3ilg7B.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D7LiFzrm.js +4 -0
- package/dist/ionic/p-DOdxt_P_.js +4 -0
- package/dist/ionic/p-DRbid4Vh.js +4 -0
- package/dist/ionic/p-DsBidY1y.js +4 -0
- package/dist/ionic/{p-Cf6KtUnA.js → p-DuxayXEj.js} +1 -1
- package/dist/ionic/p-DxPRC9Jk.js +4 -0
- package/dist/ionic/p-Hb0L-KUN.js +4 -0
- package/dist/ionic/p-NcQUGze-.js +4 -0
- package/dist/ionic/{p-BBZQUbCq.js → p-T71k3C35.js} +1 -1
- package/dist/ionic/p-WdouEyt8.js +4 -0
- package/dist/ionic/p-ZjP4CjeZ.js +4 -0
- package/dist/ionic/p-a1555032.entry.js +4 -0
- package/dist/ionic/p-a4299509.entry.js +4 -0
- package/dist/ionic/p-a52cba2f.entry.js +4 -0
- package/dist/ionic/p-ad46d2fd.entry.js +4 -0
- package/dist/ionic/p-b076511a.entry.js +4 -0
- package/dist/ionic/p-b1cd18f0.entry.js +4 -0
- package/dist/ionic/p-b30b468d.entry.js +4 -0
- package/dist/ionic/p-b4de840a.entry.js +4 -0
- package/dist/ionic/p-b6e633f5.entry.js +4 -0
- package/dist/ionic/p-bf40b9eb.entry.js +4 -0
- package/dist/ionic/p-c1fc48c7.entry.js +4 -0
- package/dist/ionic/p-ce8bea16.entry.js +4 -0
- package/dist/ionic/p-dbf53341.entry.js +4 -0
- package/dist/ionic/p-de0de6a6.entry.js +4 -0
- package/dist/ionic/p-e715a580.entry.js +4 -0
- package/dist/ionic/p-f10a94a8.entry.js +4 -0
- package/dist/ionic/p-f3057b31.entry.js +4 -0
- package/dist/ionic/p-fa74dd94.entry.js +4 -0
- package/dist/ionic/p-fd00e28d.entry.js +4 -0
- package/dist/ionic/p-hR6kxzTq.js +6 -0
- package/dist/ionic/p-pVSZ4TVa.js +4 -0
- package/dist/ionic/{p-DfvWlTdB.js → p-rwBGNQHN.js} +1 -1
- package/dist/types/components/accordion/accordion.d.ts +12 -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 +10 -3
- 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 +14 -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 +26 -5
- package/dist/types/components/chip/chip.d.ts +26 -1
- package/dist/types/components/col/col.d.ts +52 -6
- package/dist/types/components/content/content.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +26 -1
- 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 +11 -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 +2 -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 +45 -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 +14 -0
- package/dist/types/components/item/item.d.ts +17 -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 +8 -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 -1
- package/dist/types/components/modal/modal-interface.d.ts +4 -7
- package/dist/types/components/modal/modal.d.ts +11 -1
- 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/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 +10 -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.d.ts +59 -15
- package/dist/types/components/select-modal/select-modal.d.ts +13 -0
- package/dist/types/components/select-option/select-option.d.ts +7 -4
- 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 +75 -17
- 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 +18 -1
- package/dist/types/components/toolbar/toolbar.d.ts +43 -3
- package/dist/types/components.d.ts +1839 -211
- 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 +128 -4
- 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 +33 -0
- package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
- package/dist/types/utils/forms/click-controller.d.ts +16 -5
- 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 +29 -0
- package/dist/types/utils/overlay-control-label.d.ts +11 -9
- package/dist/types/utils/overlays-interface.d.ts +31 -1
- package/dist/types/utils/overlays.d.ts +1 -1
- package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
- package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
- package/dist/types/utils/test/playwright/field-geometry.d.ts +13 -0
- package/dist/types/utils/test/playwright/generator.d.ts +31 -2
- package/dist/types/utils/test/playwright/index.d.ts +1 -0
- package/dist/types/utils/theme.d.ts +9 -0
- package/hydrate/index.js +5465 -1248
- package/hydrate/index.mjs +5465 -1248
- package/package.json +10 -4
- package/components/p-3avHDbEF.js +0 -4
- package/components/p-7KepMw9O.js +0 -4
- package/components/p-7NbIvzb4.js +0 -4
- package/components/p-B3dSuofL.js +0 -4
- package/components/p-BBsseItU.js +0 -4
- package/components/p-BMHdI-wb.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BT2InaHz.js +0 -4
- package/components/p-BZ1k9WL7.js +0 -4
- package/components/p-BhamHSw3.js +0 -4
- package/components/p-BmVRXR1y.js +0 -4
- package/components/p-BrrMFd9K.js +0 -4
- package/components/p-C-SO5kIs.js +0 -4
- package/components/p-C0TdbIVo.js +0 -4
- package/components/p-C6Y0cCH_.js +0 -4
- package/components/p-C8BAigo3.js +0 -4
- package/components/p-CRb2xRCz.js +0 -4
- package/components/p-CUQjkOdi.js +0 -4
- package/components/p-CW84OFQa.js +0 -4
- package/components/p-CjPRDxby.js +0 -4
- package/components/p-CohRJRIu.js +0 -4
- package/components/p-Ct2aBEue.js +0 -4
- package/components/p-CvyvLbPe.js +0 -4
- package/components/p-D8FyR2IB.js +0 -4
- package/components/p-DJztqcrH.js +0 -4
- package/components/p-DLEJ61lJ.js +0 -4
- package/components/p-DRm4t-by.js +0 -4
- package/components/p-DTGCMApY.js +0 -4
- package/components/p-D_U0pDe5.js +0 -4
- package/components/p-DaW9OZ6S.js +0 -4
- package/components/p-Dah8BCNg.js +0 -4
- package/components/p-DaojW_d_.js +0 -4
- package/components/p-DnBabjgY.js +0 -4
- package/components/p-Ds5vN3iu.js +0 -4
- package/components/p-DwTzX8Vi.js +0 -4
- package/components/p-Dy7x-KDF.js +0 -4
- package/components/p-HthJZjZ6.js +0 -4
- package/components/p-KbMCbGRA.js +0 -4
- package/components/p-LpMHEu3v.js +0 -4
- package/components/p-PkD1iLNN.js +0 -4
- package/components/p-R4UxBukQ.js +0 -4
- package/components/p-RhI78AKb.js +0 -4
- package/components/p-byZM6qHV.js +0 -4
- package/components/p-hLu-eIbb.js +0 -4
- package/components/p-kKGBuIkf.js +0 -4
- package/components/p-z-EWo6r-.js +0 -4
- package/dist/cjs/focus-visible-CCvKiLh3.js +0 -77
- package/dist/cjs/ionic-global-48ceLiJ6.js +0 -156
- package/dist/cjs/keyboard-controller-DZE97OtR.js +0 -167
- package/dist/cjs/validity-BpS37YFM.js +0 -19
- package/dist/esm/focus-visible-BmVRXR1y.js +0 -75
- package/dist/esm/ionic-global-Cep6oYzK.js +0 -151
- package/dist/esm/keyboard-controller-DqohyEsZ.js +0 -165
- package/dist/esm/validity-DJztqcrH.js +0 -17
- package/dist/ionic/p-00cd107d.entry.js +0 -4
- package/dist/ionic/p-013b9aba.entry.js +0 -4
- package/dist/ionic/p-014c3633.entry.js +0 -4
- package/dist/ionic/p-0562139b.entry.js +0 -4
- package/dist/ionic/p-0a789930.entry.js +0 -4
- package/dist/ionic/p-0f1613f2.entry.js +0 -4
- package/dist/ionic/p-1252621e.entry.js +0 -4
- package/dist/ionic/p-129f7b95.entry.js +0 -4
- package/dist/ionic/p-16de8fd9.entry.js +0 -4
- package/dist/ionic/p-1bb1be7e.entry.js +0 -4
- package/dist/ionic/p-1f342c2d.entry.js +0 -4
- package/dist/ionic/p-1ffa5577.entry.js +0 -4
- package/dist/ionic/p-210f906e.entry.js +0 -4
- package/dist/ionic/p-27960f65.entry.js +0 -4
- package/dist/ionic/p-3c6fc2e8.entry.js +0 -4
- package/dist/ionic/p-436d4ac8.entry.js +0 -4
- package/dist/ionic/p-43729675.entry.js +0 -4
- package/dist/ionic/p-4468e439.entry.js +0 -4
- package/dist/ionic/p-4e4e5919.entry.js +0 -4
- package/dist/ionic/p-51af4728.entry.js +0 -4
- package/dist/ionic/p-59e4b521.entry.js +0 -4
- package/dist/ionic/p-5b47b8d5.entry.js +0 -4
- package/dist/ionic/p-5dcddfd5.entry.js +0 -4
- package/dist/ionic/p-694f3e78.entry.js +0 -4
- package/dist/ionic/p-76c189e7.entry.js +0 -4
- package/dist/ionic/p-77252596.entry.js +0 -4
- package/dist/ionic/p-77540bcb.entry.js +0 -4
- package/dist/ionic/p-77e7b612.entry.js +0 -4
- package/dist/ionic/p-7868eb92.entry.js +0 -4
- package/dist/ionic/p-800ce1e0.entry.js +0 -4
- package/dist/ionic/p-84470714.entry.js +0 -4
- package/dist/ionic/p-87fb6d59.entry.js +0 -4
- package/dist/ionic/p-8B39TMv-.js +0 -4
- package/dist/ionic/p-8af85fa8.entry.js +0 -4
- package/dist/ionic/p-8c85e250.entry.js +0 -4
- package/dist/ionic/p-8dQB1sG_.js +0 -4
- package/dist/ionic/p-9515f840.entry.js +0 -4
- package/dist/ionic/p-96d040b0.entry.js +0 -4
- package/dist/ionic/p-9d7e5a0b.entry.js +0 -4
- package/dist/ionic/p-B0afqOUt.js +0 -4
- package/dist/ionic/p-B2JD8_LP.js +0 -4
- package/dist/ionic/p-B2y1T0dN.js +0 -4
- package/dist/ionic/p-BHBb21Hp.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BexAj0yw.js +0 -4
- package/dist/ionic/p-BgkRGRO3.js +0 -4
- package/dist/ionic/p-BmVRXR1y.js +0 -4
- package/dist/ionic/p-BpRUsN_W.js +0 -6
- package/dist/ionic/p-BvabGprD.js +0 -4
- package/dist/ionic/p-C4SpVvhx.js +0 -4
- package/dist/ionic/p-CNdt1FPc.js +0 -4
- package/dist/ionic/p-CfccUand.js +0 -4
- package/dist/ionic/p-DArnNWiu.js +0 -4
- package/dist/ionic/p-DBFcFCH5.js +0 -4
- package/dist/ionic/p-DFPZa_No.js +0 -4
- package/dist/ionic/p-DJztqcrH.js +0 -4
- package/dist/ionic/p-DYKDWM2f.js +0 -4
- package/dist/ionic/p-DriE1ZAo.js +0 -4
- package/dist/ionic/p-DzQk7Lu8.js +0 -4
- package/dist/ionic/p-SEecsUh7.js +0 -4
- package/dist/ionic/p-a45caa30.entry.js +0 -4
- package/dist/ionic/p-af15fc5d.entry.js +0 -4
- package/dist/ionic/p-af4b4719.entry.js +0 -4
- package/dist/ionic/p-b0faaae2.entry.js +0 -4
- package/dist/ionic/p-b3aadfe8.entry.js +0 -4
- package/dist/ionic/p-b5bcbbc1.entry.js +0 -4
- package/dist/ionic/p-byZM6qHV.js +0 -4
- package/dist/ionic/p-c293f854.entry.js +0 -4
- package/dist/ionic/p-c56c23b6.entry.js +0 -4
- package/dist/ionic/p-c7ea2647.entry.js +0 -4
- package/dist/ionic/p-c8c77f7b.entry.js +0 -4
- package/dist/ionic/p-cbc73380.entry.js +0 -4
- package/dist/ionic/p-d58e9da3.entry.js +0 -4
- package/dist/ionic/p-e1haAYzm.js +0 -4
- package/dist/ionic/p-ec08a7e6.entry.js +0 -4
- package/dist/ionic/p-f37e6ed2.entry.js +0 -4
- package/dist/ionic/p-f6a1ab48.entry.js +0 -4
- /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
|
@@ -3,23 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index$
|
|
7
|
-
var index = require('./index-
|
|
8
|
-
var frameworkDelegate = require('./framework-delegate-
|
|
9
|
-
var helpers = require('./helpers-
|
|
6
|
+
var index$3 = require('./index-CB1PuDlX.js');
|
|
7
|
+
var index$1 = require('./index-DhGCo_n8.js');
|
|
8
|
+
var frameworkDelegate = require('./framework-delegate-CAdDEnFS.js');
|
|
9
|
+
var helpers = require('./helpers-DHNLF4fD.js');
|
|
10
10
|
var lockController = require('./lock-controller-aDB9wrEf.js');
|
|
11
|
-
var capacitor = require('./capacitor-
|
|
12
|
-
var
|
|
13
|
-
var theme = require('./theme-
|
|
14
|
-
var index$
|
|
15
|
-
var ionicGlobal = require('./ionic-global-
|
|
16
|
-
var keyboard = require('./keyboard-
|
|
17
|
-
var animation = require('./animation-
|
|
11
|
+
var capacitor = require('./capacitor-DmA66EwP.js');
|
|
12
|
+
var overlays = require('./overlays-DziOxcCT.js');
|
|
13
|
+
var theme = require('./theme-Cy4joHPt.js');
|
|
14
|
+
var index$4 = require('./index-lD5wTj_b.js');
|
|
15
|
+
var ionicGlobal = require('./ionic-global-CZX42KL4.js');
|
|
16
|
+
var keyboard = require('./keyboard-Cix5TVkD.js');
|
|
17
|
+
var animation = require('./animation-zKIdNEmG.js');
|
|
18
|
+
var index = require('./index-DkNv4J_i.js');
|
|
18
19
|
var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
|
|
19
|
-
var index$
|
|
20
|
+
var index$2 = require('./index-DRPqwSvU.js');
|
|
21
|
+
require('./focus-visible-DGPRKkcx.js');
|
|
20
22
|
require('./dir-Bma_9Lqh.js');
|
|
21
23
|
require('./gesture-controller-CeJslptU.js');
|
|
22
|
-
require('./keyboard-
|
|
24
|
+
require('./keyboard-cHxZlTyz.js');
|
|
23
25
|
|
|
24
26
|
var Style;
|
|
25
27
|
(function (Style) {
|
|
@@ -116,13 +118,13 @@ const getBackdropValueForSheet = (x, backdropBreakpoint) => {
|
|
|
116
118
|
*
|
|
117
119
|
*/
|
|
118
120
|
const setCardStatusBarDark = () => {
|
|
119
|
-
if (!
|
|
121
|
+
if (!index.win || index.win.innerWidth >= 768) {
|
|
120
122
|
return;
|
|
121
123
|
}
|
|
122
124
|
StatusBar.setStyle({ style: Style.Dark });
|
|
123
125
|
};
|
|
124
126
|
const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
|
|
125
|
-
if (!
|
|
127
|
+
if (!index.win || index.win.innerWidth >= 768) {
|
|
126
128
|
return;
|
|
127
129
|
}
|
|
128
130
|
StatusBar.setStyle({ style: defaultStyle });
|
|
@@ -134,6 +136,104 @@ const onModalHeightChange = (hostEl, callback) => {
|
|
|
134
136
|
return helpers.onCustomPropertyChange(hostEl, '--height', () => callback());
|
|
135
137
|
};
|
|
136
138
|
|
|
139
|
+
const createSheetEnterAnimation = (opts) => {
|
|
140
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
|
|
141
|
+
/**
|
|
142
|
+
* If the backdropBreakpoint is undefined, then the backdrop
|
|
143
|
+
* should always fade in. If the backdropBreakpoint came before the
|
|
144
|
+
* current breakpoint, then the backdrop should be fading in.
|
|
145
|
+
*/
|
|
146
|
+
const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
|
|
147
|
+
let initialBackdrop = '0';
|
|
148
|
+
if (staticBackdropOpacity) {
|
|
149
|
+
initialBackdrop = 'calc(var(--backdrop-opacity)';
|
|
150
|
+
}
|
|
151
|
+
else if (shouldShowBackdrop) {
|
|
152
|
+
initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
|
|
153
|
+
}
|
|
154
|
+
const backdropAnimation = animation.createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
|
|
155
|
+
if (shouldShowBackdrop) {
|
|
156
|
+
backdropAnimation
|
|
157
|
+
.beforeStyles({
|
|
158
|
+
'pointer-events': 'none',
|
|
159
|
+
})
|
|
160
|
+
.afterClearStyles(['pointer-events']);
|
|
161
|
+
}
|
|
162
|
+
const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
|
|
163
|
+
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
164
|
+
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
165
|
+
]);
|
|
166
|
+
/**
|
|
167
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
168
|
+
*/
|
|
169
|
+
const contentAnimation = !expandToScroll
|
|
170
|
+
? animation.createAnimation('contentAnimation').keyframes([
|
|
171
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
172
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
173
|
+
])
|
|
174
|
+
: undefined;
|
|
175
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
176
|
+
};
|
|
177
|
+
const createSheetLeaveAnimation = (opts) => {
|
|
178
|
+
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
179
|
+
/**
|
|
180
|
+
* Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
|
|
181
|
+
* is defined, so we need to account for that offset by figuring out
|
|
182
|
+
* what the current backdrop value should be.
|
|
183
|
+
*/
|
|
184
|
+
const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
|
|
185
|
+
const defaultBackdrop = [
|
|
186
|
+
{ offset: 0, opacity: backdropValue },
|
|
187
|
+
{ offset: 1, opacity: 0 },
|
|
188
|
+
];
|
|
189
|
+
const customBackdrop = [
|
|
190
|
+
{ offset: 0, opacity: backdropValue },
|
|
191
|
+
{ offset: backdropBreakpoint, opacity: 0 },
|
|
192
|
+
{ offset: 1, opacity: 0 },
|
|
193
|
+
];
|
|
194
|
+
const backdropAnimation = animation.createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
|
|
195
|
+
const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
|
|
196
|
+
{ offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
197
|
+
{ offset: 1, opacity: 1, transform: `translateY(100%)` },
|
|
198
|
+
]);
|
|
199
|
+
return { wrapperAnimation, backdropAnimation };
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
const createEnterAnimation$2 = () => {
|
|
203
|
+
const backdropAnimation = animation.createAnimation()
|
|
204
|
+
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
205
|
+
.beforeStyles({
|
|
206
|
+
'pointer-events': 'none',
|
|
207
|
+
})
|
|
208
|
+
.afterClearStyles(['pointer-events']);
|
|
209
|
+
const wrapperAnimation = animation.createAnimation().keyframes([
|
|
210
|
+
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
211
|
+
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
212
|
+
]);
|
|
213
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Ionic Modal Enter Animation
|
|
217
|
+
*/
|
|
218
|
+
const ionicEnterAnimation = (baseEl, opts) => {
|
|
219
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
220
|
+
const root = helpers.getElementRoot(baseEl);
|
|
221
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$2();
|
|
222
|
+
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
223
|
+
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
224
|
+
// The content animation is only added if scrolling is enabled for
|
|
225
|
+
// all the breakpoints.
|
|
226
|
+
!expandToScroll && contentAnimation?.addElement(baseEl.querySelector('.ion-page'));
|
|
227
|
+
backdropAnimation.duration(300).easing('ease-out');
|
|
228
|
+
wrapperAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
|
|
229
|
+
contentAnimation?.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
|
|
230
|
+
const baseAnimation = animation.createAnimation().addElement(baseEl).addAnimation([backdropAnimation, wrapperAnimation]);
|
|
231
|
+
if (contentAnimation) {
|
|
232
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
233
|
+
}
|
|
234
|
+
return baseAnimation;
|
|
235
|
+
};
|
|
236
|
+
|
|
137
237
|
/**
|
|
138
238
|
* Swiping is only possible when the content is scrolled to the top, so that we
|
|
139
239
|
* do not interfere with scrolling, and never on content with a refresher.
|
|
@@ -145,8 +245,8 @@ const onModalHeightChange = (hostEl, callback) => {
|
|
|
145
245
|
* synchronous operation, and `getScrollElement` is asynchronous.
|
|
146
246
|
*/
|
|
147
247
|
const canSwipeOnContent = (contentEl) => {
|
|
148
|
-
const scrollEl = index.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
149
|
-
const hasRefresherInContent = !!index.findRefresherInContent(contentEl);
|
|
248
|
+
const scrollEl = index$1.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
249
|
+
const hasRefresherInContent = !!index$1.findRefresherInContent(contentEl);
|
|
150
250
|
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
151
251
|
};
|
|
152
252
|
const handleCanDismiss = async (el, animation) => {
|
|
@@ -166,7 +266,7 @@ const handleCanDismiss = async (el, animation) => {
|
|
|
166
266
|
* If the function returns `true`,
|
|
167
267
|
* then we can proceed with dismiss.
|
|
168
268
|
*/
|
|
169
|
-
const shouldDismiss = await el.canDismiss(undefined,
|
|
269
|
+
const shouldDismiss = await el.canDismiss(undefined, overlays.GESTURE);
|
|
170
270
|
if (!shouldDismiss) {
|
|
171
271
|
return;
|
|
172
272
|
}
|
|
@@ -283,7 +383,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
283
383
|
let initialScrollY = true;
|
|
284
384
|
let lastStep = 0;
|
|
285
385
|
const getScrollY = () => {
|
|
286
|
-
if (contentEl && index.isIonContent(contentEl)) {
|
|
386
|
+
if (contentEl && index$1.isIonContent(contentEl)) {
|
|
287
387
|
return contentEl.scrollY;
|
|
288
388
|
/**
|
|
289
389
|
* Custom scroll containers are intended to be
|
|
@@ -309,7 +409,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
309
409
|
* swipe again. The target content will not
|
|
310
410
|
* be the same between swipes.
|
|
311
411
|
*/
|
|
312
|
-
contentEl = index.findClosestIonContent(target);
|
|
412
|
+
contentEl = index$1.findClosestIonContent(target);
|
|
313
413
|
if (contentEl) {
|
|
314
414
|
return canSwipeOnContent(contentEl);
|
|
315
415
|
}
|
|
@@ -353,7 +453,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
353
453
|
* happen at the same time as the gesture.
|
|
354
454
|
*/
|
|
355
455
|
if (deltaY > 0 && contentEl) {
|
|
356
|
-
index.disableContentScrollY(contentEl);
|
|
456
|
+
index$1.disableContentScrollY(contentEl);
|
|
357
457
|
}
|
|
358
458
|
animation.progressStart(true, isOpen ? 1 : 0);
|
|
359
459
|
onDragStart();
|
|
@@ -367,7 +467,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
367
467
|
* happen at the same time as the gesture.
|
|
368
468
|
*/
|
|
369
469
|
if (deltaY > 0 && contentEl) {
|
|
370
|
-
index.disableContentScrollY(contentEl);
|
|
470
|
+
index$1.disableContentScrollY(contentEl);
|
|
371
471
|
}
|
|
372
472
|
/**
|
|
373
473
|
* If we are swiping on the content
|
|
@@ -462,7 +562,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
462
562
|
isOpen = shouldComplete;
|
|
463
563
|
gesture.enable(false);
|
|
464
564
|
if (contentEl) {
|
|
465
|
-
index.resetContentScrollY(contentEl, initialScrollY);
|
|
565
|
+
index$1.resetContentScrollY(contentEl, initialScrollY);
|
|
466
566
|
}
|
|
467
567
|
animation
|
|
468
568
|
.onFinish(() => {
|
|
@@ -510,10 +610,10 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
510
610
|
};
|
|
511
611
|
onDragEnd(eventDetail);
|
|
512
612
|
};
|
|
513
|
-
const gesture = index$
|
|
613
|
+
const gesture = index$2.createGesture({
|
|
514
614
|
el,
|
|
515
615
|
gestureName: 'modalSwipeToClose',
|
|
516
|
-
gesturePriority:
|
|
616
|
+
gesturePriority: overlays.OVERLAY_GESTURE_PRIORITY,
|
|
517
617
|
direction: 'y',
|
|
518
618
|
threshold: 10,
|
|
519
619
|
canStart,
|
|
@@ -565,63 +665,6 @@ const calculateProgress = (el, deltaY) => {
|
|
|
565
665
|
return Math.max(0, Math.min(1, roundedProgress));
|
|
566
666
|
};
|
|
567
667
|
|
|
568
|
-
const createSheetEnterAnimation = (opts) => {
|
|
569
|
-
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
570
|
-
/**
|
|
571
|
-
* If the backdropBreakpoint is undefined, then the backdrop
|
|
572
|
-
* should always fade in. If the backdropBreakpoint came before the
|
|
573
|
-
* current breakpoint, then the backdrop should be fading in.
|
|
574
|
-
*/
|
|
575
|
-
const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
|
|
576
|
-
const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';
|
|
577
|
-
const backdropAnimation = animation.createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
|
|
578
|
-
if (shouldShowBackdrop) {
|
|
579
|
-
backdropAnimation
|
|
580
|
-
.beforeStyles({
|
|
581
|
-
'pointer-events': 'none',
|
|
582
|
-
})
|
|
583
|
-
.afterClearStyles(['pointer-events']);
|
|
584
|
-
}
|
|
585
|
-
const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
|
|
586
|
-
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
587
|
-
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
588
|
-
]);
|
|
589
|
-
/**
|
|
590
|
-
* This allows the content to be scrollable at any breakpoint.
|
|
591
|
-
*/
|
|
592
|
-
const contentAnimation = !expandToScroll
|
|
593
|
-
? animation.createAnimation('contentAnimation').keyframes([
|
|
594
|
-
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
595
|
-
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
596
|
-
])
|
|
597
|
-
: undefined;
|
|
598
|
-
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
599
|
-
};
|
|
600
|
-
const createSheetLeaveAnimation = (opts) => {
|
|
601
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
602
|
-
/**
|
|
603
|
-
* Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
|
|
604
|
-
* is defined, so we need to account for that offset by figuring out
|
|
605
|
-
* what the current backdrop value should be.
|
|
606
|
-
*/
|
|
607
|
-
const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
|
|
608
|
-
const defaultBackdrop = [
|
|
609
|
-
{ offset: 0, opacity: backdropValue },
|
|
610
|
-
{ offset: 1, opacity: 0 },
|
|
611
|
-
];
|
|
612
|
-
const customBackdrop = [
|
|
613
|
-
{ offset: 0, opacity: backdropValue },
|
|
614
|
-
{ offset: backdropBreakpoint, opacity: 0 },
|
|
615
|
-
{ offset: 1, opacity: 0 },
|
|
616
|
-
];
|
|
617
|
-
const backdropAnimation = animation.createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
|
|
618
|
-
const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
|
|
619
|
-
{ offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
620
|
-
{ offset: 1, opacity: 1, transform: `translateY(100%)` },
|
|
621
|
-
]);
|
|
622
|
-
return { wrapperAnimation, backdropAnimation };
|
|
623
|
-
};
|
|
624
|
-
|
|
625
668
|
const createEnterAnimation$1 = () => {
|
|
626
669
|
const backdropAnimation = animation.createAnimation()
|
|
627
670
|
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
@@ -1012,18 +1055,31 @@ const mdLeaveAnimation = (baseEl, opts) => {
|
|
|
1012
1055
|
return baseAnimation;
|
|
1013
1056
|
};
|
|
1014
1057
|
|
|
1058
|
+
/** Gesture velocity arrives in pixels per millisecond; the thresholds below are per second. */
|
|
1059
|
+
const MILLISECONDS_PER_SECOND = 1000;
|
|
1060
|
+
/**
|
|
1061
|
+
* Flick speeds for the ionic theme's physics-based gesture, in pixels per
|
|
1062
|
+
* second. Both are magnitudes. Y grows downwards, so the upward threshold is
|
|
1063
|
+
* negated where it is compared.
|
|
1064
|
+
*/
|
|
1065
|
+
const FLICK_DOWN_VELOCITY = 500;
|
|
1066
|
+
/**
|
|
1067
|
+
* How far below its starting breakpoint a slow drag has to end to dismiss the
|
|
1068
|
+
* sheet. 0.4 means the user dragged 40% of the way down from where they started.
|
|
1069
|
+
*/
|
|
1070
|
+
const DISMISS_PROGRESS_RATIO = 0.4;
|
|
1015
1071
|
/** How far ahead, in milliseconds, a drag's velocity is projected when snapping. */
|
|
1016
1072
|
const FLICK_PROJECTION_MS = 350;
|
|
1017
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, onDragStart, onDragMove, onDragEnd) => {
|
|
1073
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, usePhysicsBasedGesture, onDragStart, onDragMove, onDragEnd) => {
|
|
1018
1074
|
// Defaults for the sheet swipe animation
|
|
1019
1075
|
const defaultBackdrop = [
|
|
1020
1076
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
1021
|
-
{ offset: 1, opacity: 0.01 },
|
|
1077
|
+
{ offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0.01 },
|
|
1022
1078
|
];
|
|
1023
1079
|
const customBackdrop = [
|
|
1024
1080
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
1025
|
-
{ offset: 1 - backdropBreakpoint, opacity: 0 },
|
|
1026
|
-
{ offset: 1, opacity: 0 },
|
|
1081
|
+
{ offset: 1 - backdropBreakpoint, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
|
|
1082
|
+
{ offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
|
|
1027
1083
|
];
|
|
1028
1084
|
const SheetDefaults = {
|
|
1029
1085
|
WRAPPER_KEYFRAMES: [
|
|
@@ -1072,7 +1128,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1072
1128
|
* as inputs should not be focusable outside
|
|
1073
1129
|
* the sheet.
|
|
1074
1130
|
*/
|
|
1075
|
-
baseEl.classList.remove(
|
|
1131
|
+
baseEl.classList.remove(overlays.FOCUS_TRAP_DISABLE_CLASS);
|
|
1076
1132
|
};
|
|
1077
1133
|
const disableBackdrop = () => {
|
|
1078
1134
|
baseEl.style.setProperty('pointer-events', 'none');
|
|
@@ -1084,7 +1140,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1084
1140
|
* Adding this class disables focus trapping
|
|
1085
1141
|
* for the sheet temporarily.
|
|
1086
1142
|
*/
|
|
1087
|
-
baseEl.classList.add(
|
|
1143
|
+
baseEl.classList.add(overlays.FOCUS_TRAP_DISABLE_CLASS);
|
|
1088
1144
|
};
|
|
1089
1145
|
/**
|
|
1090
1146
|
* Toggles the footer to an absolute position while moving to prevent
|
|
@@ -1208,7 +1264,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1208
1264
|
* For example, when using ion-nav within a modal it is possible to swipe, push a view,
|
|
1209
1265
|
* and then swipe again. The target content will not be the same between swipes.
|
|
1210
1266
|
*/
|
|
1211
|
-
const contentEl = index.findClosestIonContent(detail.event.target);
|
|
1267
|
+
const contentEl = index$1.findClosestIonContent(detail.event.target);
|
|
1212
1268
|
currentBreakpoint = getCurrentBreakpoint();
|
|
1213
1269
|
/**
|
|
1214
1270
|
* Upwards swipes on the content cannot move the sheet anyway, so this only
|
|
@@ -1245,9 +1301,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1245
1301
|
* which would impact performance significantly.
|
|
1246
1302
|
*/
|
|
1247
1303
|
if (!expandToScroll) {
|
|
1248
|
-
const targetEl = index.findClosestIonContent(detail.event.target);
|
|
1304
|
+
const targetEl = index$1.findClosestIonContent(detail.event.target);
|
|
1249
1305
|
cachedScrollEl =
|
|
1250
|
-
targetEl && index.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
|
|
1306
|
+
targetEl && index$1.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
|
|
1251
1307
|
}
|
|
1252
1308
|
/**
|
|
1253
1309
|
* If expandToScroll is disabled, we need to swap
|
|
@@ -1413,6 +1469,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1413
1469
|
*/
|
|
1414
1470
|
const shouldPreventDismiss = canDismiss && breakpoint === 0;
|
|
1415
1471
|
const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
|
|
1472
|
+
/**
|
|
1473
|
+
* Detect snap-back behavior: when the snap target is the same as the current breakpoint,
|
|
1474
|
+
* the user released before crossing the threshold to a new breakpoint.
|
|
1475
|
+
* Apply different timing and easing for snap-back vs. snap-to-new.
|
|
1476
|
+
*/
|
|
1477
|
+
const isSnapBack = snapToBreakpoint === currentBreakpoint;
|
|
1478
|
+
const duration = usePhysicsBasedGesture ? (isSnapBack ? 300 : 400) : 500;
|
|
1479
|
+
const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
|
|
1416
1480
|
const shouldRemainOpen = snapToBreakpoint !== 0;
|
|
1417
1481
|
currentBreakpoint = 0;
|
|
1418
1482
|
/**
|
|
@@ -1427,11 +1491,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1427
1491
|
backdropAnimation.keyframes([
|
|
1428
1492
|
{
|
|
1429
1493
|
offset: 0,
|
|
1430
|
-
opacity:
|
|
1494
|
+
opacity: usePhysicsBasedGesture
|
|
1495
|
+
? 'var(--backdrop-opacity)'
|
|
1496
|
+
: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
|
|
1431
1497
|
},
|
|
1432
1498
|
{
|
|
1433
1499
|
offset: 1,
|
|
1434
|
-
opacity:
|
|
1500
|
+
opacity: usePhysicsBasedGesture
|
|
1501
|
+
? 'var(--backdrop-opacity)'
|
|
1502
|
+
: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
1435
1503
|
},
|
|
1436
1504
|
]);
|
|
1437
1505
|
if (contentAnimation) {
|
|
@@ -1449,6 +1517,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1449
1517
|
}
|
|
1450
1518
|
animation.progressStep(0);
|
|
1451
1519
|
}
|
|
1520
|
+
/**
|
|
1521
|
+
* Apply the appropriate easing curve for this snap behavior.
|
|
1522
|
+
*/
|
|
1523
|
+
if (usePhysicsBasedGesture) {
|
|
1524
|
+
animation.easing(easing);
|
|
1525
|
+
}
|
|
1452
1526
|
/**
|
|
1453
1527
|
* Gesture should remain disabled until the
|
|
1454
1528
|
* snapping animation completes.
|
|
@@ -1538,7 +1612,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1538
1612
|
* be added every time onEnd runs.
|
|
1539
1613
|
*/
|
|
1540
1614
|
}, { oneTimeCallback: true })
|
|
1541
|
-
.progressEnd(1, 0, animated ?
|
|
1615
|
+
.progressEnd(1, 0, animated ? duration : 0);
|
|
1542
1616
|
});
|
|
1543
1617
|
};
|
|
1544
1618
|
/**
|
|
@@ -1549,8 +1623,22 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1549
1623
|
* @returns The snap breakpoint value
|
|
1550
1624
|
*/
|
|
1551
1625
|
const calculateSnapBreakpoint = (deltaY, velocityY) => {
|
|
1626
|
+
if (usePhysicsBasedGesture) {
|
|
1627
|
+
return calculateVelocitySnapBreakpoint(deltaY, velocityY);
|
|
1628
|
+
}
|
|
1552
1629
|
// Project the drag forward so a quick flick counts.
|
|
1553
|
-
|
|
1630
|
+
return calculatePositionSnapBreakpoint(deltaY + velocityY * FLICK_PROJECTION_MS);
|
|
1631
|
+
};
|
|
1632
|
+
/**
|
|
1633
|
+
* Calculates the breakpoint based on the current deltaY.
|
|
1634
|
+
* This determines where the sheet should snap to when the user releases the
|
|
1635
|
+
* gesture.
|
|
1636
|
+
*
|
|
1637
|
+
* @param deltaY The change in Y position since the gesture started.
|
|
1638
|
+
* @returns The snap breakpoint value.
|
|
1639
|
+
*/
|
|
1640
|
+
const calculatePositionSnapBreakpoint = (deltaY) => {
|
|
1641
|
+
const currentProgress = calculateProgress(deltaY);
|
|
1554
1642
|
/**
|
|
1555
1643
|
* Find and return the defined breakpoint that is closest to the
|
|
1556
1644
|
* current progress.
|
|
@@ -1560,6 +1648,48 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1560
1648
|
});
|
|
1561
1649
|
return snapBreakpoint;
|
|
1562
1650
|
};
|
|
1651
|
+
/**
|
|
1652
|
+
* Calculates the snap breakpoint using velocity-based logic.
|
|
1653
|
+
* This provides a more intuitive and responsive sheet behavior for the Ionic theme.
|
|
1654
|
+
*
|
|
1655
|
+
* Rules:
|
|
1656
|
+
* 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
|
|
1657
|
+
* 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
|
|
1658
|
+
* 3. If dragged 40% below current snap point without fast upward flick, dismisses
|
|
1659
|
+
* 4. Otherwise, falls back to position-based snap (closest breakpoint)
|
|
1660
|
+
*
|
|
1661
|
+
* @param deltaY The change in Y position since gesture started
|
|
1662
|
+
* @param velocityY The velocity in pixels per millisecond
|
|
1663
|
+
* @returns The snap breakpoint value
|
|
1664
|
+
*/
|
|
1665
|
+
const calculateVelocitySnapBreakpoint = (deltaY, velocityY) => {
|
|
1666
|
+
// Convert velocity from px/ms to px/s for easier threshold comparison
|
|
1667
|
+
const velocityYPerSecond = velocityY * MILLISECONDS_PER_SECOND;
|
|
1668
|
+
// Calculate current progress (0 = fully closed, 1 = fully expanded)
|
|
1669
|
+
const currentProgress = calculateProgress(deltaY);
|
|
1670
|
+
// Rule 1: Fast downward flick always dismisses
|
|
1671
|
+
if (velocityYPerSecond > FLICK_DOWN_VELOCITY) {
|
|
1672
|
+
return minBreakpoint;
|
|
1673
|
+
}
|
|
1674
|
+
// Rule 2: Fast upward flick moves to next breakpoint above
|
|
1675
|
+
if (velocityYPerSecond < -400) {
|
|
1676
|
+
// Find next breakpoint above current position
|
|
1677
|
+
const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
|
|
1678
|
+
// If no breakpoint above, stay at max breakpoint
|
|
1679
|
+
return nextBreakpoint ?? maxBreakpoint;
|
|
1680
|
+
}
|
|
1681
|
+
// Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
|
|
1682
|
+
if (minBreakpoint === 0 && currentBreakpoint > 0) {
|
|
1683
|
+
// Calculate how far we've moved below the current snap point
|
|
1684
|
+
const distanceBelowSnap = currentBreakpoint - currentProgress;
|
|
1685
|
+
const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
|
|
1686
|
+
if (percentageBelowSnap > DISMISS_PROGRESS_RATIO) {
|
|
1687
|
+
return 0;
|
|
1688
|
+
}
|
|
1689
|
+
}
|
|
1690
|
+
// Rule 4: Fallback to position-based snap (existing logic)
|
|
1691
|
+
return calculatePositionSnapBreakpoint(deltaY);
|
|
1692
|
+
};
|
|
1563
1693
|
/**
|
|
1564
1694
|
* Calculates how open the sheet is part way through a gesture, on the same
|
|
1565
1695
|
* 0 to 1 scale as the breakpoints: 1 is fully open and 0 is fully closed.
|
|
@@ -1582,7 +1712,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1582
1712
|
const progress = (calculateProgress(deltaY) - minBreakpoint) / (maxBreakpoint - minBreakpoint);
|
|
1583
1713
|
return helpers.clamp(0, progress, 1);
|
|
1584
1714
|
};
|
|
1585
|
-
const gesture = index$
|
|
1715
|
+
const gesture = index$2.createGesture({
|
|
1586
1716
|
el: wrapperEl,
|
|
1587
1717
|
gestureName: 'modalSheet',
|
|
1588
1718
|
gesturePriority: 40,
|
|
@@ -1628,7 +1758,7 @@ const getRootSafeAreaTop = () => {
|
|
|
1628
1758
|
if (cachedRootSafeAreaTop !== null) {
|
|
1629
1759
|
return cachedRootSafeAreaTop;
|
|
1630
1760
|
}
|
|
1631
|
-
const doc =
|
|
1761
|
+
const doc = index.win?.document;
|
|
1632
1762
|
if (!doc?.body) {
|
|
1633
1763
|
return 0;
|
|
1634
1764
|
}
|
|
@@ -1654,7 +1784,7 @@ const getRootSafeAreaTop = () => {
|
|
|
1654
1784
|
* that read and the observer starting is still reported.
|
|
1655
1785
|
*/
|
|
1656
1786
|
const onRootSafeAreaTopChange = (callback) => {
|
|
1657
|
-
return helpers.onCustomPropertyChange(
|
|
1787
|
+
return helpers.onCustomPropertyChange(index.win?.document?.body, '--ion-safe-area-top', callback, getRootSafeAreaTop());
|
|
1658
1788
|
};
|
|
1659
1789
|
/**
|
|
1660
1790
|
* Determines which viewport axes the modal spans so safe-area requirements
|
|
@@ -1671,8 +1801,8 @@ const onRootSafeAreaTopChange = (callback) => {
|
|
|
1671
1801
|
*/
|
|
1672
1802
|
const getModalCoveredAxes = (hostEl) => {
|
|
1673
1803
|
const styles = getComputedStyle(hostEl);
|
|
1674
|
-
const width =
|
|
1675
|
-
const height =
|
|
1804
|
+
const width = overlays.getOverlaySizeType(styles.getPropertyValue('--width'));
|
|
1805
|
+
const height = overlays.getOverlaySizeType(styles.getPropertyValue('--height'));
|
|
1676
1806
|
if (width === 'fullscreen' && height === 'fullscreen') {
|
|
1677
1807
|
return { vertical: true, horizontal: true };
|
|
1678
1808
|
}
|
|
@@ -1692,7 +1822,7 @@ const getModalCoveredAxes = (hostEl) => {
|
|
|
1692
1822
|
*/
|
|
1693
1823
|
const measureCoveredAxes = (hostEl) => {
|
|
1694
1824
|
const wrapperEl = hostEl.shadowRoot?.querySelector('.modal-wrapper');
|
|
1695
|
-
if (wrapperEl == null ||
|
|
1825
|
+
if (wrapperEl == null || index.win === undefined) {
|
|
1696
1826
|
return { vertical: false, horizontal: false };
|
|
1697
1827
|
}
|
|
1698
1828
|
const wasHidden = hostEl.classList.contains('overlay-hidden');
|
|
@@ -1704,8 +1834,8 @@ const measureCoveredAxes = (hostEl) => {
|
|
|
1704
1834
|
hostEl.classList.add('overlay-hidden');
|
|
1705
1835
|
}
|
|
1706
1836
|
return {
|
|
1707
|
-
vertical: height >=
|
|
1708
|
-
horizontal: width >=
|
|
1837
|
+
vertical: height >= index.win.innerHeight - EDGE_THRESHOLD,
|
|
1838
|
+
horizontal: width >= index.win.innerWidth - EDGE_THRESHOLD,
|
|
1709
1839
|
};
|
|
1710
1840
|
};
|
|
1711
1841
|
/**
|
|
@@ -1774,8 +1904,8 @@ const getInitialSafeAreaConfig = (context) => {
|
|
|
1774
1904
|
*/
|
|
1775
1905
|
const getPositionBasedSafeAreaConfig = (wrapperEl) => {
|
|
1776
1906
|
const rect = wrapperEl.getBoundingClientRect();
|
|
1777
|
-
const vh =
|
|
1778
|
-
const vw =
|
|
1907
|
+
const vh = index.win?.innerHeight ?? 0;
|
|
1908
|
+
const vw = index.win?.innerWidth ?? 0;
|
|
1779
1909
|
// Only apply safe-area to sides where modal overlaps with screen edge
|
|
1780
1910
|
return {
|
|
1781
1911
|
top: rect.top <= EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
@@ -1808,28 +1938,30 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
1808
1938
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
1809
1939
|
};
|
|
1810
1940
|
|
|
1811
|
-
const
|
|
1941
|
+
const modalIonicCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--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{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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-elevation-3, var(--token-primitives-base-white, #ffffff));--box-shadow:var(--token-elevation-4, var(--token-shadow-offset-0, 0px) var(--token-shadow-offset-15, 15px) var(--token-shadow-blur-48, 48px) var(--token-shadow-spread-0, 0px) var(--token-shadow-7, rgba(0, 0, 0, 0.18)), var(--token-shadow-offset-0, 0px) var(--token-shadow-offset-3, 3px) var(--token-shadow-blur-12, 12px) var(--token-shadow-spread-0, 0px) var(--token-shadow-5, rgba(0, 0, 0, 0.12)));--backdrop-opacity:0.7;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}: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, #e6eaee)}.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)))}`;
|
|
1942
|
+
|
|
1943
|
+
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--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{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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}`;
|
|
1812
1944
|
|
|
1813
|
-
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-
|
|
1945
|
+
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--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{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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}`;
|
|
1814
1946
|
|
|
1815
1947
|
const Modal = class {
|
|
1816
1948
|
constructor(hostRef) {
|
|
1817
|
-
index$
|
|
1818
|
-
this.didPresent = index$
|
|
1819
|
-
this.willPresent = index$
|
|
1820
|
-
this.willDismiss = index$
|
|
1821
|
-
this.didDismiss = index$
|
|
1822
|
-
this.ionBreakpointDidChange = index$
|
|
1823
|
-
this.didPresentShorthand = index$
|
|
1824
|
-
this.willPresentShorthand = index$
|
|
1825
|
-
this.willDismissShorthand = index$
|
|
1826
|
-
this.didDismissShorthand = index$
|
|
1827
|
-
this.ionMount = index$
|
|
1828
|
-
this.ionDragStart = index$
|
|
1829
|
-
this.ionDragMove = index$
|
|
1830
|
-
this.ionDragEnd = index$
|
|
1949
|
+
index$3.registerInstance(this, hostRef);
|
|
1950
|
+
this.didPresent = index$3.createEvent(this, "ionModalDidPresent", 7);
|
|
1951
|
+
this.willPresent = index$3.createEvent(this, "ionModalWillPresent", 7);
|
|
1952
|
+
this.willDismiss = index$3.createEvent(this, "ionModalWillDismiss", 7);
|
|
1953
|
+
this.didDismiss = index$3.createEvent(this, "ionModalDidDismiss", 7);
|
|
1954
|
+
this.ionBreakpointDidChange = index$3.createEvent(this, "ionBreakpointDidChange", 7);
|
|
1955
|
+
this.didPresentShorthand = index$3.createEvent(this, "didPresent", 7);
|
|
1956
|
+
this.willPresentShorthand = index$3.createEvent(this, "willPresent", 7);
|
|
1957
|
+
this.willDismissShorthand = index$3.createEvent(this, "willDismiss", 7);
|
|
1958
|
+
this.didDismissShorthand = index$3.createEvent(this, "didDismiss", 7);
|
|
1959
|
+
this.ionMount = index$3.createEvent(this, "ionMount", 7);
|
|
1960
|
+
this.ionDragStart = index$3.createEvent(this, "ionDragStart", 7);
|
|
1961
|
+
this.ionDragMove = index$3.createEvent(this, "ionDragMove", 7);
|
|
1962
|
+
this.ionDragEnd = index$3.createEvent(this, "ionDragEnd", 7);
|
|
1831
1963
|
this.lockController = lockController.createLockController();
|
|
1832
|
-
this.triggerController =
|
|
1964
|
+
this.triggerController = overlays.createTriggerController();
|
|
1833
1965
|
this.coreDelegate = frameworkDelegate.CoreDelegate();
|
|
1834
1966
|
this.isSheetModal = false;
|
|
1835
1967
|
this.inheritedAttributes = {};
|
|
@@ -1975,7 +2107,7 @@ const Modal = class {
|
|
|
1975
2107
|
*/
|
|
1976
2108
|
return;
|
|
1977
2109
|
}
|
|
1978
|
-
this.dismiss(undefined,
|
|
2110
|
+
this.dismiss(undefined, overlays.BACKDROP);
|
|
1979
2111
|
};
|
|
1980
2112
|
this.onLifecycle = (modalEvent) => {
|
|
1981
2113
|
const el = this.usersElement;
|
|
@@ -2073,7 +2205,7 @@ const Modal = class {
|
|
|
2073
2205
|
}
|
|
2074
2206
|
connectedCallback() {
|
|
2075
2207
|
const { el } = this;
|
|
2076
|
-
|
|
2208
|
+
overlays.prepareOverlay(el);
|
|
2077
2209
|
this.triggerChanged();
|
|
2078
2210
|
// A disconnect tears down state this presentation still needs and cannot
|
|
2079
2211
|
// tell a re-insert from a removal, so put it back.
|
|
@@ -2083,7 +2215,7 @@ const Modal = class {
|
|
|
2083
2215
|
// A relocation from `willPresent` reaches these before `present()` has
|
|
2084
2216
|
// applied the lock, so they apply it instead. Both are idempotent.
|
|
2085
2217
|
if (this.presented) {
|
|
2086
|
-
|
|
2218
|
+
overlays.restoreRootFocusTrapAccessibility(el);
|
|
2087
2219
|
this.initParentRemovalObserver();
|
|
2088
2220
|
}
|
|
2089
2221
|
}
|
|
@@ -2096,7 +2228,7 @@ const Modal = class {
|
|
|
2096
2228
|
this.cleanupSafeAreaOverrides();
|
|
2097
2229
|
// Clean up aria-hidden if removed without dismiss() being called
|
|
2098
2230
|
if (this.presented) {
|
|
2099
|
-
|
|
2231
|
+
overlays.cleanupRootFocusTrapAccessibility();
|
|
2100
2232
|
}
|
|
2101
2233
|
}
|
|
2102
2234
|
componentWillLoad() {
|
|
@@ -2146,10 +2278,10 @@ const Modal = class {
|
|
|
2146
2278
|
this.currentBreakpoint = this.initialBreakpoint;
|
|
2147
2279
|
}
|
|
2148
2280
|
if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
|
|
2149
|
-
index$
|
|
2281
|
+
index$3.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
|
|
2150
2282
|
}
|
|
2151
2283
|
if (!this.htmlAttributes?.id) {
|
|
2152
|
-
|
|
2284
|
+
overlays.setOverlayId(this.el);
|
|
2153
2285
|
}
|
|
2154
2286
|
}
|
|
2155
2287
|
componentDidLoad() {
|
|
@@ -2246,7 +2378,7 @@ const Modal = class {
|
|
|
2246
2378
|
* get the transition incorrect.
|
|
2247
2379
|
*/
|
|
2248
2380
|
if (helpers.hasLazyBuild(el)) {
|
|
2249
|
-
await index$
|
|
2381
|
+
await index$4.deepReady(this.usersElement);
|
|
2250
2382
|
/**
|
|
2251
2383
|
* If keepContentsMounted="true" then the
|
|
2252
2384
|
* JS Framework has already mounted the inner
|
|
@@ -2257,9 +2389,9 @@ const Modal = class {
|
|
|
2257
2389
|
*/
|
|
2258
2390
|
}
|
|
2259
2391
|
else if (!this.keepContentsMounted) {
|
|
2260
|
-
await index$
|
|
2392
|
+
await index$4.waitForMount();
|
|
2261
2393
|
}
|
|
2262
|
-
index$
|
|
2394
|
+
index$3.writeTask(() => this.el.classList.add('show-modal'));
|
|
2263
2395
|
// Recalculate isSheetModal before safe-area setup because framework
|
|
2264
2396
|
// bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
|
|
2265
2397
|
this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
@@ -2280,11 +2412,12 @@ const Modal = class {
|
|
|
2280
2412
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
2281
2413
|
setCardStatusBarDark();
|
|
2282
2414
|
}
|
|
2283
|
-
await
|
|
2415
|
+
await overlays.present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
|
|
2284
2416
|
presentingEl: presentingElement,
|
|
2285
2417
|
currentBreakpoint: this.initialBreakpoint,
|
|
2286
2418
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
2287
2419
|
expandToScroll: this.expandToScroll,
|
|
2420
|
+
staticBackdropOpacity: ionicGlobal.getIonTheme(this) === 'ionic',
|
|
2288
2421
|
});
|
|
2289
2422
|
}
|
|
2290
2423
|
finally {
|
|
@@ -2345,14 +2478,14 @@ const Modal = class {
|
|
|
2345
2478
|
// All of the elements needed for the swipe gesture
|
|
2346
2479
|
// should be in the DOM and referenced by now, except
|
|
2347
2480
|
// for the presenting el
|
|
2348
|
-
const animationBuilder = this.leaveAnimation || index$
|
|
2481
|
+
const animationBuilder = this.leaveAnimation || index$3.config.get('modalLeave', iosLeaveAnimation);
|
|
2349
2482
|
const ani = (this.animation = animationBuilder(el, {
|
|
2350
2483
|
presentingEl: this.presentingElement,
|
|
2351
2484
|
expandToScroll: this.expandToScroll,
|
|
2352
2485
|
}));
|
|
2353
|
-
const contentEl = index.findIonContent(el);
|
|
2486
|
+
const contentEl = index$1.findIonContent(el);
|
|
2354
2487
|
if (!contentEl) {
|
|
2355
|
-
index.printIonContentErrorMsg(el);
|
|
2488
|
+
index$1.printIonContentErrorMsg(el);
|
|
2356
2489
|
return;
|
|
2357
2490
|
}
|
|
2358
2491
|
const statusBarStyle = this.statusBarStyle ?? Style.Default;
|
|
@@ -2364,12 +2497,13 @@ const Modal = class {
|
|
|
2364
2497
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
2365
2498
|
return;
|
|
2366
2499
|
}
|
|
2367
|
-
const animationBuilder = this.enterAnimation || index$
|
|
2500
|
+
const animationBuilder = this.enterAnimation || index$3.config.get('modalEnter', iosEnterAnimation);
|
|
2368
2501
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
2369
2502
|
presentingEl: this.presentingElement,
|
|
2370
2503
|
currentBreakpoint: initialBreakpoint,
|
|
2371
2504
|
backdropBreakpoint,
|
|
2372
2505
|
expandToScroll: this.expandToScroll,
|
|
2506
|
+
staticBackdropOpacity: ionicGlobal.getIonTheme(this) === 'ionic',
|
|
2373
2507
|
}));
|
|
2374
2508
|
ani.progressStart(true, 1);
|
|
2375
2509
|
const { gesture, moveSheetToBreakpoint, resetContentScroll } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => this.currentBreakpoint ?? 0, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
@@ -2377,7 +2511,7 @@ const Modal = class {
|
|
|
2377
2511
|
this.currentBreakpoint = breakpoint;
|
|
2378
2512
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
2379
2513
|
}
|
|
2380
|
-
}, () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
|
|
2514
|
+
}, ionicGlobal.getIonTheme(this) === 'ionic', () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
|
|
2381
2515
|
this.gesture = gesture;
|
|
2382
2516
|
this.moveSheetToBreakpoint = moveSheetToBreakpoint;
|
|
2383
2517
|
this.resetSheetContentScroll = resetContentScroll;
|
|
@@ -2467,7 +2601,7 @@ const Modal = class {
|
|
|
2467
2601
|
this.animation.onFinish(async () => {
|
|
2468
2602
|
this.currentBreakpoint = 0;
|
|
2469
2603
|
this.ionBreakpointDidChange.emit({ breakpoint: this.currentBreakpoint });
|
|
2470
|
-
await this.dismiss(undefined,
|
|
2604
|
+
await this.dismiss(undefined, overlays.GESTURE);
|
|
2471
2605
|
this.gestureAnimationDismissing = false;
|
|
2472
2606
|
});
|
|
2473
2607
|
}
|
|
@@ -2493,7 +2627,7 @@ const Modal = class {
|
|
|
2493
2627
|
*/
|
|
2494
2628
|
setCardStatusBarDefault(this.statusBarStyle);
|
|
2495
2629
|
this.animation.onFinish(async () => {
|
|
2496
|
-
await this.dismiss(undefined,
|
|
2630
|
+
await this.dismiss(undefined, overlays.GESTURE);
|
|
2497
2631
|
this.gestureAnimationDismissing = false;
|
|
2498
2632
|
});
|
|
2499
2633
|
}
|
|
@@ -2508,7 +2642,7 @@ const Modal = class {
|
|
|
2508
2642
|
* For example, `cancel` or `backdrop`.
|
|
2509
2643
|
*/
|
|
2510
2644
|
async dismiss(data, role) {
|
|
2511
|
-
if (this.gestureAnimationDismissing && role !==
|
|
2645
|
+
if (this.gestureAnimationDismissing && role !== overlays.GESTURE) {
|
|
2512
2646
|
return false;
|
|
2513
2647
|
}
|
|
2514
2648
|
// Cancel any pending resize timeout to prevent stale updates during dismiss
|
|
@@ -2550,7 +2684,7 @@ const Modal = class {
|
|
|
2550
2684
|
window.removeEventListener(keyboard.KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
2551
2685
|
this.keyboardOpenCallback = undefined;
|
|
2552
2686
|
}
|
|
2553
|
-
const dismissed = await
|
|
2687
|
+
const dismissed = await overlays.dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
|
|
2554
2688
|
presentingEl: presentingElement,
|
|
2555
2689
|
currentBreakpoint: this.currentBreakpoint ?? this.initialBreakpoint,
|
|
2556
2690
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -2559,7 +2693,7 @@ const Modal = class {
|
|
|
2559
2693
|
if (dismissed) {
|
|
2560
2694
|
const { delegate } = this.getDelegate();
|
|
2561
2695
|
await frameworkDelegate.detachComponent(delegate, this.usersElement);
|
|
2562
|
-
index$
|
|
2696
|
+
index$3.writeTask(() => this.el.classList.remove('show-modal'));
|
|
2563
2697
|
if (this.animation) {
|
|
2564
2698
|
this.animation.destroy();
|
|
2565
2699
|
}
|
|
@@ -2587,13 +2721,13 @@ const Modal = class {
|
|
|
2587
2721
|
* Returns a promise that resolves when the modal did dismiss.
|
|
2588
2722
|
*/
|
|
2589
2723
|
onDidDismiss() {
|
|
2590
|
-
return
|
|
2724
|
+
return overlays.eventMethod(this.el, 'ionModalDidDismiss');
|
|
2591
2725
|
}
|
|
2592
2726
|
/**
|
|
2593
2727
|
* Returns a promise that resolves when the modal will dismiss.
|
|
2594
2728
|
*/
|
|
2595
2729
|
onWillDismiss() {
|
|
2596
|
-
return
|
|
2730
|
+
return overlays.eventMethod(this.el, 'ionModalWillDismiss');
|
|
2597
2731
|
}
|
|
2598
2732
|
/**
|
|
2599
2733
|
* Move a sheet style modal to a specific breakpoint.
|
|
@@ -2603,11 +2737,11 @@ const Modal = class {
|
|
|
2603
2737
|
*/
|
|
2604
2738
|
async setCurrentBreakpoint(breakpoint) {
|
|
2605
2739
|
if (!this.isSheetModal) {
|
|
2606
|
-
index$
|
|
2740
|
+
index$3.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
|
|
2607
2741
|
return;
|
|
2608
2742
|
}
|
|
2609
2743
|
if (!this.breakpoints.includes(breakpoint)) {
|
|
2610
|
-
index$
|
|
2744
|
+
index$3.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
|
|
2611
2745
|
return;
|
|
2612
2746
|
}
|
|
2613
2747
|
const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
|
|
@@ -2652,6 +2786,18 @@ const Modal = class {
|
|
|
2652
2786
|
await this.setCurrentBreakpoint(nextBreakpoint);
|
|
2653
2787
|
return true;
|
|
2654
2788
|
}
|
|
2789
|
+
getShape() {
|
|
2790
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
2791
|
+
const { shape } = this;
|
|
2792
|
+
// TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
|
|
2793
|
+
if (theme !== 'ionic') {
|
|
2794
|
+
return undefined;
|
|
2795
|
+
}
|
|
2796
|
+
if (shape === undefined) {
|
|
2797
|
+
return 'round';
|
|
2798
|
+
}
|
|
2799
|
+
return shape;
|
|
2800
|
+
}
|
|
2655
2801
|
initViewTransitionListener() {
|
|
2656
2802
|
// Only enable for iOS card modals when no custom animations are provided
|
|
2657
2803
|
if (ionicGlobal.getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
|
|
@@ -3044,24 +3190,26 @@ const Modal = class {
|
|
|
3044
3190
|
render() {
|
|
3045
3191
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
3046
3192
|
const showHandle = handle !== false && isSheetModal;
|
|
3047
|
-
const
|
|
3048
|
-
const isCardModal = presentingElement !== undefined &&
|
|
3193
|
+
const theme$1 = ionicGlobal.getIonTheme(this);
|
|
3194
|
+
const isCardModal = presentingElement !== undefined && theme$1 === 'ios';
|
|
3049
3195
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
3196
|
+
const shape = this.getShape();
|
|
3050
3197
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
3051
|
-
return (index$
|
|
3198
|
+
return (index$3.h(index$3.Host, { key: 'd7d9e9f103fb1ac669da34819e6f460316cffa48', "no-router": true,
|
|
3052
3199
|
// Allow the modal to be navigable when the handle is focusable
|
|
3053
3200
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
|
|
3054
3201
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
3055
3202
|
}, class: {
|
|
3056
|
-
[
|
|
3203
|
+
[theme$1]: true,
|
|
3057
3204
|
['modal-default']: !isCardModal && !isSheetModal,
|
|
3058
3205
|
[`modal-card`]: isCardModal,
|
|
3059
3206
|
[`modal-sheet`]: isSheetModal,
|
|
3207
|
+
[`modal-${shape}`]: shape !== undefined,
|
|
3060
3208
|
[`modal-no-expand-scroll`]: isSheetModal && !expandToScroll,
|
|
3061
3209
|
'overlay-hidden': true,
|
|
3062
|
-
[
|
|
3210
|
+
[overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
3063
3211
|
...theme.getClassMap(this.cssClass),
|
|
3064
|
-
}, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, index$
|
|
3212
|
+
}, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, index$3.h("ion-backdrop", { key: '030d13dadaef45a24fd694478cf6583a637b9e9e', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme$1 === 'ios' && index$3.h("div", { key: '111f4df167615ee37f6db3f1000f6bd1a6b25fee', class: "modal-shadow" }), index$3.h("div", { key: '2720518be4e2701a5641f31e3f13336778f2fdbb',
|
|
3065
3213
|
/*
|
|
3066
3214
|
role and aria-modal must be used on the
|
|
3067
3215
|
same element. They must also be set inside the
|
|
@@ -3074,11 +3222,11 @@ const Modal = class {
|
|
|
3074
3222
|
without the tabindex focus() would be a no-op and screen readers
|
|
3075
3223
|
may not properly announce the dialog and its content when it opens.
|
|
3076
3224
|
*/
|
|
3077
|
-
role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (index$
|
|
3225
|
+
role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (index$3.h("button", { key: '7b8d765349e94315383e15c59ae55bbf92b7834a', class: "modal-handle",
|
|
3078
3226
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
3079
|
-
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) })), index$
|
|
3227
|
+
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) })), index$3.h("slot", { key: 'fb952f2216991352c002b796933d3dbee1397051', onSlotchange: this.onSlotChange }))));
|
|
3080
3228
|
}
|
|
3081
|
-
get el() { return index$
|
|
3229
|
+
get el() { return index$3.getElement(this); }
|
|
3082
3230
|
static get watchers() { return {
|
|
3083
3231
|
"isOpen": [{
|
|
3084
3232
|
"onIsOpenChange": 0
|
|
@@ -3098,6 +3246,7 @@ const LIFECYCLE_MAP = {
|
|
|
3098
3246
|
ionModalDidDismiss: 'ionViewDidLeave',
|
|
3099
3247
|
};
|
|
3100
3248
|
Modal.style = {
|
|
3249
|
+
ionic: modalIonicCss(),
|
|
3101
3250
|
ios: modalIosCss(),
|
|
3102
3251
|
md: modalMdCss()
|
|
3103
3252
|
};
|