@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
|
@@ -10,13 +10,23 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
10
10
|
* @part inner - The inner wrapper element that arranges the list header content.
|
|
11
11
|
*/
|
|
12
12
|
export class ListHeader {
|
|
13
|
+
/**
|
|
14
|
+
* The color to use from your application's color palette.
|
|
15
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
16
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
17
|
+
*/
|
|
18
|
+
color;
|
|
19
|
+
/**
|
|
20
|
+
* How the bottom border should be displayed on the list header.
|
|
21
|
+
*/
|
|
22
|
+
lines;
|
|
13
23
|
render() {
|
|
14
24
|
const { lines } = this;
|
|
15
25
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
26
|
+
return (h(Host, { key: '92ab17533e169b1a1c990285449e0546aac98021', class: createColorClasses(this.color, {
|
|
17
27
|
[mode]: true,
|
|
18
28
|
[`list-header-lines-${lines}`]: lines !== undefined,
|
|
19
|
-
}) }, h("div", { key: '
|
|
29
|
+
}) }, h("div", { key: '26639255577380a8e70b61f753aa9ed57590694f', class: "list-header-inner", part: "inner" }, h("slot", { key: 'f69055e7a7a47ae8dcbbe289e18b6630f0792714' }))));
|
|
20
30
|
}
|
|
21
31
|
static get is() { return "ion-list-header"; }
|
|
22
32
|
static get encapsulation() { return "shadow"; }
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
6
6
|
import { raf } from "../../utils/helpers";
|
|
7
7
|
import { createLockController } from "../../utils/lock-controller";
|
|
8
|
-
import { BACKDROP, dismiss, eventMethod, prepareOverlay, present,
|
|
8
|
+
import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, prepareOverlay, present, setOverlayId, } from "../../utils/overlays";
|
|
9
9
|
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
10
10
|
import { getClassMap } from "../../utils/theme";
|
|
11
11
|
import { config } from "../../global/config";
|
|
@@ -19,52 +19,84 @@ import { mdLeaveAnimation } from "./animations/md.leave";
|
|
|
19
19
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
20
20
|
*/
|
|
21
21
|
export class Loading {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
22
|
+
delegateController = createDelegateController(this);
|
|
23
|
+
lockController = createLockController();
|
|
24
|
+
triggerController = createTriggerController();
|
|
25
|
+
customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
26
|
+
durationTimeout;
|
|
27
|
+
presented = false;
|
|
28
|
+
lastFocus;
|
|
29
|
+
el;
|
|
30
|
+
/** @internal */
|
|
31
|
+
overlayIndex;
|
|
32
|
+
/** @internal */
|
|
33
|
+
delegate;
|
|
34
|
+
/** @internal */
|
|
35
|
+
hasController = false;
|
|
36
|
+
/**
|
|
37
|
+
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
38
|
+
*/
|
|
39
|
+
keyboardClose = true;
|
|
40
|
+
/**
|
|
41
|
+
* Animation to use when the loading indicator is presented.
|
|
42
|
+
*/
|
|
43
|
+
enterAnimation;
|
|
44
|
+
/**
|
|
45
|
+
* Animation to use when the loading indicator is dismissed.
|
|
46
|
+
*/
|
|
47
|
+
leaveAnimation;
|
|
48
|
+
/**
|
|
49
|
+
* Optional text content to display in the loading indicator.
|
|
50
|
+
*
|
|
51
|
+
* This property accepts custom HTML as a string.
|
|
52
|
+
* Content is parsed as plaintext by default.
|
|
53
|
+
* `innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config
|
|
54
|
+
* before custom HTML can be used.
|
|
55
|
+
*/
|
|
56
|
+
message;
|
|
57
|
+
/**
|
|
58
|
+
* Additional classes to apply for custom CSS. If multiple classes are
|
|
59
|
+
* provided they should be separated by spaces.
|
|
60
|
+
*/
|
|
61
|
+
cssClass;
|
|
62
|
+
/**
|
|
63
|
+
* Number of milliseconds to wait before dismissing the loading indicator.
|
|
64
|
+
*/
|
|
65
|
+
duration = 0;
|
|
66
|
+
/**
|
|
67
|
+
* If `true`, the loading indicator will be dismissed when the backdrop is clicked.
|
|
68
|
+
*/
|
|
69
|
+
backdropDismiss = false;
|
|
70
|
+
/**
|
|
71
|
+
* If `true`, a backdrop will be displayed behind the loading indicator.
|
|
72
|
+
*/
|
|
73
|
+
showBackdrop = true;
|
|
74
|
+
/**
|
|
75
|
+
* The name of the spinner to display.
|
|
76
|
+
*/
|
|
77
|
+
spinner;
|
|
78
|
+
/**
|
|
79
|
+
* If `true`, the loading indicator will be translucent.
|
|
80
|
+
* Only applies when the mode is `"ios"` and the device supports
|
|
81
|
+
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
82
|
+
*/
|
|
83
|
+
translucent = false;
|
|
84
|
+
/**
|
|
85
|
+
* If `true`, the loading indicator will animate.
|
|
86
|
+
*/
|
|
87
|
+
animated = true;
|
|
88
|
+
/**
|
|
89
|
+
* Additional attributes to pass to the loader.
|
|
90
|
+
*/
|
|
91
|
+
htmlAttributes;
|
|
92
|
+
/**
|
|
93
|
+
* If `true`, the loading indicator will open. If `false`, the loading indicator will close.
|
|
94
|
+
* Use this if you need finer grained control over presentation, otherwise
|
|
95
|
+
* just use the loadingController or the `trigger` property.
|
|
96
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
|
97
|
+
* the loading indicator dismisses. You will need to do that in your code.
|
|
98
|
+
*/
|
|
99
|
+
isOpen = false;
|
|
68
100
|
onIsOpenChange(newValue, oldValue) {
|
|
69
101
|
if (newValue === true && oldValue === false) {
|
|
70
102
|
this.present();
|
|
@@ -73,23 +105,63 @@ export class Loading {
|
|
|
73
105
|
this.dismiss();
|
|
74
106
|
}
|
|
75
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* An ID corresponding to the trigger element that
|
|
110
|
+
* causes the loading indicator to open when clicked.
|
|
111
|
+
*/
|
|
112
|
+
trigger;
|
|
76
113
|
triggerChanged() {
|
|
77
114
|
const { trigger, el, triggerController } = this;
|
|
78
115
|
if (trigger) {
|
|
79
116
|
triggerController.addClickListener(el, trigger);
|
|
80
117
|
}
|
|
81
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Emitted after the loading has presented.
|
|
121
|
+
*/
|
|
122
|
+
didPresent;
|
|
123
|
+
/**
|
|
124
|
+
* Emitted before the loading has presented.
|
|
125
|
+
*/
|
|
126
|
+
willPresent;
|
|
127
|
+
/**
|
|
128
|
+
* Emitted before the loading has dismissed.
|
|
129
|
+
*/
|
|
130
|
+
willDismiss;
|
|
131
|
+
/**
|
|
132
|
+
* Emitted after the loading has dismissed.
|
|
133
|
+
*/
|
|
134
|
+
didDismiss;
|
|
135
|
+
/**
|
|
136
|
+
* Emitted after the loading indicator has presented.
|
|
137
|
+
* Shorthand for ionLoadingWillDismiss.
|
|
138
|
+
*/
|
|
139
|
+
didPresentShorthand;
|
|
140
|
+
/**
|
|
141
|
+
* Emitted before the loading indicator has presented.
|
|
142
|
+
* Shorthand for ionLoadingWillPresent.
|
|
143
|
+
*/
|
|
144
|
+
willPresentShorthand;
|
|
145
|
+
/**
|
|
146
|
+
* Emitted before the loading indicator has dismissed.
|
|
147
|
+
* Shorthand for ionLoadingWillDismiss.
|
|
148
|
+
*/
|
|
149
|
+
willDismissShorthand;
|
|
150
|
+
/**
|
|
151
|
+
* Emitted after the loading indicator has dismissed.
|
|
152
|
+
* Shorthand for ionLoadingDidDismiss.
|
|
153
|
+
*/
|
|
154
|
+
didDismissShorthand;
|
|
82
155
|
connectedCallback() {
|
|
83
156
|
prepareOverlay(this.el);
|
|
84
157
|
this.triggerChanged();
|
|
85
158
|
}
|
|
86
159
|
componentWillLoad() {
|
|
87
|
-
var _a;
|
|
88
160
|
if (this.spinner === undefined) {
|
|
89
161
|
const mode = getIonMode(this);
|
|
90
162
|
this.spinner = config.get('loadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent'));
|
|
91
163
|
}
|
|
92
|
-
if (!
|
|
164
|
+
if (!this.htmlAttributes?.id) {
|
|
93
165
|
setOverlayId(this.el);
|
|
94
166
|
}
|
|
95
167
|
}
|
|
@@ -114,6 +186,10 @@ export class Loading {
|
|
|
114
186
|
}
|
|
115
187
|
disconnectedCallback() {
|
|
116
188
|
this.triggerController.removeClickListener();
|
|
189
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
190
|
+
if (this.presented) {
|
|
191
|
+
cleanupRootFocusTrapAccessibility();
|
|
192
|
+
}
|
|
117
193
|
}
|
|
118
194
|
/**
|
|
119
195
|
* Present the loading overlay after it has been created.
|
|
@@ -163,6 +239,9 @@ export class Loading {
|
|
|
163
239
|
onWillDismiss() {
|
|
164
240
|
return eventMethod(this.el, 'ionLoadingWillDismiss');
|
|
165
241
|
}
|
|
242
|
+
onBackdropTap = () => {
|
|
243
|
+
this.dismiss(undefined, BACKDROP);
|
|
244
|
+
};
|
|
166
245
|
renderLoadingMessage(msgId) {
|
|
167
246
|
const { customHTMLEnabled, message } = this;
|
|
168
247
|
if (customHTMLEnabled) {
|
|
@@ -179,9 +258,14 @@ export class Loading {
|
|
|
179
258
|
* Otherwise, don't set aria-labelledby.
|
|
180
259
|
*/
|
|
181
260
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
182
|
-
return (h(Host,
|
|
261
|
+
return (h(Host, { key: '2d14122ff3081de73631a7fdd4affdd5c73b8618', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1", ...htmlAttributes, style: {
|
|
183
262
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
184
|
-
}, onIonBackdropTap: this.onBackdropTap, class:
|
|
263
|
+
}, onIonBackdropTap: this.onBackdropTap, class: {
|
|
264
|
+
...getClassMap(this.cssClass),
|
|
265
|
+
[mode]: true,
|
|
266
|
+
'overlay-hidden': true,
|
|
267
|
+
'loading-translucent': this.translucent,
|
|
268
|
+
} }, h("ion-backdrop", { key: 'b7d5bb0d670a20c159d7f67327bf3b1489449188', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '085ce92bd2004d323ab47eb472b83826e48dc619', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '4ecd5bfc0bbd3da434d32f0f319f867a44c5e1f1', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '5a4498e1421e09d01c0ee4312eae5272e95c3127', class: "loading-spinner" }, h("ion-spinner", { key: '1b3bc7d45d775195657ead3535f65e6b79f37e84', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'bc7c5467b9f1c6ab957f79934e97acc713bdec37', tabindex: "0", "aria-hidden": "true" })));
|
|
185
269
|
}
|
|
186
270
|
static get is() { return "ion-loading"; }
|
|
187
271
|
static get encapsulation() { return "scoped"; }
|
|
@@ -23,63 +23,69 @@ const mdEasingReverse = 'cubic-bezier(0.4, 0, 0.6, 1)';
|
|
|
23
23
|
* @part backdrop - The backdrop that appears over the main content when the menu is open.
|
|
24
24
|
*/
|
|
25
25
|
export class Menu {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
*/
|
|
49
|
-
const lastOverlay = getPresentedOverlay(document);
|
|
50
|
-
if (lastOverlay && !lastOverlay.contains(this.el)) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this.trapKeyboardFocus(ev, document);
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* If true, then the menu should be
|
|
57
|
-
* visible within a split pane.
|
|
58
|
-
* If false, then the menu is hidden.
|
|
59
|
-
* However, the menu-button/menu-toggle
|
|
60
|
-
* components can be used to open the
|
|
61
|
-
* menu.
|
|
62
|
-
*/
|
|
63
|
-
this.isPaneVisible = false;
|
|
64
|
-
this.isEndSide = false;
|
|
65
|
-
/**
|
|
66
|
-
* If `true`, the menu is disabled.
|
|
67
|
-
*/
|
|
68
|
-
this.disabled = false;
|
|
69
|
-
/**
|
|
70
|
-
* Which side of the view the menu should be placed.
|
|
71
|
-
*/
|
|
72
|
-
this.side = 'start';
|
|
73
|
-
/**
|
|
74
|
-
* If `true`, swiping the menu is enabled.
|
|
75
|
-
*/
|
|
76
|
-
this.swipeGesture = true;
|
|
26
|
+
animation;
|
|
27
|
+
lastOnEnd = 0;
|
|
28
|
+
gesture;
|
|
29
|
+
blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });
|
|
30
|
+
didLoad = false;
|
|
31
|
+
/**
|
|
32
|
+
* Flag used to determine if an open/close
|
|
33
|
+
* operation was cancelled. For example, if
|
|
34
|
+
* an app calls "menu.open" then disables the menu
|
|
35
|
+
* part way through the animation, then this would
|
|
36
|
+
* be considered a cancelled operation.
|
|
37
|
+
*/
|
|
38
|
+
operationCancelled = false;
|
|
39
|
+
isAnimating = false;
|
|
40
|
+
width;
|
|
41
|
+
_isOpen = false;
|
|
42
|
+
backdropEl;
|
|
43
|
+
menuInnerEl;
|
|
44
|
+
contentEl;
|
|
45
|
+
lastFocus;
|
|
46
|
+
inheritedAttributes = {};
|
|
47
|
+
handleFocus = (ev) => {
|
|
77
48
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
49
|
+
* Overlays have their own focus trapping listener
|
|
50
|
+
* so we do not want the two listeners to conflict
|
|
51
|
+
* with each other. If the top-most overlay that is
|
|
52
|
+
* open does not contain this ion-menu, then ion-menu's
|
|
53
|
+
* focus trapping should not run.
|
|
80
54
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
55
|
+
const lastOverlay = getPresentedOverlay(document);
|
|
56
|
+
if (lastOverlay && !lastOverlay.contains(this.el)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.trapKeyboardFocus(ev, document);
|
|
60
|
+
};
|
|
61
|
+
el;
|
|
62
|
+
/**
|
|
63
|
+
* If true, then the menu should be
|
|
64
|
+
* visible within a split pane.
|
|
65
|
+
* If false, then the menu is hidden.
|
|
66
|
+
* However, the menu-button/menu-toggle
|
|
67
|
+
* components can be used to open the
|
|
68
|
+
* menu.
|
|
69
|
+
*/
|
|
70
|
+
isPaneVisible = false;
|
|
71
|
+
isEndSide = false;
|
|
72
|
+
/**
|
|
73
|
+
* The `id` of the main content. When using
|
|
74
|
+
* a router this is typically `ion-router-outlet`.
|
|
75
|
+
* When not using a router, this is typically
|
|
76
|
+
* your main view's `ion-content`. This is not the
|
|
77
|
+
* id of the `ion-content` inside of your `ion-menu`.
|
|
78
|
+
*/
|
|
79
|
+
contentId;
|
|
80
|
+
/**
|
|
81
|
+
* An id for the menu.
|
|
82
|
+
*/
|
|
83
|
+
menuId;
|
|
84
|
+
/**
|
|
85
|
+
* The display type of the menu.
|
|
86
|
+
* Available options: `"overlay"`, `"reveal"`, `"push"`.
|
|
87
|
+
*/
|
|
88
|
+
type;
|
|
83
89
|
typeChanged(type, oldType) {
|
|
84
90
|
const contentEl = this.contentEl;
|
|
85
91
|
if (contentEl) {
|
|
@@ -95,6 +101,10 @@ export class Menu {
|
|
|
95
101
|
}
|
|
96
102
|
this.animation = undefined;
|
|
97
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* If `true`, the menu is disabled.
|
|
106
|
+
*/
|
|
107
|
+
disabled = false;
|
|
98
108
|
disabledChanged() {
|
|
99
109
|
this.updateState();
|
|
100
110
|
this.ionMenuChange.emit({
|
|
@@ -102,6 +112,10 @@ export class Menu {
|
|
|
102
112
|
open: this._isOpen,
|
|
103
113
|
});
|
|
104
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Which side of the view the menu should be placed.
|
|
117
|
+
*/
|
|
118
|
+
side = 'start';
|
|
105
119
|
sideChanged() {
|
|
106
120
|
this.isEndSide = isEnd(this.side, this.el);
|
|
107
121
|
/**
|
|
@@ -110,9 +124,39 @@ export class Menu {
|
|
|
110
124
|
*/
|
|
111
125
|
this.animation = undefined;
|
|
112
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* If `true`, swiping the menu is enabled.
|
|
129
|
+
*/
|
|
130
|
+
swipeGesture = true;
|
|
113
131
|
swipeGestureChanged() {
|
|
114
132
|
this.updateState();
|
|
115
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* The edge threshold for dragging the menu open.
|
|
136
|
+
* If a drag/swipe happens over this value, the menu is not triggered.
|
|
137
|
+
*/
|
|
138
|
+
maxEdgeStart = 50;
|
|
139
|
+
/**
|
|
140
|
+
* Emitted when the menu is about to be opened.
|
|
141
|
+
*/
|
|
142
|
+
ionWillOpen;
|
|
143
|
+
/**
|
|
144
|
+
* Emitted when the menu is about to be closed.
|
|
145
|
+
*/
|
|
146
|
+
ionWillClose;
|
|
147
|
+
/**
|
|
148
|
+
* Emitted when the menu is open.
|
|
149
|
+
*/
|
|
150
|
+
ionDidOpen;
|
|
151
|
+
/**
|
|
152
|
+
* Emitted when the menu is closed.
|
|
153
|
+
*/
|
|
154
|
+
ionDidClose;
|
|
155
|
+
/**
|
|
156
|
+
* Emitted when the menu state is changed.
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
ionMenuChange;
|
|
116
160
|
async connectedCallback() {
|
|
117
161
|
// TODO: connectedCallback is fired in CE build
|
|
118
162
|
// before WC is defined. This needs to be fixed in Stencil.
|
|
@@ -293,9 +337,8 @@ export class Menu {
|
|
|
293
337
|
* @param role The role of the element that is closing the menu.
|
|
294
338
|
*/
|
|
295
339
|
setOpen(shouldOpen, animated = true, role) {
|
|
296
|
-
var _a;
|
|
297
340
|
// Blur the active element to prevent it from being kept focused inside an element that will be set with aria-hidden="true"
|
|
298
|
-
|
|
341
|
+
document.activeElement?.blur();
|
|
299
342
|
return menuController._setOpen(this, shouldOpen, animated, role);
|
|
300
343
|
}
|
|
301
344
|
trapKeyboardFocus(ev, doc) {
|
|
@@ -555,7 +598,6 @@ export class Menu {
|
|
|
555
598
|
}
|
|
556
599
|
}
|
|
557
600
|
afterAnimation(isOpen, role) {
|
|
558
|
-
var _a;
|
|
559
601
|
// keep opening/closing the menu disabled for a touch more yet
|
|
560
602
|
// only add listeners/css if it's enabled and isOpen
|
|
561
603
|
// and only remove listeners/css if it's not open
|
|
@@ -583,7 +625,7 @@ export class Menu {
|
|
|
583
625
|
* it isn't already focused. Use the host element instead of the
|
|
584
626
|
* first descendant to avoid the scroll position jumping around.
|
|
585
627
|
*/
|
|
586
|
-
const focusedMenu =
|
|
628
|
+
const focusedMenu = document.activeElement?.closest('ion-menu');
|
|
587
629
|
if (focusedMenu !== this.el) {
|
|
588
630
|
this.el.focus();
|
|
589
631
|
}
|
|
@@ -658,14 +700,14 @@ export class Menu {
|
|
|
658
700
|
* the ionBackButton listener in the menu controller
|
|
659
701
|
* will handle closing the menu when Escape is pressed.
|
|
660
702
|
*/
|
|
661
|
-
return (h(Host, { key: '
|
|
703
|
+
return (h(Host, { key: '1208ba437fa58680325408d3d4c8580950da1d68', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
662
704
|
[mode]: true,
|
|
663
705
|
[`menu-type-${type}`]: true,
|
|
664
706
|
'menu-enabled': !disabled,
|
|
665
707
|
[`menu-side-${side}`]: true,
|
|
666
708
|
'menu-pane-visible': isPaneVisible,
|
|
667
709
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
668
|
-
} }, h("div", { key: '
|
|
710
|
+
} }, h("div", { key: 'c0ddc957b7a7956b41901d77ae02d91e73071c55', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '6e44c56116431a024f114ab85ded1b822c942fac' })), h("ion-backdrop", { key: '5f4bbcf84444d96ec6b02bf567e1aaf95f59078d', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
669
711
|
}
|
|
670
712
|
static get is() { return "ion-menu"; }
|
|
671
713
|
static get encapsulation() { return "shadow"; }
|
|
@@ -16,25 +16,31 @@ import { updateVisibility } from "../menu-toggle/menu-toggle-util";
|
|
|
16
16
|
* @part icon - The menu button icon (uses ion-icon).
|
|
17
17
|
*/
|
|
18
18
|
export class MenuButton {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
19
|
+
inheritedAttributes = {};
|
|
20
|
+
el;
|
|
21
|
+
visible = false;
|
|
22
|
+
/**
|
|
23
|
+
* The color to use from your application's color palette.
|
|
24
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
25
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
26
|
+
*/
|
|
27
|
+
color;
|
|
28
|
+
/**
|
|
29
|
+
* If `true`, the user cannot interact with the menu button.
|
|
30
|
+
*/
|
|
31
|
+
disabled = false;
|
|
32
|
+
/**
|
|
33
|
+
* Optional property that maps to a Menu's `menuId` prop. Can also be `start` or `end` for the menu side. This is used to find the correct menu to toggle
|
|
34
|
+
*/
|
|
35
|
+
menu;
|
|
36
|
+
/**
|
|
37
|
+
* Automatically hides the menu button when the corresponding menu is not active
|
|
38
|
+
*/
|
|
39
|
+
autoHide = true;
|
|
40
|
+
/**
|
|
41
|
+
* The type of the button.
|
|
42
|
+
*/
|
|
43
|
+
type = 'button';
|
|
38
44
|
componentWillLoad() {
|
|
39
45
|
this.inheritedAttributes = inheritAriaAttributes(this.el);
|
|
40
46
|
}
|
|
@@ -44,6 +50,9 @@ export class MenuButton {
|
|
|
44
50
|
async visibilityChanged() {
|
|
45
51
|
this.visible = await updateVisibility(this.menu);
|
|
46
52
|
}
|
|
53
|
+
onClick = async () => {
|
|
54
|
+
return menuController.toggle(this.menu);
|
|
55
|
+
};
|
|
47
56
|
render() {
|
|
48
57
|
const { color, disabled, inheritedAttributes } = this;
|
|
49
58
|
const mode = getIonMode(this);
|
|
@@ -53,7 +62,7 @@ export class MenuButton {
|
|
|
53
62
|
type: this.type,
|
|
54
63
|
};
|
|
55
64
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
56
|
-
return (h(Host, { key: '
|
|
65
|
+
return (h(Host, { key: 'b8869377822b082c6c4d3f16135b50b733eabf65', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
|
|
57
66
|
[mode]: true,
|
|
58
67
|
button: true, // ion-buttons target .button
|
|
59
68
|
'menu-button-hidden': hidden,
|
|
@@ -62,7 +71,7 @@ export class MenuButton {
|
|
|
62
71
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
63
72
|
'ion-activatable': true,
|
|
64
73
|
'ion-focusable': true,
|
|
65
|
-
}) }, h("button",
|
|
74
|
+
}) }, h("button", { key: '48fc0a7011414b60dd7d5136f247e937ae4bb8c8', ...attrs, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: '8c712f28c5afd345e403a9afc525931112852708', class: "button-inner" }, h("slot", { key: 'dd872325e42baf435188478c8d1cfc416075089d' }, h("ion-icon", { key: 'a4f02bdb715b07792c17e12c7837873d70171f88', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { key: '564e2a8a804e14d1135502f7b17d8b7b9862e81b', type: "unbounded" }))));
|
|
66
75
|
}
|
|
67
76
|
static get is() { return "ion-menu-button"; }
|
|
68
77
|
static get encapsulation() { return "shadow"; }
|
|
@@ -9,32 +9,39 @@ import { updateVisibility } from "./menu-toggle-util";
|
|
|
9
9
|
* @slot - Content is placed inside the toggle to act as the click target.
|
|
10
10
|
*/
|
|
11
11
|
export class MenuToggle {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
visible = false;
|
|
13
|
+
/**
|
|
14
|
+
* Optional property that maps to a Menu's `menuId` prop.
|
|
15
|
+
* Can also be `start` or `end` for the menu side.
|
|
16
|
+
* This is used to find the correct menu to toggle.
|
|
17
|
+
*
|
|
18
|
+
* If this property is not used, `ion-menu-toggle` will toggle the
|
|
19
|
+
* first menu that is active.
|
|
20
|
+
*/
|
|
21
|
+
menu;
|
|
22
|
+
/**
|
|
23
|
+
* Automatically hides the content when the corresponding menu is not active.
|
|
24
|
+
*
|
|
25
|
+
* By default, it's `true`. Change it to `false` in order to
|
|
26
|
+
* keep `ion-menu-toggle` always visible regardless the state of the menu.
|
|
27
|
+
*/
|
|
28
|
+
autoHide = true;
|
|
25
29
|
connectedCallback() {
|
|
26
30
|
this.visibilityChanged();
|
|
27
31
|
}
|
|
28
32
|
async visibilityChanged() {
|
|
29
33
|
this.visible = await updateVisibility(this.menu);
|
|
30
34
|
}
|
|
35
|
+
onClick = () => {
|
|
36
|
+
return menuController.toggle(this.menu);
|
|
37
|
+
};
|
|
31
38
|
render() {
|
|
32
39
|
const mode = getIonMode(this);
|
|
33
40
|
const hidden = this.autoHide && !this.visible;
|
|
34
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: '76d21ea6493b8161860c941e3754fef1e20395cc', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
35
42
|
[mode]: true,
|
|
36
43
|
'menu-toggle-hidden': hidden,
|
|
37
|
-
} }, h("slot", { key: '
|
|
44
|
+
} }, h("slot", { key: '9383610fd3105e1928a38788eb596e313e2b07f8' })));
|
|
38
45
|
}
|
|
39
46
|
static get is() { return "ion-menu-toggle"; }
|
|
40
47
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,7 +26,7 @@ export const iosEnterAnimation = (baseEl, opts) => {
|
|
|
26
26
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
27
27
|
// The content animation is only added if scrolling is enabled for
|
|
28
28
|
// all the breakpoints.
|
|
29
|
-
!expandToScroll &&
|
|
29
|
+
!expandToScroll && contentAnimation?.addElement(baseEl.querySelector('.ion-page'));
|
|
30
30
|
const baseAnimation = createAnimation('entering-base')
|
|
31
31
|
.addElement(baseEl)
|
|
32
32
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
@@ -28,7 +28,7 @@ export const mdEnterAnimation = (baseEl, opts) => {
|
|
|
28
28
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
29
29
|
// The content animation is only added if scrolling is enabled for
|
|
30
30
|
// all the breakpoints.
|
|
31
|
-
!expandToScroll &&
|
|
31
|
+
!expandToScroll && contentAnimation?.addElement(baseEl.querySelector('.ion-page'));
|
|
32
32
|
const baseAnimation = createAnimation()
|
|
33
33
|
.addElement(baseEl)
|
|
34
34
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|