voyager-ionic-core 9.0.1 → 9.0.6
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-Hp8t4RMX.js → p-6sKRBFnK.js} +1 -1
- package/components/{p-qAXsfUff.js → p-B8HBLiYi.js} +1 -1
- package/{dist/ionic/p-Do3zTvCA.js → components/p-BEiYs-sz.js} +1 -1
- package/components/p-BKeulLTJ.js +4 -0
- package/components/{p-5ldEpNdG.js → p-BKxLivx4.js} +1 -1
- package/components/{p-BYJRZKHa.js → p-BLjEwM6v.js} +1 -1
- package/components/{p-Cd1WaN-0.js → p-BNnmwjuy.js} +1 -1
- package/components/{p-COO0eJOA.js → p-BSJriPuC.js} +1 -1
- package/components/p-BUVGbkSc.js +4 -0
- package/components/{p-DL13ieTa.js → p-B_tZQKpS.js} +1 -1
- package/components/p-BexLz2XV.js +4 -0
- package/components/p-BinR4_P7.js +4 -0
- package/components/{p-DxhHlJln.js → p-BrOSQhkA.js} +1 -1
- package/components/p-BriaEJK8.js +4 -0
- package/components/p-BsLM9eQu.js +4 -0
- package/components/{p-DhNuxvJH.js → p-Bu6O-veK.js} +1 -1
- package/components/{p-DJR0R0e1.js → p-C7rB-0-1.js} +1 -1
- package/components/{p-6ZLn6K5e.js → p-C9ioHZq-.js} +1 -1
- package/components/p-CAQG0btC.js +4 -0
- package/components/{p-DMBiAyOR.js → p-CHHkdXfP.js} +1 -1
- package/components/p-CJgshb3W.js +4 -0
- package/components/p-CQjNc-Pz.js +4 -0
- package/components/{p-CJgnoKcN.js → p-CTUMJM0R.js} +1 -1
- package/components/{p-C4VpVfrJ.js → p-CVVUo4J1.js} +1 -1
- package/components/{p-B4lxwJ8N.js → p-CXy2v7GI.js} +1 -1
- package/components/{p-BQyuFxYc.js → p-C_NQIzjP.js} +1 -1
- package/components/{p-D7wDJdFn.js → p-Canp1qah.js} +1 -1
- package/components/p-CcQQ8oRo.js +4 -0
- package/components/{p-GGbIHyEF.js → p-CiFFeRH9.js} +1 -1
- package/components/p-CiXOsJF2.js +4 -0
- package/components/p-Ctw69DyZ.js +4 -0
- package/components/{p-DngGb-NV.js → p-CvzE7FFp.js} +1 -1
- package/components/{p-TWw4e4sO.js → p-CzykzqAO.js} +1 -1
- package/components/p-D0jSx7rE.js +4 -0
- package/components/{p-C-NbvXu4.js → p-D4NOsSCE.js} +1 -1
- package/components/{p-cEN43Ahr.js → p-DGUed0uX.js} +1 -1
- package/components/p-DM2jMsSO.js +4 -0
- package/components/p-DPyjiKOq.js +4 -0
- package/components/{p-BF48Oc0v.js → p-DSmHJ2DH.js} +1 -1
- package/components/p-DWGgvN5e.js +4 -0
- package/components/p-DlUdjUlf.js +4 -0
- package/components/{p-DM1gJSMP.js → p-Dlr7b3_2.js} +1 -1
- package/components/p-F1rV0pyK.js +4 -0
- package/components/{p-DFLJvuRK.js → p-LH1I_Zhd.js} +1 -1
- package/components/p-PPagT42x.js +4 -0
- package/components/{p-CqbGBmqb.js → p-RJT5zTbD.js} +1 -1
- package/components/p-T2dnrBya.js +4 -0
- package/components/p-WMQuK_Tj.js +4 -0
- package/components/p-eJpG4UbM.js +4 -0
- package/components/p-fFx6WCTj.js +4 -0
- package/{dist/ionic/p-BgOvhHy_.js → components/p-q2WJ5Igc.js} +1 -1
- package/components/{p-D5w_FlVa.js → p-y7Nhe3de.js} +1 -1
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{animation-Kd1N7WTN.js → animation-BFKyYY11.js} +3 -3
- package/dist/cjs/{app-globals-b1G4t26O.js → app-globals-BLTzqkrC.js} +1 -1
- package/dist/cjs/attribute-controller-CXIeB0Mn.js +131 -0
- package/dist/cjs/{button-active-CQCFubJJ.js → button-active-CEQaiV9N.js} +2 -2
- package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-BMzmHhwe.js} +3 -3
- package/dist/cjs/{format-bHU8N1g5.js → format-CdRlDqPs.js} +1 -1
- package/dist/cjs/{framework-delegate-d-fWfeI6.js → framework-delegate-DTLbqaaO.js} +1 -1
- package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-CJVUv_GB.js} +1 -1
- package/dist/cjs/{helpers-7wzdhdeg.js → helpers-Crluoxqu.js} +50 -3
- package/dist/cjs/{index-DtvKGwdh.js → index-BAM4223M.js} +2 -2
- package/dist/cjs/{index-C74Q3t6a.js → index-BKpybYNI.js} +7 -8
- package/dist/cjs/{index-BbqUBe2T.js → index-BSD7toMO.js} +10 -8
- package/dist/cjs/{index-DFNrCX7M.js → index-CElfU-dK.js} +8 -9
- package/dist/cjs/{index-CQfEIyLK.js → index-CgXTRA_-.js} +4 -4
- package/dist/cjs/{index-DXoo08JC.js → index-SAR1xwtW.js} +25 -12
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{input-shims-VJIiKBKv.js → input-shims-CHghGZe-.js} +16 -17
- package/dist/cjs/{input.utils-EHVE2RK_.js → input.utils-BBZr0wjw.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 +3 -3
- 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 +15 -17
- 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-C1h8Yi_K.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-DYGiD6gM.js → ios.transition-YFSxiyP_.js} +4 -5
- package/dist/cjs/{item-multiple-inputs-Dv6qrMhm.js → item-multiple-inputs-h2PyAFzG.js} +1 -1
- package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-C-C7xMKk.js} +1 -1
- package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-Cv-LNReK.js} +5 -3
- package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-CLcFxSnb.js} +9 -9
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CrSkaoz6.js → md.transition-Cm8yg0UK.js} +4 -5
- package/dist/cjs/{overlays-BR21NUIG.js → overlays-C68wNDWY.js} +162 -9
- package/dist/cjs/{select-option-render-CrbLc-1j.js → select-option-render-C-Yh9yZG.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-zixZ5LyH.js} +73 -5
- package/dist/cjs/{status-tap-CNP5eD1R.js → status-tap-C3frTJ4c.js} +3 -3
- package/dist/cjs/{swipe-back-CSIJQfu5.js → swipe-back-ChrfFzIe.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/item/item.js +15 -6
- 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/helpers.js +44 -3
- package/dist/collection/utils/logging/index.js +4 -0
- package/dist/collection/utils/overlays.js +34 -0
- package/dist/collection/utils/sanitization/index.js +10 -8
- package/dist/docs.json +9 -3
- package/dist/esm/{animation-BFNVlYum.js → animation-CFd8Olt3.js} +2 -2
- package/dist/esm/{app-globals-BgX0BGL1.js → app-globals-7GHLBkwd.js} +1 -1
- package/dist/esm/attribute-controller-Cn665x42.js +128 -0
- package/dist/esm/{button-active-BfOvDr3b.js → button-active-DMuYeDQN.js} +2 -2
- package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CoEgIpR9.js} +1 -1
- package/dist/esm/{format-DDFE9jM5.js → format-C9zPmwKU.js} +1 -1
- package/dist/esm/{framework-delegate-BwNhx9NR.js → framework-delegate-DeT5pmPB.js} +1 -1
- package/dist/esm/{haptic-Cq4UAeka.js → haptic-Dxm7ZmT5.js} +1 -1
- package/dist/esm/{helpers-BSmc0nst.js → helpers-B54ynME_.js} +47 -4
- package/dist/esm/{index-C1b9CLFg.js → index--21qeSt0.js} +2 -2
- package/dist/esm/{index-DnA_7Bnx.js → index-B8iieOdw.js} +4 -4
- package/dist/esm/{index-BuPaALjU.js → index-B9jhwvmO.js} +5 -6
- package/dist/esm/{index-CqoUoxgG.js → index-D4ZMZz_3.js} +10 -8
- package/dist/esm/{index-C23AVPx9.js → index-D9OR05yj.js} +26 -13
- package/dist/esm/{index-CJln0gS3.js → index-D_xZtbw6.js} +2 -3
- package/dist/esm/index.js +11 -13
- package/dist/esm/{input-shims-Dqk-Ou25.js → input-shims-MCrhq67U.js} +5 -6
- package/dist/esm/{input.utils-rqoH22pW.js → input.utils-B-IIWrwT.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 +3 -3
- 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 +7 -9
- 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-B-G43ddm.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-CWAgfQ1r.js → ios.transition-CRfGj4Mo.js} +4 -5
- package/dist/esm/{item-multiple-inputs-DZnIiOO_.js → item-multiple-inputs-BSD9wGHO.js} +1 -1
- package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-DDw62P0D.js} +5 -3
- package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-Dzjet5wD.js} +2 -2
- package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-ly3M0GO7.js} +1 -1
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-ZuqDDdDW.js → md.transition-wqThNy_C.js} +4 -5
- package/dist/esm/{overlays-DKE0DgvE.js → overlays-BQnV0HAU.js} +156 -7
- package/dist/esm/{select-option-render-1W6W9pbC.js → select-option-render-CGxPejmz.js} +2 -2
- package/dist/esm/{slot-mutation-controller-B5NpUZ-N.js → slot-mutation-controller-C3s4-_YN.js} +69 -3
- package/dist/esm/{status-tap-Cv9gb3ja.js → status-tap-DRx9wSD_.js} +3 -3
- package/dist/esm/{swipe-back-De5HlmeM.js → swipe-back-CXmdi75W.js} +2 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-8b80d9f9.entry.js → p-0517aec4.entry.js} +1 -1
- package/dist/ionic/{p-ee09ac9d.entry.js → p-083b1119.entry.js} +1 -1
- package/dist/ionic/p-0ab133d6.entry.js +4 -0
- package/dist/ionic/{p-271c3640.entry.js → p-1110da0d.entry.js} +1 -1
- package/dist/ionic/p-1213b719.entry.js +4 -0
- package/dist/ionic/p-150f350e.entry.js +4 -0
- package/dist/ionic/{p-38b9375b.entry.js → p-20d1ac29.entry.js} +1 -1
- package/dist/ionic/p-24b0a961.entry.js +4 -0
- package/dist/ionic/{p-f0fb23c1.entry.js → p-2e6e933d.entry.js} +1 -1
- package/dist/ionic/p-30dcf43b.entry.js +4 -0
- package/dist/ionic/p-336ea4b8.entry.js +4 -0
- package/dist/ionic/{p-b9b4e85d.entry.js → p-378341d1.entry.js} +1 -1
- package/dist/ionic/{p-191a651e.entry.js → p-37f46670.entry.js} +1 -1
- package/dist/ionic/p-3a5faaa8.entry.js +4 -0
- package/dist/ionic/{p-efc0cf82.entry.js → p-3c4b0ba7.entry.js} +1 -1
- package/dist/ionic/p-42b2a992.entry.js +4 -0
- package/dist/ionic/p-49a16200.entry.js +4 -0
- package/dist/ionic/{p-837db1b9.entry.js → p-4dbb2f4f.entry.js} +1 -1
- package/dist/ionic/p-52dc3309.entry.js +4 -0
- package/dist/ionic/{p-85599fe3.entry.js → p-58f914ee.entry.js} +1 -1
- package/dist/ionic/{p-561af487.entry.js → p-5b9666be.entry.js} +1 -1
- package/dist/ionic/p-5c19330c.entry.js +4 -0
- package/dist/ionic/{p-3bba83ee.entry.js → p-61b304c8.entry.js} +1 -1
- package/dist/ionic/p-624f2fa8.entry.js +4 -0
- package/dist/ionic/p-636349e2.entry.js +4 -0
- package/dist/ionic/{p-d8c138d9.entry.js → p-6865f0e1.entry.js} +1 -1
- package/dist/ionic/p-7441ed2b.entry.js +4 -0
- package/dist/ionic/p-76309bab.entry.js +4 -0
- package/dist/ionic/p-83448626.entry.js +4 -0
- package/dist/ionic/{p-5d9094ac.entry.js → p-834afcf7.entry.js} +1 -1
- package/dist/ionic/{p-099b7f9f.entry.js → p-93cd738b.entry.js} +1 -1
- package/dist/ionic/{p-d6755739.entry.js → p-9b78fedf.entry.js} +1 -1
- package/dist/ionic/p-9dd9788c.entry.js +4 -0
- package/dist/ionic/{p-DYUjHcuH.js → p-B4ELlbJE.js} +1 -1
- package/dist/ionic/p-B4wzg4z4.js +4 -0
- package/dist/ionic/p-B4xjg_Qu.js +4 -0
- package/dist/ionic/{p-T71k3C35.js → p-BCgqWm-V.js} +1 -1
- package/dist/ionic/p-BChRVdVv.js +4 -0
- package/dist/ionic/{p-DTxBioUO.js → p-BUB5OrpU.js} +1 -1
- package/dist/ionic/p-BVEsh7-M.js +4 -0
- package/dist/ionic/p-Ba6ZV-qU.js +4 -0
- package/dist/ionic/p-BhMQahM6.js +4 -0
- package/dist/ionic/p-BtHAx8im.js +4 -0
- package/dist/ionic/{p-DZ6Hmc-8.js → p-Bv-6401R.js} +1 -1
- package/dist/ionic/{p-C8XilMh0.js → p-CCik51Nv.js} +1 -1
- package/dist/ionic/p-CTmJSZcs.js +4 -0
- package/dist/ionic/{p-BaeKWZ-a.js → p-CVwXN07G.js} +1 -1
- package/dist/ionic/p-CgQdInM0.js +4 -0
- package/{components/p-BJr2B5hZ.js → dist/ionic/p-CrAPHbJ3.js} +1 -1
- package/dist/ionic/p-CsWrz1c2.js +4 -0
- package/dist/ionic/p-D5akOqD0.js +4 -0
- package/dist/ionic/{p-C23AVPx9.js → p-D9OR05yj.js} +2 -2
- package/dist/ionic/{p-D4OrdtJf.js → p-DHf9V6zI.js} +1 -1
- package/dist/ionic/{p-Bd72UYI2.js → p-DNxEB9-T.js} +1 -1
- package/dist/ionic/p-DZUqAr_6.js +4 -0
- package/dist/ionic/{p-CM5OBjTW.js → p-DffXRKHu.js} +1 -1
- package/dist/ionic/{p-BMPN55of.js → p-DxvRP6ld.js} +1 -1
- package/dist/ionic/p-Dzew6Qv7.js +4 -0
- package/dist/ionic/p-PkaVMJga.js +4 -0
- package/dist/ionic/{p-4712a8a9.entry.js → p-b0a3dd1a.entry.js} +1 -1
- package/dist/ionic/p-b1164028.entry.js +4 -0
- package/dist/ionic/{p-ca1b8865.entry.js → p-b710b4b8.entry.js} +1 -1
- package/dist/ionic/{p-6e386853.entry.js → p-b9659d21.entry.js} +1 -1
- package/dist/ionic/{p-68cc89a6.entry.js → p-ba7bd621.entry.js} +1 -1
- package/dist/ionic/{p-db449915.entry.js → p-c2a23101.entry.js} +1 -1
- package/dist/ionic/p-daaecea3.entry.js +4 -0
- package/dist/ionic/p-e05073f6.entry.js +4 -0
- package/dist/ionic/{p-90f50a65.entry.js → p-e137f724.entry.js} +1 -1
- package/dist/ionic/p-e1969fd1.entry.js +4 -0
- package/dist/ionic/{p-7fbb3319.entry.js → p-e338693a.entry.js} +1 -1
- package/dist/ionic/p-e4c3f17f.entry.js +4 -0
- package/dist/ionic/p-e7414c33.entry.js +4 -0
- package/dist/ionic/{p-dd01be0a.entry.js → p-eb762f80.entry.js} +1 -1
- package/dist/ionic/{p-ec00fd0d.entry.js → p-edcb63e5.entry.js} +1 -1
- package/dist/ionic/p-f19e50f8.entry.js +4 -0
- package/dist/ionic/p-f9057f70.entry.js +4 -0
- package/dist/ionic/{p-9c5f2691.entry.js → p-f99cf5aa.entry.js} +1 -1
- package/dist/ionic/{p-54cbb0a7.entry.js → p-fee863dc.entry.js} +1 -1
- package/dist/ionic/p-kKvGoaEe.js +4 -0
- package/dist/ionic/p-tXpzvta8.js +4 -0
- package/dist/ionic/p-vPo3vRFc.js +4 -0
- 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/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/forms/click-controller.d.ts +36 -0
- package/dist/types/utils/forms/index.d.ts +1 -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 +15 -0
- package/dist/types/utils/sanitization/index.d.ts +2 -2
- package/hydrate/index.js +817 -299
- package/hydrate/index.mjs +817 -299
- package/package.json +4 -4
- package/components/p-1sJ0ZDPe.js +0 -4
- package/components/p-BNBnVi_1.js +0 -4
- package/components/p-BT9-hMMz.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-C0493tbX.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-CrAKlX71.js +0 -4
- package/components/p-Cw6WocLJ.js +0 -4
- package/components/p-DGPjJNOU.js +0 -4
- package/components/p-DZRZic9C.js +0 -4
- package/components/p-DiuOa1vw.js +0 -4
- package/components/p-Dj40C8gm.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-06c6b540.entry.js +0 -4
- 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-2c52fe3e.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-4c3e50f8.entry.js +0 -4
- package/dist/ionic/p-4e2fef42.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-66f150ec.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-9595e305.entry.js +0 -4
- package/dist/ionic/p-BY6BzzPF.js +0 -4
- package/dist/ionic/p-BhamHSw3.js +0 -4
- package/dist/ionic/p-BijjLYjT.js +0 -4
- 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-a1cc2861.entry.js +0 -4
- package/dist/ionic/p-a20a2ebe.entry.js +0 -4
- package/dist/ionic/p-a8ff2489.entry.js +0 -4
- package/dist/ionic/p-b3532b8d.entry.js +0 -4
- package/dist/ionic/p-b80c86c4.entry.js +0 -4
- package/dist/ionic/p-c57fc396.entry.js +0 -4
- package/dist/ionic/p-cc4320d3.entry.js +0 -4
- package/dist/ionic/p-f83b3e0c.entry.js +0 -4
- package/dist/ionic/p-fU3rOYad.js +0 -4
- package/dist/ionic/p-zWf7R2xV.js +0 -4
|
@@ -3,14 +3,129 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
|
|
11
|
-
var frameworkDelegate = require('./framework-delegate-d-fWfeI6.js');
|
|
6
|
+
var helpers = require('./helpers-Crluoxqu.js');
|
|
7
|
+
var index = require('./index-SAR1xwtW.js');
|
|
8
|
+
var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
|
|
9
|
+
var frameworkDelegate = require('./framework-delegate-DTLbqaaO.js');
|
|
12
10
|
var gestureController = require('./gesture-controller-CeJslptU.js');
|
|
13
11
|
|
|
12
|
+
/**
|
|
13
|
+
* CloseWatcher is a newer API that lets
|
|
14
|
+
* use detect the hardware back button event
|
|
15
|
+
* in a web browser: https://caniuse.com/?search=closewatcher
|
|
16
|
+
* However, not every browser supports it yet.
|
|
17
|
+
*
|
|
18
|
+
* This needs to be a function so that we can
|
|
19
|
+
* check the config once it has been set.
|
|
20
|
+
* Otherwise, this code would be evaluated the
|
|
21
|
+
* moment this file is evaluated which could be
|
|
22
|
+
* before the config is set.
|
|
23
|
+
*/
|
|
24
|
+
const shouldUseCloseWatcher = () => index.config.get('experimentalCloseWatcher', false) && helpers.win !== undefined && 'CloseWatcher' in helpers.win;
|
|
25
|
+
/**
|
|
26
|
+
* When hardwareBackButton: false in config,
|
|
27
|
+
* we need to make sure we also block the default
|
|
28
|
+
* webview behavior. If we don't then it will be
|
|
29
|
+
* possible for users to navigate backward while
|
|
30
|
+
* an overlay is still open. Additionally, it will
|
|
31
|
+
* give the appearance that the hardwareBackButton
|
|
32
|
+
* config is not working as the page transition
|
|
33
|
+
* will still happen.
|
|
34
|
+
*/
|
|
35
|
+
const blockHardwareBackButton = () => {
|
|
36
|
+
document.addEventListener('backbutton', () => { });
|
|
37
|
+
};
|
|
38
|
+
const startHardwareBackButton = () => {
|
|
39
|
+
const doc = document;
|
|
40
|
+
let busy = false;
|
|
41
|
+
const backButtonCallback = () => {
|
|
42
|
+
if (busy) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
let index$1 = 0;
|
|
46
|
+
let handlers = [];
|
|
47
|
+
const ev = new CustomEvent('ionBackButton', {
|
|
48
|
+
bubbles: false,
|
|
49
|
+
detail: {
|
|
50
|
+
register(priority, handler) {
|
|
51
|
+
handlers.push({ priority, handler, id: index$1++ });
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
doc.dispatchEvent(ev);
|
|
56
|
+
const executeAction = async (handlerRegister) => {
|
|
57
|
+
try {
|
|
58
|
+
if (handlerRegister?.handler) {
|
|
59
|
+
const result = handlerRegister.handler(processHandlers);
|
|
60
|
+
if (result != null) {
|
|
61
|
+
await result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
index.printIonError('[ion-app] - Exception in startHardwareBackButton:', e);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const processHandlers = () => {
|
|
70
|
+
if (handlers.length > 0) {
|
|
71
|
+
let selectedHandler = {
|
|
72
|
+
priority: Number.MIN_SAFE_INTEGER,
|
|
73
|
+
handler: () => undefined,
|
|
74
|
+
id: -1,
|
|
75
|
+
};
|
|
76
|
+
handlers.forEach((handler) => {
|
|
77
|
+
if (handler.priority >= selectedHandler.priority) {
|
|
78
|
+
selectedHandler = handler;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
busy = true;
|
|
82
|
+
handlers = handlers.filter((handler) => handler.id !== selectedHandler.id);
|
|
83
|
+
executeAction(selectedHandler).then(() => (busy = false));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
processHandlers();
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* If the CloseWatcher is defined then
|
|
90
|
+
* we don't want to also listen for the native
|
|
91
|
+
* backbutton event otherwise we may get duplicate
|
|
92
|
+
* events firing.
|
|
93
|
+
*/
|
|
94
|
+
if (shouldUseCloseWatcher()) {
|
|
95
|
+
let watcher;
|
|
96
|
+
const configureWatcher = () => {
|
|
97
|
+
watcher?.destroy();
|
|
98
|
+
watcher = new helpers.win.CloseWatcher();
|
|
99
|
+
/**
|
|
100
|
+
* Once a close request happens
|
|
101
|
+
* the watcher gets destroyed.
|
|
102
|
+
* As a result, we need to re-configure
|
|
103
|
+
* the watcher so we can respond to other
|
|
104
|
+
* close requests.
|
|
105
|
+
*/
|
|
106
|
+
watcher.onclose = () => {
|
|
107
|
+
backButtonCallback();
|
|
108
|
+
configureWatcher();
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
configureWatcher();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
doc.addEventListener('backbutton', backButtonCallback);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
const OVERLAY_BACK_BUTTON_PRIORITY = 100;
|
|
118
|
+
const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
|
|
119
|
+
|
|
120
|
+
var hardwareBackButton = /*#__PURE__*/Object.freeze({
|
|
121
|
+
__proto__: null,
|
|
122
|
+
MENU_BACK_BUTTON_PRIORITY: MENU_BACK_BUTTON_PRIORITY,
|
|
123
|
+
OVERLAY_BACK_BUTTON_PRIORITY: OVERLAY_BACK_BUTTON_PRIORITY,
|
|
124
|
+
blockHardwareBackButton: blockHardwareBackButton,
|
|
125
|
+
shouldUseCloseWatcher: shouldUseCloseWatcher,
|
|
126
|
+
startHardwareBackButton: startHardwareBackButton
|
|
127
|
+
});
|
|
128
|
+
|
|
14
129
|
/**
|
|
15
130
|
* This query string selects elements that
|
|
16
131
|
* are eligible to receive focus. We select
|
|
@@ -407,7 +522,7 @@ const connectListeners = (doc) => {
|
|
|
407
522
|
doc.addEventListener('ionBackButton', (ev) => {
|
|
408
523
|
const lastOverlay = getPresentedOverlay(doc);
|
|
409
524
|
if (lastOverlay?.backdropDismiss) {
|
|
410
|
-
ev.detail.register(
|
|
525
|
+
ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {
|
|
411
526
|
/**
|
|
412
527
|
* Do not return this promise otherwise
|
|
413
528
|
* the hardware back button utility will
|
|
@@ -430,7 +545,7 @@ const connectListeners = (doc) => {
|
|
|
430
545
|
* this behavior will be handled via the ionBackButton
|
|
431
546
|
* event.
|
|
432
547
|
*/
|
|
433
|
-
if (!
|
|
548
|
+
if (!shouldUseCloseWatcher()) {
|
|
434
549
|
doc.addEventListener('keydown', (ev) => {
|
|
435
550
|
if (ev.key === 'Escape') {
|
|
436
551
|
const lastOverlay = getPresentedOverlay(doc);
|
|
@@ -716,7 +831,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
716
831
|
if (!overlay.presented) {
|
|
717
832
|
return false;
|
|
718
833
|
}
|
|
719
|
-
const presentedOverlays =
|
|
834
|
+
const presentedOverlays = helpers.doc !== undefined ? getPresentedOverlays(helpers.doc) : [];
|
|
720
835
|
/**
|
|
721
836
|
* For accessibility, toasts lack focus traps and don't receive
|
|
722
837
|
* `aria-hidden` on the root element when presented.
|
|
@@ -845,6 +960,40 @@ const safeCall = (handler, arg) => {
|
|
|
845
960
|
}
|
|
846
961
|
return undefined;
|
|
847
962
|
};
|
|
963
|
+
/**
|
|
964
|
+
* `--width` and `--height` values that leave an overlay spanning the viewport
|
|
965
|
+
* on that axis, so it reaches both edges. An empty value means the property
|
|
966
|
+
* was never overridden.
|
|
967
|
+
*/
|
|
968
|
+
const FULLSCREEN_SIZES = ['', '100%', '100vw', '100vh', '100dvw', '100dvh', '100svw', '100svh'];
|
|
969
|
+
/**
|
|
970
|
+
* `--width` and `--height` values that size an overlay to its content, leaving
|
|
971
|
+
* the rendered size dependent on the content and on `--max-width` or
|
|
972
|
+
* `--max-height`.
|
|
973
|
+
*/
|
|
974
|
+
const CONTENT_SIZES = ['auto', 'fit-content', 'min-content', 'max-content'];
|
|
975
|
+
/**
|
|
976
|
+
* How an overlay's `--width` or `--height` determines its used size:
|
|
977
|
+
*
|
|
978
|
+
* `fullscreen` spans the viewport on that axis. `content` depends on the
|
|
979
|
+
* overlay's content, so its used size is not known until layout. `definite`
|
|
980
|
+
* resolves independently of the overlay's content size.
|
|
981
|
+
*
|
|
982
|
+
* Values are lowercased because CSS keywords are case-insensitive, while a
|
|
983
|
+
* custom property preserves the case in which it was authored. Content values
|
|
984
|
+
* are matched as a suffix so vendor-prefixed values such as `-moz-fit-content`
|
|
985
|
+
* are recognized.
|
|
986
|
+
*/
|
|
987
|
+
const getOverlaySizeType = (size) => {
|
|
988
|
+
const value = size.trim().toLowerCase();
|
|
989
|
+
if (FULLSCREEN_SIZES.includes(value)) {
|
|
990
|
+
return 'fullscreen';
|
|
991
|
+
}
|
|
992
|
+
if (CONTENT_SIZES.some((keyword) => value.endsWith(keyword))) {
|
|
993
|
+
return 'content';
|
|
994
|
+
}
|
|
995
|
+
return 'definite';
|
|
996
|
+
};
|
|
848
997
|
const BACKDROP = 'backdrop';
|
|
849
998
|
const GESTURE = 'gesture';
|
|
850
999
|
const OVERLAY_GESTURE_PRIORITY = 39;
|
|
@@ -979,6 +1128,7 @@ const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
|
979
1128
|
exports.BACKDROP = BACKDROP;
|
|
980
1129
|
exports.FOCUS_TRAP_DISABLE_CLASS = FOCUS_TRAP_DISABLE_CLASS;
|
|
981
1130
|
exports.GESTURE = GESTURE;
|
|
1131
|
+
exports.MENU_BACK_BUTTON_PRIORITY = MENU_BACK_BUTTON_PRIORITY;
|
|
982
1132
|
exports.OVERLAY_GESTURE_PRIORITY = OVERLAY_GESTURE_PRIORITY;
|
|
983
1133
|
exports.actionSheetController = actionSheetController;
|
|
984
1134
|
exports.alertController = alertController;
|
|
@@ -989,7 +1139,9 @@ exports.dismiss = dismiss;
|
|
|
989
1139
|
exports.eventMethod = eventMethod;
|
|
990
1140
|
exports.focusFirstDescendant = focusFirstDescendant;
|
|
991
1141
|
exports.focusLastDescendant = focusLastDescendant;
|
|
1142
|
+
exports.getOverlaySizeType = getOverlaySizeType;
|
|
992
1143
|
exports.getPresentedOverlay = getPresentedOverlay;
|
|
1144
|
+
exports.hardwareBackButton = hardwareBackButton;
|
|
993
1145
|
exports.isCancel = isCancel;
|
|
994
1146
|
exports.loadingController = loadingController;
|
|
995
1147
|
exports.modalController = modalController;
|
|
@@ -999,4 +1151,5 @@ exports.present = present;
|
|
|
999
1151
|
exports.restoreRootFocusTrapAccessibility = restoreRootFocusTrapAccessibility;
|
|
1000
1152
|
exports.safeCall = safeCall;
|
|
1001
1153
|
exports.setOverlayId = setOverlayId;
|
|
1154
|
+
exports.shouldUseCloseWatcher = shouldUseCloseWatcher;
|
|
1002
1155
|
exports.toastController = toastController;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var index$1 = require('./index-
|
|
6
|
+
var index = require('./index-SAR1xwtW.js');
|
|
7
|
+
var index$1 = require('./index-BSD7toMO.js');
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Converts a DOM node into a Stencil VNode (or text string) so the
|
package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-zixZ5LyH.js}
RENAMED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var
|
|
7
|
-
var helpers = require('./helpers-7wzdhdeg.js');
|
|
6
|
+
var helpers = require('./helpers-Crluoxqu.js');
|
|
8
7
|
var dir = require('./dir-zwDPRE5K.js');
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -96,8 +95,8 @@ const createNotchController = (el, getNotchSpacerEl, getLabelSlot) => {
|
|
|
96
95
|
*/
|
|
97
96
|
width === 0 &&
|
|
98
97
|
notchSpacerEl.offsetParent === null &&
|
|
99
|
-
|
|
100
|
-
'IntersectionObserver' in
|
|
98
|
+
helpers.win !== undefined &&
|
|
99
|
+
'IntersectionObserver' in helpers.win) {
|
|
101
100
|
/**
|
|
102
101
|
* If there is an IO already attached
|
|
103
102
|
* then that will update the notch
|
|
@@ -281,6 +280,73 @@ const createStartContainerController = (el, getStartContainer, shouldApplyAdjust
|
|
|
281
280
|
};
|
|
282
281
|
};
|
|
283
282
|
|
|
283
|
+
/**
|
|
284
|
+
* The content slotted into a form control's start or end slot that a click
|
|
285
|
+
* started on, or `null` when the click did not start on slotted content.
|
|
286
|
+
*
|
|
287
|
+
* The slotted element is compared against the host in case the form control
|
|
288
|
+
* itself is slotted into, for example, an item. Without that check a control
|
|
289
|
+
* carrying slot="start"/"end" would treat every click on itself as a slotted
|
|
290
|
+
* click.
|
|
291
|
+
*/
|
|
292
|
+
const getSlottedClickContent = (ev, el) => {
|
|
293
|
+
const slotted = ev.target.closest('[slot="start"], [slot="end"]');
|
|
294
|
+
return slotted !== null && slotted !== el && el.contains(slotted) ? slotted : null;
|
|
295
|
+
};
|
|
296
|
+
/**
|
|
297
|
+
* Whether a click started on content slotted into a form control's start or
|
|
298
|
+
* end slot.
|
|
299
|
+
*/
|
|
300
|
+
const isSlottedClick = (ev, el) => getSlottedClickContent(ev, el) !== null;
|
|
301
|
+
/**
|
|
302
|
+
* A utility for form components that wrap their content in a <label>, such as
|
|
303
|
+
* ion-input, ion-textarea and ion-select.
|
|
304
|
+
*
|
|
305
|
+
* Clicking slotted content also clicks that label, and the browser follows it
|
|
306
|
+
* with a click on the label's control. That second click would be emitted from
|
|
307
|
+
* the host as a duplicate, so the slotted click is remembered and the click
|
|
308
|
+
* that follows it is suppressed.
|
|
309
|
+
*
|
|
310
|
+
* Browsers skip the forwarding when the click lands on interactive content,
|
|
311
|
+
* such as a slotted button, so the slotted click is remembered for a frame
|
|
312
|
+
* rather than until a forwarded click that may never arrive.
|
|
313
|
+
*
|
|
314
|
+
* @internal
|
|
315
|
+
* @param el - The host element.
|
|
316
|
+
* @param getNativeInput - A callback returning the native form control the
|
|
317
|
+
* label points at, for components that have one. Those components emit the
|
|
318
|
+
* click from the host rather than the control, so the control's click is
|
|
319
|
+
* always stopped and re-dispatched from the host. Omit it for components whose
|
|
320
|
+
* label has no `for` attribute, such as ion-select, where the browser forwards
|
|
321
|
+
* to an internal control that already re-bubbles targeting the host.
|
|
322
|
+
*/
|
|
323
|
+
const createClickController = (el, getNativeInput) => {
|
|
324
|
+
let hasSlottedClick = false;
|
|
325
|
+
const handleClickCapture = (ev) => {
|
|
326
|
+
if (isSlottedClick(ev, el)) {
|
|
327
|
+
hasSlottedClick = true;
|
|
328
|
+
helpers.raf(() => (hasSlottedClick = false));
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (getNativeInput === undefined) {
|
|
332
|
+
if (hasSlottedClick) {
|
|
333
|
+
ev.stopPropagation();
|
|
334
|
+
hasSlottedClick = false;
|
|
335
|
+
}
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const nativeInput = getNativeInput();
|
|
339
|
+
if (nativeInput !== undefined && ev.target === nativeInput) {
|
|
340
|
+
ev.stopPropagation();
|
|
341
|
+
if (!hasSlottedClick) {
|
|
342
|
+
el.click();
|
|
343
|
+
}
|
|
344
|
+
hasSlottedClick = false;
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
return { handleClickCapture };
|
|
348
|
+
};
|
|
349
|
+
|
|
284
350
|
/**
|
|
285
351
|
* Used to update a scoped component that uses emulated slots. This fires when
|
|
286
352
|
* content is passed into the slot or when the content inside of a slot changes.
|
|
@@ -293,7 +359,7 @@ const createStartContainerController = (el, getStartContainer, shouldApplyAdjust
|
|
|
293
359
|
const createSlotMutationController = (el, slotName, mutationCallback) => {
|
|
294
360
|
let hostMutationObserver;
|
|
295
361
|
let slottedContentMutationObserver;
|
|
296
|
-
if (
|
|
362
|
+
if (helpers.win !== undefined && 'MutationObserver' in helpers.win) {
|
|
297
363
|
const slots = Array.isArray(slotName) ? slotName : [slotName];
|
|
298
364
|
hostMutationObserver = new MutationObserver((entries) => {
|
|
299
365
|
for (const entry of entries) {
|
|
@@ -392,6 +458,8 @@ const createSlotMutationController = (el, slotName, mutationCallback) => {
|
|
|
392
458
|
};
|
|
393
459
|
};
|
|
394
460
|
|
|
461
|
+
exports.createClickController = createClickController;
|
|
395
462
|
exports.createNotchController = createNotchController;
|
|
396
463
|
exports.createSlotMutationController = createSlotMutationController;
|
|
397
464
|
exports.createStartContainerController = createStartContainerController;
|
|
465
|
+
exports.getSlottedClickContent = getSlottedClickContent;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var index$1 = require('./index-
|
|
8
|
-
var helpers = require('./helpers-
|
|
6
|
+
var index = require('./index-SAR1xwtW.js');
|
|
7
|
+
var index$1 = require('./index-BAM4223M.js');
|
|
8
|
+
var helpers = require('./helpers-Crluoxqu.js');
|
|
9
9
|
require('./dir-zwDPRE5K.js');
|
|
10
10
|
|
|
11
11
|
const startStatusTap = () => {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var helpers = require('./helpers-
|
|
6
|
+
var helpers = require('./helpers-Crluoxqu.js');
|
|
7
7
|
var dir = require('./dir-zwDPRE5K.js');
|
|
8
8
|
var index = require('./index-DRPqwSvU.js');
|
|
9
|
-
require('./index-
|
|
9
|
+
require('./index-SAR1xwtW.js');
|
|
10
10
|
require('./gesture-controller-CeJslptU.js');
|
|
11
11
|
|
|
12
12
|
const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) => {
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, forceUpdate, h } from "@stencil/core";
|
|
5
|
-
import {
|
|
5
|
+
import { createAriaAttributeController } from "../../utils/attribute-controller";
|
|
6
|
+
import { hasShadowDom } from "../../utils/helpers";
|
|
6
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
7
8
|
import { createColorClasses, hostContext, openURL } from "../../utils/theme";
|
|
8
9
|
import { getIonMode } from "../../global/ionic-global";
|
|
@@ -23,7 +24,6 @@ export class Button {
|
|
|
23
24
|
this.inToolbar = false;
|
|
24
25
|
this.formButtonEl = null;
|
|
25
26
|
this.formEl = null;
|
|
26
|
-
this.inheritedAttributes = {};
|
|
27
27
|
/**
|
|
28
28
|
* If `true`, the button only has an icon.
|
|
29
29
|
*/
|
|
@@ -82,23 +82,6 @@ export class Button {
|
|
|
82
82
|
this.formButtonEl.disabled = disabled;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
/**
|
|
86
|
-
* This component is used within the `ion-input-password-toggle` component
|
|
87
|
-
* to toggle the visibility of the password input.
|
|
88
|
-
* These attributes need to update based on the state of the password input.
|
|
89
|
-
* Otherwise, the values will be stale.
|
|
90
|
-
*
|
|
91
|
-
* @param newValue
|
|
92
|
-
* @param _oldValue
|
|
93
|
-
* @param propName
|
|
94
|
-
*/
|
|
95
|
-
onAriaChanged(newValue, _oldValue, propName) {
|
|
96
|
-
this.inheritedAttributes = {
|
|
97
|
-
...this.inheritedAttributes,
|
|
98
|
-
[propName]: newValue,
|
|
99
|
-
};
|
|
100
|
-
forceUpdate(this);
|
|
101
|
-
}
|
|
102
85
|
/**
|
|
103
86
|
* This is responsible for rendering a hidden native
|
|
104
87
|
* button element inside the associated form. This allows
|
|
@@ -136,7 +119,21 @@ export class Button {
|
|
|
136
119
|
this.inToolbar = !!this.el.closest('ion-buttons');
|
|
137
120
|
this.inListHeader = !!this.el.closest('ion-list-header');
|
|
138
121
|
this.inItem = !!this.el.closest('ion-item') || !!this.el.closest('ion-item-divider');
|
|
139
|
-
|
|
122
|
+
/**
|
|
123
|
+
* The ARIA state has to stay live, since `ion-input-password-toggle` rewrites
|
|
124
|
+
* `aria-label` and `aria-pressed` on its `ion-button` on every toggle. We keep
|
|
125
|
+
* `aria-disabled` out of the watch because the `<Host>` below renders it from the
|
|
126
|
+
* `disabled` prop and those writes would clobber a developer's value, and `role` out
|
|
127
|
+
* because a post-load write stays on the host too, which would put the same role on
|
|
128
|
+
* two elements in the accessibility tree.
|
|
129
|
+
*/
|
|
130
|
+
this.ariaController = createAriaAttributeController(this.el, () => forceUpdate(this), ['aria-disabled', 'role']);
|
|
131
|
+
}
|
|
132
|
+
connectedCallback() {
|
|
133
|
+
this.ariaController?.init();
|
|
134
|
+
}
|
|
135
|
+
disconnectedCallback() {
|
|
136
|
+
this.ariaController?.destroy();
|
|
140
137
|
}
|
|
141
138
|
get hasIconOnly() {
|
|
142
139
|
return !!this.el.querySelector('[slot="icon-only"]');
|
|
@@ -211,7 +208,8 @@ export class Button {
|
|
|
211
208
|
}
|
|
212
209
|
render() {
|
|
213
210
|
const mode = getIonMode(this);
|
|
214
|
-
const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong
|
|
211
|
+
const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong } = this;
|
|
212
|
+
const inheritedAttributes = this.ariaController?.attributes ?? {};
|
|
215
213
|
const finalSize = size === undefined && this.inItem ? 'small' : size;
|
|
216
214
|
const TagType = href === undefined ? 'button' : 'a';
|
|
217
215
|
const attrs = TagType === 'button'
|
|
@@ -236,7 +234,7 @@ export class Button {
|
|
|
236
234
|
{
|
|
237
235
|
type !== 'button' && this.renderHiddenButton();
|
|
238
236
|
}
|
|
239
|
-
return (h(Host, { key: '
|
|
237
|
+
return (h(Host, { key: 'fd42d1a5836c148cddd6c474c130ce4bb36286ea', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
|
|
240
238
|
[mode]: true,
|
|
241
239
|
[buttonType]: true,
|
|
242
240
|
[`${buttonType}-${expand}`]: expand !== undefined,
|
|
@@ -251,7 +249,7 @@ export class Button {
|
|
|
251
249
|
'button-disabled': disabled,
|
|
252
250
|
'ion-activatable': true,
|
|
253
251
|
'ion-focusable': true,
|
|
254
|
-
}) }, h(TagType, { key: '
|
|
252
|
+
}) }, h(TagType, { key: '97dbf689ea912aed38182dbe0097a2bf5b768816', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, ...inheritedAttributes }, h("span", { key: '0f1ff4c667e95a8e3dc787fee43fe529b95477b7', class: "button-inner" }, h("slot", { key: 'fc1e8b8080d02828c392e9edd6a70e0255435f82', name: "icon-only", onSlotchange: this.slotChanged }), h("slot", { key: 'c1ece4c0d935f4d023d38fee4cf529dd4123d487', name: "start" }), h("slot", { key: '970db0ee1e3633bc9cbff52eca446e4891ff6851' }), h("slot", { key: 'ef8d7d894f01dbe881f381b985620c2a482e55fe', name: "end" })), mode === 'md' && h("ion-ripple-effect", { key: 'fea5e49a54b0efd07b1bd35d9fd5d2d862a2bac1', type: this.rippleType }))));
|
|
255
253
|
}
|
|
256
254
|
static get is() { return "ion-button"; }
|
|
257
255
|
static get encapsulation() { return "shadow"; }
|
|
@@ -647,15 +645,6 @@ export class Button {
|
|
|
647
645
|
return [{
|
|
648
646
|
"propName": "disabled",
|
|
649
647
|
"methodName": "disabledChanged"
|
|
650
|
-
}, {
|
|
651
|
-
"propName": "aria-checked",
|
|
652
|
-
"methodName": "onAriaChanged"
|
|
653
|
-
}, {
|
|
654
|
-
"propName": "aria-label",
|
|
655
|
-
"methodName": "onAriaChanged"
|
|
656
|
-
}, {
|
|
657
|
-
"propName": "aria-pressed",
|
|
658
|
-
"methodName": "onAriaChanged"
|
|
659
648
|
}];
|
|
660
649
|
}
|
|
661
650
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { Host, h } from "@stencil/core";
|
|
5
|
-
import {
|
|
4
|
+
import { Host, h, forceUpdate } from "@stencil/core";
|
|
5
|
+
import { createAttributeController } from "../../utils/attribute-controller";
|
|
6
6
|
import { createColorClasses, openURL } from "../../utils/theme";
|
|
7
7
|
import { getIonMode } from "../../global/ionic-global";
|
|
8
8
|
/**
|
|
@@ -12,7 +12,6 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
12
12
|
*/
|
|
13
13
|
export class Card {
|
|
14
14
|
constructor() {
|
|
15
|
-
this.inheritedAriaAttributes = {};
|
|
16
15
|
/**
|
|
17
16
|
* If `true`, a button tag will be rendered and the card will be tappable.
|
|
18
17
|
*/
|
|
@@ -32,7 +31,18 @@ export class Card {
|
|
|
32
31
|
this.routerDirection = 'forward';
|
|
33
32
|
}
|
|
34
33
|
componentWillLoad() {
|
|
35
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Only the initial copy takes the attribute off the host, so an `aria-label` written
|
|
36
|
+
* after load stays on the host too. That's harmless here, because unlike `ion-item`
|
|
37
|
+
* the card host renders no role of its own, so nothing reads the leftover copy.
|
|
38
|
+
*/
|
|
39
|
+
this.ariaController = createAttributeController(this.el, ['aria-label'], () => forceUpdate(this));
|
|
40
|
+
}
|
|
41
|
+
connectedCallback() {
|
|
42
|
+
this.ariaController?.init();
|
|
43
|
+
}
|
|
44
|
+
disconnectedCallback() {
|
|
45
|
+
this.ariaController?.destroy();
|
|
36
46
|
}
|
|
37
47
|
isClickable() {
|
|
38
48
|
return this.href !== undefined || this.button;
|
|
@@ -42,7 +52,8 @@ export class Card {
|
|
|
42
52
|
if (!clickable) {
|
|
43
53
|
return [h("slot", null)];
|
|
44
54
|
}
|
|
45
|
-
const { href, routerAnimation, routerDirection
|
|
55
|
+
const { href, routerAnimation, routerDirection } = this;
|
|
56
|
+
const inheritedAriaAttributes = this.ariaController?.attributes ?? {};
|
|
46
57
|
const TagType = clickable ? (href === undefined ? 'button' : 'a') : 'div';
|
|
47
58
|
const attrs = TagType === 'button'
|
|
48
59
|
? { type: this.type }
|
|
@@ -56,7 +67,7 @@ export class Card {
|
|
|
56
67
|
}
|
|
57
68
|
render() {
|
|
58
69
|
const mode = getIonMode(this);
|
|
59
|
-
return (h(Host, { key: '
|
|
70
|
+
return (h(Host, { key: '104412c26f53cce36432c3bb4d9e38bbe00c5816', class: createColorClasses(this.color, {
|
|
60
71
|
[mode]: true,
|
|
61
72
|
'card-disabled': this.disabled,
|
|
62
73
|
'ion-activatable': this.isClickable(),
|