@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
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { raf } from "../helpers";
|
|
5
|
+
import { isRTL } from "../rtl/index";
|
|
6
|
+
/**
|
|
7
|
+
* Applied to the host while the label is being repositioned. The
|
|
8
|
+
* component stylesheets style this class, so it must stay in sync with
|
|
9
|
+
* the `skip-label-transition` selector in those files. Renaming it here
|
|
10
|
+
* requires renaming it there too.
|
|
11
|
+
*/
|
|
12
|
+
export const SKIP_LABEL_TRANSITION_CLASS = 'skip-label-transition';
|
|
13
|
+
/**
|
|
14
|
+
* Set on the host as an inline style. The component stylesheets declare
|
|
15
|
+
* this property and read it with `var()`, so it must stay in sync with
|
|
16
|
+
* the `--internal-start-container-adjustment` references in those files.
|
|
17
|
+
* Renaming it here requires renaming it there too.
|
|
18
|
+
*/
|
|
19
|
+
export const START_CONTAINER_ADJUSTMENT_VAR = '--internal-start-container-adjustment';
|
|
20
|
+
/**
|
|
21
|
+
* A utility to measure and update the start container width adjustment
|
|
22
|
+
* for form components (input, textarea, select) with `fill="outline"`.
|
|
23
|
+
* This adjustment compensates for the start container width when
|
|
24
|
+
* positioning floating/stacked labels within the outline border.
|
|
25
|
+
*
|
|
26
|
+
* Measurement is deferred with raf() to avoid forcing layout during
|
|
27
|
+
* component updates, and a ResizeObserver watches for dynamic width
|
|
28
|
+
* changes (e.g., when web fonts load or async content changes).
|
|
29
|
+
*
|
|
30
|
+
* @internal
|
|
31
|
+
* @param el - The host element (ion-input, ion-textarea, or ion-select).
|
|
32
|
+
* @param getStartContainer - A callback that returns the start container element.
|
|
33
|
+
* @param shouldApplyAdjustment - A callback that determines whether the adjustment should be applied.
|
|
34
|
+
*/
|
|
35
|
+
export const createStartContainerController = (el, getStartContainer, shouldApplyAdjustment) => {
|
|
36
|
+
let resizeObserver;
|
|
37
|
+
let observedContainer;
|
|
38
|
+
let measurementRaf;
|
|
39
|
+
let transitionRaf;
|
|
40
|
+
let appliedAdjustment;
|
|
41
|
+
const calculateAdjustment = () => {
|
|
42
|
+
const startSlot = getStartContainer();
|
|
43
|
+
if (!startSlot || !shouldApplyAdjustment()) {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
/*
|
|
47
|
+
* Round to one decimal place so fractional widths produce a stable
|
|
48
|
+
* label offset when the start container is added, removed, or resized.
|
|
49
|
+
*/
|
|
50
|
+
const startContainerWidth = startSlot.getBoundingClientRect().width;
|
|
51
|
+
const roundedWidth = Math.round(startContainerWidth * 10) / 10;
|
|
52
|
+
const sign = isRTL(el) ? '' : '-';
|
|
53
|
+
return roundedWidth ? `${sign}${roundedWidth}px` : '0px';
|
|
54
|
+
};
|
|
55
|
+
const scheduleAdjustmentUpdate = () => {
|
|
56
|
+
// Return if there is already a measurement queued to avoid a flicker
|
|
57
|
+
if (measurementRaf !== undefined) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
/*
|
|
61
|
+
* Defer the measurement until the next animation frame so layout
|
|
62
|
+
* is measured after the current update has been applied.
|
|
63
|
+
*/
|
|
64
|
+
measurementRaf = raf(() => {
|
|
65
|
+
measurementRaf = undefined;
|
|
66
|
+
const adjustment = calculateAdjustment();
|
|
67
|
+
// Only suppress the label transition when the label has to move
|
|
68
|
+
if (adjustment !== appliedAdjustment) {
|
|
69
|
+
// Discard a removal queued by an earlier change
|
|
70
|
+
if (transitionRaf !== undefined) {
|
|
71
|
+
cancelAnimationFrame(transitionRaf);
|
|
72
|
+
}
|
|
73
|
+
el.classList.add(SKIP_LABEL_TRANSITION_CLASS);
|
|
74
|
+
el.style.setProperty(START_CONTAINER_ADJUSTMENT_VAR, adjustment);
|
|
75
|
+
appliedAdjustment = adjustment;
|
|
76
|
+
// Re-enable the transition once the new offset has been painted
|
|
77
|
+
transitionRaf = raf(() => {
|
|
78
|
+
transitionRaf = undefined;
|
|
79
|
+
el.classList.remove(SKIP_LABEL_TRANSITION_CLASS);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
setupResizeObserver();
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const disconnectResizeObserver = () => {
|
|
86
|
+
if (resizeObserver) {
|
|
87
|
+
resizeObserver.disconnect();
|
|
88
|
+
resizeObserver = undefined;
|
|
89
|
+
observedContainer = undefined;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const setupResizeObserver = () => {
|
|
93
|
+
const startSlot = getStartContainer();
|
|
94
|
+
// Stop watching once the adjustment no longer applies
|
|
95
|
+
if (!startSlot || !shouldApplyAdjustment()) {
|
|
96
|
+
disconnectResizeObserver();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Return when prerendering or already watching this container
|
|
100
|
+
if (typeof ResizeObserver !== 'function' || (resizeObserver && observedContainer === startSlot)) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
disconnectResizeObserver();
|
|
104
|
+
resizeObserver = new ResizeObserver(() => {
|
|
105
|
+
scheduleAdjustmentUpdate();
|
|
106
|
+
});
|
|
107
|
+
observedContainer = startSlot;
|
|
108
|
+
resizeObserver.observe(startSlot);
|
|
109
|
+
};
|
|
110
|
+
const calculateStartContainerWidth = () => {
|
|
111
|
+
scheduleAdjustmentUpdate();
|
|
112
|
+
};
|
|
113
|
+
const destroy = () => {
|
|
114
|
+
disconnectResizeObserver();
|
|
115
|
+
if (measurementRaf !== undefined) {
|
|
116
|
+
cancelAnimationFrame(measurementRaf);
|
|
117
|
+
measurementRaf = undefined;
|
|
118
|
+
}
|
|
119
|
+
// Tearing down mid-toggle would leave the transition disabled
|
|
120
|
+
if (transitionRaf !== undefined) {
|
|
121
|
+
cancelAnimationFrame(transitionRaf);
|
|
122
|
+
transitionRaf = undefined;
|
|
123
|
+
el.classList.remove(SKIP_LABEL_TRANSITION_CLASS);
|
|
124
|
+
}
|
|
125
|
+
// Re-apply from scratch if the element is connected again
|
|
126
|
+
appliedAdjustment = undefined;
|
|
127
|
+
};
|
|
128
|
+
return {
|
|
129
|
+
calculateStartContainerWidth,
|
|
130
|
+
destroy,
|
|
131
|
+
};
|
|
132
|
+
};
|
|
@@ -4,14 +4,13 @@
|
|
|
4
4
|
import { componentOnReady } from "./helpers";
|
|
5
5
|
// TODO(FW-2832): types
|
|
6
6
|
export const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
|
|
7
|
-
var _a;
|
|
8
7
|
if (delegate) {
|
|
9
8
|
return delegate.attachViewToDom(container, component, componentProps, cssClasses);
|
|
10
9
|
}
|
|
11
10
|
if (!inline && typeof component !== 'string' && !(component instanceof HTMLElement)) {
|
|
12
11
|
throw new Error('framework delegate is missing');
|
|
13
12
|
}
|
|
14
|
-
const el = typeof component === 'string' ?
|
|
13
|
+
const el = typeof component === 'string' ? container.ownerDocument?.createElement(component) : component;
|
|
15
14
|
if (cssClasses) {
|
|
16
15
|
cssClasses.forEach((c) => el.classList.add(c));
|
|
17
16
|
}
|
|
@@ -36,7 +35,6 @@ export const CoreDelegate = () => {
|
|
|
36
35
|
let BaseComponent;
|
|
37
36
|
let Reference;
|
|
38
37
|
const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {
|
|
39
|
-
var _a, _b;
|
|
40
38
|
BaseComponent = parentElement;
|
|
41
39
|
let ChildComponent;
|
|
42
40
|
/**
|
|
@@ -49,7 +47,7 @@ export const CoreDelegate = () => {
|
|
|
49
47
|
* the element otherwise just get a reference
|
|
50
48
|
* to the component.
|
|
51
49
|
*/
|
|
52
|
-
const el = typeof userComponent === 'string' ?
|
|
50
|
+
const el = typeof userComponent === 'string' ? BaseComponent.ownerDocument?.createElement(userComponent) : userComponent;
|
|
53
51
|
/**
|
|
54
52
|
* Add any css classes passed in
|
|
55
53
|
* via the cssClasses prop on the overlay.
|
|
@@ -81,7 +79,7 @@ export const CoreDelegate = () => {
|
|
|
81
79
|
* that the overlay has not been presented yet and we need
|
|
82
80
|
* to create the containing element with the specified classes.
|
|
83
81
|
*/
|
|
84
|
-
const el =
|
|
82
|
+
const el = BaseComponent.ownerDocument?.createElement('div');
|
|
85
83
|
// Add a class to track if the root element was created by the delegate.
|
|
86
84
|
el.classList.add('ion-delegate-host');
|
|
87
85
|
cssClasses.forEach((c) => el.classList.add(c));
|
|
@@ -121,7 +119,7 @@ export const CoreDelegate = () => {
|
|
|
121
119
|
* in the event that a modal or popover is presented
|
|
122
120
|
* with no child content.
|
|
123
121
|
*/
|
|
124
|
-
return ChildComponent
|
|
122
|
+
return ChildComponent ?? BaseComponent;
|
|
125
123
|
};
|
|
126
124
|
const removeViewFromDom = () => {
|
|
127
125
|
/**
|
|
@@ -2,18 +2,16 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
class GestureController {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
5
|
+
gestureId = 0;
|
|
6
|
+
requestedStart = new Map();
|
|
7
|
+
disabledGestures = new Map();
|
|
8
|
+
disabledScroll = new Set();
|
|
9
|
+
capturedId;
|
|
11
10
|
/**
|
|
12
11
|
* Creates a gesture delegate based on the GestureConfig passed
|
|
13
12
|
*/
|
|
14
13
|
createGesture(config) {
|
|
15
|
-
|
|
16
|
-
return new GestureDelegate(this, this.newID(), config.name, (_a = config.priority) !== null && _a !== void 0 ? _a : 0, !!config.disableScroll);
|
|
14
|
+
return new GestureDelegate(this, this.newID(), config.name, config.priority ?? 0, !!config.disableScroll);
|
|
17
15
|
}
|
|
18
16
|
/**
|
|
19
17
|
* Creates a blocker that will block any other gesture events from firing. Set in the ion-gesture component.
|
|
@@ -109,6 +107,11 @@ class GestureController {
|
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
109
|
class GestureDelegate {
|
|
110
|
+
id;
|
|
111
|
+
name;
|
|
112
|
+
disableScroll;
|
|
113
|
+
ctrl;
|
|
114
|
+
priority;
|
|
112
115
|
constructor(ctrl, id, name, priority, disableScroll) {
|
|
113
116
|
this.id = id;
|
|
114
117
|
this.name = name;
|
|
@@ -152,6 +155,10 @@ class GestureDelegate {
|
|
|
152
155
|
}
|
|
153
156
|
}
|
|
154
157
|
class BlockerDelegate {
|
|
158
|
+
id;
|
|
159
|
+
disable;
|
|
160
|
+
disableScroll;
|
|
161
|
+
ctrl;
|
|
155
162
|
constructor(ctrl, id, disable, disableScroll) {
|
|
156
163
|
this.id = id;
|
|
157
164
|
this.disable = disable;
|
|
@@ -10,7 +10,15 @@ export const createGesture = (config) => {
|
|
|
10
10
|
let hasStartedPan = false;
|
|
11
11
|
let hasFiredStart = true;
|
|
12
12
|
let isMoveQueued = false;
|
|
13
|
-
const finalConfig =
|
|
13
|
+
const finalConfig = {
|
|
14
|
+
disableScroll: false,
|
|
15
|
+
direction: 'x',
|
|
16
|
+
gesturePriority: 0,
|
|
17
|
+
passive: true,
|
|
18
|
+
maxAngle: 40,
|
|
19
|
+
threshold: 10,
|
|
20
|
+
...config,
|
|
21
|
+
};
|
|
14
22
|
const canStart = finalConfig.canStart;
|
|
15
23
|
const onWillStart = finalConfig.onWillStart;
|
|
16
24
|
const onStart = finalConfig.onStart;
|
|
@@ -125,7 +133,7 @@ export const createGesture = (config) => {
|
|
|
125
133
|
const blurActiveElement = () => {
|
|
126
134
|
if (typeof document !== 'undefined') {
|
|
127
135
|
const activeElement = document.activeElement;
|
|
128
|
-
if (activeElement
|
|
136
|
+
if (activeElement?.blur) {
|
|
129
137
|
activeElement.blur();
|
|
130
138
|
}
|
|
131
139
|
}
|
|
@@ -28,7 +28,7 @@ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher'
|
|
|
28
28
|
* will still happen.
|
|
29
29
|
*/
|
|
30
30
|
export const blockHardwareBackButton = () => {
|
|
31
|
-
document.addEventListener('backbutton', () => { });
|
|
31
|
+
document.addEventListener('backbutton', () => { });
|
|
32
32
|
};
|
|
33
33
|
export const startHardwareBackButton = () => {
|
|
34
34
|
const doc = document;
|
|
@@ -50,7 +50,7 @@ export const startHardwareBackButton = () => {
|
|
|
50
50
|
doc.dispatchEvent(ev);
|
|
51
51
|
const executeAction = async (handlerRegister) => {
|
|
52
52
|
try {
|
|
53
|
-
if (handlerRegister
|
|
53
|
+
if (handlerRegister?.handler) {
|
|
54
54
|
const result = handlerRegister.handler(processHandlers);
|
|
55
55
|
if (result != null) {
|
|
56
56
|
await result;
|
|
@@ -89,7 +89,7 @@ export const startHardwareBackButton = () => {
|
|
|
89
89
|
if (shouldUseCloseWatcher()) {
|
|
90
90
|
let watcher;
|
|
91
91
|
const configureWatcher = () => {
|
|
92
|
-
watcher
|
|
92
|
+
watcher?.destroy();
|
|
93
93
|
watcher = new win.CloseWatcher();
|
|
94
94
|
/**
|
|
95
95
|
* Once a close request happens
|
|
@@ -322,8 +322,8 @@ export const debounce = (func, wait = 0) => {
|
|
|
322
322
|
* @returns whether the keys are the same and the values are shallow equal.
|
|
323
323
|
*/
|
|
324
324
|
export const shallowEqualStringMap = (map1, map2) => {
|
|
325
|
-
map1
|
|
326
|
-
map2
|
|
325
|
+
map1 ??= {};
|
|
326
|
+
map2 ??= {};
|
|
327
327
|
if (map1 === map2) {
|
|
328
328
|
return true;
|
|
329
329
|
}
|
|
@@ -94,7 +94,7 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
94
94
|
*/
|
|
95
95
|
const focusOut = () => {
|
|
96
96
|
hasKeyboardBeenPresentedForTextField = false;
|
|
97
|
-
win
|
|
97
|
+
win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
|
|
98
98
|
componentEl.removeEventListener('focusout', focusOut);
|
|
99
99
|
};
|
|
100
100
|
/**
|
|
@@ -114,13 +114,13 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
|
|
117
|
-
win
|
|
117
|
+
win?.addEventListener('ionKeyboardDidShow', keyboardShow);
|
|
118
118
|
componentEl.addEventListener('focusout', focusOut);
|
|
119
119
|
};
|
|
120
120
|
componentEl.addEventListener('focusin', focusIn);
|
|
121
121
|
return () => {
|
|
122
122
|
componentEl.removeEventListener('focusin', focusIn);
|
|
123
|
-
win
|
|
123
|
+
win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
|
|
124
124
|
componentEl.removeEventListener('focusout', focusOut);
|
|
125
125
|
};
|
|
126
126
|
};
|
|
@@ -129,7 +129,6 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
129
129
|
* focus an input but not have scroll assist run again.
|
|
130
130
|
*/
|
|
131
131
|
const setManualFocus = (el) => {
|
|
132
|
-
var _a;
|
|
133
132
|
/**
|
|
134
133
|
* If element is already focused then
|
|
135
134
|
* a new focusin event will not be dispatched
|
|
@@ -154,7 +153,7 @@ const setManualFocus = (el) => {
|
|
|
154
153
|
*/
|
|
155
154
|
const inputId = el.getAttribute('id');
|
|
156
155
|
const label = el.closest(`label[for="${inputId}"]`);
|
|
157
|
-
const activeElLabel =
|
|
156
|
+
const activeElLabel = document.activeElement?.closest(`label[for="${inputId}"]`);
|
|
158
157
|
if (label !== null && label === activeElLabel) {
|
|
159
158
|
// If the label is the same as the active element label, then
|
|
160
159
|
// we don't need to set the `SKIP_SCROLL_ASSIST` and reset focus.
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import { SCROLL_AMOUNT_PADDING } from "./common";
|
|
5
5
|
const SCROLL_ASSIST_SPEED = 0.3;
|
|
6
6
|
export const getScrollData = (componentEl, contentEl, keyboardHeight, platformHeight) => {
|
|
7
|
-
|
|
8
|
-
const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
|
|
7
|
+
const itemEl = componentEl.closest('ion-item,[ion-item]') ?? componentEl;
|
|
9
8
|
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, platformHeight);
|
|
10
9
|
};
|
|
11
10
|
const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
|
|
@@ -26,7 +26,7 @@ const getResizeContainer = (resizeMode) => {
|
|
|
26
26
|
* we can fall back to `body`.
|
|
27
27
|
*/
|
|
28
28
|
const ionApp = doc.querySelector('ion-app');
|
|
29
|
-
return ionApp
|
|
29
|
+
return ionApp ?? doc.body;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Get the height of ion-app or body.
|
|
@@ -74,8 +74,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
|
|
|
74
74
|
keyboardVisible = false;
|
|
75
75
|
fireChangeCallback(keyboardVisible, resizeMode);
|
|
76
76
|
};
|
|
77
|
-
win
|
|
78
|
-
win
|
|
77
|
+
win?.addEventListener('keyboardWillShow', keyboardWillShowHandler);
|
|
78
|
+
win?.addEventListener('keyboardWillHide', keyboardWillHideHandler);
|
|
79
79
|
};
|
|
80
80
|
const fireChangeCallback = (state, resizeMode) => {
|
|
81
81
|
if (keyboardChangeCallback) {
|
|
@@ -152,8 +152,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
|
|
|
152
152
|
});
|
|
153
153
|
};
|
|
154
154
|
const destroy = () => {
|
|
155
|
-
win
|
|
156
|
-
win
|
|
155
|
+
win?.removeEventListener('keyboardWillShow', keyboardWillShowHandler);
|
|
156
|
+
win?.removeEventListener('keyboardWillHide', keyboardWillHideHandler);
|
|
157
157
|
keyboardWillShowHandler = keyboardWillHideHandler = undefined;
|
|
158
158
|
};
|
|
159
159
|
const isKeyboardVisible = () => keyboardVisible;
|
|
@@ -121,7 +121,7 @@ const fireKeyboardCloseEvent = (win) => {
|
|
|
121
121
|
* layout viewport states
|
|
122
122
|
*/
|
|
123
123
|
export const trackViewportChanges = (win) => {
|
|
124
|
-
previousVisualViewport =
|
|
124
|
+
previousVisualViewport = { ...currentVisualViewport };
|
|
125
125
|
currentVisualViewport = copyVisualViewport(win.visualViewport);
|
|
126
126
|
};
|
|
127
127
|
/**
|
|
@@ -7,7 +7,28 @@ export var LogLevel;
|
|
|
7
7
|
LogLevel["OFF"] = "OFF";
|
|
8
8
|
LogLevel["ERROR"] = "ERROR";
|
|
9
9
|
LogLevel["WARN"] = "WARN";
|
|
10
|
+
LogLevel["DEBUG"] = "DEBUG";
|
|
10
11
|
})(LogLevel || (LogLevel = {}));
|
|
12
|
+
/**
|
|
13
|
+
* Ranks each level so an enabled check is a numeric comparison. A configured
|
|
14
|
+
* level logs anything whose rank is less than or equal to its own: `OFF` (0)
|
|
15
|
+
* logs nothing, `ERROR` (1) logs errors, `WARN` (2) logs errors and warnings,
|
|
16
|
+
* `DEBUG` (3) logs all of the above plus internal diagnostics.
|
|
17
|
+
*/
|
|
18
|
+
const LOG_LEVEL_RANK = {
|
|
19
|
+
[LogLevel.OFF]: 0,
|
|
20
|
+
[LogLevel.ERROR]: 1,
|
|
21
|
+
[LogLevel.WARN]: 2,
|
|
22
|
+
[LogLevel.DEBUG]: 3,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Whether the configured level is verbose enough to log `minimum`. Levels set
|
|
26
|
+
* through a query parameter arrive as raw strings, hence the uppercasing.
|
|
27
|
+
*/
|
|
28
|
+
const isLogLevelEnabled = (minimum) => {
|
|
29
|
+
const configured = String(config.get('logLevel', LogLevel.WARN)).toUpperCase();
|
|
30
|
+
return LOG_LEVEL_RANK[configured] >= LOG_LEVEL_RANK[minimum];
|
|
31
|
+
};
|
|
11
32
|
/**
|
|
12
33
|
* Logs a warning to the console with an Ionic prefix
|
|
13
34
|
* to indicate the library that is warning the developer.
|
|
@@ -15,8 +36,7 @@ export var LogLevel;
|
|
|
15
36
|
* @param message - The string message to be logged to the console.
|
|
16
37
|
*/
|
|
17
38
|
export const printIonWarning = (message, ...params) => {
|
|
18
|
-
|
|
19
|
-
if ([LogLevel.WARN].includes(logLevel)) {
|
|
39
|
+
if (isLogLevelEnabled(LogLevel.WARN)) {
|
|
20
40
|
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
21
41
|
}
|
|
22
42
|
};
|
|
@@ -28,8 +48,7 @@ export const printIonWarning = (message, ...params) => {
|
|
|
28
48
|
* @param params - Additional arguments to supply to the console.error.
|
|
29
49
|
*/
|
|
30
50
|
export const printIonError = (message, ...params) => {
|
|
31
|
-
|
|
32
|
-
if ([LogLevel.ERROR, LogLevel.WARN].includes(logLevel)) {
|
|
51
|
+
if (isLogLevelEnabled(LogLevel.ERROR)) {
|
|
33
52
|
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
34
53
|
}
|
|
35
54
|
};
|
|
@@ -49,7 +49,6 @@ const createMenuController = () => {
|
|
|
49
49
|
const isOpen = async (menu) => {
|
|
50
50
|
if (menu != null) {
|
|
51
51
|
const menuEl = await get(menu);
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
53
52
|
return menuEl !== undefined && menuEl.isOpen();
|
|
54
53
|
}
|
|
55
54
|
else {
|
|
@@ -185,7 +184,7 @@ const createMenuController = () => {
|
|
|
185
184
|
registerAnimation('reveal', menuRevealAnimation);
|
|
186
185
|
registerAnimation('push', menuPushAnimation);
|
|
187
186
|
registerAnimation('overlay', menuOverlayAnimation);
|
|
188
|
-
doc
|
|
187
|
+
doc?.addEventListener('ionBackButton', (ev) => {
|
|
189
188
|
const openMenu = _getOpenSync();
|
|
190
189
|
if (openMenu) {
|
|
191
190
|
ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
|
|
@@ -47,7 +47,7 @@ export var NotificationType;
|
|
|
47
47
|
const HapticEngine = {
|
|
48
48
|
getEngine() {
|
|
49
49
|
const capacitor = getCapacitor();
|
|
50
|
-
if (capacitor
|
|
50
|
+
if (capacitor?.isPluginAvailable('Haptics')) {
|
|
51
51
|
// Capacitor
|
|
52
52
|
return capacitor.Plugins.Haptics;
|
|
53
53
|
}
|
|
@@ -68,8 +68,7 @@ const HapticEngine = {
|
|
|
68
68
|
* the Vibrate API. This check avoids that error
|
|
69
69
|
* if the browser does not support the Vibrate API.
|
|
70
70
|
*/
|
|
71
|
-
if (
|
|
72
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
71
|
+
if (capacitor?.getPlatform() === 'web') {
|
|
73
72
|
return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;
|
|
74
73
|
}
|
|
75
74
|
return true;
|
|
@@ -36,14 +36,14 @@ export var KeyboardResize;
|
|
|
36
36
|
export const Keyboard = {
|
|
37
37
|
getEngine() {
|
|
38
38
|
const capacitor = getCapacitor();
|
|
39
|
-
if (capacitor
|
|
39
|
+
if (capacitor?.isPluginAvailable('Keyboard')) {
|
|
40
40
|
return capacitor.Plugins.Keyboard;
|
|
41
41
|
}
|
|
42
42
|
return undefined;
|
|
43
43
|
},
|
|
44
44
|
getResizeMode() {
|
|
45
45
|
const engine = this.getEngine();
|
|
46
|
-
if (!
|
|
46
|
+
if (!engine?.getResizeMode) {
|
|
47
47
|
return Promise.resolve(undefined);
|
|
48
48
|
}
|
|
49
49
|
return engine.getResizeMode().catch((e) => {
|
|
@@ -11,7 +11,7 @@ export var Style;
|
|
|
11
11
|
export const StatusBar = {
|
|
12
12
|
getEngine() {
|
|
13
13
|
const capacitor = getCapacitor();
|
|
14
|
-
if (capacitor
|
|
14
|
+
if (capacitor?.isPluginAvailable('StatusBar')) {
|
|
15
15
|
return capacitor.Plugins.StatusBar;
|
|
16
16
|
}
|
|
17
17
|
return undefined;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
// TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
|
|
5
|
+
/**
|
|
6
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
7
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
8
|
+
* option-row layout:
|
|
9
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
10
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
11
|
+
* `"end"` on iOS.
|
|
12
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
13
|
+
*
|
|
14
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
15
|
+
* callers that aren't a modal can omit it.
|
|
16
|
+
*
|
|
17
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
18
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
19
|
+
*/
|
|
20
|
+
export const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
21
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
22
|
+
return 'start';
|
|
23
|
+
}
|
|
24
|
+
return 'end';
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
28
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
29
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
30
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
31
|
+
* on iOS.
|
|
32
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
33
|
+
*
|
|
34
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
35
|
+
* callers that aren't a modal can omit it.
|
|
36
|
+
*
|
|
37
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
38
|
+
* option doesn't explicitly set `justify`.
|
|
39
|
+
*/
|
|
40
|
+
export const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
41
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
42
|
+
return 'space-between';
|
|
43
|
+
}
|
|
44
|
+
return 'start';
|
|
45
|
+
};
|