@ionic/core 8.8.18 → 8.8.19-dev.11786730389.1a1927bf
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-0Pyit076.js +4 -0
- package/components/{p-C_hpsif8.js → p-30_sZS2V.js} +1 -1
- package/components/p-83oP9gzn.js +4 -0
- package/components/p-8FN7p701.js +4 -0
- package/components/p-B-FxiyeI.js +4 -0
- package/components/p-B6dUPQXq.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BMS4t-kJ.js +4 -0
- package/components/p-BO4sUqUv.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-Bc4wROfM.js +4 -0
- package/components/p-BhamHSw3.js +4 -0
- package/components/{p-D3xo7hqU.js → p-BpG8kBfD.js} +1 -1
- package/components/p-BqPNzJf6.js +4 -0
- package/components/p-BsVxQGUT.js +4 -0
- package/components/p-BxUIQcD9.js +4 -0
- package/components/p-C1O9GEug.js +4 -0
- package/components/p-C5KYjZWD.js +4 -0
- package/components/p-C9BGR5fy.js +4 -0
- package/components/p-CD4fmpem.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CKhiNOEg.js +4 -0
- package/components/p-CO2zzh3W.js +4 -0
- package/components/p-CVnwvOBD.js +4 -0
- package/components/p-CbhUdtjf.js +4 -0
- package/components/p-CejmQs3h.js +4 -0
- package/components/p-CfnGxjv-.js +4 -0
- package/components/p-ClFYbgND.js +4 -0
- package/components/p-CmKf4pgI.js +4 -0
- package/components/p-Cs5f-uOS.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/{dist/ionic/p-DC3RagnA.js → components/p-DIgGHN7D.js} +1 -1
- package/components/p-DRfgH82D.js +4 -0
- package/components/p-DTY4otpr.js +4 -0
- package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
- package/components/p-DVKS-ovH.js +4 -0
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-D_XD0pVT.js +4 -0
- package/components/p-Dd8ajo9a.js +4 -0
- package/components/p-DdnhY_oj.js +4 -0
- package/components/p-Dm7h4Nyv.js +4 -0
- package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
- package/components/p-DyePCNGr.js +4 -0
- package/components/p-G0TxqHfe.js +4 -0
- package/components/{p-ChIZKXUu.js → p-J-p0EtHR.js} +1 -1
- package/components/p-LXu5-6Ti.js +4 -0
- package/components/p-MCJ7HjWe.js +4 -0
- package/components/p-Obm7si-x.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-UuPYCOZE.js +4 -0
- package/components/p-WeeS7GvC.js +4 -0
- package/components/{p-D7uN07a3.js → p-_0JhwClE.js} +1 -1
- package/components/p-_IKFD3ID.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/p-hh7qIC-X.js +4 -0
- package/components/p-idq4JFo2.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
- package/components/p-tYCT3JGl.js +4 -0
- package/components/p-wzAhIh03.js +4 -0
- package/components/p-xOjr4bwc.js +4 -0
- package/components/p-yuj4Nkm_.js +4 -0
- package/dist/cjs/{animation-Ch16T-Nb.js → animation-C0mOHzej.js} +4 -4
- package/dist/cjs/{app-globals-Dd89e0MR.js → app-globals-BREG4twP.js} +1 -1
- package/dist/cjs/{button-active-COnxOe4X.js → button-active-BKj1rdFx.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/{dir-Cn0z1rJH.js → dir-Brx7VkvP.js} +1 -1
- package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
- package/dist/cjs/{framework-delegate-BgU6U9Ez.js → framework-delegate-NTLQ5YzV.js} +5 -7
- package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
- package/dist/cjs/{hardware-back-button-CXmUnTJC.js → hardware-back-button-fqpYh-kd.js} +4 -4
- package/dist/cjs/{helpers-gntk8bfm.js → helpers-CaLhEmTE.js} +3 -3
- package/dist/cjs/index-B7zJsYWS.js +429 -0
- package/dist/cjs/{index-BhhuJ1Yx.js → index-BlshL9ib.js} +2 -2
- package/dist/cjs/{index-BS2uhvhT.js → index-Ck9advCT.js} +5 -5
- package/dist/cjs/{index-ooS8B4p9.js → index-D2X6b92x.js} +6 -7
- package/dist/cjs/{index-BiRrzGDi.js → index-D48vawBq.js} +2 -2
- package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
- package/dist/cjs/{index-BfaXsATC.js → index-uvry__L4.js} +31 -14
- package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
- package/dist/cjs/index.cjs.js +18 -18
- package/dist/cjs/{input-shims-Bn1cXfCM.js → input-shims-DvHAFqiP.js} +9 -11
- package/dist/cjs/{input.utils-BwhxZooW.js → input.utils-CP4fzrqk.js} +3 -4
- package/dist/cjs/ion-accordion_2.cjs.entry.js +368 -340
- package/dist/cjs/ion-action-sheet.cjs.entry.js +187 -76
- package/dist/cjs/ion-alert.cjs.entry.js +273 -111
- package/dist/cjs/ion-app_8.cjs.entry.js +307 -190
- package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +47 -23
- package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +199 -121
- package/dist/cjs/ion-button_2.cjs.entry.js +138 -66
- package/dist/cjs/ion-card_5.cjs.entry.js +82 -30
- package/dist/cjs/ion-checkbox.cjs.entry.js +152 -101
- package/dist/cjs/ion-chip.cjs.entry.js +17 -11
- package/dist/cjs/ion-col_3.cjs.entry.js +134 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +253 -241
- package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +139 -81
- package/dist/cjs/ion-img.cjs.entry.js +34 -12
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +100 -72
- package/dist/cjs/ion-input-otp.cjs.entry.js +433 -370
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +33 -19
- package/dist/cjs/ion-input.cjs.entry.js +314 -168
- package/dist/cjs/ion-item-option_3.cjs.entry.js +91 -51
- package/dist/cjs/ion-item_8.cjs.entry.js +181 -82
- package/dist/cjs/ion-loading.cjs.entry.js +146 -60
- package/dist/cjs/ion-menu_3.cjs.entry.js +163 -101
- package/dist/cjs/ion-modal.cjs.entry.js +455 -261
- package/dist/cjs/ion-nav_2.cjs.entry.js +100 -157
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +37 -33
- package/dist/cjs/ion-picker-column.cjs.entry.js +417 -405
- package/dist/cjs/ion-picker.cjs.entry.js +401 -392
- package/dist/cjs/ion-popover.cjs.entry.js +319 -205
- package/dist/cjs/ion-progress-bar.cjs.entry.js +31 -25
- package/dist/cjs/ion-radio_2.cjs.entry.js +206 -133
- package/dist/cjs/ion-range.cjs.entry.js +302 -237
- package/dist/cjs/ion-refresher_2.cjs.entry.js +165 -93
- package/dist/cjs/ion-reorder_2.cjs.entry.js +53 -23
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +175 -71
- package/dist/cjs/ion-searchbar.cjs.entry.js +291 -200
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +28 -17
- package/dist/cjs/ion-segment_2.cjs.entry.js +169 -126
- package/dist/cjs/ion-select-modal.cjs.entry.js +104 -48
- package/dist/cjs/ion-select_3.cjs.entry.js +759 -214
- package/dist/cjs/ion-spinner.cjs.entry.js +24 -10
- package/dist/cjs/ion-split-pane.cjs.entry.js +29 -16
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +100 -41
- package/dist/cjs/ion-tab_2.cjs.entry.js +53 -27
- package/dist/cjs/ion-text.cjs.entry.js +11 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +263 -144
- package/dist/cjs/ion-toast.cjs.entry.js +236 -117
- package/dist/cjs/ion-toggle.cjs.entry.js +175 -122
- package/dist/cjs/{ionic-global-BerQGEpE.js → ionic-global-k6hOWWpn.js} +13 -8
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-IMJRwn29.js → ios.transition-KvuRAe2W.js} +13 -17
- package/dist/cjs/{item-multiple-inputs-jOJZE_I0.js → item-multiple-inputs-BdYSbfKN.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CgQZxcoT.js → md.transition-Bjl5Ozph.js} +7 -8
- package/dist/cjs/{notch-controller-_SwR025y.js → notch-controller-BEUpEgb5.js} +1 -1
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-DuSEMhIW.js → overlays-IlP4H2Gn.js} +48 -33
- package/dist/cjs/select-option-render-pULCGldr.js +123 -0
- package/dist/cjs/{status-tap-CSvBT7FV.js → status-tap-BR_ujYHg.js} +3 -3
- package/dist/cjs/{swipe-back-CuIiziaa.js → swipe-back-DzQKEl5g.js} +5 -5
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/accordion/accordion.js +315 -312
- package/dist/collection/components/accordion-group/accordion-group.js +48 -25
- package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
- package/dist/collection/components/action-sheet/action-sheet.js +173 -64
- package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
- package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
- package/dist/collection/components/alert/alert.ios.css +279 -10
- package/dist/collection/components/alert/alert.js +257 -97
- package/dist/collection/components/alert/alert.md.css +268 -20
- package/dist/collection/components/app/app.js +3 -0
- package/dist/collection/components/back-button/back-button.js +42 -19
- package/dist/collection/components/backdrop/backdrop.js +16 -14
- package/dist/collection/components/badge/badge.js +6 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +91 -30
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +103 -88
- package/dist/collection/components/button/button.js +132 -61
- package/dist/collection/components/buttons/buttons.js +13 -15
- package/dist/collection/components/card/card.js +54 -21
- package/dist/collection/components/card-header/card-header.js +12 -8
- package/dist/collection/components/card-subtitle/card-subtitle.js +6 -0
- package/dist/collection/components/card-title/card-title.js +6 -0
- package/dist/collection/components/checkbox/checkbox.js +147 -97
- package/dist/collection/components/chip/chip.js +14 -10
- package/dist/collection/components/col/col.js +127 -3
- package/dist/collection/components/content/content.js +93 -64
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +1042 -807
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime/utils/data.js +13 -14
- package/dist/collection/components/datetime/utils/format.js +21 -11
- package/dist/collection/components/datetime/utils/manipulation.js +8 -8
- package/dist/collection/components/datetime/utils/parse.js +10 -10
- package/dist/collection/components/datetime/utils/state.js +8 -2
- package/dist/collection/components/datetime/utils/validate.js +4 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +247 -237
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/fab/fab.js +20 -13
- package/dist/collection/components/fab-button/fab-button.js +104 -55
- package/dist/collection/components/fab-list/fab-list.js +10 -11
- package/dist/collection/components/footer/footer.js +50 -44
- package/dist/collection/components/grid/grid.js +4 -6
- package/dist/collection/components/header/header.js +35 -25
- package/dist/collection/components/img/img.js +34 -10
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +73 -66
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +20 -3
- package/dist/collection/components/input/input.ios.css +1 -2
- package/dist/collection/components/input/input.js +309 -164
- package/dist/collection/components/input/input.md.css +1 -2
- package/dist/collection/components/input-otp/input-otp.js +428 -366
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +29 -16
- package/dist/collection/components/item/item.js +99 -53
- package/dist/collection/components/item-divider/item-divider.js +15 -10
- package/dist/collection/components/item-option/item-option.js +49 -21
- package/dist/collection/components/item-options/item-options.js +10 -7
- package/dist/collection/components/item-sliding/item-sliding.js +26 -20
- package/dist/collection/components/label/label.js +24 -4
- package/dist/collection/components/list/list.js +10 -7
- package/dist/collection/components/list-header/list-header.js +10 -0
- package/dist/collection/components/loading/loading.js +135 -51
- package/dist/collection/components/menu/menu.js +101 -59
- package/dist/collection/components/menu-button/menu-button.js +29 -20
- package/dist/collection/components/menu-toggle/menu-toggle.js +20 -13
- package/dist/collection/components/modal/animations/ios.enter.js +1 -1
- package/dist/collection/components/modal/animations/md.enter.js +1 -1
- package/dist/collection/components/modal/gestures/sheet.js +22 -10
- package/dist/collection/components/modal/gestures/swipe-to-close.js +15 -3
- package/dist/collection/components/modal/modal.js +398 -228
- package/dist/collection/components/modal/safe-area-utils.js +6 -7
- package/dist/collection/components/modal/test/fixtures.js +3 -0
- package/dist/collection/components/nav/nav.js +69 -247
- package/dist/collection/components/nav/view-controller.js +7 -1
- package/dist/collection/components/nav-link/nav-link.js +20 -9
- package/dist/collection/components/note/note.js +6 -0
- package/dist/collection/components/picker/picker.js +398 -390
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +414 -404
- package/dist/collection/components/picker-column-option/picker-column-option.js +33 -31
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/animations/ios.enter.js +1 -2
- package/dist/collection/components/popover/animations/md.enter.js +1 -2
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +302 -185
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/popover/test/fixture.js +1 -0
- package/dist/collection/components/popover/utils.js +4 -6
- package/dist/collection/components/progress-bar/progress-bar.js +27 -23
- package/dist/collection/components/radio/radio.js +102 -66
- package/dist/collection/components/radio-group/radio-group.js +100 -65
- package/dist/collection/components/radio-group/test/fixtures.js +2 -0
- package/dist/collection/components/range/range.js +296 -232
- package/dist/collection/components/refresher/refresher.js +110 -78
- package/dist/collection/components/refresher-content/refresher-content.js +41 -4
- package/dist/collection/components/reorder/reorder.js +2 -1
- package/dist/collection/components/reorder-group/reorder-group.js +44 -15
- package/dist/collection/components/ripple-effect/ripple-effect.js +12 -13
- package/dist/collection/components/route/route.js +39 -10
- package/dist/collection/components/route-redirect/route-redirect.js +31 -0
- package/dist/collection/components/router/router.js +37 -33
- package/dist/collection/components/router/utils/dom.js +25 -7
- package/dist/collection/components/router/utils/matching.js +7 -9
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +0 -1
- package/dist/collection/components/router-link/router-link.js +37 -12
- package/dist/collection/components/router-outlet/router-outlet.js +82 -21
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +289 -199
- package/dist/collection/components/segment/segment.js +120 -85
- package/dist/collection/components/segment-button/segment-button.js +43 -37
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +26 -16
- package/dist/collection/components/select/select.ios.css +33 -0
- package/dist/collection/components/select/select.js +597 -166
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
- package/dist/collection/components/select-modal/select-modal.js +92 -38
- package/dist/collection/components/select-modal/select-modal.md.css +164 -0
- package/dist/collection/components/select-modal/test/fixtures.js +8 -1
- package/dist/collection/components/select-option/select-option.js +110 -9
- package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
- package/dist/collection/components/select-popover/select-popover.js +103 -36
- package/dist/collection/components/select-popover/select-popover.md.css +164 -0
- package/dist/collection/components/select-popover/test/fixtures.js +8 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +12 -8
- package/dist/collection/components/spinner/spinner.js +21 -9
- package/dist/collection/components/split-pane/split-pane.js +27 -15
- package/dist/collection/components/tab/tab.js +17 -6
- package/dist/collection/components/tab-bar/tab-bar.js +32 -14
- package/dist/collection/components/tab-button/tab-button.js +62 -23
- package/dist/collection/components/tabs/tabs.js +33 -20
- package/dist/collection/components/text/text.js +8 -2
- package/dist/collection/components/textarea/textarea.js +257 -139
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +18 -2
- package/dist/collection/components/toast/toast.js +223 -106
- package/dist/collection/components/toggle/toggle.js +167 -115
- package/dist/collection/components/toolbar/toolbar.js +15 -7
- package/dist/collection/global/config.js +4 -6
- package/dist/collection/global/ionic-global.js +8 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +5 -4
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +3 -3
- package/dist/collection/utils/framework-delegate.js +4 -6
- package/dist/collection/utils/gesture/gesture-controller.js +15 -8
- package/dist/collection/utils/gesture/index.js +10 -2
- package/dist/collection/utils/gesture/listener.js +1 -1
- package/dist/collection/utils/hardware-back-button.js +3 -3
- package/dist/collection/utils/helpers.js +2 -2
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
- package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
- package/dist/collection/utils/keyboard/keyboard.js +1 -1
- package/dist/collection/utils/logging/index.js +23 -4
- package/dist/collection/utils/menu-controller/index.js +1 -2
- package/dist/collection/utils/native/haptic.js +2 -3
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +38 -23
- package/dist/collection/utils/platform.js +4 -5
- package/dist/collection/utils/rtl/dir.js +1 -1
- package/dist/collection/utils/sanitization/index.js +276 -20
- package/dist/collection/utils/select-option-render.js +118 -0
- package/dist/collection/utils/slot-mutation-controller.js +1 -2
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/drag-element.js +2 -3
- package/dist/collection/utils/test/playwright/generator.js +3 -4
- package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
- package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
- package/dist/collection/utils/test/press-keys.js +10 -17
- package/dist/collection/utils/theme.js +6 -1
- package/dist/collection/utils/transition/ios.transition.js +9 -13
- package/dist/collection/utils/transition/md.transition.js +3 -4
- package/dist/docs.json +557 -1273
- package/dist/esm/{animation-DLJpuoEz.js → animation-CGFdmGk9.js} +4 -4
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-CYmMeGdU.js} +1 -1
- package/dist/esm/{button-active-BSpTQmS9.js → button-active--80YqSHA.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/{dir-C53feagD.js → dir-B-FxiyeI.js} +1 -1
- package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
- package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate--ajhSeKH.js} +5 -7
- package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
- package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-gLJHMX_F.js} +4 -4
- package/dist/esm/{helpers-HEqiOzXb.js → helpers-DexiPLIC.js} +3 -3
- package/dist/esm/{index-B_dQk_WE.js → index-8s8kZKJ7.js} +5 -5
- package/dist/esm/{index-BRHzoo00.js → index-BCgUwrV0.js} +2 -2
- package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
- package/dist/esm/index-CKM1DdGm.js +424 -0
- package/dist/esm/{index-tcQvqkiX.js → index-ChhhtsGZ.js} +32 -15
- package/dist/esm/{index-Q6UPU0Ay.js → index-CumkqGQF.js} +6 -7
- package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
- package/dist/esm/{index-Dw-wN0Ja.js → index-_Za5VB9w.js} +2 -2
- package/dist/esm/index.js +16 -15
- package/dist/esm/{input-shims-LXhI7LEx.js → input-shims-BB0AKb_k.js} +9 -11
- package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-J6HWocLA.js} +3 -4
- package/dist/esm/ion-accordion_2.entry.js +368 -340
- package/dist/esm/ion-action-sheet.entry.js +187 -76
- package/dist/esm/ion-alert.entry.js +272 -110
- package/dist/esm/ion-app_8.entry.js +307 -190
- package/dist/esm/ion-avatar_3.entry.js +10 -4
- package/dist/esm/ion-back-button.entry.js +47 -23
- package/dist/esm/ion-backdrop.entry.js +18 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +199 -121
- package/dist/esm/ion-button_2.entry.js +138 -66
- package/dist/esm/ion-card_5.entry.js +82 -30
- package/dist/esm/ion-checkbox.entry.js +152 -101
- package/dist/esm/ion-chip.entry.js +17 -11
- package/dist/esm/ion-col_3.entry.js +134 -10
- package/dist/esm/ion-datetime-button.entry.js +253 -241
- package/dist/esm/ion-datetime.entry.js +2768 -0
- package/dist/esm/ion-fab_3.entry.js +139 -81
- package/dist/esm/ion-img.entry.js +34 -12
- package/dist/esm/ion-infinite-scroll_2.entry.js +99 -71
- package/dist/esm/ion-input-otp.entry.js +433 -370
- package/dist/esm/ion-input-password-toggle.entry.js +33 -19
- package/dist/esm/ion-input.entry.js +314 -168
- package/dist/esm/ion-item-option_3.entry.js +91 -51
- package/dist/esm/ion-item_8.entry.js +181 -82
- package/dist/esm/ion-loading.entry.js +145 -59
- package/dist/esm/ion-menu_3.entry.js +163 -101
- package/dist/esm/ion-modal.entry.js +455 -261
- package/dist/esm/ion-nav_2.entry.js +100 -157
- package/dist/esm/ion-picker-column-option.entry.js +37 -33
- package/dist/esm/ion-picker-column.entry.js +417 -405
- package/dist/esm/ion-picker.entry.js +401 -392
- package/dist/esm/ion-popover.entry.js +319 -205
- package/dist/esm/ion-progress-bar.entry.js +31 -25
- package/dist/esm/ion-radio_2.entry.js +206 -133
- package/dist/esm/ion-range.entry.js +302 -237
- package/dist/esm/ion-refresher_2.entry.js +163 -91
- package/dist/esm/ion-reorder_2.entry.js +53 -23
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +175 -71
- package/dist/esm/ion-searchbar.entry.js +291 -200
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +28 -17
- package/dist/esm/ion-segment_2.entry.js +169 -126
- package/dist/esm/ion-select-modal.entry.js +104 -48
- package/dist/esm/ion-select_3.entry.js +760 -215
- package/dist/esm/ion-spinner.entry.js +24 -10
- package/dist/esm/ion-split-pane.entry.js +29 -16
- package/dist/esm/ion-tab-bar_2.entry.js +100 -41
- package/dist/esm/ion-tab_2.entry.js +53 -27
- package/dist/esm/ion-text.entry.js +11 -5
- package/dist/esm/ion-textarea.entry.js +263 -144
- package/dist/esm/ion-toast.entry.js +235 -116
- package/dist/esm/ion-toggle.entry.js +175 -122
- package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-BVB7BrLT.js} +13 -8
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-BdhybwLl.js} +13 -17
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-rU8VaNNg.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-D0msQmzI.js → md.transition-B5lqKGCs.js} +7 -8
- package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-CrUGyHYz.js} +1 -1
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-CjWwtvf1.js} +48 -33
- package/dist/esm/select-option-render-C4m76VGH.js +121 -0
- package/dist/esm/{status-tap-vO-6s4Yp.js → status-tap-DpLhkDWs.js} +3 -3
- package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-cz4-lyG3.js} +5 -5
- package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
- package/dist/html.html-data.json +52 -80
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-0266b7e1.entry.js +4 -0
- package/dist/ionic/p-08443c08.entry.js +4 -0
- package/dist/ionic/p-08f1ed1c.entry.js +4 -0
- package/dist/ionic/p-09b47b7d.entry.js +4 -0
- package/dist/ionic/p-0FNc80PN.js +4 -0
- package/dist/ionic/p-12589d59.entry.js +4 -0
- package/dist/ionic/p-1d2e53e8.entry.js +4 -0
- package/dist/ionic/p-1edf0573.entry.js +4 -0
- package/dist/ionic/p-214e000a.entry.js +4 -0
- package/dist/ionic/p-21a7fb2a.entry.js +4 -0
- package/dist/ionic/p-2ce59395.entry.js +4 -0
- package/dist/ionic/p-33829e94.entry.js +4 -0
- package/dist/ionic/p-374b10cb.entry.js +4 -0
- package/dist/ionic/p-3835a020.entry.js +4 -0
- package/dist/ionic/p-3c5fdd27.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
- package/dist/ionic/p-48b6835f.entry.js +4 -0
- package/dist/ionic/p-4eOQC00Z.js +4 -0
- package/dist/ionic/p-5394e1d4.entry.js +4 -0
- package/dist/ionic/p-53bac1c9.entry.js +4 -0
- package/dist/ionic/p-5506caeb.entry.js +4 -0
- package/dist/ionic/p-5993a77f.entry.js +4 -0
- package/dist/ionic/p-6277efba.entry.js +4 -0
- package/dist/ionic/p-62e71297.entry.js +4 -0
- package/dist/ionic/p-6b286c5c.entry.js +4 -0
- package/dist/ionic/p-7116e558.entry.js +4 -0
- package/dist/ionic/p-74f30659.entry.js +4 -0
- package/dist/ionic/p-7bb3e957.entry.js +4 -0
- package/dist/ionic/p-82525fb0.entry.js +4 -0
- package/dist/ionic/p-865fa114.entry.js +4 -0
- package/dist/ionic/p-8a21bdbd.entry.js +4 -0
- package/dist/ionic/p-8e1d9e3a.entry.js +4 -0
- package/dist/ionic/p-8f3a1995.entry.js +4 -0
- package/dist/ionic/p-91c6faf1.entry.js +4 -0
- package/dist/ionic/{p-aaeedb6b.entry.js → p-9b865fe6.entry.js} +1 -1
- package/dist/ionic/p-9nmHvEvw.js +4 -0
- package/dist/ionic/p-B-FxiyeI.js +4 -0
- package/dist/ionic/p-BB0LlG4y.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/p-BQ8oNV0v.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/p-BjvtSsVI.js +4 -0
- package/dist/ionic/p-BkfAWuv6.js +4 -0
- package/dist/ionic/p-BnMQxWON.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-BwIp10KV.js +4 -0
- package/dist/ionic/p-C-94tAim.js +4 -0
- package/dist/ionic/p-C6eME8Ey.js +4 -0
- package/dist/ionic/{p-DIuEbVLu.js → p-CKUuSnDR.js} +1 -1
- package/dist/ionic/p-CMRtMbJc.js +4 -0
- package/dist/ionic/p-CPcPmkGv.js +4 -0
- package/dist/ionic/{p-biz8zWmJ.js → p-CQ_4TirR.js} +1 -1
- package/dist/ionic/p-CaRuIadB.js +4 -0
- package/dist/ionic/p-Cdjxf_yg.js +4 -0
- package/dist/ionic/p-ChhhtsGZ.js +5 -0
- package/dist/ionic/p-CmKf4pgI.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D94b61er.js +4 -0
- package/dist/ionic/p-DCI3rXQo.js +4 -0
- package/dist/ionic/p-DDhtUaaA.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-Dn0mqQ_R.js +4 -0
- package/dist/ionic/{p-KjNvRoEp.js → p-I3In7hMC.js} +1 -1
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-a641d428.entry.js +4 -0
- package/dist/ionic/p-ac6ef997.entry.js +4 -0
- package/dist/ionic/p-acf0a6af.entry.js +4 -0
- package/dist/ionic/p-ad98e3ff.entry.js +4 -0
- package/dist/ionic/p-af5166f5.entry.js +4 -0
- package/dist/ionic/p-b24dc0a1.entry.js +4 -0
- package/dist/ionic/p-ba8a598f.entry.js +4 -0
- package/dist/ionic/p-bf7c1f05.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c3f65965.entry.js +4 -0
- package/dist/ionic/p-c8fbe544.entry.js +4 -0
- package/dist/ionic/p-cb12f6c3.entry.js +4 -0
- package/dist/ionic/p-cec87704.entry.js +4 -0
- package/dist/ionic/p-dbfd2d52.entry.js +4 -0
- package/dist/ionic/p-e1e5b507.entry.js +4 -0
- package/dist/ionic/p-ede019ef.entry.js +4 -0
- package/dist/ionic/p-efef6788.entry.js +4 -0
- package/dist/ionic/p-f046aa37.entry.js +4 -0
- package/dist/ionic/p-f402f5a4.entry.js +4 -0
- package/dist/ionic/p-f622796d.entry.js +4 -0
- package/{components/p-B-JJgYSG.js → dist/ionic/p-kJA95YWg.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +9 -0
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +74 -311
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +1 -8
- package/dist/types/utils/logging/index.d.ts +2 -1
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
- package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
- package/hydrate/index.js +10343 -7070
- package/hydrate/index.mjs +10343 -7070
- package/package.json +55 -12
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-A3O24YmY.js +0 -4
- package/components/p-ABkNVeU9.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMI53wYL.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BlIAuGv2.js +0 -4
- package/components/p-Bnsn6KaP.js +0 -4
- package/components/p-BsBCoGa-.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-C53feagD.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CQGnMY3n.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-C_xFdyXe.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CkMSOsFF.js +0 -4
- package/components/p-Cl0B-RWe.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-Cp4GRDqq.js +0 -4
- package/components/p-CsNJ1ULL.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-CzCbeKys.js +0 -4
- package/components/p-D-aHdMxW.js +0 -4
- package/components/p-D0d8qTwj.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DCnGU1fF.js +0 -4
- package/components/p-DGvrK8dD.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DRxvM2Ic.js +0 -4
- package/components/p-DV5mPYQS.js +0 -4
- package/components/p-DWkAgceV.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-Osve4qkc.js +0 -4
- package/components/p-R8zmRi4c.js +0 -4
- package/components/p-SLS1rDZM.js +0 -4
- package/components/p-aJ6PBUvj.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-gAg0kXZp.js +0 -4
- package/components/p-gYiraiT_.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-oD4kcBRX.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/components/p-vRBNsYbs.js +0 -4
- package/components/p-yEQxMl70.js +0 -4
- package/components/p-yzCsOZE2.js +0 -4
- package/dist/cjs/config-D6C-KlA9.js +0 -201
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/esm/ion-datetime_3.entry.js +0 -3163
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0caa922c.entry.js +0 -4
- package/dist/ionic/p-0dc33652.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-10e833ef.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2a05aa64.entry.js +0 -4
- package/dist/ionic/p-2b204c59.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2fa58e80.entry.js +0 -4
- package/dist/ionic/p-3353c229.entry.js +0 -4
- package/dist/ionic/p-34586ead.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-390ca786.entry.js +0 -4
- package/dist/ionic/p-3ae5f277.entry.js +0 -4
- package/dist/ionic/p-4654ae1c.entry.js +0 -4
- package/dist/ionic/p-4745f534.entry.js +0 -4
- package/dist/ionic/p-4858af1f.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4e92a11f.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5334df12.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5e2f73ee.entry.js +0 -4
- package/dist/ionic/p-5eb8e86d.entry.js +0 -4
- package/dist/ionic/p-65ebdf1b.entry.js +0 -4
- package/dist/ionic/p-746fa988.entry.js +0 -4
- package/dist/ionic/p-75dc25ba.entry.js +0 -4
- package/dist/ionic/p-7c319341.entry.js +0 -4
- package/dist/ionic/p-829367ed.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-874b4bd8.entry.js +0 -4
- package/dist/ionic/p-8eb8ee76.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9f9db3a2.entry.js +0 -4
- package/dist/ionic/p-9fa3c405.entry.js +0 -4
- package/dist/ionic/p-BGqMS-oh.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-C53feagD.js +0 -4
- package/dist/ionic/p-CFlfIb2g.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-Cl0B-RWe.js +0 -4
- package/dist/ionic/p-CmcFnK-B.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-Cx3IXROA.js +0 -4
- package/dist/ionic/p-D-3ycHmd.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-D4uTWt4-.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DoJvtrbw.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-VAemlbDS.js +0 -4
- package/dist/ionic/p-a3bdcae6.entry.js +0 -4
- package/dist/ionic/p-af55a72f.entry.js +0 -4
- package/dist/ionic/p-b2020591.entry.js +0 -4
- package/dist/ionic/p-b9fadbfe.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ca2ab74d.entry.js +0 -4
- package/dist/ionic/p-d889ff6d.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-ea56626d.entry.js +0 -4
- package/dist/ionic/p-ef4c3bee.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- package/dist/ionic/p-uWtqTrG8.js +0 -4
- package/dist/ionic/p-viFHDgRs.js +0 -4
- package/dist/ionic/p-xWb6fgfq.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
- /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
|
@@ -10,7 +10,15 @@ export const createGesture = (config) => {
|
|
|
10
10
|
let hasStartedPan = false;
|
|
11
11
|
let hasFiredStart = true;
|
|
12
12
|
let isMoveQueued = false;
|
|
13
|
-
const finalConfig =
|
|
13
|
+
const finalConfig = {
|
|
14
|
+
disableScroll: false,
|
|
15
|
+
direction: 'x',
|
|
16
|
+
gesturePriority: 0,
|
|
17
|
+
passive: true,
|
|
18
|
+
maxAngle: 40,
|
|
19
|
+
threshold: 10,
|
|
20
|
+
...config,
|
|
21
|
+
};
|
|
14
22
|
const canStart = finalConfig.canStart;
|
|
15
23
|
const onWillStart = finalConfig.onWillStart;
|
|
16
24
|
const onStart = finalConfig.onStart;
|
|
@@ -125,7 +133,7 @@ export const createGesture = (config) => {
|
|
|
125
133
|
const blurActiveElement = () => {
|
|
126
134
|
if (typeof document !== 'undefined') {
|
|
127
135
|
const activeElement = document.activeElement;
|
|
128
|
-
if (activeElement
|
|
136
|
+
if (activeElement?.blur) {
|
|
129
137
|
activeElement.blur();
|
|
130
138
|
}
|
|
131
139
|
}
|
|
@@ -28,7 +28,7 @@ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher'
|
|
|
28
28
|
* will still happen.
|
|
29
29
|
*/
|
|
30
30
|
export const blockHardwareBackButton = () => {
|
|
31
|
-
document.addEventListener('backbutton', () => { });
|
|
31
|
+
document.addEventListener('backbutton', () => { });
|
|
32
32
|
};
|
|
33
33
|
export const startHardwareBackButton = () => {
|
|
34
34
|
const doc = document;
|
|
@@ -50,7 +50,7 @@ export const startHardwareBackButton = () => {
|
|
|
50
50
|
doc.dispatchEvent(ev);
|
|
51
51
|
const executeAction = async (handlerRegister) => {
|
|
52
52
|
try {
|
|
53
|
-
if (handlerRegister
|
|
53
|
+
if (handlerRegister?.handler) {
|
|
54
54
|
const result = handlerRegister.handler(processHandlers);
|
|
55
55
|
if (result != null) {
|
|
56
56
|
await result;
|
|
@@ -89,7 +89,7 @@ export const startHardwareBackButton = () => {
|
|
|
89
89
|
if (shouldUseCloseWatcher()) {
|
|
90
90
|
let watcher;
|
|
91
91
|
const configureWatcher = () => {
|
|
92
|
-
watcher
|
|
92
|
+
watcher?.destroy();
|
|
93
93
|
watcher = new win.CloseWatcher();
|
|
94
94
|
/**
|
|
95
95
|
* Once a close request happens
|
|
@@ -318,8 +318,8 @@ export const debounce = (func, wait = 0) => {
|
|
|
318
318
|
* @returns whether the keys are the same and the values are shallow equal.
|
|
319
319
|
*/
|
|
320
320
|
export const shallowEqualStringMap = (map1, map2) => {
|
|
321
|
-
map1
|
|
322
|
-
map2
|
|
321
|
+
map1 ??= {};
|
|
322
|
+
map2 ??= {};
|
|
323
323
|
if (map1 === map2) {
|
|
324
324
|
return true;
|
|
325
325
|
}
|
|
@@ -94,7 +94,7 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
94
94
|
*/
|
|
95
95
|
const focusOut = () => {
|
|
96
96
|
hasKeyboardBeenPresentedForTextField = false;
|
|
97
|
-
win
|
|
97
|
+
win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
|
|
98
98
|
componentEl.removeEventListener('focusout', focusOut);
|
|
99
99
|
};
|
|
100
100
|
/**
|
|
@@ -114,13 +114,13 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
|
|
117
|
-
win
|
|
117
|
+
win?.addEventListener('ionKeyboardDidShow', keyboardShow);
|
|
118
118
|
componentEl.addEventListener('focusout', focusOut);
|
|
119
119
|
};
|
|
120
120
|
componentEl.addEventListener('focusin', focusIn);
|
|
121
121
|
return () => {
|
|
122
122
|
componentEl.removeEventListener('focusin', focusIn);
|
|
123
|
-
win
|
|
123
|
+
win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
|
|
124
124
|
componentEl.removeEventListener('focusout', focusOut);
|
|
125
125
|
};
|
|
126
126
|
};
|
|
@@ -129,7 +129,6 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
129
129
|
* focus an input but not have scroll assist run again.
|
|
130
130
|
*/
|
|
131
131
|
const setManualFocus = (el) => {
|
|
132
|
-
var _a;
|
|
133
132
|
/**
|
|
134
133
|
* If element is already focused then
|
|
135
134
|
* a new focusin event will not be dispatched
|
|
@@ -154,7 +153,7 @@ const setManualFocus = (el) => {
|
|
|
154
153
|
*/
|
|
155
154
|
const inputId = el.getAttribute('id');
|
|
156
155
|
const label = el.closest(`label[for="${inputId}"]`);
|
|
157
|
-
const activeElLabel =
|
|
156
|
+
const activeElLabel = document.activeElement?.closest(`label[for="${inputId}"]`);
|
|
158
157
|
if (label !== null && label === activeElLabel) {
|
|
159
158
|
// If the label is the same as the active element label, then
|
|
160
159
|
// we don't need to set the `SKIP_SCROLL_ASSIST` and reset focus.
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import { SCROLL_AMOUNT_PADDING } from "./common";
|
|
5
5
|
const SCROLL_ASSIST_SPEED = 0.3;
|
|
6
6
|
export const getScrollData = (componentEl, contentEl, keyboardHeight, platformHeight) => {
|
|
7
|
-
|
|
8
|
-
const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
|
|
7
|
+
const itemEl = componentEl.closest('ion-item,[ion-item]') ?? componentEl;
|
|
9
8
|
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, platformHeight);
|
|
10
9
|
};
|
|
11
10
|
const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
|
|
@@ -26,7 +26,7 @@ const getResizeContainer = (resizeMode) => {
|
|
|
26
26
|
* we can fall back to `body`.
|
|
27
27
|
*/
|
|
28
28
|
const ionApp = doc.querySelector('ion-app');
|
|
29
|
-
return ionApp
|
|
29
|
+
return ionApp ?? doc.body;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Get the height of ion-app or body.
|
|
@@ -74,8 +74,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
|
|
|
74
74
|
keyboardVisible = false;
|
|
75
75
|
fireChangeCallback(keyboardVisible, resizeMode);
|
|
76
76
|
};
|
|
77
|
-
win
|
|
78
|
-
win
|
|
77
|
+
win?.addEventListener('keyboardWillShow', keyboardWillShowHandler);
|
|
78
|
+
win?.addEventListener('keyboardWillHide', keyboardWillHideHandler);
|
|
79
79
|
};
|
|
80
80
|
const fireChangeCallback = (state, resizeMode) => {
|
|
81
81
|
if (keyboardChangeCallback) {
|
|
@@ -152,8 +152,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
|
|
|
152
152
|
});
|
|
153
153
|
};
|
|
154
154
|
const destroy = () => {
|
|
155
|
-
win
|
|
156
|
-
win
|
|
155
|
+
win?.removeEventListener('keyboardWillShow', keyboardWillShowHandler);
|
|
156
|
+
win?.removeEventListener('keyboardWillHide', keyboardWillHideHandler);
|
|
157
157
|
keyboardWillShowHandler = keyboardWillHideHandler = undefined;
|
|
158
158
|
};
|
|
159
159
|
const isKeyboardVisible = () => keyboardVisible;
|
|
@@ -121,7 +121,7 @@ const fireKeyboardCloseEvent = (win) => {
|
|
|
121
121
|
* layout viewport states
|
|
122
122
|
*/
|
|
123
123
|
export const trackViewportChanges = (win) => {
|
|
124
|
-
previousVisualViewport =
|
|
124
|
+
previousVisualViewport = { ...currentVisualViewport };
|
|
125
125
|
currentVisualViewport = copyVisualViewport(win.visualViewport);
|
|
126
126
|
};
|
|
127
127
|
/**
|
|
@@ -7,7 +7,28 @@ export var LogLevel;
|
|
|
7
7
|
LogLevel["OFF"] = "OFF";
|
|
8
8
|
LogLevel["ERROR"] = "ERROR";
|
|
9
9
|
LogLevel["WARN"] = "WARN";
|
|
10
|
+
LogLevel["DEBUG"] = "DEBUG";
|
|
10
11
|
})(LogLevel || (LogLevel = {}));
|
|
12
|
+
/**
|
|
13
|
+
* Ranks each level so an enabled check is a numeric comparison. A configured
|
|
14
|
+
* level logs anything whose rank is less than or equal to its own: `OFF` (0)
|
|
15
|
+
* logs nothing, `ERROR` (1) logs errors, `WARN` (2) logs errors and warnings,
|
|
16
|
+
* `DEBUG` (3) logs all of the above plus internal diagnostics.
|
|
17
|
+
*/
|
|
18
|
+
const LOG_LEVEL_RANK = {
|
|
19
|
+
[LogLevel.OFF]: 0,
|
|
20
|
+
[LogLevel.ERROR]: 1,
|
|
21
|
+
[LogLevel.WARN]: 2,
|
|
22
|
+
[LogLevel.DEBUG]: 3,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Whether the configured level is verbose enough to log `minimum`. Levels set
|
|
26
|
+
* through a query parameter arrive as raw strings, hence the uppercasing.
|
|
27
|
+
*/
|
|
28
|
+
const isLogLevelEnabled = (minimum) => {
|
|
29
|
+
const configured = String(config.get('logLevel', LogLevel.WARN)).toUpperCase();
|
|
30
|
+
return LOG_LEVEL_RANK[configured] >= LOG_LEVEL_RANK[minimum];
|
|
31
|
+
};
|
|
11
32
|
/**
|
|
12
33
|
* Logs a warning to the console with an Ionic prefix
|
|
13
34
|
* to indicate the library that is warning the developer.
|
|
@@ -15,8 +36,7 @@ export var LogLevel;
|
|
|
15
36
|
* @param message - The string message to be logged to the console.
|
|
16
37
|
*/
|
|
17
38
|
export const printIonWarning = (message, ...params) => {
|
|
18
|
-
|
|
19
|
-
if ([LogLevel.WARN].includes(logLevel)) {
|
|
39
|
+
if (isLogLevelEnabled(LogLevel.WARN)) {
|
|
20
40
|
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
21
41
|
}
|
|
22
42
|
};
|
|
@@ -28,8 +48,7 @@ export const printIonWarning = (message, ...params) => {
|
|
|
28
48
|
* @param params - Additional arguments to supply to the console.error.
|
|
29
49
|
*/
|
|
30
50
|
export const printIonError = (message, ...params) => {
|
|
31
|
-
|
|
32
|
-
if ([LogLevel.ERROR, LogLevel.WARN].includes(logLevel)) {
|
|
51
|
+
if (isLogLevelEnabled(LogLevel.ERROR)) {
|
|
33
52
|
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
34
53
|
}
|
|
35
54
|
};
|
|
@@ -49,7 +49,6 @@ const createMenuController = () => {
|
|
|
49
49
|
const isOpen = async (menu) => {
|
|
50
50
|
if (menu != null) {
|
|
51
51
|
const menuEl = await get(menu);
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
53
52
|
return menuEl !== undefined && menuEl.isOpen();
|
|
54
53
|
}
|
|
55
54
|
else {
|
|
@@ -185,7 +184,7 @@ const createMenuController = () => {
|
|
|
185
184
|
registerAnimation('reveal', menuRevealAnimation);
|
|
186
185
|
registerAnimation('push', menuPushAnimation);
|
|
187
186
|
registerAnimation('overlay', menuOverlayAnimation);
|
|
188
|
-
doc
|
|
187
|
+
doc?.addEventListener('ionBackButton', (ev) => {
|
|
189
188
|
const openMenu = _getOpenSync();
|
|
190
189
|
if (openMenu) {
|
|
191
190
|
ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
|
|
@@ -47,7 +47,7 @@ export var NotificationType;
|
|
|
47
47
|
const HapticEngine = {
|
|
48
48
|
getEngine() {
|
|
49
49
|
const capacitor = getCapacitor();
|
|
50
|
-
if (capacitor
|
|
50
|
+
if (capacitor?.isPluginAvailable('Haptics')) {
|
|
51
51
|
// Capacitor
|
|
52
52
|
return capacitor.Plugins.Haptics;
|
|
53
53
|
}
|
|
@@ -68,8 +68,7 @@ const HapticEngine = {
|
|
|
68
68
|
* the Vibrate API. This check avoids that error
|
|
69
69
|
* if the browser does not support the Vibrate API.
|
|
70
70
|
*/
|
|
71
|
-
if (
|
|
72
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
71
|
+
if (capacitor?.getPlatform() === 'web') {
|
|
73
72
|
return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;
|
|
74
73
|
}
|
|
75
74
|
return true;
|
|
@@ -36,14 +36,14 @@ export var KeyboardResize;
|
|
|
36
36
|
export const Keyboard = {
|
|
37
37
|
getEngine() {
|
|
38
38
|
const capacitor = getCapacitor();
|
|
39
|
-
if (capacitor
|
|
39
|
+
if (capacitor?.isPluginAvailable('Keyboard')) {
|
|
40
40
|
return capacitor.Plugins.Keyboard;
|
|
41
41
|
}
|
|
42
42
|
return undefined;
|
|
43
43
|
},
|
|
44
44
|
getResizeMode() {
|
|
45
45
|
const engine = this.getEngine();
|
|
46
|
-
if (!
|
|
46
|
+
if (!engine?.getResizeMode) {
|
|
47
47
|
return Promise.resolve(undefined);
|
|
48
48
|
}
|
|
49
49
|
return engine.getResizeMode().catch((e) => {
|
|
@@ -11,7 +11,7 @@ export var Style;
|
|
|
11
11
|
export const StatusBar = {
|
|
12
12
|
getEngine() {
|
|
13
13
|
const capacitor = getCapacitor();
|
|
14
|
-
if (capacitor
|
|
14
|
+
if (capacitor?.isPluginAvailable('StatusBar')) {
|
|
15
15
|
return capacitor.Plugins.StatusBar;
|
|
16
16
|
}
|
|
17
17
|
return undefined;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
// TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
|
|
5
|
+
/**
|
|
6
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
7
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
8
|
+
* option-row layout:
|
|
9
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
10
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
11
|
+
* `"end"` on iOS.
|
|
12
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
13
|
+
*
|
|
14
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
15
|
+
* callers that aren't a modal can omit it.
|
|
16
|
+
*
|
|
17
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
18
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
19
|
+
*/
|
|
20
|
+
export const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
21
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
22
|
+
return 'start';
|
|
23
|
+
}
|
|
24
|
+
return 'end';
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
28
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
29
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
30
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
31
|
+
* on iOS.
|
|
32
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
33
|
+
*
|
|
34
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
35
|
+
* callers that aren't a modal can omit it.
|
|
36
|
+
*
|
|
37
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
38
|
+
* option doesn't explicitly set `justify`.
|
|
39
|
+
*/
|
|
40
|
+
export const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
41
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
42
|
+
return 'space-between';
|
|
43
|
+
}
|
|
44
|
+
return 'start';
|
|
45
|
+
};
|
|
@@ -19,8 +19,7 @@ export const activeAnimations = new WeakMap();
|
|
|
19
19
|
* Returns false if showBackdrop=false or backdropBreakpoint > 0.
|
|
20
20
|
*/
|
|
21
21
|
const isBackdropAlwaysBlocking = (el) => {
|
|
22
|
-
|
|
23
|
-
return el.showBackdrop !== false && !(((_a = el.backdropBreakpoint) !== null && _a !== void 0 ? _a : 0) > 0);
|
|
22
|
+
return el.showBackdrop !== false && !((el.backdropBreakpoint ?? 0) > 0);
|
|
24
23
|
};
|
|
25
24
|
const createController = (tagName) => {
|
|
26
25
|
return {
|
|
@@ -39,10 +38,6 @@ export const alertController = /*@__PURE__*/ createController('ion-alert');
|
|
|
39
38
|
export const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
|
|
40
39
|
export const loadingController = /*@__PURE__*/ createController('ion-loading');
|
|
41
40
|
export const modalController = /*@__PURE__*/ createController('ion-modal');
|
|
42
|
-
/**
|
|
43
|
-
* @deprecated Use the inline ion-picker component instead.
|
|
44
|
-
*/
|
|
45
|
-
export const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
|
|
46
41
|
export const popoverController = /*@__PURE__*/ createController('ion-popover');
|
|
47
42
|
export const toastController = /*@__PURE__*/ createController('ion-toast');
|
|
48
43
|
/**
|
|
@@ -82,7 +77,6 @@ export const setOverlayId = (el) => {
|
|
|
82
77
|
return el.id;
|
|
83
78
|
};
|
|
84
79
|
export const createOverlay = (tagName, opts) => {
|
|
85
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
86
80
|
if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined') {
|
|
87
81
|
return window.customElements.whenDefined(tagName).then(() => {
|
|
88
82
|
const element = document.createElement(tagName);
|
|
@@ -91,7 +85,7 @@ export const createOverlay = (tagName, opts) => {
|
|
|
91
85
|
* Convert the passed in overlay options into props
|
|
92
86
|
* that get passed down into the new overlay.
|
|
93
87
|
*/
|
|
94
|
-
Object.assign(element,
|
|
88
|
+
Object.assign(element, { ...opts, hasController: true });
|
|
95
89
|
// append the overlay element to the document body
|
|
96
90
|
getAppRoot(document).appendChild(element);
|
|
97
91
|
return new Promise((resolve) => componentOnReady(element, resolve));
|
|
@@ -115,7 +109,7 @@ const isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden'
|
|
|
115
109
|
*/
|
|
116
110
|
const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
117
111
|
let elementToFocus = hostToFocus;
|
|
118
|
-
const shadowRoot = hostToFocus
|
|
112
|
+
const shadowRoot = hostToFocus?.shadowRoot;
|
|
119
113
|
if (shadowRoot) {
|
|
120
114
|
// If there are no inner focusable elements, just focus the host element.
|
|
121
115
|
elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
|
|
@@ -136,7 +130,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
136
130
|
* Should NOT include: Toast
|
|
137
131
|
*/
|
|
138
132
|
const trapKeyboardFocus = (ev, doc) => {
|
|
139
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
133
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
|
|
140
134
|
const target = ev.target;
|
|
141
135
|
/**
|
|
142
136
|
* If no active overlay, ignore this event.
|
|
@@ -322,7 +316,7 @@ const connectListeners = (doc) => {
|
|
|
322
316
|
// handle back-button click
|
|
323
317
|
doc.addEventListener('ionBackButton', (ev) => {
|
|
324
318
|
const lastOverlay = getPresentedOverlay(doc);
|
|
325
|
-
if (lastOverlay
|
|
319
|
+
if (lastOverlay?.backdropDismiss) {
|
|
326
320
|
ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {
|
|
327
321
|
/**
|
|
328
322
|
* Do not return this promise otherwise
|
|
@@ -350,7 +344,7 @@ const connectListeners = (doc) => {
|
|
|
350
344
|
doc.addEventListener('keydown', (ev) => {
|
|
351
345
|
if (ev.key === 'Escape') {
|
|
352
346
|
const lastOverlay = getPresentedOverlay(doc);
|
|
353
|
-
if (lastOverlay
|
|
347
|
+
if (lastOverlay?.backdropDismiss) {
|
|
354
348
|
lastOverlay.dismiss(undefined, BACKDROP);
|
|
355
349
|
}
|
|
356
350
|
}
|
|
@@ -370,7 +364,7 @@ export const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
|
|
370
364
|
*/
|
|
371
365
|
export const getOverlays = (doc, selector) => {
|
|
372
366
|
if (selector === undefined) {
|
|
373
|
-
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
367
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
|
|
374
368
|
}
|
|
375
369
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
376
370
|
};
|
|
@@ -432,8 +426,30 @@ export const setRootAriaHidden = (hidden = false) => {
|
|
|
432
426
|
viewContainer.removeAttribute('aria-hidden');
|
|
433
427
|
}
|
|
434
428
|
};
|
|
429
|
+
/**
|
|
430
|
+
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
431
|
+
* an overlay is removed from the DOM without going through
|
|
432
|
+
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
433
|
+
* overlay during a route change).
|
|
434
|
+
*
|
|
435
|
+
* Should be called from an overlay's `disconnectedCallback`
|
|
436
|
+
* when the overlay was still presented at the time of removal.
|
|
437
|
+
*/
|
|
438
|
+
export const cleanupRootFocusTrapAccessibility = () => {
|
|
439
|
+
if (typeof document === 'undefined') {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
const remainingOverlays = getPresentedOverlays(document);
|
|
443
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
444
|
+
const el = o;
|
|
445
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
446
|
+
});
|
|
447
|
+
if (!hasRemainingLocking) {
|
|
448
|
+
setRootAriaHidden(false);
|
|
449
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
450
|
+
}
|
|
451
|
+
};
|
|
435
452
|
export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
436
|
-
var _a, _b;
|
|
437
453
|
if (overlay.presented) {
|
|
438
454
|
return;
|
|
439
455
|
}
|
|
@@ -479,7 +495,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
479
495
|
}
|
|
480
496
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
481
497
|
}
|
|
482
|
-
|
|
498
|
+
overlay.willPresentShorthand?.emit();
|
|
483
499
|
const mode = getIonMode(overlay);
|
|
484
500
|
// get the user's animation fn if one was provided
|
|
485
501
|
const animationBuilder = overlay.enterAnimation
|
|
@@ -488,7 +504,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
488
504
|
const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
|
|
489
505
|
if (completed) {
|
|
490
506
|
overlay.didPresent.emit();
|
|
491
|
-
|
|
507
|
+
overlay.didPresentShorthand?.emit();
|
|
492
508
|
}
|
|
493
509
|
/**
|
|
494
510
|
* If the focused element is already
|
|
@@ -508,7 +524,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
508
524
|
* exists (e.g. picker-legacy), we fall back to the host.
|
|
509
525
|
*/
|
|
510
526
|
const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
|
|
511
|
-
const focusTarget = overlayWrapper
|
|
527
|
+
const focusTarget = overlayWrapper ?? overlay.el;
|
|
512
528
|
/**
|
|
513
529
|
* `preventScroll` keeps this a pure focus move so the viewport does not
|
|
514
530
|
* jump when the wrapper is partially off-screen (e.g. a sheet modal).
|
|
@@ -518,7 +534,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
518
534
|
try {
|
|
519
535
|
focusTarget.focus({ preventScroll: true });
|
|
520
536
|
}
|
|
521
|
-
catch
|
|
537
|
+
catch {
|
|
522
538
|
focusTarget.focus();
|
|
523
539
|
}
|
|
524
540
|
}
|
|
@@ -554,7 +570,7 @@ const restoreElementFocus = async (overlayEl) => {
|
|
|
554
570
|
}
|
|
555
571
|
// Ensure active element is blurred to prevent a11y warning issues
|
|
556
572
|
previousElement.blur();
|
|
557
|
-
const shadowRoot = previousElement
|
|
573
|
+
const shadowRoot = previousElement?.shadowRoot;
|
|
558
574
|
if (shadowRoot) {
|
|
559
575
|
// If there are no inner focusable elements, just focus the host element.
|
|
560
576
|
previousElement = shadowRoot.querySelector(focusableQueryString) || previousElement;
|
|
@@ -589,7 +605,6 @@ const restoreElementFocus = async (overlayEl) => {
|
|
|
589
605
|
}
|
|
590
606
|
};
|
|
591
607
|
export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
|
|
592
|
-
var _a, _b;
|
|
593
608
|
if (!overlay.presented) {
|
|
594
609
|
return false;
|
|
595
610
|
}
|
|
@@ -624,7 +639,7 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
|
|
|
624
639
|
// Overlay contents should not be clickable during dismiss
|
|
625
640
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
626
641
|
overlay.willDismiss.emit({ data, role });
|
|
627
|
-
|
|
642
|
+
overlay.willDismissShorthand?.emit({ data, role });
|
|
628
643
|
const mode = getIonMode(overlay);
|
|
629
644
|
const animationBuilder = overlay.leaveAnimation
|
|
630
645
|
? overlay.leaveAnimation
|
|
@@ -634,7 +649,7 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
|
|
|
634
649
|
await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
|
|
635
650
|
}
|
|
636
651
|
overlay.didDismiss.emit({ data, role });
|
|
637
|
-
|
|
652
|
+
overlay.didDismissShorthand?.emit({ data, role });
|
|
638
653
|
// Get a reference to all animations currently assigned to this overlay
|
|
639
654
|
// Then tear them down to return the overlay to its initial visual state
|
|
640
655
|
const animations = activeAnimations.get(overlay) || [];
|
|
@@ -675,7 +690,7 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
|
|
|
675
690
|
if (overlay.keyboardClose) {
|
|
676
691
|
animation.beforeAddWrite(() => {
|
|
677
692
|
const activeElement = baseEl.ownerDocument.activeElement;
|
|
678
|
-
if (activeElement
|
|
693
|
+
if (activeElement?.matches('input,ion-input, ion-textarea')) {
|
|
679
694
|
activeElement.blur();
|
|
680
695
|
}
|
|
681
696
|
});
|
|
@@ -25,7 +25,7 @@ export const setupPlatforms = (win = window) => {
|
|
|
25
25
|
const detectPlatforms = (win) => {
|
|
26
26
|
const customPlatformMethods = config.get('platform');
|
|
27
27
|
return Object.keys(PLATFORMS_MAP).filter((p) => {
|
|
28
|
-
const customMethod = customPlatformMethods
|
|
28
|
+
const customMethod = customPlatformMethods?.[p];
|
|
29
29
|
return typeof customMethod === 'function' ? customMethod(win) : PLATFORMS_MAP[p](win);
|
|
30
30
|
});
|
|
31
31
|
};
|
|
@@ -67,13 +67,12 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
|
|
67
67
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
68
68
|
const isCapacitorNative = (win) => {
|
|
69
69
|
const capacitor = win['Capacitor'];
|
|
70
|
-
|
|
71
|
-
return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
|
|
70
|
+
return !!capacitor?.isNativePlatform?.();
|
|
72
71
|
};
|
|
73
72
|
const isElectron = (win) => testUserAgent(win, /electron/i);
|
|
74
|
-
const isPWA = (win) =>
|
|
73
|
+
const isPWA = (win) => !!(win.matchMedia?.('(display-mode: standalone)').matches || win.navigator.standalone);
|
|
75
74
|
export const testUserAgent = (win, expr) => expr.test(win.navigator.userAgent);
|
|
76
|
-
const matchMedia = (win, query) =>
|
|
75
|
+
const matchMedia = (win, query) => win.matchMedia?.(query).matches;
|
|
77
76
|
const PLATFORMS_MAP = {
|
|
78
77
|
ipad: isIpad,
|
|
79
78
|
iphone: isIphone,
|