@ionic/core 8.8.19 → 8.8.20-dev.11787158518.168a2fea
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--m5cCjbK.js +4 -0
- package/components/p-1jI5oW-W.js +4 -0
- package/components/{p-6J0vc7Z8.js → p-63OhffQv.js} +1 -1
- package/components/p-8FN7p701.js +4 -0
- package/components/p-B4uHHhPK.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BNJOu1Q2.js +4 -0
- package/components/p-BOvLNVKq.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-BeamQXHF.js +4 -0
- package/components/p-BhamHSw3.js +4 -0
- package/components/p-Bjig0DJK.js +4 -0
- package/components/p-BjluhQMI.js +4 -0
- package/components/p-BlsIikdZ.js +4 -0
- package/components/p-BqPNzJf6.js +4 -0
- package/components/p-BrD9Xv62.js +4 -0
- package/components/p-BvJqoZ5R.js +4 -0
- package/components/p-Bz6z3Asd.js +4 -0
- package/components/p-C5KYjZWD.js +4 -0
- package/components/p-C6HnVvHO.js +4 -0
- package/components/p-C7jvh5Wy.js +4 -0
- package/components/p-C9BGR5fy.js +4 -0
- package/components/p-CB-y1CdP.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CHH3loEE.js +4 -0
- package/components/p-CJKUWjmg.js +4 -0
- package/components/{p-qMmFisyx.js → p-CMLAwl_N.js} +1 -1
- package/components/{p-C7II1iDj.js → p-C_phlPMC.js} +1 -1
- package/components/p-CbhUdtjf.js +4 -0
- package/components/p-CejmQs3h.js +4 -0
- package/components/p-CtZqa4HM.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/components/p-D9qIVSWm.js +4 -0
- package/components/p-DD5fQ4EQ.js +4 -0
- package/components/p-DE-3iMNW.js +4 -0
- package/components/p-DFvZn99E.js +4 -0
- package/components/p-DHFt2rdc.js +4 -0
- package/components/p-DM-PrAoh.js +4 -0
- package/components/p-DSzSbVP2.js +4 -0
- package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-D_RCyzwu.js +4 -0
- package/components/p-D_tD8r3L.js +4 -0
- package/components/p-DaA_8eqt.js +4 -0
- package/components/p-DjCtLZbF.js +4 -0
- package/components/p-Dmd2xqCe.js +4 -0
- package/components/p-Dojwmvde.js +4 -0
- package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
- package/components/p-DzRT60Tw.js +4 -0
- package/components/p-G0TxqHfe.js +4 -0
- package/components/p-G6JR-cr_.js +4 -0
- package/components/p-GG5GhznE.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-UIBJkZf8.js +4 -0
- package/components/p-_IKFD3ID.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/p-dKq2jIum.js +4 -0
- package/components/p-fruGqVHh.js +4 -0
- package/components/p-iYhH60Tc.js +4 -0
- package/components/p-ia3IDdJS.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
- 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-AWp_ygDP.js → button-active-CVMevT9a.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/{dir-DD0jPVH3.js → dir-zwDPRE5K.js} +2 -3
- package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
- package/dist/cjs/{framework-delegate-CEzl4MEA.js → framework-delegate-Dfo5XsGv.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-DdZyl6WL.js → helpers-YPQybDph.js} +4 -4
- package/dist/cjs/index-B7zJsYWS.js +429 -0
- package/dist/cjs/{index-CukZnH1U.js → index-BLdJCcJY.js} +5 -5
- package/dist/cjs/{index-MWAIyVLl.js → index-DDg31ZF5.js} +3 -3
- package/dist/cjs/{index-DOiZqxWZ.js → index-DXsPSne6.js} +6 -7
- package/dist/cjs/{index-BJ2-LydH.js → index-DwlRtFZe.js} +9 -3
- 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-CD92bI7B.js → index-zVCah4Uz.js} +2 -2
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{input-shims-CPKgrIe3.js → input-shims-Cbu1fcye.js} +10 -12
- package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +369 -341
- package/dist/cjs/ion-action-sheet.cjs.entry.js +188 -77
- package/dist/cjs/ion-alert.cjs.entry.js +274 -112
- 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 +48 -24
- package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +200 -122
- package/dist/cjs/ion-button_2.cjs.entry.js +139 -67
- package/dist/cjs/ion-card_5.cjs.entry.js +83 -31
- package/dist/cjs/ion-checkbox.cjs.entry.js +153 -102
- 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 +254 -242
- package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +140 -82
- package/dist/cjs/ion-img.cjs.entry.js +35 -13
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +101 -73
- package/dist/cjs/ion-input-otp.cjs.entry.js +435 -372
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +36 -22
- package/dist/cjs/ion-input.cjs.entry.js +343 -212
- package/dist/cjs/ion-item-option_3.cjs.entry.js +95 -55
- package/dist/cjs/ion-item_8.cjs.entry.js +192 -93
- package/dist/cjs/ion-loading.cjs.entry.js +147 -61
- package/dist/cjs/ion-menu_3.cjs.entry.js +169 -107
- package/dist/cjs/ion-modal.cjs.entry.js +456 -262
- package/dist/cjs/ion-nav_2.cjs.entry.js +102 -159
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +38 -34
- package/dist/cjs/ion-picker-column.cjs.entry.js +418 -406
- package/dist/cjs/ion-picker.cjs.entry.js +402 -393
- package/dist/cjs/ion-popover.cjs.entry.js +320 -206
- package/dist/cjs/ion-progress-bar.cjs.entry.js +32 -26
- package/dist/cjs/ion-radio_2.cjs.entry.js +208 -135
- package/dist/cjs/ion-range.cjs.entry.js +304 -239
- package/dist/cjs/ion-refresher_2.cjs.entry.js +166 -94
- package/dist/cjs/ion-reorder_2.cjs.entry.js +54 -24
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +176 -72
- 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 +105 -49
- package/dist/cjs/ion-select_3.cjs.entry.js +787 -260
- 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 +101 -42
- package/dist/cjs/ion-tab_2.cjs.entry.js +54 -28
- package/dist/cjs/ion-text.cjs.entry.js +11 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +296 -189
- package/dist/cjs/ion-toast.cjs.entry.js +237 -118
- 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-CTiTDh3m.js → ios.transition-zTmJz8T-.js} +14 -18
- 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-BpiTAaqF.js → md.transition-nb_4pUXu.js} +8 -9
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-CQ_c1fko.js → overlays-KaNVDNqC.js} +48 -33
- package/dist/cjs/select-option-render-pULCGldr.js +123 -0
- package/dist/cjs/slot-mutation-controller-DPHmqXdV.js +397 -0
- package/dist/cjs/{status-tap-7FzRlXNr.js → status-tap-o9IIymsP.js} +4 -4
- package/dist/cjs/{swipe-back-DwTZiAc9.js → swipe-back-B7X9VOlH.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 +57 -26
- package/dist/collection/components/input/input.js +336 -206
- package/dist/collection/components/input/input.md.css +79 -43
- package/dist/collection/components/input-otp/input-otp.js +430 -368
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +32 -19
- package/dist/collection/components/item/item.js +99 -53
- package/dist/collection/components/item-divider/item-divider.js +17 -12
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +50 -22
- package/dist/collection/components/item-options/item-options.js +11 -8
- package/dist/collection/components/item-sliding/item-sliding.js +27 -21
- package/dist/collection/components/label/label.js +26 -6
- package/dist/collection/components/list/list.js +11 -8
- package/dist/collection/components/list-header/list-header.js +12 -2
- package/dist/collection/components/loading/loading.js +135 -51
- package/dist/collection/components/menu/menu.js +103 -61
- package/dist/collection/components/menu-button/menu-button.js +30 -21
- package/dist/collection/components/menu-toggle/menu-toggle.js +22 -15
- 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 +21 -10
- package/dist/collection/components/note/note.js +8 -2
- 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 +101 -66
- package/dist/collection/components/radio-group/test/fixtures.js +2 -0
- package/dist/collection/components/range/range.js +298 -234
- 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 +96 -69
- package/dist/collection/components/select/select.js +629 -213
- package/dist/collection/components/select/select.md.css +118 -85
- 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.ios.css +94 -62
- package/dist/collection/components/textarea/textarea.js +287 -181
- package/dist/collection/components/textarea/textarea.md.css +103 -77
- 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/forms/index.js +1 -0
- package/dist/collection/utils/forms/start-container-controller.js +132 -0
- 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/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 +2 -3
- 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 -1257
- 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-CXXy0FIE.js → button-active-BDOsVAiZ.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/{dir-o8OKV5aD.js → dir-Dojwmvde.js} +2 -3
- package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
- package/dist/esm/{framework-delegate-B9yvYzqV.js → framework-delegate-BHTU2Ip9.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-DkCLSLI9.js → helpers-CAGf8Wgp.js} +4 -4
- 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-DwNKJodj.js → index-Clc-28O1.js} +3 -3
- package/dist/esm/{index-DdeElWma.js → index-CqneaaGd.js} +6 -7
- package/dist/esm/{index-Bck1OwMs.js → index-DcPaH5uL.js} +9 -3
- package/dist/esm/{index-B_8X7INq.js → index-T0JxBI8V.js} +2 -2
- package/dist/esm/{index-Dsz7OTeL.js → index-WlteAIqz.js} +5 -5
- package/dist/esm/index.js +17 -16
- package/dist/esm/{input-shims-d-hDv86G.js → input-shims-B8sfni1e.js} +10 -12
- package/dist/esm/input.utils-B1ValN_N.js +33 -0
- package/dist/esm/ion-accordion_2.entry.js +369 -341
- package/dist/esm/ion-action-sheet.entry.js +188 -77
- package/dist/esm/ion-alert.entry.js +273 -111
- 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 +48 -24
- package/dist/esm/ion-backdrop.entry.js +18 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +200 -122
- package/dist/esm/ion-button_2.entry.js +139 -67
- package/dist/esm/ion-card_5.entry.js +83 -31
- package/dist/esm/ion-checkbox.entry.js +153 -102
- 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 +254 -242
- package/dist/esm/ion-datetime.entry.js +2768 -0
- package/dist/esm/ion-fab_3.entry.js +140 -82
- package/dist/esm/ion-img.entry.js +35 -13
- package/dist/esm/ion-infinite-scroll_2.entry.js +100 -72
- package/dist/esm/ion-input-otp.entry.js +435 -372
- package/dist/esm/ion-input-password-toggle.entry.js +36 -22
- package/dist/esm/ion-input.entry.js +341 -210
- package/dist/esm/ion-item-option_3.entry.js +95 -55
- package/dist/esm/ion-item_8.entry.js +192 -93
- package/dist/esm/ion-loading.entry.js +146 -60
- package/dist/esm/ion-menu_3.entry.js +169 -107
- package/dist/esm/ion-modal.entry.js +456 -262
- package/dist/esm/ion-nav_2.entry.js +102 -159
- package/dist/esm/ion-picker-column-option.entry.js +38 -34
- package/dist/esm/ion-picker-column.entry.js +418 -406
- package/dist/esm/ion-picker.entry.js +402 -393
- package/dist/esm/ion-popover.entry.js +320 -206
- package/dist/esm/ion-progress-bar.entry.js +32 -26
- package/dist/esm/ion-radio_2.entry.js +208 -135
- package/dist/esm/ion-range.entry.js +304 -239
- package/dist/esm/ion-refresher_2.entry.js +164 -92
- package/dist/esm/ion-reorder_2.entry.js +54 -24
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +176 -72
- 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 +105 -49
- package/dist/esm/ion-select_3.entry.js +787 -260
- 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 +101 -42
- package/dist/esm/ion-tab_2.entry.js +54 -28
- package/dist/esm/ion-text.entry.js +11 -5
- package/dist/esm/ion-textarea.entry.js +295 -188
- package/dist/esm/ion-toast.entry.js +236 -117
- 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-CxNhMt4a.js → ios.transition-DXRCmcbC.js} +14 -18
- 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-IE4mC3kp.js → md.transition-BMngO4i_.js} +8 -9
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-COCl_nm9.js → overlays-CPmIs9Ls.js} +48 -33
- package/dist/esm/select-option-render-C4m76VGH.js +121 -0
- package/dist/esm/slot-mutation-controller-DiE_C9un.js +393 -0
- package/dist/esm/{status-tap-HhO5eQI9.js → status-tap-CHB7KwIb.js} +4 -4
- package/dist/esm/{swipe-back-DK6afpuO.js → swipe-back-C9HW1bug.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-06ec7136.entry.js +4 -0
- package/dist/ionic/p-09fe4fa3.entry.js +4 -0
- package/dist/ionic/p-10d45a07.entry.js +4 -0
- package/dist/ionic/p-208c8a07.entry.js +4 -0
- package/dist/ionic/p-212474fa.entry.js +4 -0
- package/dist/ionic/p-2eef1396.entry.js +4 -0
- package/dist/ionic/p-347e005d.entry.js +4 -0
- package/dist/ionic/p-3a0b3f1d.entry.js +4 -0
- package/dist/ionic/p-3b071259.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
- package/dist/ionic/p-4204184c.entry.js +4 -0
- package/dist/ionic/p-47464391.entry.js +4 -0
- package/dist/ionic/p-4eOQC00Z.js +4 -0
- package/dist/ionic/p-4f9c9126.entry.js +4 -0
- package/dist/ionic/p-5JsKPLJD.js +4 -0
- package/dist/ionic/p-5bc485c6.entry.js +4 -0
- package/dist/ionic/p-603a61e6.entry.js +4 -0
- package/dist/ionic/p-60576951.entry.js +4 -0
- package/dist/ionic/p-67a81d33.entry.js +4 -0
- package/dist/ionic/p-6affb775.entry.js +4 -0
- package/dist/ionic/p-6f120c25.entry.js +4 -0
- package/dist/ionic/p-71c82b60.entry.js +4 -0
- package/dist/ionic/p-79325ffe.entry.js +4 -0
- package/dist/ionic/{p-DZaO33Mw.js → p-7CBuOvEo.js} +1 -1
- package/dist/ionic/p-7e4d51fa.entry.js +4 -0
- package/dist/ionic/p-7f5d4664.entry.js +4 -0
- package/dist/ionic/p-80ee82fc.entry.js +4 -0
- package/dist/ionic/p-84af7dbc.entry.js +4 -0
- package/dist/ionic/p-89ca830a.entry.js +4 -0
- package/dist/ionic/p-93b8ec8f.entry.js +4 -0
- package/dist/ionic/p-946f65c2.entry.js +4 -0
- package/dist/ionic/p-9c4b39fb.entry.js +4 -0
- package/dist/ionic/p-B1NEZUzQ.js +4 -0
- package/dist/ionic/p-B1ck5iy-.js +4 -0
- package/dist/ionic/{p-Cd4H8ft-.js → p-B4FrqdW0.js} +1 -1
- package/dist/ionic/p-BB0LlG4y.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BYEAtHr-.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-C-94tAim.js +4 -0
- package/dist/ionic/{p-DipZFfzN.js → p-C-eHZMYE.js} +1 -1
- package/dist/ionic/p-CBR_W98Z.js +4 -0
- package/dist/ionic/{p-ClM02LPk.js → p-CBWAXjA5.js} +1 -1
- package/dist/ionic/p-CMRtMbJc.js +4 -0
- package/dist/ionic/p-CPcPmkGv.js +4 -0
- 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-CzS1qWve.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D94_RztK.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-DjjfauRM.js +4 -0
- package/dist/ionic/p-DkUB-ROc.js +4 -0
- package/dist/ionic/p-Dn0mqQ_R.js +4 -0
- package/dist/ionic/p-Dojwmvde.js +4 -0
- package/dist/ionic/p-DplOqGUv.js +4 -0
- package/dist/ionic/p-Dst_XmZh.js +4 -0
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-UIBJkZf8.js +4 -0
- package/dist/ionic/p-a438b193.entry.js +4 -0
- package/dist/ionic/p-babaaaa7.entry.js +4 -0
- package/dist/ionic/p-be08d500.entry.js +4 -0
- package/dist/ionic/p-be9a4f51.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c00d3092.entry.js +4 -0
- package/dist/ionic/p-c36dc8f5.entry.js +4 -0
- package/dist/ionic/p-c72a7e17.entry.js +4 -0
- package/dist/ionic/p-c8edd88c.entry.js +4 -0
- package/dist/ionic/p-ce0e380b.entry.js +4 -0
- package/dist/ionic/p-ce32912b.entry.js +4 -0
- package/dist/ionic/p-d07cf130.entry.js +4 -0
- package/dist/ionic/p-d27edeb3.entry.js +4 -0
- package/dist/ionic/p-d5d2c506.entry.js +4 -0
- package/dist/ionic/p-d5e31ca9.entry.js +4 -0
- package/dist/ionic/p-de91444f.entry.js +4 -0
- package/dist/ionic/p-ded69ceb.entry.js +4 -0
- package/dist/ionic/p-df72866d.entry.js +4 -0
- package/dist/ionic/p-e47e3151.entry.js +4 -0
- package/dist/ionic/p-e621e5e8.entry.js +4 -0
- package/dist/ionic/p-eea9cf93.entry.js +4 -0
- package/dist/ionic/p-f402f5a4.entry.js +4 -0
- package/dist/ionic/p-fe1bfbcf.entry.js +4 -0
- package/{components/p-9GFIh9p1.js → dist/ionic/p-ffb90460.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +12 -6
- 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 +30 -6
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components/textarea/textarea.d.ts +12 -5
- 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/forms/index.d.ts +1 -0
- package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
- 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 +10660 -7305
- package/hydrate/index.mjs +10660 -7305
- 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-0LM2oPMC.js +0 -4
- package/components/p-B21528L5.js +0 -4
- package/components/p-B2nSfLHH.js +0 -4
- package/components/p-B3qf4bEn.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BDd9Zrb9.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMYNBJgf.js +0 -4
- package/components/p-BRYd8D-I.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BTJrYwxN.js +0 -4
- package/components/p-BV-zKay-.js +0 -4
- package/components/p-BYRVyMu9.js +0 -4
- package/components/p-Bmq8qlkW.js +0 -4
- package/components/p-BuxQcfHK.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-CTdRooFV.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CgkrslTX.js +0 -4
- package/components/p-CiCzYG2V.js +0 -4
- package/components/p-Ck0lEczL.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-CniZht3v.js +0 -4
- package/components/p-CsaojgEs.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D4FYu-4R.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DARjq3GM.js +0 -4
- package/components/p-DEZ2myA3.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DVe41iHI.js +0 -4
- package/components/p-DX5m9g56.js +0 -4
- package/components/p-DboHi2CL.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DmzFY5IC.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-Dv8w0kqz.js +0 -4
- package/components/p-Dw7GNDKq.js +0 -4
- package/components/p-Dww01PNs.js +0 -4
- package/components/p-Gy276IJk.js +0 -4
- package/components/p-ZzLXTvyt.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-lVAbdiAu.js +0 -4
- package/components/p-o8OKV5aD.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/dist/cjs/config-D6C-KlA9.js +0 -201
- package/dist/cjs/input.utils-DQaUGGed.js +0 -150
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
- package/dist/cjs/notch-controller-aiy8aQb-.js +0 -155
- 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/input.utils-Cd23Gdd1.js +0 -147
- package/dist/esm/ion-datetime_3.entry.js +0 -3163
- package/dist/esm/notch-controller-Doqis1td.js +0 -153
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-0283ea73.entry.js +0 -4
- package/dist/ionic/p-02ecae65.entry.js +0 -4
- package/dist/ionic/p-0672f677.entry.js +0 -4
- package/dist/ionic/p-0c06fe60.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-1af4d74c.entry.js +0 -4
- package/dist/ionic/p-1d7ef0d2.entry.js +0 -4
- package/dist/ionic/p-26f05d3a.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-31e7bd05.entry.js +0 -4
- package/dist/ionic/p-32f53010.entry.js +0 -4
- package/dist/ionic/p-35eb8b5c.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-3efa137b.entry.js +0 -4
- package/dist/ionic/p-432bd72c.entry.js +0 -4
- package/dist/ionic/p-47214c72.entry.js +0 -4
- package/dist/ionic/p-4e172429.entry.js +0 -4
- package/dist/ionic/p-5c3da84e.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5d8082fe.entry.js +0 -4
- package/dist/ionic/p-613d3c43.entry.js +0 -4
- package/dist/ionic/p-616e4d4f.entry.js +0 -4
- package/dist/ionic/p-65d611b2.entry.js +0 -4
- package/dist/ionic/p-67806e3f.entry.js +0 -4
- package/dist/ionic/p-68cbb2fc.entry.js +0 -4
- package/dist/ionic/p-737ae9eb.entry.js +0 -4
- package/dist/ionic/p-7b0d6248.entry.js +0 -4
- package/dist/ionic/p-7e71e470.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-85d49987.entry.js +0 -4
- package/dist/ionic/p-8945088b.entry.js +0 -4
- package/dist/ionic/p-8b155568.entry.js +0 -4
- package/dist/ionic/p-90267c4b.entry.js +0 -4
- package/dist/ionic/p-92ad8a67.entry.js +0 -4
- package/dist/ionic/p-9a97d4e0.entry.js +0 -4
- package/dist/ionic/p-9e4b0894.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-B2kaj8sx.js +0 -4
- package/dist/ionic/p-B4y7nxsg.js +0 -4
- package/dist/ionic/p-B8t9Ro6f.js +0 -4
- package/dist/ionic/p-BEOxsxBw.js +0 -4
- package/dist/ionic/p-BJ2NxSHp.js +0 -4
- package/dist/ionic/p-BLiL8g0v.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-BYRVyMu9.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-CPTv7G9B.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-CxMyXUtt.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-DCoy2elM.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-Dr9fTCb1.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-EkpneKVM.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-ab00b0d8.entry.js +0 -4
- package/dist/ionic/p-c2175309.entry.js +0 -4
- package/dist/ionic/p-c4b69d9b.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ce637936.entry.js +0 -4
- package/dist/ionic/p-da85e958.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-e139357c.entry.js +0 -4
- package/dist/ionic/p-e7b7a7b1.entry.js +0 -4
- package/dist/ionic/p-f37ca594.entry.js +0 -4
- package/dist/ionic/p-f8dd336e.entry.js +0 -4
- package/dist/ionic/p-f9de757b.entry.js +0 -4
- package/dist/ionic/p-fe11cf51.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-o8OKV5aD.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- 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,19 +1,19 @@
|
|
|
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-ChhhtsGZ.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-CPmIs9Ls.js';
|
|
6
|
+
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-BHTU2Ip9.js';
|
|
7
|
+
import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-CAGf8Wgp.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-BVB7BrLT.js';
|
|
10
|
+
import { g as getClassMap } from './theme-byZM6qHV.js';
|
|
11
|
+
import { e as deepReady, w as waitForMount } from './index-WlteAIqz.js';
|
|
12
|
+
import { c as createAnimation } from './animation-CGFdmGk9.js';
|
|
13
13
|
import './index-ZjP4CjeZ.js';
|
|
14
|
-
import './hardware-back-button-
|
|
15
|
-
import './gesture-controller-
|
|
16
|
-
import './dir-
|
|
14
|
+
import './hardware-back-button-gLJHMX_F.js';
|
|
15
|
+
import './gesture-controller-TXPDHL13.js';
|
|
16
|
+
import './dir-Dojwmvde.js';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Shared per-frame cache for safe-area insets. Avoids creating a temporary
|
|
@@ -327,10 +327,9 @@ const focusItem = (item) => {
|
|
|
327
327
|
const isTriggerElement = (el) => el.hasAttribute('data-ion-popover-trigger');
|
|
328
328
|
const configureKeyboardInteraction = (popoverEl) => {
|
|
329
329
|
const callback = async (ev) => {
|
|
330
|
-
var _a;
|
|
331
330
|
const activeElement = document.activeElement;
|
|
332
331
|
let items = [];
|
|
333
|
-
const targetTagName =
|
|
332
|
+
const targetTagName = ev.target?.tagName;
|
|
334
333
|
/**
|
|
335
334
|
* Only handle custom keyboard interactions for the host popover element
|
|
336
335
|
* and children ion-item elements.
|
|
@@ -351,7 +350,7 @@ const configureKeyboardInteraction = (popoverEl) => {
|
|
|
351
350
|
items = Array.from(popoverEl.querySelectorAll('ion-item:not(ion-popover ion-popover *):not([disabled])'));
|
|
352
351
|
/* eslint-disable-next-line */
|
|
353
352
|
}
|
|
354
|
-
catch
|
|
353
|
+
catch { }
|
|
355
354
|
switch (ev.key) {
|
|
356
355
|
/**
|
|
357
356
|
* If we are in a child popover
|
|
@@ -432,7 +431,6 @@ const configureKeyboardInteraction = (popoverEl) => {
|
|
|
432
431
|
* and viewport dimensions.
|
|
433
432
|
*/
|
|
434
433
|
const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event) => {
|
|
435
|
-
var _a;
|
|
436
434
|
let referenceCoordinates = {
|
|
437
435
|
top: 0,
|
|
438
436
|
left: 0,
|
|
@@ -477,8 +475,8 @@ const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arro
|
|
|
477
475
|
* as a whole.
|
|
478
476
|
*/
|
|
479
477
|
const actualTriggerEl = (triggerEl ||
|
|
480
|
-
|
|
481
|
-
|
|
478
|
+
customEv?.detail?.ionShadowTarget ||
|
|
479
|
+
customEv?.target);
|
|
482
480
|
if (!actualTriggerEl) {
|
|
483
481
|
return defaultPosition;
|
|
484
482
|
}
|
|
@@ -847,7 +845,6 @@ const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
|
|
|
847
845
|
*/
|
|
848
846
|
// TODO(FW-2832): types
|
|
849
847
|
const iosEnterAnimation = (baseEl, opts) => {
|
|
850
|
-
var _a;
|
|
851
848
|
const { event: ev, size, trigger, reference, side, align } = opts;
|
|
852
849
|
const doc = baseEl.ownerDocument;
|
|
853
850
|
const isRTL = doc.dir === 'rtl';
|
|
@@ -856,7 +853,7 @@ const iosEnterAnimation = (baseEl, opts) => {
|
|
|
856
853
|
const root = getElementRoot(baseEl);
|
|
857
854
|
const contentEl = root.querySelector('.popover-content');
|
|
858
855
|
const arrowEl = root.querySelector('.popover-arrow');
|
|
859
|
-
const referenceSizeEl = trigger ||
|
|
856
|
+
const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
|
|
860
857
|
const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
|
|
861
858
|
const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl);
|
|
862
859
|
const defaultPosition = {
|
|
@@ -984,7 +981,6 @@ const POPOVER_MD_BODY_PADDING = 12;
|
|
|
984
981
|
*/
|
|
985
982
|
// TODO(FW-2832): types
|
|
986
983
|
const mdEnterAnimation = (baseEl, opts) => {
|
|
987
|
-
var _a;
|
|
988
984
|
const { event: ev, size, trigger, reference, side, align } = opts;
|
|
989
985
|
const doc = baseEl.ownerDocument;
|
|
990
986
|
const isRTL = doc.dir === 'rtl';
|
|
@@ -992,7 +988,7 @@ const mdEnterAnimation = (baseEl, opts) => {
|
|
|
992
988
|
const bodyHeight = doc.defaultView.innerHeight;
|
|
993
989
|
const root = getElementRoot(baseEl);
|
|
994
990
|
const contentEl = root.querySelector('.popover-content');
|
|
995
|
-
const referenceSizeEl = trigger ||
|
|
991
|
+
const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
|
|
996
992
|
const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
|
|
997
993
|
const defaultPosition = {
|
|
998
994
|
top: bodyHeight / 2 - contentHeight / 2,
|
|
@@ -1089,9 +1085,9 @@ const mdLeaveAnimation = (baseEl) => {
|
|
|
1089
1085
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
1090
1086
|
};
|
|
1091
1087
|
|
|
1092
|
-
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)}}`;
|
|
1088
|
+
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)}}`;
|
|
1093
1089
|
|
|
1094
|
-
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}`;
|
|
1090
|
+
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}`;
|
|
1095
1091
|
|
|
1096
1092
|
const Popover = class {
|
|
1097
1093
|
constructor(hostRef) {
|
|
@@ -1105,181 +1101,183 @@ const Popover = class {
|
|
|
1105
1101
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
1106
1102
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
1107
1103
|
this.ionMount = createEvent(this, "ionMount", 7);
|
|
1108
|
-
this.parentPopover = null;
|
|
1109
|
-
this.coreDelegate = CoreDelegate();
|
|
1110
|
-
this.lockController = createLockController();
|
|
1111
|
-
this.inline = false;
|
|
1112
|
-
this.focusDescendantOnPresent = false;
|
|
1113
|
-
this.presented = false;
|
|
1114
|
-
/** @internal */
|
|
1115
|
-
this.hasController = false;
|
|
1116
|
-
/**
|
|
1117
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1118
|
-
*/
|
|
1119
|
-
this.keyboardClose = true;
|
|
1120
|
-
/**
|
|
1121
|
-
* If `true`, the popover will be dismissed when the backdrop is clicked.
|
|
1122
|
-
*/
|
|
1123
|
-
this.backdropDismiss = true;
|
|
1124
|
-
/**
|
|
1125
|
-
* If `true`, a backdrop will be displayed behind the popover.
|
|
1126
|
-
* This property controls whether or not the backdrop
|
|
1127
|
-
* darkens the screen when the popover is presented.
|
|
1128
|
-
* It does not control whether or not the backdrop
|
|
1129
|
-
* is active or present in the DOM.
|
|
1130
|
-
*/
|
|
1131
|
-
this.showBackdrop = true;
|
|
1132
|
-
/**
|
|
1133
|
-
* If `true`, the popover will be translucent.
|
|
1134
|
-
* Only applies when the mode is `"ios"` and the device supports
|
|
1135
|
-
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
1136
|
-
*/
|
|
1137
|
-
this.translucent = false;
|
|
1138
|
-
/**
|
|
1139
|
-
* If `true`, the popover will animate.
|
|
1140
|
-
*/
|
|
1141
|
-
this.animated = true;
|
|
1142
|
-
/**
|
|
1143
|
-
* Describes what kind of interaction with the trigger that
|
|
1144
|
-
* should cause the popover to open. Does not apply when the `trigger`
|
|
1145
|
-
* property is `undefined`.
|
|
1146
|
-
* If `"click"`, the popover will be presented when the trigger is left clicked.
|
|
1147
|
-
* If `"hover"`, the popover will be presented when a pointer hovers over the trigger.
|
|
1148
|
-
* If `"context-menu"`, the popover will be presented when the trigger is right
|
|
1149
|
-
* clicked on desktop and long pressed on mobile. This will also prevent your
|
|
1150
|
-
* device's normal context menu from appearing.
|
|
1151
|
-
*/
|
|
1152
|
-
this.triggerAction = 'click';
|
|
1153
|
-
/**
|
|
1154
|
-
* Describes how to calculate the popover width.
|
|
1155
|
-
* If `"cover"`, the popover width will match the width of the trigger.
|
|
1156
|
-
* If `"auto"`, the popover width will be set to a static default value.
|
|
1157
|
-
*/
|
|
1158
|
-
this.size = 'auto';
|
|
1159
|
-
/**
|
|
1160
|
-
* If `true`, the popover will be automatically
|
|
1161
|
-
* dismissed when the content has been clicked.
|
|
1162
|
-
*/
|
|
1163
|
-
this.dismissOnSelect = false;
|
|
1164
|
-
/**
|
|
1165
|
-
* Describes what to position the popover relative to.
|
|
1166
|
-
* If `"trigger"`, the popover will be positioned relative
|
|
1167
|
-
* to the trigger button. If passing in an event, this is
|
|
1168
|
-
* determined via event.target.
|
|
1169
|
-
* If `"event"`, the popover will be positioned relative
|
|
1170
|
-
* to the x/y coordinates of the trigger action. If passing
|
|
1171
|
-
* in an event, this is determined via event.clientX and event.clientY.
|
|
1172
|
-
*/
|
|
1173
|
-
this.reference = 'trigger';
|
|
1174
|
-
/**
|
|
1175
|
-
* Describes which side of the `reference` point to position
|
|
1176
|
-
* the popover on. The `"start"` and `"end"` values are RTL-aware,
|
|
1177
|
-
* and the `"left"` and `"right"` values are not.
|
|
1178
|
-
*/
|
|
1179
|
-
this.side = 'bottom';
|
|
1180
|
-
/**
|
|
1181
|
-
* If `true`, the popover will display an arrow that points at the
|
|
1182
|
-
* `reference` when running in `ios` mode. Does not apply in `md` mode.
|
|
1183
|
-
*/
|
|
1184
|
-
this.arrow = true;
|
|
1185
|
-
/**
|
|
1186
|
-
* If `true`, the popover will open. If `false`, the popover will close.
|
|
1187
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
1188
|
-
* just use the popoverController or the `trigger` property.
|
|
1189
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1190
|
-
* the popover dismisses. You will need to do that in your code.
|
|
1191
|
-
*/
|
|
1192
|
-
this.isOpen = false;
|
|
1193
|
-
/**
|
|
1194
|
-
* @internal
|
|
1195
|
-
*
|
|
1196
|
-
* If `true` the popover will not register its own keyboard event handlers.
|
|
1197
|
-
* This allows the contents of the popover to handle their own keyboard interactions.
|
|
1198
|
-
*
|
|
1199
|
-
* If `false`, the popover will register its own keyboard event handlers for
|
|
1200
|
-
* navigating `ion-list` items within a popover (up/down/home/end/etc.).
|
|
1201
|
-
* This will also cancel browser keyboard event bindings to prevent scroll
|
|
1202
|
-
* behavior in a popover using a list of items.
|
|
1203
|
-
*/
|
|
1204
|
-
this.keyboardEvents = false;
|
|
1205
|
-
/**
|
|
1206
|
-
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1207
|
-
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1208
|
-
*
|
|
1209
|
-
* In most scenarios this property should remain set to `true`. Setting
|
|
1210
|
-
* this property to `false` can cause severe accessibility issues as users
|
|
1211
|
-
* relying on assistive technologies may be able to move focus into
|
|
1212
|
-
* a confusing state. We recommend only setting this to `false` when
|
|
1213
|
-
* absolutely necessary.
|
|
1214
|
-
*
|
|
1215
|
-
* Developers may want to consider disabling focus trapping if this
|
|
1216
|
-
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1217
|
-
* Developers would disable focus trapping on the Ionic overlay
|
|
1218
|
-
* when presenting the 3rd party overlay and then re-enable
|
|
1219
|
-
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1220
|
-
* focus back to the Ionic overlay.
|
|
1221
|
-
*/
|
|
1222
|
-
this.focusTrap = true;
|
|
1223
|
-
/**
|
|
1224
|
-
* If `true`, the component passed into `ion-popover` will
|
|
1225
|
-
* automatically be mounted when the popover is created. The
|
|
1226
|
-
* component will remain mounted even when the popover is dismissed.
|
|
1227
|
-
* However, the component will be destroyed when the popover is
|
|
1228
|
-
* destroyed. This property is not reactive and should only be
|
|
1229
|
-
* used when initially creating a popover.
|
|
1230
|
-
*
|
|
1231
|
-
* Note: This feature only applies to inline popovers in JavaScript
|
|
1232
|
-
* frameworks such as Angular, React, and Vue.
|
|
1233
|
-
*/
|
|
1234
|
-
this.keepContentsMounted = false;
|
|
1235
|
-
this.onBackdropTap = () => {
|
|
1236
|
-
this.dismiss(undefined, BACKDROP);
|
|
1237
|
-
};
|
|
1238
|
-
this.onLifecycle = (modalEvent) => {
|
|
1239
|
-
const el = this.usersElement;
|
|
1240
|
-
const name = LIFECYCLE_MAP[modalEvent.type];
|
|
1241
|
-
if (el && name) {
|
|
1242
|
-
const event = new CustomEvent(name, {
|
|
1243
|
-
bubbles: false,
|
|
1244
|
-
cancelable: false,
|
|
1245
|
-
detail: modalEvent.detail,
|
|
1246
|
-
});
|
|
1247
|
-
el.dispatchEvent(event);
|
|
1248
|
-
}
|
|
1249
|
-
};
|
|
1250
|
-
this.configureTriggerInteraction = () => {
|
|
1251
|
-
const { trigger, triggerAction, el, destroyTriggerInteraction } = this;
|
|
1252
|
-
if (destroyTriggerInteraction) {
|
|
1253
|
-
destroyTriggerInteraction();
|
|
1254
|
-
}
|
|
1255
|
-
if (trigger === undefined) {
|
|
1256
|
-
return;
|
|
1257
|
-
}
|
|
1258
|
-
const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
|
|
1259
|
-
if (!triggerEl) {
|
|
1260
|
-
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);
|
|
1261
|
-
return;
|
|
1262
|
-
}
|
|
1263
|
-
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
|
|
1264
|
-
};
|
|
1265
|
-
this.configureKeyboardInteraction = () => {
|
|
1266
|
-
const { destroyKeyboardInteraction, el } = this;
|
|
1267
|
-
if (destroyKeyboardInteraction) {
|
|
1268
|
-
destroyKeyboardInteraction();
|
|
1269
|
-
}
|
|
1270
|
-
this.destroyKeyboardInteraction = configureKeyboardInteraction(el);
|
|
1271
|
-
};
|
|
1272
|
-
this.configureDismissInteraction = () => {
|
|
1273
|
-
const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;
|
|
1274
|
-
if (!parentPopover || !triggerEl) {
|
|
1275
|
-
return;
|
|
1276
|
-
}
|
|
1277
|
-
if (destroyDismissInteraction) {
|
|
1278
|
-
destroyDismissInteraction();
|
|
1279
|
-
}
|
|
1280
|
-
this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);
|
|
1281
|
-
};
|
|
1282
1104
|
}
|
|
1105
|
+
usersElement;
|
|
1106
|
+
triggerEl;
|
|
1107
|
+
parentPopover = null;
|
|
1108
|
+
coreDelegate = CoreDelegate();
|
|
1109
|
+
lockController = createLockController();
|
|
1110
|
+
destroyTriggerInteraction;
|
|
1111
|
+
destroyKeyboardInteraction;
|
|
1112
|
+
destroyDismissInteraction;
|
|
1113
|
+
headerResizeObserver;
|
|
1114
|
+
inline = false;
|
|
1115
|
+
workingDelegate;
|
|
1116
|
+
focusDescendantOnPresent = false;
|
|
1117
|
+
lastFocus;
|
|
1118
|
+
presented = false;
|
|
1119
|
+
get el() { return getElement(this); }
|
|
1120
|
+
/** @internal */
|
|
1121
|
+
hasController = false;
|
|
1122
|
+
/** @internal */
|
|
1123
|
+
delegate;
|
|
1124
|
+
/** @internal */
|
|
1125
|
+
overlayIndex;
|
|
1126
|
+
/**
|
|
1127
|
+
* Animation to use when the popover is presented.
|
|
1128
|
+
*/
|
|
1129
|
+
enterAnimation;
|
|
1130
|
+
/**
|
|
1131
|
+
* Animation to use when the popover is dismissed.
|
|
1132
|
+
*/
|
|
1133
|
+
leaveAnimation;
|
|
1134
|
+
/**
|
|
1135
|
+
* The component to display inside of the popover.
|
|
1136
|
+
* You only need to use this if you are not using
|
|
1137
|
+
* a JavaScript framework. Otherwise, you can just
|
|
1138
|
+
* slot your component inside of `ion-popover`.
|
|
1139
|
+
*/
|
|
1140
|
+
component;
|
|
1141
|
+
/**
|
|
1142
|
+
* The data to pass to the popover component.
|
|
1143
|
+
* You only need to use this if you are not using
|
|
1144
|
+
* a JavaScript framework. Otherwise, you can just
|
|
1145
|
+
* set the props directly on your component.
|
|
1146
|
+
*/
|
|
1147
|
+
componentProps;
|
|
1148
|
+
/**
|
|
1149
|
+
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1150
|
+
*/
|
|
1151
|
+
keyboardClose = true;
|
|
1152
|
+
/**
|
|
1153
|
+
* Additional classes to apply for custom CSS. If multiple classes are
|
|
1154
|
+
* provided they should be separated by spaces.
|
|
1155
|
+
* @internal
|
|
1156
|
+
*/
|
|
1157
|
+
cssClass;
|
|
1158
|
+
/**
|
|
1159
|
+
* If `true`, the popover will be dismissed when the backdrop is clicked.
|
|
1160
|
+
*/
|
|
1161
|
+
backdropDismiss = true;
|
|
1162
|
+
/**
|
|
1163
|
+
* The event to pass to the popover animation.
|
|
1164
|
+
*/
|
|
1165
|
+
event;
|
|
1166
|
+
/**
|
|
1167
|
+
* If `true`, a backdrop will be displayed behind the popover.
|
|
1168
|
+
* This property controls whether or not the backdrop
|
|
1169
|
+
* darkens the screen when the popover is presented.
|
|
1170
|
+
* It does not control whether or not the backdrop
|
|
1171
|
+
* is active or present in the DOM.
|
|
1172
|
+
*/
|
|
1173
|
+
showBackdrop = true;
|
|
1174
|
+
/**
|
|
1175
|
+
* If `true`, the popover will be translucent.
|
|
1176
|
+
* Only applies when the mode is `"ios"` and the device supports
|
|
1177
|
+
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
1178
|
+
*/
|
|
1179
|
+
translucent = false;
|
|
1180
|
+
/**
|
|
1181
|
+
* If `true`, the popover will animate.
|
|
1182
|
+
*/
|
|
1183
|
+
animated = true;
|
|
1184
|
+
/**
|
|
1185
|
+
* Additional attributes to pass to the popover.
|
|
1186
|
+
*/
|
|
1187
|
+
htmlAttributes;
|
|
1188
|
+
/**
|
|
1189
|
+
* Describes what kind of interaction with the trigger that
|
|
1190
|
+
* should cause the popover to open. Does not apply when the `trigger`
|
|
1191
|
+
* property is `undefined`.
|
|
1192
|
+
* If `"click"`, the popover will be presented when the trigger is left clicked.
|
|
1193
|
+
* If `"hover"`, the popover will be presented when a pointer hovers over the trigger.
|
|
1194
|
+
* If `"context-menu"`, the popover will be presented when the trigger is right
|
|
1195
|
+
* clicked on desktop and long pressed on mobile. This will also prevent your
|
|
1196
|
+
* device's normal context menu from appearing.
|
|
1197
|
+
*/
|
|
1198
|
+
triggerAction = 'click';
|
|
1199
|
+
/**
|
|
1200
|
+
* An ID corresponding to the trigger element that
|
|
1201
|
+
* causes the popover to open. Use the `trigger-action`
|
|
1202
|
+
* property to customize the interaction that results in
|
|
1203
|
+
* the popover opening.
|
|
1204
|
+
*/
|
|
1205
|
+
trigger;
|
|
1206
|
+
/**
|
|
1207
|
+
* Describes how to calculate the popover width.
|
|
1208
|
+
* If `"cover"`, the popover width will match the width of the trigger.
|
|
1209
|
+
* If `"auto"`, the popover width will be set to a static default value.
|
|
1210
|
+
*/
|
|
1211
|
+
size = 'auto';
|
|
1212
|
+
/**
|
|
1213
|
+
* If `true`, the popover will be automatically
|
|
1214
|
+
* dismissed when the content has been clicked.
|
|
1215
|
+
*/
|
|
1216
|
+
dismissOnSelect = false;
|
|
1217
|
+
/**
|
|
1218
|
+
* Describes what to position the popover relative to.
|
|
1219
|
+
* If `"trigger"`, the popover will be positioned relative
|
|
1220
|
+
* to the trigger button. If passing in an event, this is
|
|
1221
|
+
* determined via event.target.
|
|
1222
|
+
* If `"event"`, the popover will be positioned relative
|
|
1223
|
+
* to the x/y coordinates of the trigger action. If passing
|
|
1224
|
+
* in an event, this is determined via event.clientX and event.clientY.
|
|
1225
|
+
*/
|
|
1226
|
+
reference = 'trigger';
|
|
1227
|
+
/**
|
|
1228
|
+
* Describes which side of the `reference` point to position
|
|
1229
|
+
* the popover on. The `"start"` and `"end"` values are RTL-aware,
|
|
1230
|
+
* and the `"left"` and `"right"` values are not.
|
|
1231
|
+
*/
|
|
1232
|
+
side = 'bottom';
|
|
1233
|
+
/**
|
|
1234
|
+
* Describes how to align the popover content with the `reference` point.
|
|
1235
|
+
* Defaults to `"center"` for `ios` mode, and `"start"` for `md` mode.
|
|
1236
|
+
*/
|
|
1237
|
+
alignment;
|
|
1238
|
+
/**
|
|
1239
|
+
* If `true`, the popover will display an arrow that points at the
|
|
1240
|
+
* `reference` when running in `ios` mode. Does not apply in `md` mode.
|
|
1241
|
+
*/
|
|
1242
|
+
arrow = true;
|
|
1243
|
+
/**
|
|
1244
|
+
* If `true`, the popover will open. If `false`, the popover will close.
|
|
1245
|
+
* Use this if you need finer grained control over presentation, otherwise
|
|
1246
|
+
* just use the popoverController or the `trigger` property.
|
|
1247
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1248
|
+
* the popover dismisses. You will need to do that in your code.
|
|
1249
|
+
*/
|
|
1250
|
+
isOpen = false;
|
|
1251
|
+
/**
|
|
1252
|
+
* @internal
|
|
1253
|
+
*
|
|
1254
|
+
* If `true` the popover will not register its own keyboard event handlers.
|
|
1255
|
+
* This allows the contents of the popover to handle their own keyboard interactions.
|
|
1256
|
+
*
|
|
1257
|
+
* If `false`, the popover will register its own keyboard event handlers for
|
|
1258
|
+
* navigating `ion-list` items within a popover (up/down/home/end/etc.).
|
|
1259
|
+
* This will also cancel browser keyboard event bindings to prevent scroll
|
|
1260
|
+
* behavior in a popover using a list of items.
|
|
1261
|
+
*/
|
|
1262
|
+
keyboardEvents = false;
|
|
1263
|
+
/**
|
|
1264
|
+
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1265
|
+
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1266
|
+
*
|
|
1267
|
+
* In most scenarios this property should remain set to `true`. Setting
|
|
1268
|
+
* this property to `false` can cause severe accessibility issues as users
|
|
1269
|
+
* relying on assistive technologies may be able to move focus into
|
|
1270
|
+
* a confusing state. We recommend only setting this to `false` when
|
|
1271
|
+
* absolutely necessary.
|
|
1272
|
+
*
|
|
1273
|
+
* Developers may want to consider disabling focus trapping if this
|
|
1274
|
+
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1275
|
+
* Developers would disable focus trapping on the Ionic overlay
|
|
1276
|
+
* when presenting the 3rd party overlay and then re-enable
|
|
1277
|
+
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1278
|
+
* focus back to the Ionic overlay.
|
|
1279
|
+
*/
|
|
1280
|
+
focusTrap = true;
|
|
1283
1281
|
onTriggerChange() {
|
|
1284
1282
|
this.configureTriggerInteraction();
|
|
1285
1283
|
}
|
|
@@ -1291,6 +1289,66 @@ const Popover = class {
|
|
|
1291
1289
|
this.dismiss();
|
|
1292
1290
|
}
|
|
1293
1291
|
}
|
|
1292
|
+
/**
|
|
1293
|
+
* If `true`, the component passed into `ion-popover` will
|
|
1294
|
+
* automatically be mounted when the popover is created. The
|
|
1295
|
+
* component will remain mounted even when the popover is dismissed.
|
|
1296
|
+
* However, the component will be destroyed when the popover is
|
|
1297
|
+
* destroyed. This property is not reactive and should only be
|
|
1298
|
+
* used when initially creating a popover.
|
|
1299
|
+
*
|
|
1300
|
+
* Note: This feature only applies to inline popovers in JavaScript
|
|
1301
|
+
* frameworks such as Angular, React, and Vue.
|
|
1302
|
+
*/
|
|
1303
|
+
keepContentsMounted = false;
|
|
1304
|
+
/**
|
|
1305
|
+
* Emitted after the popover has presented.
|
|
1306
|
+
*/
|
|
1307
|
+
didPresent;
|
|
1308
|
+
/**
|
|
1309
|
+
* Emitted before the popover has presented.
|
|
1310
|
+
*/
|
|
1311
|
+
willPresent;
|
|
1312
|
+
/**
|
|
1313
|
+
* Emitted before the popover has dismissed.
|
|
1314
|
+
*/
|
|
1315
|
+
willDismiss;
|
|
1316
|
+
/**
|
|
1317
|
+
* Emitted after the popover has dismissed.
|
|
1318
|
+
*/
|
|
1319
|
+
didDismiss;
|
|
1320
|
+
/**
|
|
1321
|
+
* Emitted after the popover has presented.
|
|
1322
|
+
* Shorthand for ionPopoverWillDismiss.
|
|
1323
|
+
*/
|
|
1324
|
+
didPresentShorthand;
|
|
1325
|
+
/**
|
|
1326
|
+
* Emitted before the popover has presented.
|
|
1327
|
+
* Shorthand for ionPopoverWillPresent.
|
|
1328
|
+
*/
|
|
1329
|
+
willPresentShorthand;
|
|
1330
|
+
/**
|
|
1331
|
+
* Emitted before the popover has dismissed.
|
|
1332
|
+
* Shorthand for ionPopoverWillDismiss.
|
|
1333
|
+
*/
|
|
1334
|
+
willDismissShorthand;
|
|
1335
|
+
/**
|
|
1336
|
+
* Emitted after the popover has dismissed.
|
|
1337
|
+
* Shorthand for ionPopoverDidDismiss.
|
|
1338
|
+
*/
|
|
1339
|
+
didDismissShorthand;
|
|
1340
|
+
/**
|
|
1341
|
+
* Emitted before the popover has presented, but after the component
|
|
1342
|
+
* has been mounted in the DOM.
|
|
1343
|
+
* This event exists for ion-popover to resolve an issue with the
|
|
1344
|
+
* popover and the lazy build, that the transition is unable to get
|
|
1345
|
+
* the correct dimensions of the popover with auto sizing.
|
|
1346
|
+
* This is not required for other overlays, since the existing
|
|
1347
|
+
* overlay transitions are not effected by auto sizing content.
|
|
1348
|
+
*
|
|
1349
|
+
* @internal
|
|
1350
|
+
*/
|
|
1351
|
+
ionMount;
|
|
1294
1352
|
connectedCallback() {
|
|
1295
1353
|
const { configureTriggerInteraction, el } = this;
|
|
1296
1354
|
prepareOverlay(el);
|
|
@@ -1305,11 +1363,14 @@ const Popover = class {
|
|
|
1305
1363
|
this.headerResizeObserver.disconnect();
|
|
1306
1364
|
this.headerResizeObserver = undefined;
|
|
1307
1365
|
}
|
|
1366
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
1367
|
+
if (this.presented) {
|
|
1368
|
+
cleanupRootFocusTrapAccessibility();
|
|
1369
|
+
}
|
|
1308
1370
|
}
|
|
1309
1371
|
componentWillLoad() {
|
|
1310
|
-
var _a, _b;
|
|
1311
1372
|
const { el } = this;
|
|
1312
|
-
const popoverId =
|
|
1373
|
+
const popoverId = this.htmlAttributes?.id ?? setOverlayId(el);
|
|
1313
1374
|
this.parentPopover = el.closest(`ion-popover:not(#${popoverId})`);
|
|
1314
1375
|
if (this.alignment === undefined) {
|
|
1315
1376
|
this.alignment = getIonMode(this) === 'ios' ? 'center' : 'start';
|
|
@@ -1459,8 +1520,7 @@ const Popover = class {
|
|
|
1459
1520
|
* of the content to the height of the header correctly.
|
|
1460
1521
|
*/
|
|
1461
1522
|
recalculateContentOnHeaderReady() {
|
|
1462
|
-
|
|
1463
|
-
const popoverContent = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-content');
|
|
1523
|
+
const popoverContent = this.el.shadowRoot?.querySelector('.popover-content');
|
|
1464
1524
|
if (!popoverContent) {
|
|
1465
1525
|
return;
|
|
1466
1526
|
}
|
|
@@ -1471,9 +1531,8 @@ const Popover = class {
|
|
|
1471
1531
|
return;
|
|
1472
1532
|
}
|
|
1473
1533
|
this.headerResizeObserver = new ResizeObserver(async () => {
|
|
1474
|
-
var _a;
|
|
1475
1534
|
if (header.offsetHeight > 0) {
|
|
1476
|
-
|
|
1535
|
+
this.headerResizeObserver?.disconnect();
|
|
1477
1536
|
this.headerResizeObserver = undefined;
|
|
1478
1537
|
for (const contentEl of contentElements) {
|
|
1479
1538
|
await contentEl.recalculateDimensions();
|
|
@@ -1538,16 +1597,71 @@ const Popover = class {
|
|
|
1538
1597
|
onWillDismiss() {
|
|
1539
1598
|
return eventMethod(this.el, 'ionPopoverWillDismiss');
|
|
1540
1599
|
}
|
|
1600
|
+
onBackdropTap = () => {
|
|
1601
|
+
this.dismiss(undefined, BACKDROP);
|
|
1602
|
+
};
|
|
1603
|
+
onLifecycle = (modalEvent) => {
|
|
1604
|
+
const el = this.usersElement;
|
|
1605
|
+
const name = LIFECYCLE_MAP[modalEvent.type];
|
|
1606
|
+
if (el && name) {
|
|
1607
|
+
const event = new CustomEvent(name, {
|
|
1608
|
+
bubbles: false,
|
|
1609
|
+
cancelable: false,
|
|
1610
|
+
detail: modalEvent.detail,
|
|
1611
|
+
});
|
|
1612
|
+
el.dispatchEvent(event);
|
|
1613
|
+
}
|
|
1614
|
+
};
|
|
1615
|
+
configureTriggerInteraction = () => {
|
|
1616
|
+
const { trigger, triggerAction, el, destroyTriggerInteraction } = this;
|
|
1617
|
+
if (destroyTriggerInteraction) {
|
|
1618
|
+
destroyTriggerInteraction();
|
|
1619
|
+
}
|
|
1620
|
+
if (trigger === undefined) {
|
|
1621
|
+
return;
|
|
1622
|
+
}
|
|
1623
|
+
const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
|
|
1624
|
+
if (!triggerEl) {
|
|
1625
|
+
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);
|
|
1626
|
+
return;
|
|
1627
|
+
}
|
|
1628
|
+
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
|
|
1629
|
+
};
|
|
1630
|
+
configureKeyboardInteraction = () => {
|
|
1631
|
+
const { destroyKeyboardInteraction, el } = this;
|
|
1632
|
+
if (destroyKeyboardInteraction) {
|
|
1633
|
+
destroyKeyboardInteraction();
|
|
1634
|
+
}
|
|
1635
|
+
this.destroyKeyboardInteraction = configureKeyboardInteraction(el);
|
|
1636
|
+
};
|
|
1637
|
+
configureDismissInteraction = () => {
|
|
1638
|
+
const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;
|
|
1639
|
+
if (!parentPopover || !triggerEl) {
|
|
1640
|
+
return;
|
|
1641
|
+
}
|
|
1642
|
+
if (destroyDismissInteraction) {
|
|
1643
|
+
destroyDismissInteraction();
|
|
1644
|
+
}
|
|
1645
|
+
this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);
|
|
1646
|
+
};
|
|
1541
1647
|
render() {
|
|
1542
1648
|
const mode = getIonMode(this);
|
|
1543
1649
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
1544
1650
|
const desktop = isPlatform('desktop');
|
|
1545
1651
|
const enableArrow = arrow && !parentPopover;
|
|
1546
|
-
return (h(Host,
|
|
1652
|
+
return (h(Host, { key: '52ffc7116969ae1b8b927e67f2acbfe5f5434f70', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
|
|
1547
1653
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1548
|
-
}, class:
|
|
1654
|
+
}, class: {
|
|
1655
|
+
...getClassMap(this.cssClass),
|
|
1656
|
+
[mode]: true,
|
|
1657
|
+
'popover-translucent': this.translucent,
|
|
1658
|
+
'overlay-hidden': true,
|
|
1659
|
+
'popover-desktop': desktop,
|
|
1660
|
+
[`popover-side-${side}`]: true,
|
|
1661
|
+
[FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
1662
|
+
'popover-nested': !!parentPopover,
|
|
1663
|
+
}, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && h("ion-backdrop", { key: '79a8e851dbd22119e21ffb2f4709c555251045c8', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'c46c9f62c3ef3f902e23f27404eaa446a5d8cf88', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '9fdcbbc4ea6c7bde74f646d48eb77296b2c9dd83', class: "popover-arrow", part: "arrow" }), h("div", { key: '138e56bb83462ebb0908edb522b45ecf94b82aeb', class: "popover-content", part: "content" }, h("slot", { key: 'daeefcf002e8d89e91d6e0faf7f63f75b68a2dbe' })))));
|
|
1549
1664
|
}
|
|
1550
|
-
get el() { return getElement(this); }
|
|
1551
1665
|
static get watchers() { return {
|
|
1552
1666
|
"trigger": [{
|
|
1553
1667
|
"onTriggerChange": 0
|