@ionic/core 8.8.17 → 8.8.18-dev.11786108988.1fd94742
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-0tt0PTAe.js +4 -0
- package/components/p-3dKnMgX5.js +4 -0
- package/components/p-6e_5igwn.js +4 -0
- package/components/{p--JUspHvy.js → p-AqD_wmvU.js} +1 -1
- package/components/p-B-FxiyeI.js +4 -0
- package/components/p-B4COLbAV.js +4 -0
- package/components/p-B9zzUBwR.js +4 -0
- package/components/p-BFU7kgcj.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BPbRjpb2.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/{dist/ionic/p-KjNvRoEp.js → components/p-BXQ7upSC.js} +1 -1
- package/components/p-BhamHSw3.js +4 -0
- package/components/p-BrXE0XUu.js +4 -0
- package/components/p-Bv7Rqz3Z.js +4 -0
- package/components/p-Bw7MMRH7.js +4 -0
- package/components/p-C-X5vb8f.js +4 -0
- package/components/p-C117Majq.js +4 -0
- package/components/{p-ChIZKXUu.js → p-C6JOi8wS.js} +1 -1
- package/components/p-CCVPk59A.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CKMc290p.js +4 -0
- package/components/{p-BkKAANMJ.js → p-CO5nI-BZ.js} +1 -1
- package/components/p-COQ_7Wwc.js +4 -0
- package/components/p-CQbh6Be_.js +4 -0
- package/components/p-CQtcj8t7.js +4 -0
- package/components/p-Cap9bvqr.js +4 -0
- package/components/p-CdP7ze2J.js +4 -0
- package/components/p-CfyJ_Ogc.js +4 -0
- package/components/p-ChWC4-vA.js +4 -0
- package/components/p-CmKf4pgI.js +4 -0
- package/components/p-CqYSqB9_.js +4 -0
- package/{dist/ionic/p-DC3RagnA.js → components/p-Cwsd9bue.js} +1 -1
- package/components/{p-D3xo7hqU.js → p-D0pL_HuH.js} +1 -1
- package/components/p-D0xd6h3Q.js +4 -0
- package/components/p-D28LaDuR.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/components/p-D9KqizZs.js +4 -0
- package/components/p-DIZE3CVV.js +4 -0
- package/components/p-DL8rd5jo.js +4 -0
- package/components/p-DRcApg6F.js +4 -0
- package/components/p-DTTnwMiS.js +4 -0
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-DYmrV1HT.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-Dcu-SAJG.js} +1 -1
- package/components/p-DnINLmwC.js +4 -0
- package/components/{p-DRugphUN.js → p-DsNz6_gM.js} +1 -1
- package/components/p-DtiuiOTk.js +4 -0
- package/components/p-DunYzubP.js +4 -0
- package/components/p-DwcSJ9u1.js +4 -0
- package/components/p-QCPSB1bo.js +4 -0
- package/components/p-RvtofbHn.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-WOFp6fXj.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/{p-C_hpsif8.js → p-ltNYIRmI.js} +1 -1
- package/components/p-miSGCTAU.js +4 -0
- package/components/p-mpdX3emm.js +4 -0
- package/components/p-nvqVLrWC.js +4 -0
- package/components/p-qiWM96Sz.js +4 -0
- package/components/p-vlF0Bcfd.js +4 -0
- package/dist/cjs/{animation-BJq0kcy2.js → animation-D5WDBRvT.js} +4 -4
- package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-C2s3Cbal.js} +1 -1
- package/dist/cjs/{button-active-0mPOKmV2.js → button-active-CXI2TseG.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-PxvGiOik.js → format-ZfKtcdit.js} +40 -30
- package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-Bdvk3JQO.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-iUuF_76h.js → hardware-back-button-zr8zeYaH.js} +4 -4
- package/dist/cjs/{helpers-Cv23MFHM.js → helpers-DURh1XdY.js} +3 -3
- package/dist/cjs/{index-aC4x3Fk3.js → index-B7sCu6vN.js} +6 -7
- package/dist/cjs/{index-CIrkNXqJ.js → index-BnhnwL1o.js} +2 -2
- package/dist/cjs/{index-D81eLYUM.js → index-Btdix80K.js} +2 -2
- package/dist/cjs/{index-Ct7gcRif.js → index-CAThePqm.js} +4 -6
- package/dist/cjs/index-DhSx3VvD.js +429 -0
- package/dist/cjs/{index-BERfRao3.js → index-DsoHs7Ly.js} +5 -5
- package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
- package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
- package/dist/cjs/index.cjs.js +18 -18
- package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-CPbWb84M.js} +9 -11
- package/dist/cjs/{input.utils-DetjmtH2.js → input.utils-CkASW3mE.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 +306 -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 +2767 -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 +418 -251
- 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-B-cA6LkY.js → ionic-global-dMut1Czp.js} +13 -8
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-CeaFa0y2.js} +13 -17
- package/dist/cjs/{item-multiple-inputs-D-gyg57c.js → item-multiple-inputs-HQO5Iy9I.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-B8-wBZqt.js → md.transition-D4Q5jny7.js} +7 -8
- package/dist/cjs/{notch-controller-18PzRGXd.js → notch-controller-fMfidI-7.js} +1 -1
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-DdtIYQUH.js → overlays-C2qrqpHm.js} +48 -33
- package/dist/cjs/select-option-render-Dh16lTnA.js +123 -0
- package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-CgjQ-6jq.js} +3 -3
- package/dist/cjs/{swipe-back-C0GCB18x.js → swipe-back-CmfRYdWQ.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 +92 -64
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +1038 -803
- 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 +6 -7
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
- package/dist/collection/components/modal/modal.js +393 -224
- package/dist/collection/components/modal/safe-area-utils.js +4 -5
- 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/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 +556 -1272
- package/dist/esm/{animation-DLJpuoEz.js → animation-CVK55yMY.js} +4 -4
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-Bk1_t4sH.js} +1 -1
- package/dist/esm/{button-active-BSpTQmS9.js → button-active-CdCqmeT0.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-sMi4BZ_l.js} +41 -31
- package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BfAlKlW5.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-DcHMMB9j.js} +4 -4
- package/dist/esm/{helpers-HEqiOzXb.js → helpers-BPcITY5s.js} +3 -3
- package/dist/esm/{index-BRHzoo00.js → index-B9GsUd2c.js} +2 -2
- package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
- package/dist/esm/{index-tcQvqkiX.js → index-D1CQtpUN.js} +5 -7
- package/dist/esm/index-DDa8edAS.js +424 -0
- package/dist/esm/{index-MEDq2S8l.js → index-DcUt1pPn.js} +2 -2
- package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
- package/dist/esm/{index-B_dQk_WE.js → index-DqVqy_Cy.js} +5 -5
- package/dist/esm/{index-Q6UPU0Ay.js → index-ks-BjikL.js} +6 -7
- package/dist/esm/index.js +16 -15
- package/dist/esm/{input-shims-D10mwcw1.js → input-shims-C1dCKVMO.js} +9 -11
- package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-Dd5xwlP6.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 +306 -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 +2765 -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 +418 -251
- 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-5bZ91kOL.js} +13 -8
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-OcwIGkv9.js} +13 -17
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-ifd3ZrqY.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-BetdF0bc.js} +7 -8
- package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-DBSn-Uat.js} +1 -1
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-DUzb9CQf.js} +48 -33
- package/dist/esm/select-option-render-DsW8svRr.js +121 -0
- package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-C-wNhea0.js} +3 -3
- package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-D6YSgAn7.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-01eaee58.entry.js +4 -0
- package/dist/ionic/p-0c567140.entry.js +4 -0
- package/dist/ionic/p-105bb794.entry.js +4 -0
- package/dist/ionic/p-10d55bb6.entry.js +4 -0
- package/dist/ionic/p-173a87d8.entry.js +4 -0
- package/dist/ionic/p-178da672.entry.js +4 -0
- package/dist/ionic/p-1ead2857.entry.js +4 -0
- package/dist/ionic/p-224e2464.entry.js +4 -0
- package/dist/ionic/p-2268e718.entry.js +4 -0
- package/dist/ionic/p-2b5283f3.entry.js +4 -0
- package/dist/ionic/p-2b6decac.entry.js +4 -0
- package/dist/ionic/p-2da5d9c6.entry.js +4 -0
- package/dist/ionic/p-31890acd.entry.js +4 -0
- package/dist/ionic/p-34ef7425.entry.js +4 -0
- package/dist/ionic/p-34f7c1d8.entry.js +4 -0
- package/dist/ionic/p-3b1e6fa4.entry.js +4 -0
- package/dist/ionic/p-42fefd2c.entry.js +4 -0
- package/dist/ionic/p-440cd489.entry.js +4 -0
- package/dist/ionic/{p-aaeedb6b.entry.js → p-460da491.entry.js} +1 -1
- package/dist/ionic/p-53f680e8.entry.js +4 -0
- package/dist/ionic/p-57ba508f.entry.js +4 -0
- package/dist/ionic/p-599e5a75.entry.js +4 -0
- package/dist/ionic/p-5f670a9e.entry.js +4 -0
- package/dist/ionic/p-63502088.entry.js +4 -0
- package/dist/ionic/p-6e6bf45d.entry.js +4 -0
- package/dist/ionic/p-6f0b6a48.entry.js +4 -0
- package/dist/ionic/p-7438c462.entry.js +4 -0
- package/dist/ionic/p-747716e7.entry.js +4 -0
- package/dist/ionic/p-7759fcaf.entry.js +4 -0
- package/dist/ionic/p-7a8338e2.entry.js +4 -0
- package/dist/ionic/p-80f9f1dc.entry.js +4 -0
- package/dist/ionic/p-83ff4dcb.entry.js +4 -0
- package/dist/ionic/p-86f03895.entry.js +4 -0
- package/dist/ionic/p-87b8d70e.entry.js +4 -0
- package/dist/ionic/p-888236bf.entry.js +4 -0
- package/dist/ionic/p-8a92ca23.entry.js +4 -0
- package/dist/ionic/p-8c9af4ad.entry.js +4 -0
- package/dist/ionic/p-9669f546.entry.js +4 -0
- package/dist/ionic/p-9bcd8b74.entry.js +4 -0
- package/dist/ionic/p-B-FxiyeI.js +4 -0
- package/dist/ionic/p-B2trYd8K.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/{p-DIuEbVLu.js → p-BNKr91bi.js} +1 -1
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BSzG1VcX.js +4 -0
- package/dist/ionic/p-BVgBHS96.js +4 -0
- package/dist/ionic/p-BX2IOAqC.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/p-BufXJ_A8.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-C73UOs4m.js +4 -0
- package/{components/p-B-JJgYSG.js → dist/ionic/p-CHpEzg-o.js} +1 -1
- package/dist/ionic/p-CUSwMljM.js +4 -0
- package/dist/ionic/p-CeOSrSdu.js +4 -0
- package/dist/ionic/p-CfkB7_FV.js +4 -0
- package/dist/ionic/p-CmKf4pgI.js +4 -0
- package/dist/ionic/p-CnM-CMw7.js +4 -0
- package/dist/ionic/p-D1CQtpUN.js +5 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-DVYb1IVZ.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-DfJ-SVJf.js +4 -0
- package/dist/ionic/p-DmXrLsoD.js +4 -0
- package/dist/ionic/p-DtLHAMFW.js +4 -0
- package/dist/ionic/p-Dtlob2JL.js +4 -0
- package/dist/ionic/p-F7ipfyOA.js +4 -0
- package/dist/ionic/{p-DoJvtrbw.js → p-I9ETXg5W.js} +1 -1
- package/dist/ionic/{p-Wk5HzclC.js → p-IaXd5VMv.js} +1 -1
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-aL0G45tD.js +4 -0
- package/dist/ionic/p-acbb97c3.entry.js +4 -0
- package/dist/ionic/p-aeb85531.entry.js +4 -0
- package/dist/ionic/p-b157f80d.entry.js +4 -0
- package/dist/ionic/p-b158de5d.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-b40c9715.entry.js} +1 -1
- package/dist/ionic/p-b852101e.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c0d81bee.entry.js +4 -0
- package/dist/ionic/p-c8a327fb.entry.js +4 -0
- package/dist/ionic/p-d42ae99f.entry.js +4 -0
- package/dist/ionic/p-d47ff529.entry.js +4 -0
- package/dist/ionic/p-eHi73fGE.js +4 -0
- package/dist/ionic/p-eeabce92.entry.js +4 -0
- package/dist/ionic/p-efc66d77.entry.js +4 -0
- package/dist/ionic/p-f6d203dc.entry.js +4 -0
- package/dist/ionic/p-u2a770LZ.js +4 -0
- 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.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 +0 -8
- 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 +10278 -7052
- package/hydrate/index.mjs +10278 -7052
- package/package.json +54 -11
- 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-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-DHTSTb52.js +0 -4
- package/components/p-DJZp0KTQ.js +0 -4
- package/components/p-DOFCbuQR.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-KEFO0w3i.js +0 -4
- package/components/p-Osve4qkc.js +0 -4
- package/components/p-SLS1rDZM.js +0 -4
- package/components/p-VWbRkLT7.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-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-scxfI1Dd.js +0 -4
- package/components/p-sijaAIYG.js +0 -4
- package/components/p-yzCsOZE2.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3164
- 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 -3160
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.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-20b1a044.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-485fda23.entry.js +0 -4
- package/dist/ionic/p-4ac4f3d6.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-5018dfc8.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.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-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-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9f1103ce.entry.js +0 -4
- package/dist/ionic/p-9f9db3a2.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-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-DSG2s2Eb.js +0 -4
- package/dist/ionic/p-Dfbt-q2k.js +0 -4
- package/dist/ionic/p-DiVJyqlX.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-ad306193.entry.js +0 -4
- package/dist/ionic/p-b6a7397c.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-e0be05c5.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-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
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host
|
|
5
|
-
import {
|
|
6
|
-
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-
|
|
7
|
-
import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-
|
|
4
|
+
import { r as registerInstance, c as createEvent, g as getElement, f as printIonWarning, h, d as Host } from './index-D1CQtpUN.js';
|
|
5
|
+
import { h as prepareOverlay, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, n as focusFirstDescendant, f as dismiss, g as eventMethod, B as BACKDROP, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-DUzb9CQf.js';
|
|
6
|
+
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-BfAlKlW5.js';
|
|
7
|
+
import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-BPcITY5s.js';
|
|
8
8
|
import { c as createLockController } from './lock-controller-B-hirT0v.js';
|
|
9
|
-
import { b as getIonMode, a as isPlatform } from './ionic-global-
|
|
10
|
-
import { g as getClassMap } from './theme-
|
|
11
|
-
import { e as deepReady, w as waitForMount } from './index-
|
|
12
|
-
import { c as createAnimation } from './animation-
|
|
9
|
+
import { b as getIonMode, a as isPlatform } from './ionic-global-5bZ91kOL.js';
|
|
10
|
+
import { g as getClassMap } from './theme-byZM6qHV.js';
|
|
11
|
+
import { e as deepReady, w as waitForMount } from './index-DqVqy_Cy.js';
|
|
12
|
+
import { c as createAnimation } from './animation-CVK55yMY.js';
|
|
13
13
|
import './index-ZjP4CjeZ.js';
|
|
14
|
-
import './hardware-back-button-
|
|
15
|
-
import './gesture-controller-
|
|
14
|
+
import './hardware-back-button-DcHMMB9j.js';
|
|
15
|
+
import './gesture-controller-TXPDHL13.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Shared per-frame cache for safe-area insets. Avoids creating a temporary
|
|
@@ -326,10 +326,9 @@ const focusItem = (item) => {
|
|
|
326
326
|
const isTriggerElement = (el) => el.hasAttribute('data-ion-popover-trigger');
|
|
327
327
|
const configureKeyboardInteraction = (popoverEl) => {
|
|
328
328
|
const callback = async (ev) => {
|
|
329
|
-
var _a;
|
|
330
329
|
const activeElement = document.activeElement;
|
|
331
330
|
let items = [];
|
|
332
|
-
const targetTagName =
|
|
331
|
+
const targetTagName = ev.target?.tagName;
|
|
333
332
|
/**
|
|
334
333
|
* Only handle custom keyboard interactions for the host popover element
|
|
335
334
|
* and children ion-item elements.
|
|
@@ -350,7 +349,7 @@ const configureKeyboardInteraction = (popoverEl) => {
|
|
|
350
349
|
items = Array.from(popoverEl.querySelectorAll('ion-item:not(ion-popover ion-popover *):not([disabled])'));
|
|
351
350
|
/* eslint-disable-next-line */
|
|
352
351
|
}
|
|
353
|
-
catch
|
|
352
|
+
catch { }
|
|
354
353
|
switch (ev.key) {
|
|
355
354
|
/**
|
|
356
355
|
* If we are in a child popover
|
|
@@ -431,7 +430,6 @@ const configureKeyboardInteraction = (popoverEl) => {
|
|
|
431
430
|
* and viewport dimensions.
|
|
432
431
|
*/
|
|
433
432
|
const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event) => {
|
|
434
|
-
var _a;
|
|
435
433
|
let referenceCoordinates = {
|
|
436
434
|
top: 0,
|
|
437
435
|
left: 0,
|
|
@@ -476,8 +474,8 @@ const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arro
|
|
|
476
474
|
* as a whole.
|
|
477
475
|
*/
|
|
478
476
|
const actualTriggerEl = (triggerEl ||
|
|
479
|
-
|
|
480
|
-
|
|
477
|
+
customEv?.detail?.ionShadowTarget ||
|
|
478
|
+
customEv?.target);
|
|
481
479
|
if (!actualTriggerEl) {
|
|
482
480
|
return defaultPosition;
|
|
483
481
|
}
|
|
@@ -846,7 +844,6 @@ const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
|
|
|
846
844
|
*/
|
|
847
845
|
// TODO(FW-2832): types
|
|
848
846
|
const iosEnterAnimation = (baseEl, opts) => {
|
|
849
|
-
var _a;
|
|
850
847
|
const { event: ev, size, trigger, reference, side, align } = opts;
|
|
851
848
|
const doc = baseEl.ownerDocument;
|
|
852
849
|
const isRTL = doc.dir === 'rtl';
|
|
@@ -855,7 +852,7 @@ const iosEnterAnimation = (baseEl, opts) => {
|
|
|
855
852
|
const root = getElementRoot(baseEl);
|
|
856
853
|
const contentEl = root.querySelector('.popover-content');
|
|
857
854
|
const arrowEl = root.querySelector('.popover-arrow');
|
|
858
|
-
const referenceSizeEl = trigger ||
|
|
855
|
+
const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
|
|
859
856
|
const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
|
|
860
857
|
const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl);
|
|
861
858
|
const defaultPosition = {
|
|
@@ -983,7 +980,6 @@ const POPOVER_MD_BODY_PADDING = 12;
|
|
|
983
980
|
*/
|
|
984
981
|
// TODO(FW-2832): types
|
|
985
982
|
const mdEnterAnimation = (baseEl, opts) => {
|
|
986
|
-
var _a;
|
|
987
983
|
const { event: ev, size, trigger, reference, side, align } = opts;
|
|
988
984
|
const doc = baseEl.ownerDocument;
|
|
989
985
|
const isRTL = doc.dir === 'rtl';
|
|
@@ -991,7 +987,7 @@ const mdEnterAnimation = (baseEl, opts) => {
|
|
|
991
987
|
const bodyHeight = doc.defaultView.innerHeight;
|
|
992
988
|
const root = getElementRoot(baseEl);
|
|
993
989
|
const contentEl = root.querySelector('.popover-content');
|
|
994
|
-
const referenceSizeEl = trigger ||
|
|
990
|
+
const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
|
|
995
991
|
const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
|
|
996
992
|
const defaultPosition = {
|
|
997
993
|
top: bodyHeight / 2 - contentHeight / 2,
|
|
@@ -1088,9 +1084,9 @@ const mdLeaveAnimation = (baseEl) => {
|
|
|
1088
1084
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
1089
1085
|
};
|
|
1090
1086
|
|
|
1091
|
-
const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
|
|
1087
|
+
const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
|
|
1092
1088
|
|
|
1093
|
-
const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
|
|
1089
|
+
const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
|
|
1094
1090
|
|
|
1095
1091
|
const Popover = class {
|
|
1096
1092
|
constructor(hostRef) {
|
|
@@ -1104,181 +1100,183 @@ const Popover = class {
|
|
|
1104
1100
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
1105
1101
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
1106
1102
|
this.ionMount = createEvent(this, "ionMount", 7);
|
|
1107
|
-
this.parentPopover = null;
|
|
1108
|
-
this.coreDelegate = CoreDelegate();
|
|
1109
|
-
this.lockController = createLockController();
|
|
1110
|
-
this.inline = false;
|
|
1111
|
-
this.focusDescendantOnPresent = false;
|
|
1112
|
-
this.presented = false;
|
|
1113
|
-
/** @internal */
|
|
1114
|
-
this.hasController = false;
|
|
1115
|
-
/**
|
|
1116
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1117
|
-
*/
|
|
1118
|
-
this.keyboardClose = true;
|
|
1119
|
-
/**
|
|
1120
|
-
* If `true`, the popover will be dismissed when the backdrop is clicked.
|
|
1121
|
-
*/
|
|
1122
|
-
this.backdropDismiss = true;
|
|
1123
|
-
/**
|
|
1124
|
-
* If `true`, a backdrop will be displayed behind the popover.
|
|
1125
|
-
* This property controls whether or not the backdrop
|
|
1126
|
-
* darkens the screen when the popover is presented.
|
|
1127
|
-
* It does not control whether or not the backdrop
|
|
1128
|
-
* is active or present in the DOM.
|
|
1129
|
-
*/
|
|
1130
|
-
this.showBackdrop = true;
|
|
1131
|
-
/**
|
|
1132
|
-
* If `true`, the popover will be translucent.
|
|
1133
|
-
* Only applies when the mode is `"ios"` and the device supports
|
|
1134
|
-
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
1135
|
-
*/
|
|
1136
|
-
this.translucent = false;
|
|
1137
|
-
/**
|
|
1138
|
-
* If `true`, the popover will animate.
|
|
1139
|
-
*/
|
|
1140
|
-
this.animated = true;
|
|
1141
|
-
/**
|
|
1142
|
-
* Describes what kind of interaction with the trigger that
|
|
1143
|
-
* should cause the popover to open. Does not apply when the `trigger`
|
|
1144
|
-
* property is `undefined`.
|
|
1145
|
-
* If `"click"`, the popover will be presented when the trigger is left clicked.
|
|
1146
|
-
* If `"hover"`, the popover will be presented when a pointer hovers over the trigger.
|
|
1147
|
-
* If `"context-menu"`, the popover will be presented when the trigger is right
|
|
1148
|
-
* clicked on desktop and long pressed on mobile. This will also prevent your
|
|
1149
|
-
* device's normal context menu from appearing.
|
|
1150
|
-
*/
|
|
1151
|
-
this.triggerAction = 'click';
|
|
1152
|
-
/**
|
|
1153
|
-
* Describes how to calculate the popover width.
|
|
1154
|
-
* If `"cover"`, the popover width will match the width of the trigger.
|
|
1155
|
-
* If `"auto"`, the popover width will be set to a static default value.
|
|
1156
|
-
*/
|
|
1157
|
-
this.size = 'auto';
|
|
1158
|
-
/**
|
|
1159
|
-
* If `true`, the popover will be automatically
|
|
1160
|
-
* dismissed when the content has been clicked.
|
|
1161
|
-
*/
|
|
1162
|
-
this.dismissOnSelect = false;
|
|
1163
|
-
/**
|
|
1164
|
-
* Describes what to position the popover relative to.
|
|
1165
|
-
* If `"trigger"`, the popover will be positioned relative
|
|
1166
|
-
* to the trigger button. If passing in an event, this is
|
|
1167
|
-
* determined via event.target.
|
|
1168
|
-
* If `"event"`, the popover will be positioned relative
|
|
1169
|
-
* to the x/y coordinates of the trigger action. If passing
|
|
1170
|
-
* in an event, this is determined via event.clientX and event.clientY.
|
|
1171
|
-
*/
|
|
1172
|
-
this.reference = 'trigger';
|
|
1173
|
-
/**
|
|
1174
|
-
* Describes which side of the `reference` point to position
|
|
1175
|
-
* the popover on. The `"start"` and `"end"` values are RTL-aware,
|
|
1176
|
-
* and the `"left"` and `"right"` values are not.
|
|
1177
|
-
*/
|
|
1178
|
-
this.side = 'bottom';
|
|
1179
|
-
/**
|
|
1180
|
-
* If `true`, the popover will display an arrow that points at the
|
|
1181
|
-
* `reference` when running in `ios` mode. Does not apply in `md` mode.
|
|
1182
|
-
*/
|
|
1183
|
-
this.arrow = true;
|
|
1184
|
-
/**
|
|
1185
|
-
* If `true`, the popover will open. If `false`, the popover will close.
|
|
1186
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
1187
|
-
* just use the popoverController or the `trigger` property.
|
|
1188
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1189
|
-
* the popover dismisses. You will need to do that in your code.
|
|
1190
|
-
*/
|
|
1191
|
-
this.isOpen = false;
|
|
1192
|
-
/**
|
|
1193
|
-
* @internal
|
|
1194
|
-
*
|
|
1195
|
-
* If `true` the popover will not register its own keyboard event handlers.
|
|
1196
|
-
* This allows the contents of the popover to handle their own keyboard interactions.
|
|
1197
|
-
*
|
|
1198
|
-
* If `false`, the popover will register its own keyboard event handlers for
|
|
1199
|
-
* navigating `ion-list` items within a popover (up/down/home/end/etc.).
|
|
1200
|
-
* This will also cancel browser keyboard event bindings to prevent scroll
|
|
1201
|
-
* behavior in a popover using a list of items.
|
|
1202
|
-
*/
|
|
1203
|
-
this.keyboardEvents = false;
|
|
1204
|
-
/**
|
|
1205
|
-
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1206
|
-
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1207
|
-
*
|
|
1208
|
-
* In most scenarios this property should remain set to `true`. Setting
|
|
1209
|
-
* this property to `false` can cause severe accessibility issues as users
|
|
1210
|
-
* relying on assistive technologies may be able to move focus into
|
|
1211
|
-
* a confusing state. We recommend only setting this to `false` when
|
|
1212
|
-
* absolutely necessary.
|
|
1213
|
-
*
|
|
1214
|
-
* Developers may want to consider disabling focus trapping if this
|
|
1215
|
-
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1216
|
-
* Developers would disable focus trapping on the Ionic overlay
|
|
1217
|
-
* when presenting the 3rd party overlay and then re-enable
|
|
1218
|
-
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1219
|
-
* focus back to the Ionic overlay.
|
|
1220
|
-
*/
|
|
1221
|
-
this.focusTrap = true;
|
|
1222
|
-
/**
|
|
1223
|
-
* If `true`, the component passed into `ion-popover` will
|
|
1224
|
-
* automatically be mounted when the popover is created. The
|
|
1225
|
-
* component will remain mounted even when the popover is dismissed.
|
|
1226
|
-
* However, the component will be destroyed when the popover is
|
|
1227
|
-
* destroyed. This property is not reactive and should only be
|
|
1228
|
-
* used when initially creating a popover.
|
|
1229
|
-
*
|
|
1230
|
-
* Note: This feature only applies to inline popovers in JavaScript
|
|
1231
|
-
* frameworks such as Angular, React, and Vue.
|
|
1232
|
-
*/
|
|
1233
|
-
this.keepContentsMounted = false;
|
|
1234
|
-
this.onBackdropTap = () => {
|
|
1235
|
-
this.dismiss(undefined, BACKDROP);
|
|
1236
|
-
};
|
|
1237
|
-
this.onLifecycle = (modalEvent) => {
|
|
1238
|
-
const el = this.usersElement;
|
|
1239
|
-
const name = LIFECYCLE_MAP[modalEvent.type];
|
|
1240
|
-
if (el && name) {
|
|
1241
|
-
const event = new CustomEvent(name, {
|
|
1242
|
-
bubbles: false,
|
|
1243
|
-
cancelable: false,
|
|
1244
|
-
detail: modalEvent.detail,
|
|
1245
|
-
});
|
|
1246
|
-
el.dispatchEvent(event);
|
|
1247
|
-
}
|
|
1248
|
-
};
|
|
1249
|
-
this.configureTriggerInteraction = () => {
|
|
1250
|
-
const { trigger, triggerAction, el, destroyTriggerInteraction } = this;
|
|
1251
|
-
if (destroyTriggerInteraction) {
|
|
1252
|
-
destroyTriggerInteraction();
|
|
1253
|
-
}
|
|
1254
|
-
if (trigger === undefined) {
|
|
1255
|
-
return;
|
|
1256
|
-
}
|
|
1257
|
-
const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
|
|
1258
|
-
if (!triggerEl) {
|
|
1259
|
-
printIonWarning(`[ion-popover] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el);
|
|
1260
|
-
return;
|
|
1261
|
-
}
|
|
1262
|
-
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
|
|
1263
|
-
};
|
|
1264
|
-
this.configureKeyboardInteraction = () => {
|
|
1265
|
-
const { destroyKeyboardInteraction, el } = this;
|
|
1266
|
-
if (destroyKeyboardInteraction) {
|
|
1267
|
-
destroyKeyboardInteraction();
|
|
1268
|
-
}
|
|
1269
|
-
this.destroyKeyboardInteraction = configureKeyboardInteraction(el);
|
|
1270
|
-
};
|
|
1271
|
-
this.configureDismissInteraction = () => {
|
|
1272
|
-
const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;
|
|
1273
|
-
if (!parentPopover || !triggerEl) {
|
|
1274
|
-
return;
|
|
1275
|
-
}
|
|
1276
|
-
if (destroyDismissInteraction) {
|
|
1277
|
-
destroyDismissInteraction();
|
|
1278
|
-
}
|
|
1279
|
-
this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);
|
|
1280
|
-
};
|
|
1281
1103
|
}
|
|
1104
|
+
usersElement;
|
|
1105
|
+
triggerEl;
|
|
1106
|
+
parentPopover = null;
|
|
1107
|
+
coreDelegate = CoreDelegate();
|
|
1108
|
+
lockController = createLockController();
|
|
1109
|
+
destroyTriggerInteraction;
|
|
1110
|
+
destroyKeyboardInteraction;
|
|
1111
|
+
destroyDismissInteraction;
|
|
1112
|
+
headerResizeObserver;
|
|
1113
|
+
inline = false;
|
|
1114
|
+
workingDelegate;
|
|
1115
|
+
focusDescendantOnPresent = false;
|
|
1116
|
+
lastFocus;
|
|
1117
|
+
presented = false;
|
|
1118
|
+
get el() { return getElement(this); }
|
|
1119
|
+
/** @internal */
|
|
1120
|
+
hasController = false;
|
|
1121
|
+
/** @internal */
|
|
1122
|
+
delegate;
|
|
1123
|
+
/** @internal */
|
|
1124
|
+
overlayIndex;
|
|
1125
|
+
/**
|
|
1126
|
+
* Animation to use when the popover is presented.
|
|
1127
|
+
*/
|
|
1128
|
+
enterAnimation;
|
|
1129
|
+
/**
|
|
1130
|
+
* Animation to use when the popover is dismissed.
|
|
1131
|
+
*/
|
|
1132
|
+
leaveAnimation;
|
|
1133
|
+
/**
|
|
1134
|
+
* The component to display inside of the popover.
|
|
1135
|
+
* You only need to use this if you are not using
|
|
1136
|
+
* a JavaScript framework. Otherwise, you can just
|
|
1137
|
+
* slot your component inside of `ion-popover`.
|
|
1138
|
+
*/
|
|
1139
|
+
component;
|
|
1140
|
+
/**
|
|
1141
|
+
* The data to pass to the popover component.
|
|
1142
|
+
* You only need to use this if you are not using
|
|
1143
|
+
* a JavaScript framework. Otherwise, you can just
|
|
1144
|
+
* set the props directly on your component.
|
|
1145
|
+
*/
|
|
1146
|
+
componentProps;
|
|
1147
|
+
/**
|
|
1148
|
+
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1149
|
+
*/
|
|
1150
|
+
keyboardClose = true;
|
|
1151
|
+
/**
|
|
1152
|
+
* Additional classes to apply for custom CSS. If multiple classes are
|
|
1153
|
+
* provided they should be separated by spaces.
|
|
1154
|
+
* @internal
|
|
1155
|
+
*/
|
|
1156
|
+
cssClass;
|
|
1157
|
+
/**
|
|
1158
|
+
* If `true`, the popover will be dismissed when the backdrop is clicked.
|
|
1159
|
+
*/
|
|
1160
|
+
backdropDismiss = true;
|
|
1161
|
+
/**
|
|
1162
|
+
* The event to pass to the popover animation.
|
|
1163
|
+
*/
|
|
1164
|
+
event;
|
|
1165
|
+
/**
|
|
1166
|
+
* If `true`, a backdrop will be displayed behind the popover.
|
|
1167
|
+
* This property controls whether or not the backdrop
|
|
1168
|
+
* darkens the screen when the popover is presented.
|
|
1169
|
+
* It does not control whether or not the backdrop
|
|
1170
|
+
* is active or present in the DOM.
|
|
1171
|
+
*/
|
|
1172
|
+
showBackdrop = true;
|
|
1173
|
+
/**
|
|
1174
|
+
* If `true`, the popover will be translucent.
|
|
1175
|
+
* Only applies when the mode is `"ios"` and the device supports
|
|
1176
|
+
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
1177
|
+
*/
|
|
1178
|
+
translucent = false;
|
|
1179
|
+
/**
|
|
1180
|
+
* If `true`, the popover will animate.
|
|
1181
|
+
*/
|
|
1182
|
+
animated = true;
|
|
1183
|
+
/**
|
|
1184
|
+
* Additional attributes to pass to the popover.
|
|
1185
|
+
*/
|
|
1186
|
+
htmlAttributes;
|
|
1187
|
+
/**
|
|
1188
|
+
* Describes what kind of interaction with the trigger that
|
|
1189
|
+
* should cause the popover to open. Does not apply when the `trigger`
|
|
1190
|
+
* property is `undefined`.
|
|
1191
|
+
* If `"click"`, the popover will be presented when the trigger is left clicked.
|
|
1192
|
+
* If `"hover"`, the popover will be presented when a pointer hovers over the trigger.
|
|
1193
|
+
* If `"context-menu"`, the popover will be presented when the trigger is right
|
|
1194
|
+
* clicked on desktop and long pressed on mobile. This will also prevent your
|
|
1195
|
+
* device's normal context menu from appearing.
|
|
1196
|
+
*/
|
|
1197
|
+
triggerAction = 'click';
|
|
1198
|
+
/**
|
|
1199
|
+
* An ID corresponding to the trigger element that
|
|
1200
|
+
* causes the popover to open. Use the `trigger-action`
|
|
1201
|
+
* property to customize the interaction that results in
|
|
1202
|
+
* the popover opening.
|
|
1203
|
+
*/
|
|
1204
|
+
trigger;
|
|
1205
|
+
/**
|
|
1206
|
+
* Describes how to calculate the popover width.
|
|
1207
|
+
* If `"cover"`, the popover width will match the width of the trigger.
|
|
1208
|
+
* If `"auto"`, the popover width will be set to a static default value.
|
|
1209
|
+
*/
|
|
1210
|
+
size = 'auto';
|
|
1211
|
+
/**
|
|
1212
|
+
* If `true`, the popover will be automatically
|
|
1213
|
+
* dismissed when the content has been clicked.
|
|
1214
|
+
*/
|
|
1215
|
+
dismissOnSelect = false;
|
|
1216
|
+
/**
|
|
1217
|
+
* Describes what to position the popover relative to.
|
|
1218
|
+
* If `"trigger"`, the popover will be positioned relative
|
|
1219
|
+
* to the trigger button. If passing in an event, this is
|
|
1220
|
+
* determined via event.target.
|
|
1221
|
+
* If `"event"`, the popover will be positioned relative
|
|
1222
|
+
* to the x/y coordinates of the trigger action. If passing
|
|
1223
|
+
* in an event, this is determined via event.clientX and event.clientY.
|
|
1224
|
+
*/
|
|
1225
|
+
reference = 'trigger';
|
|
1226
|
+
/**
|
|
1227
|
+
* Describes which side of the `reference` point to position
|
|
1228
|
+
* the popover on. The `"start"` and `"end"` values are RTL-aware,
|
|
1229
|
+
* and the `"left"` and `"right"` values are not.
|
|
1230
|
+
*/
|
|
1231
|
+
side = 'bottom';
|
|
1232
|
+
/**
|
|
1233
|
+
* Describes how to align the popover content with the `reference` point.
|
|
1234
|
+
* Defaults to `"center"` for `ios` mode, and `"start"` for `md` mode.
|
|
1235
|
+
*/
|
|
1236
|
+
alignment;
|
|
1237
|
+
/**
|
|
1238
|
+
* If `true`, the popover will display an arrow that points at the
|
|
1239
|
+
* `reference` when running in `ios` mode. Does not apply in `md` mode.
|
|
1240
|
+
*/
|
|
1241
|
+
arrow = true;
|
|
1242
|
+
/**
|
|
1243
|
+
* If `true`, the popover will open. If `false`, the popover will close.
|
|
1244
|
+
* Use this if you need finer grained control over presentation, otherwise
|
|
1245
|
+
* just use the popoverController or the `trigger` property.
|
|
1246
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1247
|
+
* the popover dismisses. You will need to do that in your code.
|
|
1248
|
+
*/
|
|
1249
|
+
isOpen = false;
|
|
1250
|
+
/**
|
|
1251
|
+
* @internal
|
|
1252
|
+
*
|
|
1253
|
+
* If `true` the popover will not register its own keyboard event handlers.
|
|
1254
|
+
* This allows the contents of the popover to handle their own keyboard interactions.
|
|
1255
|
+
*
|
|
1256
|
+
* If `false`, the popover will register its own keyboard event handlers for
|
|
1257
|
+
* navigating `ion-list` items within a popover (up/down/home/end/etc.).
|
|
1258
|
+
* This will also cancel browser keyboard event bindings to prevent scroll
|
|
1259
|
+
* behavior in a popover using a list of items.
|
|
1260
|
+
*/
|
|
1261
|
+
keyboardEvents = false;
|
|
1262
|
+
/**
|
|
1263
|
+
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1264
|
+
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1265
|
+
*
|
|
1266
|
+
* In most scenarios this property should remain set to `true`. Setting
|
|
1267
|
+
* this property to `false` can cause severe accessibility issues as users
|
|
1268
|
+
* relying on assistive technologies may be able to move focus into
|
|
1269
|
+
* a confusing state. We recommend only setting this to `false` when
|
|
1270
|
+
* absolutely necessary.
|
|
1271
|
+
*
|
|
1272
|
+
* Developers may want to consider disabling focus trapping if this
|
|
1273
|
+
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1274
|
+
* Developers would disable focus trapping on the Ionic overlay
|
|
1275
|
+
* when presenting the 3rd party overlay and then re-enable
|
|
1276
|
+
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1277
|
+
* focus back to the Ionic overlay.
|
|
1278
|
+
*/
|
|
1279
|
+
focusTrap = true;
|
|
1282
1280
|
onTriggerChange() {
|
|
1283
1281
|
this.configureTriggerInteraction();
|
|
1284
1282
|
}
|
|
@@ -1290,6 +1288,66 @@ const Popover = class {
|
|
|
1290
1288
|
this.dismiss();
|
|
1291
1289
|
}
|
|
1292
1290
|
}
|
|
1291
|
+
/**
|
|
1292
|
+
* If `true`, the component passed into `ion-popover` will
|
|
1293
|
+
* automatically be mounted when the popover is created. The
|
|
1294
|
+
* component will remain mounted even when the popover is dismissed.
|
|
1295
|
+
* However, the component will be destroyed when the popover is
|
|
1296
|
+
* destroyed. This property is not reactive and should only be
|
|
1297
|
+
* used when initially creating a popover.
|
|
1298
|
+
*
|
|
1299
|
+
* Note: This feature only applies to inline popovers in JavaScript
|
|
1300
|
+
* frameworks such as Angular, React, and Vue.
|
|
1301
|
+
*/
|
|
1302
|
+
keepContentsMounted = false;
|
|
1303
|
+
/**
|
|
1304
|
+
* Emitted after the popover has presented.
|
|
1305
|
+
*/
|
|
1306
|
+
didPresent;
|
|
1307
|
+
/**
|
|
1308
|
+
* Emitted before the popover has presented.
|
|
1309
|
+
*/
|
|
1310
|
+
willPresent;
|
|
1311
|
+
/**
|
|
1312
|
+
* Emitted before the popover has dismissed.
|
|
1313
|
+
*/
|
|
1314
|
+
willDismiss;
|
|
1315
|
+
/**
|
|
1316
|
+
* Emitted after the popover has dismissed.
|
|
1317
|
+
*/
|
|
1318
|
+
didDismiss;
|
|
1319
|
+
/**
|
|
1320
|
+
* Emitted after the popover has presented.
|
|
1321
|
+
* Shorthand for ionPopoverWillDismiss.
|
|
1322
|
+
*/
|
|
1323
|
+
didPresentShorthand;
|
|
1324
|
+
/**
|
|
1325
|
+
* Emitted before the popover has presented.
|
|
1326
|
+
* Shorthand for ionPopoverWillPresent.
|
|
1327
|
+
*/
|
|
1328
|
+
willPresentShorthand;
|
|
1329
|
+
/**
|
|
1330
|
+
* Emitted before the popover has dismissed.
|
|
1331
|
+
* Shorthand for ionPopoverWillDismiss.
|
|
1332
|
+
*/
|
|
1333
|
+
willDismissShorthand;
|
|
1334
|
+
/**
|
|
1335
|
+
* Emitted after the popover has dismissed.
|
|
1336
|
+
* Shorthand for ionPopoverDidDismiss.
|
|
1337
|
+
*/
|
|
1338
|
+
didDismissShorthand;
|
|
1339
|
+
/**
|
|
1340
|
+
* Emitted before the popover has presented, but after the component
|
|
1341
|
+
* has been mounted in the DOM.
|
|
1342
|
+
* This event exists for ion-popover to resolve an issue with the
|
|
1343
|
+
* popover and the lazy build, that the transition is unable to get
|
|
1344
|
+
* the correct dimensions of the popover with auto sizing.
|
|
1345
|
+
* This is not required for other overlays, since the existing
|
|
1346
|
+
* overlay transitions are not effected by auto sizing content.
|
|
1347
|
+
*
|
|
1348
|
+
* @internal
|
|
1349
|
+
*/
|
|
1350
|
+
ionMount;
|
|
1293
1351
|
connectedCallback() {
|
|
1294
1352
|
const { configureTriggerInteraction, el } = this;
|
|
1295
1353
|
prepareOverlay(el);
|
|
@@ -1304,11 +1362,14 @@ const Popover = class {
|
|
|
1304
1362
|
this.headerResizeObserver.disconnect();
|
|
1305
1363
|
this.headerResizeObserver = undefined;
|
|
1306
1364
|
}
|
|
1365
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
1366
|
+
if (this.presented) {
|
|
1367
|
+
cleanupRootFocusTrapAccessibility();
|
|
1368
|
+
}
|
|
1307
1369
|
}
|
|
1308
1370
|
componentWillLoad() {
|
|
1309
|
-
var _a, _b;
|
|
1310
1371
|
const { el } = this;
|
|
1311
|
-
const popoverId =
|
|
1372
|
+
const popoverId = this.htmlAttributes?.id ?? setOverlayId(el);
|
|
1312
1373
|
this.parentPopover = el.closest(`ion-popover:not(#${popoverId})`);
|
|
1313
1374
|
if (this.alignment === undefined) {
|
|
1314
1375
|
this.alignment = getIonMode(this) === 'ios' ? 'center' : 'start';
|
|
@@ -1458,8 +1519,7 @@ const Popover = class {
|
|
|
1458
1519
|
* of the content to the height of the header correctly.
|
|
1459
1520
|
*/
|
|
1460
1521
|
recalculateContentOnHeaderReady() {
|
|
1461
|
-
|
|
1462
|
-
const popoverContent = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-content');
|
|
1522
|
+
const popoverContent = this.el.shadowRoot?.querySelector('.popover-content');
|
|
1463
1523
|
if (!popoverContent) {
|
|
1464
1524
|
return;
|
|
1465
1525
|
}
|
|
@@ -1470,9 +1530,8 @@ const Popover = class {
|
|
|
1470
1530
|
return;
|
|
1471
1531
|
}
|
|
1472
1532
|
this.headerResizeObserver = new ResizeObserver(async () => {
|
|
1473
|
-
var _a;
|
|
1474
1533
|
if (header.offsetHeight > 0) {
|
|
1475
|
-
|
|
1534
|
+
this.headerResizeObserver?.disconnect();
|
|
1476
1535
|
this.headerResizeObserver = undefined;
|
|
1477
1536
|
for (const contentEl of contentElements) {
|
|
1478
1537
|
await contentEl.recalculateDimensions();
|
|
@@ -1537,16 +1596,71 @@ const Popover = class {
|
|
|
1537
1596
|
onWillDismiss() {
|
|
1538
1597
|
return eventMethod(this.el, 'ionPopoverWillDismiss');
|
|
1539
1598
|
}
|
|
1599
|
+
onBackdropTap = () => {
|
|
1600
|
+
this.dismiss(undefined, BACKDROP);
|
|
1601
|
+
};
|
|
1602
|
+
onLifecycle = (modalEvent) => {
|
|
1603
|
+
const el = this.usersElement;
|
|
1604
|
+
const name = LIFECYCLE_MAP[modalEvent.type];
|
|
1605
|
+
if (el && name) {
|
|
1606
|
+
const event = new CustomEvent(name, {
|
|
1607
|
+
bubbles: false,
|
|
1608
|
+
cancelable: false,
|
|
1609
|
+
detail: modalEvent.detail,
|
|
1610
|
+
});
|
|
1611
|
+
el.dispatchEvent(event);
|
|
1612
|
+
}
|
|
1613
|
+
};
|
|
1614
|
+
configureTriggerInteraction = () => {
|
|
1615
|
+
const { trigger, triggerAction, el, destroyTriggerInteraction } = this;
|
|
1616
|
+
if (destroyTriggerInteraction) {
|
|
1617
|
+
destroyTriggerInteraction();
|
|
1618
|
+
}
|
|
1619
|
+
if (trigger === undefined) {
|
|
1620
|
+
return;
|
|
1621
|
+
}
|
|
1622
|
+
const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
|
|
1623
|
+
if (!triggerEl) {
|
|
1624
|
+
printIonWarning(`[ion-popover] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el);
|
|
1625
|
+
return;
|
|
1626
|
+
}
|
|
1627
|
+
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
|
|
1628
|
+
};
|
|
1629
|
+
configureKeyboardInteraction = () => {
|
|
1630
|
+
const { destroyKeyboardInteraction, el } = this;
|
|
1631
|
+
if (destroyKeyboardInteraction) {
|
|
1632
|
+
destroyKeyboardInteraction();
|
|
1633
|
+
}
|
|
1634
|
+
this.destroyKeyboardInteraction = configureKeyboardInteraction(el);
|
|
1635
|
+
};
|
|
1636
|
+
configureDismissInteraction = () => {
|
|
1637
|
+
const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;
|
|
1638
|
+
if (!parentPopover || !triggerEl) {
|
|
1639
|
+
return;
|
|
1640
|
+
}
|
|
1641
|
+
if (destroyDismissInteraction) {
|
|
1642
|
+
destroyDismissInteraction();
|
|
1643
|
+
}
|
|
1644
|
+
this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);
|
|
1645
|
+
};
|
|
1540
1646
|
render() {
|
|
1541
1647
|
const mode = getIonMode(this);
|
|
1542
1648
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
1543
1649
|
const desktop = isPlatform('desktop');
|
|
1544
1650
|
const enableArrow = arrow && !parentPopover;
|
|
1545
|
-
return (h(Host,
|
|
1651
|
+
return (h(Host, { key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
|
|
1546
1652
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1547
|
-
}, class:
|
|
1653
|
+
}, class: {
|
|
1654
|
+
...getClassMap(this.cssClass),
|
|
1655
|
+
[mode]: true,
|
|
1656
|
+
'popover-translucent': this.translucent,
|
|
1657
|
+
'overlay-hidden': true,
|
|
1658
|
+
'popover-desktop': desktop,
|
|
1659
|
+
[`popover-side-${side}`]: true,
|
|
1660
|
+
[FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
1661
|
+
'popover-nested': !!parentPopover,
|
|
1662
|
+
}, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && h("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), h("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, h("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
|
|
1548
1663
|
}
|
|
1549
|
-
get el() { return getElement(this); }
|
|
1550
1664
|
static get watchers() { return {
|
|
1551
1665
|
"trigger": [{
|
|
1552
1666
|
"onTriggerChange": 0
|