voyager-ionic-core 9.0.3 → 9.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +1 -1
- package/components/ion-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker.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--cshUOAU.js +4 -0
- package/components/{p-BF48Oc0v.js → p-7KepMw9O.js} +1 -1
- package/components/p-B-5Z9djt.js +4 -0
- package/components/p-B02CcbPD.js +4 -0
- package/components/p-B4IBdPVJ.js +4 -0
- package/components/{p-BYJRZKHa.js → p-BMHdI-wb.js} +1 -1
- package/components/p-BODcC-C0.js +4 -0
- package/components/{p-D7wDJdFn.js → p-Ba9_OzSY.js} +1 -1
- package/components/{p-DMBiAyOR.js → p-BqyLLYLm.js} +1 -1
- package/components/{p-BQyuFxYc.js → p-C1AxSUnp.js} +1 -1
- package/components/p-C7r5Gja6.js +4 -0
- package/components/{p-D5w_FlVa.js → p-CKiqp4Vl.js} +1 -1
- package/components/{p-C8Ck7_Eo.js → p-C_gnmBt2.js} +1 -1
- package/{dist/ionic/p-DTxBioUO.js → components/p-CdrNHfZl.js} +1 -1
- package/components/{p-DM1gJSMP.js → p-ChkSQqfP.js} +1 -1
- package/components/p-ChsJlFCQ.js +4 -0
- package/components/{p-cEN43Ahr.js → p-CjPRDxby.js} +1 -1
- package/components/p-CohRJRIu.js +4 -0
- package/components/{p-DxhHlJln.js → p-CqvARtmt.js} +1 -1
- package/components/p-Ct2aBEue.js +4 -0
- package/components/p-CtiO6_sC.js +4 -0
- package/components/{p-Hp8t4RMX.js → p-CvyvLbPe.js} +1 -1
- package/{dist/ionic/p-BMiZX1LT.js → components/p-CwEis84J.js} +1 -1
- package/components/p-CxEV3Vwy.js +4 -0
- package/components/p-Cyajikho.js +4 -0
- package/components/p-D64Tyi-z.js +4 -0
- package/components/{p-B4lxwJ8N.js → p-DBtFJlTi.js} +1 -1
- package/components/p-DD92Fw3n.js +4 -0
- package/components/p-DDI6VLW9.js +4 -0
- package/components/{p-Fl7ZFU74.js → p-DHo45oj7.js} +1 -1
- package/components/{p-COO0eJOA.js → p-DMPsc_0r.js} +1 -1
- package/{dist/ionic/p-DZ6Hmc-8.js → components/p-Dbi3KqKm.js} +1 -1
- package/components/p-DhfJAkyd.js +4 -0
- package/components/p-DnGlmM4u.js +4 -0
- package/components/{p-CJgnoKcN.js → p-Drpw2dyl.js} +1 -1
- package/components/{p-5ldEpNdG.js → p-Dvyv9SMk.js} +1 -1
- package/components/p-GpqwNbxf.js +4 -0
- package/components/{p-BJr2B5hZ.js → p-HthJZjZ6.js} +1 -1
- package/components/p-IQN1T5zw.js +4 -0
- package/components/{p-DL13ieTa.js → p-KbMCbGRA.js} +1 -1
- package/components/p-ODGeXc3M.js +4 -0
- package/components/p-R4UxBukQ.js +4 -0
- package/components/p-TLtgwTFF.js +4 -0
- package/components/p-Uk13YgEc.js +4 -0
- package/components/{p-qAXsfUff.js → p-V1THdfzs.js} +1 -1
- package/components/{p-C-NbvXu4.js → p-YNnH1_Hs.js} +1 -1
- package/components/{p-CqbGBmqb.js → p-ZrYBjOcc.js} +1 -1
- package/components/p-_y7kwBO8.js +4 -0
- package/components/{p-GGbIHyEF.js → p-hLu-eIbb.js} +1 -1
- package/components/p-jsVMT15X.js +4 -0
- package/components/{p-TWw4e4sO.js → p-r59A3wQk.js} +1 -1
- package/components/p-yGD6MBgf.js +4 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.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-Kd1N7WTN.js → animation-DcgLg_PI.js} +3 -3
- package/dist/cjs/{app-globals-b1G4t26O.js → app-globals-BoFCZq0K.js} +1 -1
- package/dist/cjs/attribute-controller-BjTE2TOf.js +131 -0
- package/dist/cjs/{button-active-CQCFubJJ.js → button-active-FdsfRDY_.js} +2 -2
- package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-C6Pp4Z7A.js} +3 -3
- package/dist/cjs/{format-bHU8N1g5.js → format-CVjpvAl1.js} +1 -1
- package/dist/cjs/{framework-delegate-d-fWfeI6.js → framework-delegate-JbKIVMzR.js} +1 -1
- package/dist/cjs/{haptic-Ch-X4gRx.js → haptic--4QteuuM.js} +1 -1
- package/dist/cjs/{helpers-7wzdhdeg.js → helpers-Cqr69qxA.js} +50 -3
- package/dist/cjs/{index-KiSZqhYS.js → index-B4ONUQRp.js} +1 -1
- package/dist/cjs/{index-C74Q3t6a.js → index-BQpSekmz.js} +7 -8
- package/dist/cjs/{index-DFNrCX7M.js → index-BhWiDK25.js} +9 -9
- package/dist/cjs/{index-DXoo08JC.js → index-BiQyIvoc.js} +54 -28
- package/dist/cjs/{index-DtvKGwdh.js → index-CNaZ6SYM.js} +2 -2
- package/dist/cjs/{index-CQfEIyLK.js → index-DUiuw_fH.js} +4 -4
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{input-shims-VJIiKBKv.js → input-shims-2AsXPZ5m.js} +16 -17
- package/dist/cjs/{input.utils-EHVE2RK_.js → input.utils-Becpo0ax.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -28
- package/dist/cjs/ion-alert.cjs.entry.js +27 -29
- package/dist/cjs/ion-app_8.cjs.entry.js +72 -24
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +23 -34
- package/dist/cjs/ion-card_5.cjs.entry.js +19 -7
- package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime.cjs.entry.js +34 -29
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-input-otp.cjs.entry.js +33 -8
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +12 -16
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +17 -8
- package/dist/cjs/ion-loading.cjs.entry.js +18 -20
- package/dist/cjs/ion-menu_3.cjs.entry.js +18 -19
- package/dist/cjs/ion-modal.cjs.entry.js +177 -172
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +8 -9
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +119 -42
- package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-range.cjs.entry.js +4 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +8 -9
- package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -7
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
- package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-select-modal.cjs.entry.js +8 -10
- package/dist/cjs/ion-select_3.cjs.entry.js +71 -53
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -7
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +11 -15
- package/dist/cjs/ion-toast.cjs.entry.js +49 -51
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -7
- package/dist/cjs/{ionic-global-CYJNT-2P.js → ionic-global-48ceLiJ6.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-DYGiD6gM.js → ios.transition-D85_rHf5.js} +4 -5
- package/dist/cjs/{item-multiple-inputs-Dv6qrMhm.js → item-multiple-inputs-C-hz7xrh.js} +1 -1
- package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-BlHp4a_c.js} +1 -1
- package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-c2_I35b-.js} +5 -3
- package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-DHS0BgXp.js} +9 -9
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CrSkaoz6.js → md.transition-Ce9X1WXr.js} +4 -5
- package/dist/cjs/{overlays-BR21NUIG.js → overlays-CLld3axA.js} +224 -12
- package/dist/cjs/{select-option-render-D8ZEjYji.js → select-option-render-CzyhrkOu.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-ClDxh3EK.js} +73 -5
- package/dist/cjs/{status-tap-CNP5eD1R.js → status-tap-CDA0Y3Ad.js} +3 -3
- package/dist/cjs/{swipe-back-CSIJQfu5.js → swipe-back-Dy8pxJCF.js} +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/button/button.js +21 -32
- package/dist/collection/components/card/card.js +17 -6
- package/dist/collection/components/content/content.js +62 -8
- package/dist/collection/components/datetime/datetime.js +27 -20
- package/dist/collection/components/input/input.ios.css +6 -0
- package/dist/collection/components/input/input.js +6 -9
- package/dist/collection/components/input/input.md.css +6 -0
- package/dist/collection/components/input-otp/input-otp.js +29 -3
- package/dist/collection/components/item/item.js +15 -6
- package/dist/collection/components/menu/menu.js +4 -3
- package/dist/collection/components/modal/modal.ios.css +12 -1
- package/dist/collection/components/modal/modal.js +31 -8
- package/dist/collection/components/modal/modal.md.css +12 -1
- package/dist/collection/components/modal/safe-area-utils.js +69 -90
- package/dist/collection/components/modal/utils.js +7 -0
- package/dist/collection/components/popover/animations/ios.enter.js +20 -6
- package/dist/collection/components/popover/animations/md.enter.js +19 -5
- package/dist/collection/components/popover/utils.js +64 -13
- package/dist/collection/components/select/select.ios.css +1 -1
- package/dist/collection/components/select/select.js +67 -38
- package/dist/collection/components/select/select.md.css +1 -1
- package/dist/collection/components/textarea/textarea.ios.css +15 -1
- package/dist/collection/components/textarea/textarea.js +5 -8
- package/dist/collection/components/textarea/textarea.md.css +15 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/attribute-controller.js +126 -0
- package/dist/collection/utils/forms/click-controller.js +70 -0
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/hardware-back-button.js +41 -12
- package/dist/collection/utils/helpers.js +44 -3
- package/dist/collection/utils/logging/index.js +4 -0
- package/dist/collection/utils/menu-controller/index.js +2 -1
- package/dist/collection/utils/overlays.js +64 -4
- package/dist/docs.json +9 -3
- package/dist/esm/{animation-BFNVlYum.js → animation-DmtJpz89.js} +2 -2
- package/dist/esm/{app-globals-BgX0BGL1.js → app-globals-CNfpAPW6.js} +1 -1
- package/dist/esm/attribute-controller-DPMIcbef.js +128 -0
- package/dist/esm/{button-active-BfOvDr3b.js → button-active-DVk40Sjl.js} +2 -2
- package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CHJaJ9aX.js} +1 -1
- package/dist/esm/{format-DDFE9jM5.js → format-Ck1cw5z7.js} +1 -1
- package/dist/esm/{framework-delegate-BwNhx9NR.js → framework-delegate-CDjM1vRH.js} +1 -1
- package/dist/esm/{haptic-Cq4UAeka.js → haptic-WXfMCob9.js} +1 -1
- package/dist/esm/{helpers-BSmc0nst.js → helpers-BJqKF1pr.js} +47 -4
- package/dist/esm/{index-DnA_7Bnx.js → index-BBASprVu.js} +4 -4
- package/dist/esm/{index-C23AVPx9.js → index-BpRUsN_W.js} +55 -29
- package/dist/esm/{index-D76bbuoi.js → index-CK8uF0iB.js} +1 -1
- package/dist/esm/{index-CJln0gS3.js → index-Clv8QC5L.js} +2 -3
- package/dist/esm/{index-BuPaALjU.js → index-DIouXecD.js} +6 -6
- package/dist/esm/{index-C1b9CLFg.js → index-TkLga3ma.js} +2 -2
- package/dist/esm/index.js +11 -13
- package/dist/esm/{input-shims-Dqk-Ou25.js → input-shims-C1iYF5JK.js} +5 -6
- package/dist/esm/{input.utils-rqoH22pW.js → input.utils-DZY_K8Po.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +11 -13
- package/dist/esm/ion-alert.entry.js +11 -13
- package/dist/esm/ion-app_8.entry.js +72 -24
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +23 -34
- package/dist/esm/ion-card_5.entry.js +19 -7
- package/dist/esm/ion-checkbox.entry.js +4 -4
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime.entry.js +33 -28
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
- package/dist/esm/ion-input-otp.entry.js +33 -8
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +12 -16
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +17 -8
- package/dist/esm/ion-loading.entry.js +7 -9
- package/dist/esm/ion-menu_3.entry.js +10 -11
- package/dist/esm/ion-modal.entry.js +115 -110
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +5 -6
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +108 -31
- package/dist/esm/ion-progress-bar.entry.js +3 -3
- package/dist/esm/ion-radio_2.entry.js +4 -4
- package/dist/esm/ion-range.entry.js +4 -4
- package/dist/esm/ion-refresher_2.entry.js +8 -9
- package/dist/esm/ion-reorder_2.entry.js +6 -7
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +4 -4
- package/dist/esm/ion-searchbar.entry.js +3 -3
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +3 -3
- package/dist/esm/ion-select-modal.entry.js +7 -9
- package/dist/esm/ion-select_3.entry.js +66 -48
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +6 -7
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +11 -15
- package/dist/esm/ion-toast.entry.js +7 -9
- package/dist/esm/ion-toggle.entry.js +6 -7
- package/dist/esm/{ionic-global-ZXjCXKH0.js → ionic-global-Cep6oYzK.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-CWAgfQ1r.js → ios.transition-B8netzsb.js} +4 -5
- package/dist/esm/{item-multiple-inputs-DZnIiOO_.js → item-multiple-inputs-Bd2LO7qK.js} +1 -1
- package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-B4Y-Gph8.js} +5 -3
- package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-Cmqp5iZD.js} +1 -1
- package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-B2NoF7bV.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-ZuqDDdDW.js → md.transition-DNCSSiXk.js} +4 -5
- package/dist/esm/{overlays-DKE0DgvE.js → overlays-DmDY-El7.js} +216 -10
- package/dist/esm/{select-option-render-CRP_teb1.js → select-option-render-BSDT9oSA.js} +2 -2
- package/dist/esm/{slot-mutation-controller-B5NpUZ-N.js → slot-mutation-controller-hAS2uJ7c.js} +69 -3
- package/dist/esm/{status-tap-Cv9gb3ja.js → status-tap-VGRBYwiC.js} +3 -3
- package/dist/esm/{swipe-back-De5HlmeM.js → swipe-back-tCNYR9ZM.js} +2 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-b9b4e85d.entry.js → p-00cd107d.entry.js} +1 -1
- package/dist/ionic/p-01b7e3f2.entry.js +4 -0
- package/dist/ionic/{p-9c5f2691.entry.js → p-0a789930.entry.js} +1 -1
- package/dist/ionic/p-0b09c60e.entry.js +4 -0
- package/dist/ionic/p-0c32c626.entry.js +4 -0
- package/dist/ionic/p-0f97175e.entry.js +4 -0
- package/dist/ionic/p-107a81a6.entry.js +4 -0
- package/dist/ionic/{p-ca1b8865.entry.js → p-230f510c.entry.js} +1 -1
- package/dist/ionic/p-27d96a9b.entry.js +4 -0
- package/dist/ionic/{p-db449915.entry.js → p-28251c5c.entry.js} +1 -1
- package/dist/ionic/{p-099b7f9f.entry.js → p-362dcd86.entry.js} +1 -1
- package/dist/ionic/p-4bd80334.entry.js +4 -0
- package/dist/ionic/p-4d785062.entry.js +4 -0
- package/dist/ionic/{p-efc0cf82.entry.js → p-4e4e5919.entry.js} +1 -1
- package/dist/ionic/{p-837db1b9.entry.js → p-4ed3c460.entry.js} +1 -1
- package/dist/ionic/{p-d8c138d9.entry.js → p-4f25b926.entry.js} +1 -1
- package/dist/ionic/{p-271c3640.entry.js → p-539d6c8e.entry.js} +1 -1
- package/dist/ionic/p-5bb24bce.entry.js +4 -0
- package/dist/ionic/p-60780b88.entry.js +4 -0
- package/dist/ionic/{p-54cbb0a7.entry.js → p-62c87f3d.entry.js} +1 -1
- package/dist/ionic/p-6317d620.entry.js +4 -0
- package/dist/ionic/{p-85599fe3.entry.js → p-64ac3864.entry.js} +1 -1
- package/dist/ionic/{p-191a651e.entry.js → p-6c7b5930.entry.js} +1 -1
- package/dist/ionic/{p-7fbb3319.entry.js → p-77252596.entry.js} +1 -1
- package/dist/ionic/p-7ce9c6f8.entry.js +4 -0
- package/dist/ionic/{p-8b80d9f9.entry.js → p-7db20410.entry.js} +1 -1
- package/dist/ionic/{p-5d9094ac.entry.js → p-7e9c2a97.entry.js} +1 -1
- package/dist/ionic/p-7l6ENjIV.js +4 -0
- package/dist/ionic/p-82abf431.entry.js +4 -0
- package/dist/ionic/p-8b79061e.entry.js +4 -0
- package/dist/ionic/{p-6e386853.entry.js → p-8c85e250.entry.js} +1 -1
- package/dist/ionic/{p-90f50a65.entry.js → p-8d651adb.entry.js} +1 -1
- package/dist/ionic/{p-dd01be0a.entry.js → p-8db08782.entry.js} +1 -1
- package/dist/ionic/p-91f3cd8b.entry.js +4 -0
- package/dist/ionic/{p-f0fb23c1.entry.js → p-930c3538.entry.js} +1 -1
- package/dist/ionic/{p-ee09ac9d.entry.js → p-9ffccbf1.entry.js} +1 -1
- package/dist/ionic/{p-CM5OBjTW.js → p-B0jcOZOE.js} +1 -1
- package/dist/ionic/p-B8IuTu_r.js +4 -0
- package/dist/ionic/p-BNXIurCt.js +4 -0
- package/{components/p-6ZLn6K5e.js → dist/ionic/p-BO10QT9r.js} +1 -1
- package/dist/ionic/p-BOLqP2-V.js +4 -0
- package/dist/ionic/{p-BMPN55of.js → p-BY4FwwBp.js} +1 -1
- package/dist/ionic/p-BdHBcCZF.js +4 -0
- package/{components/p-DiuOa1vw.js → dist/ionic/p-BexAj0yw.js} +1 -1
- package/dist/ionic/p-Bnc1L7Rk.js +4 -0
- package/dist/ionic/p-BpRUsN_W.js +6 -0
- package/dist/ionic/p-Bppj2PE0.js +4 -0
- package/dist/ionic/p-BuLlVedw.js +4 -0
- package/dist/ionic/p-Bx5x5GJV.js +4 -0
- package/dist/ionic/p-C1WYZOZj.js +4 -0
- package/dist/ionic/p-C2LaBx3E.js +4 -0
- package/dist/ionic/{p-Bd72UYI2.js → p-CXs4J83x.js} +1 -1
- package/dist/ionic/p-Co7eql8D.js +4 -0
- package/dist/ionic/p-D13gXhdC.js +4 -0
- package/dist/ionic/p-D926OmIX.js +4 -0
- package/dist/ionic/{p-T71k3C35.js → p-DPNVo1nr.js} +1 -1
- package/{components/p-C4VpVfrJ.js → dist/ionic/p-DQXtveHv.js} +1 -1
- package/dist/ionic/p-DXXGkPA8.js +4 -0
- package/dist/ionic/{p-C8XilMh0.js → p-DfvWlTdB.js} +1 -1
- package/dist/ionic/p-DriE1ZAo.js +4 -0
- package/dist/ionic/{p-D7jHfs0Y.js → p-DxftXYZp.js} +1 -1
- package/dist/ionic/{p-Do3zTvCA.js → p-SEecsUh7.js} +1 -1
- package/dist/ionic/p-a4389f13.entry.js +4 -0
- package/dist/ionic/p-af11d3c6.entry.js +4 -0
- package/dist/ionic/p-af56702e.entry.js +4 -0
- package/dist/ionic/{p-561af487.entry.js → p-b3aadfe8.entry.js} +1 -1
- package/dist/ionic/p-b5bcbbc1.entry.js +4 -0
- package/dist/ionic/p-b9ed3a52.entry.js +4 -0
- package/dist/ionic/{p-3bba83ee.entry.js → p-bfdbe24b.entry.js} +1 -1
- package/dist/ionic/{p-4712a8a9.entry.js → p-c250b6b0.entry.js} +1 -1
- package/dist/ionic/{p-38b9375b.entry.js → p-c293f854.entry.js} +1 -1
- package/dist/ionic/p-c81ec0e8.entry.js +4 -0
- package/dist/ionic/p-c83dbc12.entry.js +4 -0
- package/dist/ionic/p-d0e374f8.entry.js +4 -0
- package/dist/ionic/p-d72accc4.entry.js +4 -0
- package/dist/ionic/p-d9a3dfd1.entry.js +4 -0
- package/dist/ionic/p-e1haAYzm.js +4 -0
- package/dist/ionic/p-e7ab4def.entry.js +4 -0
- package/dist/ionic/{p-d6755739.entry.js → p-eb989dc9.entry.js} +1 -1
- package/dist/ionic/p-ec259ac5.entry.js +4 -0
- package/dist/ionic/{p-DYUjHcuH.js → p-nCAPr1Ah.js} +1 -1
- package/dist/types/components/button/button.d.ts +3 -12
- package/dist/types/components/card/card.d.ts +3 -1
- package/dist/types/components/content/content.d.ts +28 -3
- package/dist/types/components/datetime/datetime.d.ts +5 -10
- package/dist/types/components/input/input.d.ts +1 -0
- package/dist/types/components/input-otp/input-otp.d.ts +7 -0
- package/dist/types/components/item/item.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +9 -1
- package/dist/types/components/modal/safe-area-utils.d.ts +28 -14
- package/dist/types/components/modal/utils.d.ts +4 -0
- package/dist/types/components/popover/utils.d.ts +16 -3
- package/dist/types/components/select/select.d.ts +11 -0
- package/dist/types/components/textarea/textarea.d.ts +1 -0
- package/dist/types/components.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +61 -55
- package/dist/types/utils/attribute-controller.d.ts +56 -0
- package/dist/types/utils/config.d.ts +4 -1
- package/dist/types/utils/forms/click-controller.d.ts +36 -0
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/hardware-back-button.d.ts +11 -0
- package/dist/types/utils/helpers.d.ts +27 -2
- package/dist/types/utils/logging/index.d.ts +4 -0
- package/dist/types/utils/overlays.d.ts +20 -2
- package/hydrate/index.js +1249 -484
- package/hydrate/index.mjs +1249 -484
- package/package.json +3 -3
- package/components/p-1sJ0ZDPe.js +0 -4
- package/components/p-B1_TL6RQ.js +0 -4
- package/components/p-BT9-hMMz.js +0 -4
- package/components/p-BU8a2IhR.js +0 -4
- package/components/p-BW_SlU2D.js +0 -4
- package/components/p-BWoa-cki.js +0 -4
- package/components/p-BgkOsq-d.js +0 -4
- package/components/p-Bi-it1EH.js +0 -4
- package/components/p-C09TXohi.js +0 -4
- package/components/p-CG_zZq_I.js +0 -4
- package/components/p-CMRYD_yR.js +0 -4
- package/components/p-CNLioZ3B.js +0 -4
- package/components/p-CWAks_S_.js +0 -4
- package/components/p-Cd1WaN-0.js +0 -4
- package/components/p-CrAKlX71.js +0 -4
- package/components/p-Ctop2IWW.js +0 -4
- package/components/p-Cw6WocLJ.js +0 -4
- package/components/p-DFLJvuRK.js +0 -4
- package/components/p-DZRZic9C.js +0 -4
- package/components/p-DhNuxvJH.js +0 -4
- package/components/p-Djmz-ssp.js +0 -4
- package/components/p-DnBNYc7u.js +0 -4
- package/components/p-DwSXbQSz.js +0 -4
- package/components/p-M34T2gyX.js +0 -4
- package/components/p-YjMkHuvH.js +0 -4
- package/dist/cjs/hardware-back-button-Bu4Dzw8l.js +0 -121
- package/dist/cjs/index-DkNv4J_i.js +0 -10
- package/dist/esm/hardware-back-button-DmkiRgOT.js +0 -115
- package/dist/esm/index-ZjP4CjeZ.js +0 -7
- package/dist/ionic/p-0dcb7bb6.entry.js +0 -4
- package/dist/ionic/p-1347880c.entry.js +0 -4
- package/dist/ionic/p-1f24cb24.entry.js +0 -4
- package/dist/ionic/p-2ea4bb36.entry.js +0 -4
- package/dist/ionic/p-338a02e0.entry.js +0 -4
- package/dist/ionic/p-3e01c744.entry.js +0 -4
- package/dist/ionic/p-458715a9.entry.js +0 -4
- package/dist/ionic/p-4c3e50f8.entry.js +0 -4
- package/dist/ionic/p-5906ea6f.entry.js +0 -4
- package/dist/ionic/p-5cc09b40.entry.js +0 -4
- package/dist/ionic/p-612ea3b1.entry.js +0 -4
- package/dist/ionic/p-68cc89a6.entry.js +0 -4
- package/dist/ionic/p-77c96e08.entry.js +0 -4
- package/dist/ionic/p-7bfeccb3.entry.js +0 -4
- package/dist/ionic/p-7e394cc3.entry.js +0 -4
- package/dist/ionic/p-803059b6.entry.js +0 -4
- package/dist/ionic/p-9595e305.entry.js +0 -4
- package/dist/ionic/p-9ee9c5b6.entry.js +0 -4
- package/dist/ionic/p-BY6BzzPF.js +0 -4
- package/dist/ionic/p-BaeKWZ-a.js +0 -4
- package/dist/ionic/p-BgOvhHy_.js +0 -4
- package/dist/ionic/p-BhamHSw3.js +0 -4
- package/dist/ionic/p-BijjLYjT.js +0 -4
- package/dist/ionic/p-C23AVPx9.js +0 -6
- package/dist/ionic/p-CER8qW8Y.js +0 -4
- package/dist/ionic/p-CFuOr1Tu.js +0 -4
- package/dist/ionic/p-CIGNaXM1.js +0 -4
- package/dist/ionic/p-CMZYmFb4.js +0 -4
- package/dist/ionic/p-CkxVYPtX.js +0 -4
- package/dist/ionic/p-CmXuiRT6.js +0 -4
- package/dist/ionic/p-D5t_-oMk.js +0 -4
- package/dist/ionic/p-D6rHcCvc.js +0 -4
- package/dist/ionic/p-DLM95R4x.js +0 -4
- package/dist/ionic/p-D_gb-kdd.js +0 -4
- package/dist/ionic/p-DajLgJ4d.js +0 -4
- package/dist/ionic/p-ZjP4CjeZ.js +0 -4
- package/dist/ionic/p-a8df96c8.entry.js +0 -4
- package/dist/ionic/p-a8ff2489.entry.js +0 -4
- package/dist/ionic/p-aff52029.entry.js +0 -4
- package/dist/ionic/p-b3532b8d.entry.js +0 -4
- package/dist/ionic/p-cc4320d3.entry.js +0 -4
- package/dist/ionic/p-d526798a.entry.js +0 -4
- package/dist/ionic/p-ec00fd0d.entry.js +0 -4
- package/dist/ionic/p-f83b3e0c.entry.js +0 -4
- package/dist/ionic/p-fa50d493.entry.js +0 -4
- package/dist/ionic/p-zWf7R2xV.js +0 -4
|
@@ -34,6 +34,8 @@ const isLogLevelEnabled = (minimum) => {
|
|
|
34
34
|
* to indicate the library that is warning the developer.
|
|
35
35
|
*
|
|
36
36
|
* @param message - The string message to be logged to the console.
|
|
37
|
+
*
|
|
38
|
+
* @internal
|
|
37
39
|
*/
|
|
38
40
|
export const printIonWarning = (message, ...params) => {
|
|
39
41
|
if (isLogLevelEnabled(LogLevel.WARN)) {
|
|
@@ -46,6 +48,8 @@ export const printIonWarning = (message, ...params) => {
|
|
|
46
48
|
*
|
|
47
49
|
* @param message - The string message to be logged to the console.
|
|
48
50
|
* @param params - Additional arguments to supply to the console.error.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
49
53
|
*/
|
|
50
54
|
export const printIonError = (message, ...params) => {
|
|
51
55
|
if (isLogLevelEnabled(LogLevel.ERROR)) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { doc } from "../browser/index";
|
|
5
|
-
import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
|
|
5
|
+
import { MENU_BACK_BUTTON_PRIORITY, addCloseWatcherCondition } from "../hardware-back-button";
|
|
6
6
|
import { printIonWarning } from "../logging/index";
|
|
7
7
|
import { componentOnReady } from "../helpers";
|
|
8
8
|
import { menuOverlayAnimation } from "./animations/overlay";
|
|
@@ -184,6 +184,7 @@ const createMenuController = () => {
|
|
|
184
184
|
registerAnimation('reveal', menuRevealAnimation);
|
|
185
185
|
registerAnimation('push', menuPushAnimation);
|
|
186
186
|
registerAnimation('overlay', menuOverlayAnimation);
|
|
187
|
+
addCloseWatcherCondition(() => _getOpenSync() !== undefined);
|
|
187
188
|
doc?.addEventListener('ionBackButton', (ev) => {
|
|
188
189
|
const openMenu = _getOpenSync();
|
|
189
190
|
if (openMenu) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { doc } from "./browser/index";
|
|
5
5
|
import { focusFirstDescendant, focusLastDescendant, focusableQueryString } from "./focus-trap";
|
|
6
|
-
import { shouldUseCloseWatcher } from "./hardware-back-button";
|
|
6
|
+
import { addCloseWatcherCondition, shouldUseCloseWatcher, updateCloseWatcher } from "./hardware-back-button";
|
|
7
7
|
import { printIonError, printIonWarning } from "./logging/index";
|
|
8
8
|
import { config } from "../global/config";
|
|
9
9
|
import { getIonMode } from "../global/ionic-global";
|
|
@@ -13,6 +13,11 @@ import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
|
|
|
13
13
|
import { addEventListener, componentOnReady, focusVisibleElement, getElementRoot, removeEventListener, } from "./helpers";
|
|
14
14
|
let lastOverlayIndex = 0;
|
|
15
15
|
let lastId = 0;
|
|
16
|
+
/**
|
|
17
|
+
* Every overlay except toast, which doesn't trap
|
|
18
|
+
* focus or close on back.
|
|
19
|
+
*/
|
|
20
|
+
const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
|
|
16
21
|
export const activeAnimations = new WeakMap();
|
|
17
22
|
/**
|
|
18
23
|
* Determines if the overlay's backdrop is always blocking (no background interaction).
|
|
@@ -139,7 +144,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
139
144
|
* Should NOT include: Toast
|
|
140
145
|
*/
|
|
141
146
|
const trapKeyboardFocus = (ev, doc) => {
|
|
142
|
-
const lastOverlay = getPresentedOverlay(doc,
|
|
147
|
+
const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
|
|
143
148
|
const target = ev.target;
|
|
144
149
|
/**
|
|
145
150
|
* If no active overlay, ignore this event.
|
|
@@ -322,6 +327,11 @@ const connectListeners = (doc) => {
|
|
|
322
327
|
doc.addEventListener('focus', (ev) => {
|
|
323
328
|
trapKeyboardFocus(ev, doc);
|
|
324
329
|
}, true);
|
|
330
|
+
/**
|
|
331
|
+
* Whether the overlay actually dismisses is checked at press time,
|
|
332
|
+
* since `backdropDismiss` can change while it's open.
|
|
333
|
+
*/
|
|
334
|
+
addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
|
|
325
335
|
// handle back-button click
|
|
326
336
|
doc.addEventListener('ionBackButton', (ev) => {
|
|
327
337
|
const lastOverlay = getPresentedOverlay(doc);
|
|
@@ -445,7 +455,8 @@ export const setRootAriaHidden = (hidden = false) => {
|
|
|
445
455
|
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
446
456
|
* an overlay is removed from the DOM without going through
|
|
447
457
|
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
448
|
-
* overlay during a route change).
|
|
458
|
+
* overlay during a route change). Also releases the
|
|
459
|
+
* CloseWatcher if nothing is left to close.
|
|
449
460
|
*
|
|
450
461
|
* Should be called from an overlay's `disconnectedCallback`
|
|
451
462
|
* when the overlay was still presented at the time of removal.
|
|
@@ -454,6 +465,7 @@ export const cleanupRootFocusTrapAccessibility = () => {
|
|
|
454
465
|
if (typeof document === 'undefined') {
|
|
455
466
|
return;
|
|
456
467
|
}
|
|
468
|
+
updateCloseWatcher();
|
|
457
469
|
const remainingOverlays = getPresentedOverlays(document);
|
|
458
470
|
const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
|
|
459
471
|
if (!hasRemainingLocking) {
|
|
@@ -475,7 +487,9 @@ const applyRootLock = (el) => {
|
|
|
475
487
|
};
|
|
476
488
|
/**
|
|
477
489
|
* Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
|
|
478
|
-
* Call from `connectedCallback` when the overlay is still presented.
|
|
490
|
+
* Call from `connectedCallback` when the overlay is still presented. Also
|
|
491
|
+
* re-arms the CloseWatcher, which every overlay needs, so that happens
|
|
492
|
+
* before the `locksAppRoot` check.
|
|
479
493
|
*
|
|
480
494
|
* A synchronous move keeps the overlay connected, so the lock survives. A
|
|
481
495
|
* detach with a re-insert in a later task releases it, which is the shape a
|
|
@@ -485,6 +499,7 @@ export const restoreRootFocusTrapAccessibility = (overlayEl) => {
|
|
|
485
499
|
if (typeof document === 'undefined') {
|
|
486
500
|
return;
|
|
487
501
|
}
|
|
502
|
+
updateCloseWatcher();
|
|
488
503
|
const el = overlayEl;
|
|
489
504
|
if (!locksAppRoot(el)) {
|
|
490
505
|
return;
|
|
@@ -698,6 +713,11 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
|
|
|
698
713
|
printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
|
|
699
714
|
}
|
|
700
715
|
overlay.el.remove();
|
|
716
|
+
/**
|
|
717
|
+
* Release the back button if nothing
|
|
718
|
+
* else is left to close.
|
|
719
|
+
*/
|
|
720
|
+
updateCloseWatcher();
|
|
701
721
|
return true;
|
|
702
722
|
};
|
|
703
723
|
const getAppRoot = (doc) => {
|
|
@@ -706,6 +726,12 @@ const getAppRoot = (doc) => {
|
|
|
706
726
|
const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
|
|
707
727
|
// Make overlay visible in case it's hidden
|
|
708
728
|
baseEl.classList.remove('overlay-hidden');
|
|
729
|
+
/**
|
|
730
|
+
* Removing `overlay-hidden` makes the overlay count
|
|
731
|
+
* as presented, so back can dismiss it while it
|
|
732
|
+
* animates in.
|
|
733
|
+
*/
|
|
734
|
+
updateCloseWatcher();
|
|
709
735
|
const aniRoot = overlay.el;
|
|
710
736
|
const animation = animationBuilder(aniRoot, opts);
|
|
711
737
|
if (!overlay.animated || !config.getBoolean('animated', true)) {
|
|
@@ -764,6 +790,40 @@ export const safeCall = (handler, arg) => {
|
|
|
764
790
|
}
|
|
765
791
|
return undefined;
|
|
766
792
|
};
|
|
793
|
+
/**
|
|
794
|
+
* `--width` and `--height` values that leave an overlay spanning the viewport
|
|
795
|
+
* on that axis, so it reaches both edges. An empty value means the property
|
|
796
|
+
* was never overridden.
|
|
797
|
+
*/
|
|
798
|
+
const FULLSCREEN_SIZES = ['', '100%', '100vw', '100vh', '100dvw', '100dvh', '100svw', '100svh'];
|
|
799
|
+
/**
|
|
800
|
+
* `--width` and `--height` values that size an overlay to its content, leaving
|
|
801
|
+
* the rendered size dependent on the content and on `--max-width` or
|
|
802
|
+
* `--max-height`.
|
|
803
|
+
*/
|
|
804
|
+
const CONTENT_SIZES = ['auto', 'fit-content', 'min-content', 'max-content'];
|
|
805
|
+
/**
|
|
806
|
+
* How an overlay's `--width` or `--height` determines its used size:
|
|
807
|
+
*
|
|
808
|
+
* `fullscreen` spans the viewport on that axis. `content` depends on the
|
|
809
|
+
* overlay's content, so its used size is not known until layout. `definite`
|
|
810
|
+
* resolves independently of the overlay's content size.
|
|
811
|
+
*
|
|
812
|
+
* Values are lowercased because CSS keywords are case-insensitive, while a
|
|
813
|
+
* custom property preserves the case in which it was authored. Content values
|
|
814
|
+
* are matched as a suffix so vendor-prefixed values such as `-moz-fit-content`
|
|
815
|
+
* are recognized.
|
|
816
|
+
*/
|
|
817
|
+
export const getOverlaySizeType = (size) => {
|
|
818
|
+
const value = size.trim().toLowerCase();
|
|
819
|
+
if (FULLSCREEN_SIZES.includes(value)) {
|
|
820
|
+
return 'fullscreen';
|
|
821
|
+
}
|
|
822
|
+
if (CONTENT_SIZES.some((keyword) => value.endsWith(keyword))) {
|
|
823
|
+
return 'content';
|
|
824
|
+
}
|
|
825
|
+
return 'definite';
|
|
826
|
+
};
|
|
767
827
|
export const BACKDROP = 'backdrop';
|
|
768
828
|
export const GESTURE = 'gesture';
|
|
769
829
|
export const OVERLAY_GESTURE_PRIORITY = 39;
|
package/dist/docs.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-
|
|
2
|
+
"timestamp": "2026-10-09T04:07:06",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.45.2",
|
|
6
6
|
"typescriptVersion": "5.8.3"
|
|
7
7
|
},
|
|
8
8
|
"components": [
|
|
@@ -31461,7 +31461,13 @@
|
|
|
31461
31461
|
"docsTags": []
|
|
31462
31462
|
}
|
|
31463
31463
|
],
|
|
31464
|
-
"listeners": [
|
|
31464
|
+
"listeners": [
|
|
31465
|
+
{
|
|
31466
|
+
"event": "click",
|
|
31467
|
+
"capture": true,
|
|
31468
|
+
"passive": false
|
|
31469
|
+
}
|
|
31470
|
+
],
|
|
31465
31471
|
"styles": [
|
|
31466
31472
|
{
|
|
31467
31473
|
"name": "--background",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { w as win } from './
|
|
4
|
+
import { c as printIonError } from './index-BpRUsN_W.js';
|
|
5
|
+
import { w as win } from './helpers-BJqKF1pr.js';
|
|
6
6
|
|
|
7
7
|
let animationPrefix;
|
|
8
8
|
const getAnimationPrefix = (el) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { i as initialize } from './ionic-global-
|
|
4
|
+
import { i as initialize } from './ionic-global-Cep6oYzK.js';
|
|
5
5
|
|
|
6
6
|
const appGlobalScript = initialize || (() => {});
|
|
7
7
|
const globalScripts = appGlobalScript;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { b as inheritAttributes, w as win, q as ariaAttributes } from './helpers-BJqKF1pr.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Copies a set of attributes off the host element so they can be applied to an element
|
|
8
|
+
* inside the shadow root, then keeps that copy in sync as the host attributes change.
|
|
9
|
+
* Using `inheritAttributes` alone copies once at load, so anything written to the host
|
|
10
|
+
* afterwards never reaches the element the assistive technology reads.
|
|
11
|
+
*
|
|
12
|
+
* Create the controller in `componentWillLoad`. It takes the initial copy and starts
|
|
13
|
+
* watching right away, so `init()` is only needed to resume after a move.
|
|
14
|
+
*
|
|
15
|
+
* Two things to know before adopting it. Only the initial copy removes the attributes
|
|
16
|
+
* from the host, so a value written after load sits on the host as well as on the
|
|
17
|
+
* element it is applied to, which matters if the host has a role of its own. And an
|
|
18
|
+
* attribute from the initial markup can never be removed, only overwritten, since the
|
|
19
|
+
* copy already took it off the host and a `removeAttribute` there fires no mutation.
|
|
20
|
+
* An empty string works for `aria-label` and friends, but a token-valued attribute
|
|
21
|
+
* has to be set to its default instead, so `aria-pressed="false"` rather than empty.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
* @param el The host element to copy from and watch.
|
|
25
|
+
* @param attributes The attributes to copy and watch.
|
|
26
|
+
* @param onChange Called after `attributes` changes, so the component can re-render.
|
|
27
|
+
* @param hostOwnedAttributes Attributes copied at load but not watched. Use it for
|
|
28
|
+
* attributes the component renders on its own `<Host>`, since a later change to one of
|
|
29
|
+
* those is the component's own write, and for attributes that would put a second node in
|
|
30
|
+
* the accessibility tree if the host kept a copy alongside the one we apply.
|
|
31
|
+
*/
|
|
32
|
+
const createAttributeController = (el, attributes, onChange, hostOwnedAttributes = []) => {
|
|
33
|
+
let inherited = inheritAttributes(el, attributes);
|
|
34
|
+
let observer;
|
|
35
|
+
const watchedAttributes = attributes.filter((attr) => !hostOwnedAttributes.includes(attr));
|
|
36
|
+
/**
|
|
37
|
+
* The names still on the host, which is everything written after load. The initial
|
|
38
|
+
* copy removes what it captures, so a missing attribute only counts as a removal
|
|
39
|
+
* when its name is in here.
|
|
40
|
+
*/
|
|
41
|
+
const hostWritten = new Set();
|
|
42
|
+
const setPresence = (name, value) => {
|
|
43
|
+
if (value === null) {
|
|
44
|
+
hostWritten.delete(name);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
hostWritten.add(name);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Nothing is watching while the host is out of the tree, since `disconnectedCallback`
|
|
52
|
+
* calls `destroy()`, and `forceUpdate` is a no-op on a disconnected host anyway. So
|
|
53
|
+
* the host has to be re-read on the way back in.
|
|
54
|
+
*/
|
|
55
|
+
const readMissedChanges = () => {
|
|
56
|
+
const changed = {};
|
|
57
|
+
for (const name of watchedAttributes) {
|
|
58
|
+
const value = el.getAttribute(name);
|
|
59
|
+
const wasOnHost = hostWritten.has(name);
|
|
60
|
+
setPresence(name, value);
|
|
61
|
+
/**
|
|
62
|
+
* An attribute that was never written to the host is missing because the initial
|
|
63
|
+
* copy took it, not because the developer cleared it.
|
|
64
|
+
*/
|
|
65
|
+
if ((value === null && !wasOnHost) || value === inherited[name]) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
changed[name] = value;
|
|
69
|
+
}
|
|
70
|
+
if (Object.keys(changed).length > 0) {
|
|
71
|
+
inherited = { ...inherited, ...changed };
|
|
72
|
+
onChange();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const init = () => {
|
|
76
|
+
// There is no MutationObserver in SSR or the hydrate build.
|
|
77
|
+
if (observer !== undefined || watchedAttributes.length === 0 || win === undefined || !('MutationObserver' in win)) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
readMissedChanges();
|
|
81
|
+
observer = new MutationObserver((mutations) => {
|
|
82
|
+
const changed = {};
|
|
83
|
+
for (const mutation of mutations) {
|
|
84
|
+
const name = mutation.attributeName;
|
|
85
|
+
// A removed attribute reads back as null, which clears it from the element the
|
|
86
|
+
// values are spread onto.
|
|
87
|
+
const value = el.getAttribute(name);
|
|
88
|
+
setPresence(name, value);
|
|
89
|
+
changed[name] = value;
|
|
90
|
+
}
|
|
91
|
+
inherited = { ...inherited, ...changed };
|
|
92
|
+
onChange();
|
|
93
|
+
});
|
|
94
|
+
observer.observe(el, { attributeFilter: watchedAttributes });
|
|
95
|
+
};
|
|
96
|
+
const destroy = () => {
|
|
97
|
+
observer?.disconnect();
|
|
98
|
+
observer = undefined;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Has to run after the initial copy, because that copy removes the attributes from the
|
|
102
|
+
* host and an observer armed any earlier would read the removal as a developer clearing
|
|
103
|
+
* them.
|
|
104
|
+
*/
|
|
105
|
+
init();
|
|
106
|
+
return {
|
|
107
|
+
get attributes() {
|
|
108
|
+
return inherited;
|
|
109
|
+
},
|
|
110
|
+
init,
|
|
111
|
+
destroy,
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* The `createAttributeController` equivalent of `inheritAriaAttributes`, which copies and
|
|
116
|
+
* watches every ARIA attribute plus `role`.
|
|
117
|
+
*
|
|
118
|
+
* @internal
|
|
119
|
+
* @param el The host element to copy from and watch.
|
|
120
|
+
* @param onChange Called after the attributes change, so the component can re-render.
|
|
121
|
+
* @param hostOwnedAttributes Attributes copied at load but not watched. See
|
|
122
|
+
* `createAttributeController`.
|
|
123
|
+
*/
|
|
124
|
+
const createAriaAttributeController = (el, onChange, hostOwnedAttributes = []) => {
|
|
125
|
+
return createAttributeController(el, ariaAttributes, onChange, hostOwnedAttributes);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export { createAttributeController as a, createAriaAttributeController as c };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { w as writeTask } from './index-
|
|
5
|
-
import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-
|
|
4
|
+
import { w as writeTask } from './index-BpRUsN_W.js';
|
|
5
|
+
import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-WXfMCob9.js';
|
|
6
6
|
import { createGesture } from './index-BmLuEdV7.js';
|
|
7
7
|
|
|
8
8
|
const createButtonActiveGesture = (el, isButton) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { c as componentOnReady } from './helpers-
|
|
4
|
+
import { c as componentOnReady } from './helpers-BJqKF1pr.js';
|
|
5
5
|
|
|
6
6
|
// TODO(FW-2832): types
|
|
7
7
|
const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { c as printIonError } from './index-BpRUsN_W.js';
|
|
5
5
|
import { i as isRTL } from './dir-Dojwmvde.js';
|
|
6
6
|
|
|
7
|
+
const win = typeof window !== 'undefined' ? window : undefined;
|
|
8
|
+
const doc = typeof document !== 'undefined' ? document : undefined;
|
|
9
|
+
|
|
7
10
|
const transitionEndAsync = (el, expectedDuration = 0) => {
|
|
8
11
|
return new Promise((resolve) => {
|
|
9
12
|
transitionEnd(el, expectedDuration, resolve);
|
|
@@ -83,8 +86,8 @@ const hasLazyBuild = (stencilEl) => {
|
|
|
83
86
|
* helper function should be called in componentWillLoad and assigned to a variable
|
|
84
87
|
* that is later used in the render function.
|
|
85
88
|
*
|
|
86
|
-
* This
|
|
87
|
-
* does not trigger a re-render.
|
|
89
|
+
* This copies once. Use `createAttributeController` instead when the attributes can
|
|
90
|
+
* change after load, since a host attribute change does not trigger a re-render.
|
|
88
91
|
*/
|
|
89
92
|
const inheritAttributes = (el, attributes = []) => {
|
|
90
93
|
const attributeObject = {};
|
|
@@ -103,6 +106,8 @@ const inheritAttributes = (el, attributes = []) => {
|
|
|
103
106
|
* List of available ARIA attributes + `role`.
|
|
104
107
|
* Removed deprecated attributes.
|
|
105
108
|
* https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes
|
|
109
|
+
*
|
|
110
|
+
* @internal Exported for `attribute-controller.ts`, which needs the same set.
|
|
106
111
|
*/
|
|
107
112
|
const ariaAttributes = [
|
|
108
113
|
'role',
|
|
@@ -174,6 +179,44 @@ const addEventListener = (el, eventName, callback, opts) => {
|
|
|
174
179
|
const removeEventListener = (el, eventName, callback, opts) => {
|
|
175
180
|
return el.removeEventListener(eventName, callback, opts);
|
|
176
181
|
};
|
|
182
|
+
/**
|
|
183
|
+
* Calls back when a CSS custom property that resolves to a length changes,
|
|
184
|
+
* which no event covers. The probe inherits the property from `hostEl` and
|
|
185
|
+
* uses it as its height, turning a property change into a size change that
|
|
186
|
+
* `ResizeObserver` can detect.
|
|
187
|
+
*
|
|
188
|
+
* The callback receives the probe's height. For length values, this matches
|
|
189
|
+
* the resolved property value. For other values, such as `fit-content`, the
|
|
190
|
+
* probe remains at zero, so the value only signals that the property changed.
|
|
191
|
+
* Percentages resolve against the probe's containing block, not the element
|
|
192
|
+
* where the property is ultimately used.
|
|
193
|
+
*
|
|
194
|
+
* Pass `initialValue` when the caller has already read the property so that
|
|
195
|
+
* changes occurring before the observer's first delivery are not missed.
|
|
196
|
+
* Without it, the first delivery establishes the baseline.
|
|
197
|
+
*/
|
|
198
|
+
const onCustomPropertyChange = (hostEl, property, callback, initialValue) => {
|
|
199
|
+
const doc = win?.document;
|
|
200
|
+
if (!doc || !hostEl || typeof ResizeObserver === 'undefined') {
|
|
201
|
+
return () => undefined;
|
|
202
|
+
}
|
|
203
|
+
const probe = doc.createElement('div');
|
|
204
|
+
probe.style.cssText = `position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;height:var(${property},0px);`;
|
|
205
|
+
hostEl.appendChild(probe);
|
|
206
|
+
let lastHeight = initialValue;
|
|
207
|
+
const observer = new ResizeObserver((entries) => {
|
|
208
|
+
const { height } = entries[0].contentRect;
|
|
209
|
+
if (lastHeight !== undefined && height !== lastHeight) {
|
|
210
|
+
callback(height);
|
|
211
|
+
}
|
|
212
|
+
lastHeight = height;
|
|
213
|
+
});
|
|
214
|
+
observer.observe(probe);
|
|
215
|
+
return () => {
|
|
216
|
+
observer.disconnect();
|
|
217
|
+
probe.remove();
|
|
218
|
+
};
|
|
219
|
+
};
|
|
177
220
|
/**
|
|
178
221
|
* Gets the root context of a shadow dom element
|
|
179
222
|
* On newer browsers this will be the shadowRoot,
|
|
@@ -340,4 +383,4 @@ const isSafeNumber = (input) => {
|
|
|
340
383
|
return typeof input === 'number' && !isNaN(input) && isFinite(input);
|
|
341
384
|
};
|
|
342
385
|
|
|
343
|
-
export { renderHiddenInput as a, inheritAttributes as b, componentOnReady as c, debounceEvent as d, clamp as e, addEventListener as f, getElementRoot as g, hasLazyBuild as h, inheritAriaAttributes as i, isSafeNumber as j, hasShadowDom as k, assert as l, removeEventListener as m,
|
|
386
|
+
export { renderHiddenInput as a, inheritAttributes as b, componentOnReady as c, debounceEvent as d, clamp as e, addEventListener as f, getElementRoot as g, hasLazyBuild as h, inheritAriaAttributes as i, isSafeNumber as j, hasShadowDom as k, assert as l, removeEventListener as m, doc as n, onCustomPropertyChange as o, focusVisibleElement as p, ariaAttributes as q, raf as r, isEndSide as s, transitionEndAsync as t, debounce as u, shallowEqualStringMap as v, win as w, pointerCoord as x };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { r as raf } from './helpers-
|
|
4
|
+
import { i as config, a as printIonWarning, w as writeTask, B as Build } from './index-BpRUsN_W.js';
|
|
5
|
+
import { r as raf } from './helpers-BJqKF1pr.js';
|
|
6
6
|
|
|
7
7
|
const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
|
8
8
|
const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
|
|
@@ -118,8 +118,8 @@ const createFocusController = () => {
|
|
|
118
118
|
};
|
|
119
119
|
const LAST_FOCUS = 'ion-last-focus';
|
|
120
120
|
|
|
121
|
-
const iosTransitionAnimation = () => import('./ios.transition-
|
|
122
|
-
const mdTransitionAnimation = () => import('./md.transition-
|
|
121
|
+
const iosTransitionAnimation = () => import('./ios.transition-B8netzsb.js');
|
|
122
|
+
const mdTransitionAnimation = () => import('./md.transition-DNCSSiXk.js');
|
|
123
123
|
const focusController = createFocusController();
|
|
124
124
|
// TODO(FW-2832): types
|
|
125
125
|
/**
|