voyager-ionic-core 8.5.7 → 8.6.1
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/action-sheet.js +37 -23
- package/components/alert.js +42 -26
- package/components/animation.js +2 -2
- package/components/backdrop.js +11 -4
- package/components/button-active.js +1 -1
- package/components/button.js +53 -29
- package/components/buttons.js +14 -4
- package/components/capacitor.js +1 -1
- package/components/checkbox.js +40 -16
- package/components/config.js +1 -1
- package/components/content.js +24 -5
- package/components/data.js +31 -6
- package/components/gesture-controller.js +1 -1
- package/components/haptic.js +1 -1
- package/components/hardware-back-button.js +2 -2
- package/components/header.js +12 -7
- package/components/helpers.js +3 -6
- package/components/icon.js +1 -2
- package/components/index.js +1 -1
- package/components/index2.js +1 -1
- package/components/index3.js +3 -5
- package/components/index4.js +1 -1
- package/components/index5.js +2 -2
- package/components/index6.js +28 -3
- package/components/index7.js +163 -27
- package/components/index8.js +1 -1
- package/components/index9.js +3 -163
- package/components/input-shims.js +25 -2
- package/components/input.utils.js +2 -2
- package/components/ion-accordion-group.js +20 -7
- package/components/ion-accordion.js +32 -14
- package/components/ion-app.js +4 -5
- package/components/ion-avatar.js +2 -4
- package/components/ion-back-button.js +12 -13
- package/components/ion-badge.js +2 -5
- package/components/ion-breadcrumb.js +22 -20
- package/components/ion-breadcrumbs.js +14 -10
- package/components/ion-card-content.js +2 -4
- package/components/ion-card-header.js +7 -5
- package/components/ion-card-subtitle.js +2 -5
- package/components/ion-card-title.js +2 -5
- package/components/ion-card.js +16 -11
- package/components/ion-chip.js +8 -5
- package/components/ion-col.js +1 -26
- package/components/ion-datetime-button.js +16 -14
- package/components/ion-datetime.js +222 -131
- package/components/ion-fab-button.js +37 -20
- package/components/ion-fab-list.js +7 -2
- package/components/ion-fab.js +10 -4
- package/components/ion-footer.js +13 -8
- package/components/ion-grid.js +4 -2
- package/components/ion-img.js +1 -6
- package/components/ion-infinite-scroll-content.js +2 -6
- package/components/ion-infinite-scroll.js +27 -6
- package/components/ion-input-otp.d.ts +11 -0
- package/components/ion-input-otp.js +631 -0
- package/components/ion-input-password-toggle.js +11 -13
- package/components/ion-input.js +79 -51
- package/components/ion-item-divider.js +11 -7
- package/components/ion-item-group.js +3 -5
- package/components/ion-item-option.js +16 -14
- package/components/ion-item-options.js +7 -5
- package/components/ion-item-sliding.js +8 -5
- package/components/ion-loading.js +38 -21
- package/components/ion-menu-button.js +17 -12
- package/components/ion-menu-toggle.js +11 -7
- package/components/ion-menu.js +28 -12
- package/components/ion-nav-link.js +7 -7
- package/components/ion-nav.js +9 -12
- package/components/ion-note.js +4 -7
- package/components/ion-picker-legacy.js +47 -27
- package/components/ion-progress-bar.js +20 -7
- package/components/ion-range.js +69 -29
- package/components/ion-refresher-content.js +2 -6
- package/components/ion-refresher.js +56 -8
- package/components/ion-reorder-group.js +7 -5
- package/components/ion-reorder.js +4 -6
- package/components/ion-route-redirect.js +0 -2
- package/components/ion-route.js +9 -7
- package/components/ion-router-link.js +9 -11
- package/components/ion-router-outlet.js +12 -10
- package/components/ion-router.js +19 -1
- package/components/ion-row.js +2 -3
- package/components/ion-searchbar.js +82 -33
- package/components/ion-segment-button.js +22 -13
- package/components/ion-segment-content.js +2 -3
- package/components/ion-segment-view.js +7 -7
- package/components/ion-segment.js +24 -13
- package/components/ion-select-option.js +5 -4
- package/components/ion-select.js +68 -34
- package/components/ion-skeleton-text.js +6 -4
- package/components/ion-split-pane.js +13 -8
- package/components/ion-tab-bar.js +9 -8
- package/components/ion-tab-button.js +12 -14
- package/components/ion-tab.js +5 -8
- package/components/ion-tabs.js +5 -6
- package/components/ion-text.js +3 -5
- package/components/ion-textarea.js +72 -36
- package/components/ion-thumbnail.js +2 -3
- package/components/ion-toast.js +58 -35
- package/components/ion-toggle.js +55 -24
- package/components/ionic-global.js +1 -1
- package/components/item.js +20 -14
- package/components/keyboard-controller.js +2 -2
- package/components/keyboard.js +134 -69
- package/components/keyboard2.js +69 -134
- package/components/label.js +4 -8
- package/components/list-header.js +4 -8
- package/components/list.js +6 -6
- package/components/modal.js +252 -205
- package/components/notch-controller.js +1 -1
- package/components/overlays.js +3 -3
- package/components/picker-column-option.js +20 -7
- package/components/picker-column.js +25 -10
- package/components/picker-column2.js +8 -11
- package/components/picker.js +2 -4
- package/components/popover.js +132 -40
- package/components/radio-group.js +11 -11
- package/components/radio.js +30 -16
- package/components/refresher.utils.js +2 -2
- package/components/ripple-effect.js +11 -3
- package/components/select-modal.js +4 -9
- package/components/select-popover.js +6 -9
- package/components/spinner.js +5 -6
- package/components/swipe-back.js +1 -1
- package/components/title.js +4 -8
- package/components/toolbar.js +4 -7
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/global.bundle.css +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/structure.css +1 -1
- package/css/structure.css.map +1 -1
- package/dist/cjs/{animation-ab2d3449.js → animation-0T7gKwOt.js} +2 -2
- package/dist/cjs/{button-active-43e2b419.js → button-active-C-4ud7Ht.js} +3 -3
- package/dist/cjs/{capacitor-c04564bf.js → capacitor-DmA66EwP.js} +1 -1
- package/dist/cjs/{config-f6225ae7.js → config-U7OAuj53.js} +1 -1
- package/dist/cjs/{data-94e8d392.js → data-DRqa6oM4.js} +30 -5
- package/dist/cjs/{framework-delegate-862d9d00.js → framework-delegate-C7sIJyT5.js} +1 -1
- package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-dtqlP_q4.js} +1 -1
- package/dist/cjs/{haptic-f6b37aa3.js → haptic-ClPPQ_PS.js} +1 -1
- package/dist/cjs/{hardware-back-button-3d2b1004.js → hardware-back-button-D90qZxju.js} +2 -2
- package/dist/cjs/{helpers-8a48fdea.js → helpers-BITAzJfi.js} +2 -5
- package/dist/cjs/{index-dbe01e08.js → index-BDBT0u4l.js} +3 -3
- package/dist/cjs/{index-ee07ed59.js → index-CAvQ7Tka.js} +3 -4
- package/dist/cjs/{index-073c7cdc.js → index-CPbAsnJK.js} +1 -0
- package/dist/cjs/{index-31b07b9c.js → index-CVa6JE57.js} +3 -3
- package/dist/cjs/{index-a96d31ae.js → index-CxfLS2mX.js} +8 -9
- package/dist/cjs/{index-2e236a04.js → index-DODXXb_r.js} +1676 -675
- package/dist/cjs/{index-1eff7149.js → index-y0QaNtCi.js} +6 -7
- package/dist/cjs/index.cjs.js +22 -28
- package/dist/cjs/{input-shims-415be7ee.js → input-shims-D1Mfgd4s.js} +29 -6
- package/dist/cjs/{input.utils-a7957fd6.js → input.utils-DSoBEyUu.js} +3 -3
- package/dist/cjs/ion-accordion_2.cjs.entry.js +56 -29
- package/dist/cjs/ion-action-sheet.cjs.entry.js +50 -40
- package/dist/cjs/ion-alert.cjs.entry.js +59 -47
- package/dist/cjs/ion-app_8.cjs.entry.js +134 -105
- package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -20
- package/dist/cjs/ion-back-button.cjs.entry.js +21 -26
- package/dist/cjs/ion-backdrop.cjs.entry.js +13 -10
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +39 -37
- package/dist/cjs/ion-button_2.cjs.entry.js +54 -37
- package/dist/cjs/ion-card_5.cjs.entry.js +36 -41
- package/dist/cjs/ion-checkbox.cjs.entry.js +44 -24
- package/dist/cjs/ion-chip.cjs.entry.js +11 -12
- package/dist/cjs/ion-col_3.cjs.entry.js +10 -38
- package/dist/cjs/ion-datetime-button.cjs.entry.js +23 -25
- package/dist/cjs/ion-datetime_3.cjs.entry.js +344 -241
- package/dist/cjs/ion-fab_3.cjs.entry.js +59 -35
- package/dist/cjs/ion-img.cjs.entry.js +4 -13
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +38 -25
- package/dist/cjs/ion-input-otp.cjs.entry.js +593 -0
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +17 -23
- package/dist/cjs/ion-input.cjs.entry.js +86 -62
- package/dist/cjs/ion-item-option_3.cjs.entry.js +40 -37
- package/dist/cjs/ion-item_8.cjs.entry.js +69 -74
- package/dist/cjs/ion-loading.cjs.entry.js +50 -37
- package/dist/cjs/ion-menu_3.cjs.entry.js +84 -63
- package/dist/cjs/ion-modal.cjs.entry.js +271 -228
- package/dist/cjs/ion-nav_2.cjs.entry.js +30 -37
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +24 -15
- package/dist/cjs/ion-picker-column.cjs.entry.js +32 -21
- package/dist/cjs/ion-picker.cjs.entry.js +4 -9
- package/dist/cjs/ion-popover.cjs.entry.js +143 -55
- package/dist/cjs/ion-progress-bar.cjs.entry.js +24 -15
- package/dist/cjs/ion-radio_2.cjs.entry.js +47 -37
- package/dist/cjs/ion-range.cjs.entry.js +78 -42
- package/dist/cjs/ion-refresher_2.cjs.entry.js +81 -41
- package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -23
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -9
- package/dist/cjs/ion-route_4.cjs.entry.js +52 -40
- package/dist/cjs/ion-searchbar.cjs.entry.js +91 -46
- package/dist/cjs/ion-segment-content.cjs.entry.js +3 -6
- package/dist/cjs/ion-segment-view.cjs.entry.js +8 -10
- package/dist/cjs/ion-segment_2.cjs.entry.js +55 -39
- package/dist/cjs/ion-select-modal.cjs.entry.js +12 -21
- package/dist/cjs/ion-select_3.cjs.entry.js +98 -70
- package/dist/cjs/ion-spinner.cjs.entry.js +12 -17
- package/dist/cjs/ion-split-pane.cjs.entry.js +16 -15
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +31 -36
- package/dist/cjs/ion-tab_2.cjs.entry.js +13 -20
- package/dist/cjs/ion-text.cjs.entry.js +6 -12
- package/dist/cjs/ion-textarea.cjs.entry.js +79 -47
- package/dist/cjs/ion-toast.cjs.entry.js +82 -63
- package/dist/cjs/ion-toggle.cjs.entry.js +64 -37
- package/dist/cjs/ionic.cjs.js +7 -10
- package/dist/cjs/{ios.transition-a131cd4d.js → ios.transition-baEy2tr4.js} +5 -6
- package/dist/cjs/{keyboard-0272231f.js → keyboard-UuAS4D_9.js} +1 -1
- package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-GXBiBRKS.js} +2 -2
- package/dist/cjs/{keyboard-af1bb365.js → keyboard-hHzlEQpk.js} +3 -3
- package/dist/cjs/loader.cjs.js +3 -8
- package/dist/cjs/{md.transition-e018ebe5.js → md.transition-Bvc-JrM5.js} +5 -6
- package/dist/cjs/{notch-controller-09b7f358.js → notch-controller-BAbqGXRi.js} +2 -2
- package/dist/cjs/{overlays-4c291a05.js → overlays-DRDumz2b.js} +9 -10
- package/dist/cjs/{status-tap-f1acefac.js → status-tap-Db3WeCkO.js} +3 -4
- package/dist/cjs/{swipe-back-442ca3d7.js → swipe-back-bLyc4PSi.js} +5 -5
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/accordion/accordion.js +43 -13
- package/dist/collection/components/accordion-group/accordion-group.js +35 -8
- package/dist/collection/components/action-sheet/action-sheet.js +84 -31
- package/dist/collection/components/alert/alert.js +94 -34
- package/dist/collection/components/back-button/back-button.js +30 -14
- package/dist/collection/components/backdrop/backdrop.js +18 -3
- package/dist/collection/components/badge/badge.js +3 -4
- package/dist/collection/components/breadcrumb/breadcrumb.js +57 -26
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +24 -10
- package/dist/collection/components/button/button.js +97 -36
- package/dist/collection/components/buttons/buttons.js +15 -1
- package/dist/collection/components/card/card.js +44 -16
- package/dist/collection/components/card-header/card-header.js +11 -3
- package/dist/collection/components/card-subtitle/card-subtitle.js +3 -4
- package/dist/collection/components/card-title/card-title.js +3 -4
- package/dist/collection/components/checkbox/checkbox.js +74 -24
- package/dist/collection/components/chip/chip.js +15 -4
- package/dist/collection/components/col/col.js +72 -50
- package/dist/collection/components/content/content.js +43 -9
- package/dist/collection/components/datetime/datetime.ios.css +7 -2
- package/dist/collection/components/datetime/datetime.js +323 -147
- package/dist/collection/components/datetime/datetime.md.css +9 -3
- package/dist/collection/components/datetime/utils/data.js +29 -4
- package/dist/collection/components/datetime-button/datetime-button.js +21 -11
- package/dist/collection/components/fab/fab.js +21 -6
- package/dist/collection/components/fab-button/fab-button.js +76 -28
- package/dist/collection/components/fab-list/fab-list.js +12 -2
- package/dist/collection/components/footer/footer.js +16 -5
- package/dist/collection/components/grid/grid.js +6 -1
- package/dist/collection/components/header/header.js +15 -4
- package/dist/collection/components/img/img.js +6 -6
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +35 -7
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +6 -4
- package/dist/collection/components/input/input.js +178 -79
- package/dist/collection/components/input-otp/input-otp-interface.js +1 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +381 -0
- package/dist/collection/components/input-otp/input-otp.js +1003 -0
- package/dist/collection/components/input-otp/input-otp.md.css +381 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +19 -11
- package/dist/collection/components/item/item.js +56 -21
- package/dist/collection/components/item-divider/item-divider.js +15 -5
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +38 -18
- package/dist/collection/components/item-options/item-options.js +8 -2
- package/dist/collection/components/item-sliding/item-sliding.js +9 -3
- package/dist/collection/components/label/label.js +8 -6
- package/dist/collection/components/list/list.js +10 -4
- package/dist/collection/components/list-header/list-header.js +8 -8
- package/dist/collection/components/loading/loading.js +88 -31
- package/dist/collection/components/menu/menu.js +44 -12
- package/dist/collection/components/menu-button/menu-button.js +29 -12
- package/dist/collection/components/menu-toggle/menu-toggle.js +16 -7
- package/dist/collection/components/modal/animations/ios.enter.js +1 -41
- package/dist/collection/components/modal/animations/ios.leave.js +2 -24
- package/dist/collection/components/modal/animations/md.enter.js +2 -42
- package/dist/collection/components/modal/animations/md.leave.js +2 -24
- package/dist/collection/components/modal/gestures/sheet.js +122 -29
- package/dist/collection/components/modal/modal.ios.css +0 -10
- package/dist/collection/components/modal/modal.js +192 -55
- package/dist/collection/components/nav/nav.js +25 -12
- package/dist/collection/components/nav-link/nav-link.js +19 -9
- package/dist/collection/components/note/note.js +5 -6
- package/dist/collection/components/picker-column/picker-column.js +34 -10
- package/dist/collection/components/picker-column-option/picker-column-option.js +27 -6
- package/dist/collection/components/picker-legacy/picker.js +93 -33
- package/dist/collection/components/picker-legacy-column/picker-column.js +7 -5
- package/dist/collection/components/popover/popover.js +211 -58
- package/dist/collection/components/progress-bar/progress-bar.js +32 -7
- package/dist/collection/components/radio/radio.js +49 -19
- package/dist/collection/components/radio-group/radio-group.js +27 -13
- package/dist/collection/components/range/range.js +112 -37
- package/dist/collection/components/refresher/refresher.js +69 -7
- package/dist/collection/components/refresher-content/refresher-content.js +13 -9
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +7 -2
- package/dist/collection/components/ripple-effect/ripple-effect.js +13 -2
- package/dist/collection/components/route/route.js +24 -9
- package/dist/collection/components/route-redirect/route-redirect.js +6 -6
- package/dist/collection/components/router/router.js +24 -2
- package/dist/collection/components/router-link/router-link.js +26 -14
- package/dist/collection/components/router-outlet/router-outlet.js +25 -9
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +146 -51
- package/dist/collection/components/segment/segment.js +40 -15
- package/dist/collection/components/segment-button/segment-button.js +34 -13
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +8 -4
- package/dist/collection/components/select/select.js +128 -48
- package/dist/collection/components/select-modal/select-modal.js +10 -5
- package/dist/collection/components/select-option/select-option.js +10 -4
- package/dist/collection/components/select-popover/select-popover.js +19 -9
- package/dist/collection/components/skeleton-text/skeleton-text.js +8 -3
- package/dist/collection/components/spinner/spinner.js +16 -8
- package/dist/collection/components/split-pane/split-pane.js +19 -6
- package/dist/collection/components/tab/tab.js +16 -9
- package/dist/collection/components/tab-bar/tab-bar.js +16 -7
- package/dist/collection/components/tab-button/tab-button.js +34 -18
- package/dist/collection/components/tabs/tabs.js +6 -4
- package/dist/collection/components/text/text.js +5 -6
- package/dist/collection/components/textarea/textarea.js +154 -59
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +8 -8
- package/dist/collection/components/toast/toast.js +121 -47
- package/dist/collection/components/toggle/toggle.js +86 -28
- package/dist/collection/components/toolbar/toolbar.js +5 -4
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +23 -0
- package/dist/docs.d.ts +8 -0
- package/dist/docs.json +4490 -942
- package/dist/esm/{animation-8b25e105.js → animation-BWcUKtbn.js} +2 -2
- package/dist/esm/{button-active-90f1dbc4.js → button-active-Bxcnevju.js} +3 -3
- package/dist/esm/{capacitor-59395cbd.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/{config-9898ed97.js → config-AaTyISnm.js} +1 -1
- package/dist/esm/{data-0d7ea6eb.js → data-GIsHsYIB.js} +31 -6
- package/dist/esm/{framework-delegate-56b467ad.js → framework-delegate-DxcnWic_.js} +1 -1
- package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-BTEOs1at.js} +1 -1
- package/dist/esm/{haptic-ac164e4c.js → haptic-DzAMWJuk.js} +2 -2
- package/dist/esm/{hardware-back-button-a7eb8233.js → hardware-back-button-DcH0BbDp.js} +2 -2
- package/dist/esm/{helpers-d94bc8ad.js → helpers-1O4D2b7y.js} +3 -6
- package/dist/esm/{index-e2cf2ceb.js → index-BLV6ykCk.js} +2 -1
- package/dist/esm/{index-527b9e34.js → index-B_U9CtaY.js} +1667 -654
- package/dist/esm/{index-9a17db3d.js → index-BlJTBdxG.js} +3 -3
- package/dist/esm/{index-be190feb.js → index-CWbP1eJz.js} +3 -3
- package/dist/esm/{index-39782642.js → index-CfgBF1SE.js} +4 -6
- package/dist/esm/{index-18f31305.js → index-D8sncTHY.js} +5 -6
- package/dist/esm/{index-68c0d151.js → index-DfBA5ztX.js} +4 -5
- package/dist/esm/index.js +16 -18
- package/dist/esm/{input-shims-279903e2.js → input-shims-C3lNp93k.js} +29 -6
- package/dist/esm/{input.utils-40504d6d.js → input.utils-zWijNCrx.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +52 -23
- package/dist/esm/ion-action-sheet.entry.js +48 -36
- package/dist/esm/ion-alert.entry.js +53 -39
- package/dist/esm/ion-app_8.entry.js +99 -68
- package/dist/esm/ion-avatar_3.entry.js +8 -16
- package/dist/esm/ion-back-button.entry.js +14 -17
- package/dist/esm/ion-backdrop.entry.js +12 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +37 -33
- package/dist/esm/ion-button_2.entry.js +50 -31
- package/dist/esm/ion-card_5.entry.js +31 -34
- package/dist/esm/ion-checkbox.entry.js +43 -21
- package/dist/esm/ion-chip.entry.js +10 -9
- package/dist/esm/ion-col_3.entry.js +8 -34
- package/dist/esm/ion-datetime-button.entry.js +18 -18
- package/dist/esm/ion-datetime_3.entry.js +279 -174
- package/dist/esm/ion-fab_3.entry.js +56 -30
- package/dist/esm/ion-img.entry.js +3 -10
- package/dist/esm/ion-infinite-scroll_2.entry.js +33 -18
- package/dist/esm/ion-input-otp.entry.js +591 -0
- package/dist/esm/ion-input-password-toggle.entry.js +12 -16
- package/dist/esm/ion-input.entry.js +84 -58
- package/dist/esm/ion-item-option_3.entry.js +36 -31
- package/dist/esm/ion-item_8.entry.js +60 -63
- package/dist/esm/ion-loading.entry.js +46 -31
- package/dist/esm/ion-menu_3.entry.js +66 -43
- package/dist/esm/ion-modal.entry.js +260 -215
- package/dist/esm/ion-nav_2.entry.js +17 -22
- package/dist/esm/ion-picker-column-option.entry.js +23 -12
- package/dist/esm/ion-picker-column.entry.js +29 -16
- package/dist/esm/ion-picker.entry.js +4 -7
- package/dist/esm/ion-popover.entry.js +137 -47
- package/dist/esm/ion-progress-bar.entry.js +22 -11
- package/dist/esm/ion-radio_2.entry.js +45 -33
- package/dist/esm/ion-range.entry.js +72 -34
- package/dist/esm/ion-refresher_2.entry.js +68 -26
- package/dist/esm/ion-reorder_2.entry.js +17 -19
- package/dist/esm/ion-ripple-effect.entry.js +12 -6
- package/dist/esm/ion-route_4.entry.js +35 -21
- package/dist/esm/ion-searchbar.entry.js +86 -39
- package/dist/esm/ion-segment-content.entry.js +3 -4
- package/dist/esm/ion-segment-view.entry.js +8 -8
- package/dist/esm/ion-segment_2.entry.js +50 -32
- package/dist/esm/ion-select-modal.entry.js +12 -19
- package/dist/esm/ion-select_3.entry.js +88 -58
- package/dist/esm/ion-spinner.entry.js +8 -11
- package/dist/esm/ion-split-pane.entry.js +13 -10
- package/dist/esm/ion-tab-bar_2.entry.js +28 -31
- package/dist/esm/ion-tab_2.entry.js +11 -16
- package/dist/esm/ion-text.entry.js +5 -9
- package/dist/esm/ion-textarea.entry.js +77 -43
- package/dist/esm/ion-toast.entry.js +65 -44
- package/dist/esm/ion-toggle.entry.js +62 -33
- package/dist/esm/ionic.js +5 -7
- package/dist/esm/{ios.transition-4047cb68.js → ios.transition-BmXtMRXZ.js} +5 -6
- package/dist/esm/{keyboard-73175e24.js → keyboard-CUw4ekVy.js} +1 -1
- package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-BaaVITYt.js} +2 -2
- package/dist/esm/{keyboard-52278bd7.js → keyboard-ywgs5efA.js} +3 -3
- package/dist/esm/loader.js +3 -6
- package/dist/esm/{md.transition-30ce8d1b.js → md.transition-CLI683c7.js} +5 -6
- package/dist/esm/{notch-controller-1a1f7183.js → notch-controller-C5LPspO8.js} +2 -2
- package/dist/esm/{overlays-d99dcb0a.js → overlays-8Y2rA-ps.js} +6 -7
- package/dist/esm/{status-tap-42a8af65.js → status-tap-7t9T91bG.js} +3 -4
- package/dist/esm/{swipe-back-04123e7c.js → swipe-back-D_6Vqlwy.js} +5 -5
- package/dist/html.html-data.json +377 -1
- package/dist/index.js +1 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-0fc6fc38.entry.js +4 -0
- package/dist/ionic/p-14ae45e4.entry.js +4 -0
- package/dist/ionic/p-15da9760.entry.js +4 -0
- package/dist/ionic/p-1739f5f2.entry.js +4 -0
- package/dist/ionic/p-18f1813b.entry.js +4 -0
- package/dist/ionic/p-2020aa51.entry.js +4 -0
- package/dist/ionic/p-2c6c6991.entry.js +4 -0
- package/dist/ionic/p-2cfd6b61.entry.js +4 -0
- package/dist/ionic/p-2d01ecd5.entry.js +4 -0
- package/dist/ionic/p-2da6a16b.entry.js +4 -0
- package/dist/ionic/p-3a4feac2.entry.js +4 -0
- package/dist/ionic/p-473877b6.entry.js +4 -0
- package/dist/ionic/p-4b7d1f35.entry.js +4 -0
- package/dist/ionic/p-4d61f20b.entry.js +4 -0
- package/dist/ionic/p-4ddc10ef.entry.js +4 -0
- package/dist/ionic/p-56712fd4.entry.js +4 -0
- package/dist/ionic/p-6b666996.entry.js +4 -0
- package/dist/ionic/p-7149db7e.entry.js +4 -0
- package/dist/ionic/p-73d7ad90.entry.js +4 -0
- package/dist/ionic/p-76b697a3.entry.js +4 -0
- package/dist/ionic/{p-ed005d9c.js → p-7qk7mxdr.js} +1 -1
- package/dist/ionic/p-81f1b778.entry.js +4 -0
- package/dist/ionic/p-8957540a.entry.js +4 -0
- package/dist/ionic/p-8a8ef46b.entry.js +4 -0
- package/dist/ionic/p-8c674371.entry.js +4 -0
- package/dist/ionic/p-8f2f76e0.entry.js +4 -0
- package/dist/ionic/p-91bde659.entry.js +4 -0
- package/dist/ionic/p-96389029.entry.js +4 -0
- package/dist/ionic/p-97667b9c.entry.js +4 -0
- package/dist/ionic/p-9b46b31b.entry.js +4 -0
- package/dist/ionic/p-9e699d4a.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-B1MNHTYX.js +4 -0
- package/dist/ionic/p-B3XSxWNQ.js +4 -0
- package/dist/ionic/{p-da2b833b.js → p-BLV6ykCk.js} +1 -1
- package/dist/ionic/p-BROiNJRB.js +4 -0
- package/dist/ionic/p-B_U9CtaY.js +5 -0
- package/dist/ionic/{p-f08a92cc.js → p-BhLqfMrf.js} +1 -1
- package/dist/ionic/{p-2bb55ebc.js → p-BmQduG8c.js} +1 -1
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/dist/ionic/{p-89b61afc.js → p-CKvCXMs9.js} +1 -1
- package/dist/ionic/p-CL-KfWxq.js +4 -0
- package/dist/ionic/p-CPgXVSua.js +4 -0
- package/dist/ionic/p-CRiGyYOA.js +4 -0
- package/dist/ionic/{p-10a1bddc.js → p-CbI9XwwW.js} +1 -1
- package/dist/ionic/p-Cl0B-RWe.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/dist/ionic/{p-27281edd.js → p-D13Eaw-8.js} +1 -1
- package/dist/ionic/{p-0f5e6225.js → p-DCfS5Jk_.js} +1 -1
- package/dist/ionic/p-DgdWETCP.js +4 -0
- package/dist/ionic/p-Do-uqmtX.js +4 -0
- package/dist/ionic/p-DonTxalL.js +4 -0
- package/dist/ionic/{p-b7b1d91a.js → p-DzH0J0yi.js} +1 -1
- package/dist/ionic/p-QwEXyOze.js +4 -0
- package/dist/ionic/p-a6282370.entry.js +4 -0
- package/dist/ionic/p-a9ac80bd.entry.js +4 -0
- package/dist/ionic/p-a9f99c74.entry.js +4 -0
- package/dist/ionic/p-aIxOGKys.js +4 -0
- package/dist/ionic/p-aa8956c2.entry.js +4 -0
- package/dist/ionic/p-b37dbc31.entry.js +4 -0
- package/dist/ionic/p-b9f79efc.entry.js +4 -0
- package/dist/ionic/p-bNmY-WfR.js +4 -0
- package/dist/ionic/p-bb5fc02e.entry.js +4 -0
- package/dist/ionic/p-bc01c127.entry.js +4 -0
- package/dist/ionic/p-bec79123.entry.js +4 -0
- package/dist/ionic/p-c0335397.entry.js +4 -0
- package/dist/ionic/p-c448135a.entry.js +4 -0
- package/dist/ionic/p-c4912ca5.entry.js +4 -0
- package/dist/ionic/p-c884d7e3.entry.js +4 -0
- package/dist/ionic/p-cb787a4b.entry.js +4 -0
- package/dist/ionic/p-cd12ed1c.entry.js +4 -0
- package/dist/ionic/p-cf632ee2.entry.js +4 -0
- package/dist/ionic/p-d8ed5df0.entry.js +4 -0
- package/dist/ionic/p-e1260ed5.entry.js +4 -0
- package/dist/ionic/p-e30ff968.entry.js +4 -0
- package/dist/ionic/{p-b6d324f0.js → p-ei_RiGrl.js} +1 -1
- package/dist/ionic/p-f83db8cd.entry.js +4 -0
- package/dist/ionic/p-fbc5481b.entry.js +4 -0
- package/dist/ionic/p-fcc7437b.entry.js +4 -0
- package/dist/types/components/button/button.d.ts +11 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
- package/dist/types/components/datetime/datetime.d.ts +6 -0
- package/dist/types/components/datetime/utils/data.d.ts +3 -1
- package/dist/types/components/datetime/utils/manipulation.d.ts +1 -0
- package/dist/types/components/input-otp/input-otp-interface.d.ts +21 -0
- package/dist/types/components/input-otp/input-otp.d.ts +268 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components.d.ts +786 -2
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +29 -1
- package/hydrate/index.d.ts +44 -7
- package/hydrate/index.js +5671 -2585
- package/hydrate/index.mjs +5670 -2584
- package/loader/cdn.js +1 -2
- package/loader/index.cjs.js +1 -2
- package/loader/index.es2017.js +0 -1
- package/loader/index.js +1 -2
- package/package.json +4 -4
- package/dist/cjs/app-globals-ddceb1f4.js +0 -10
- package/dist/cjs/index-cc858e97.js +0 -129
- package/dist/cjs/ionic-global-6dea5a96.js +0 -152
- package/dist/esm/app-globals-dbdbb3df.js +0 -8
- package/dist/esm/index-cfd9c1f2.js +0 -121
- package/dist/esm/ionic-global-b26f573e.js +0 -147
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm-es5/animation-8b25e105.js +0 -4
- package/dist/esm-es5/app-globals-dbdbb3df.js +0 -4
- package/dist/esm-es5/button-active-90f1dbc4.js +0 -4
- package/dist/esm-es5/capacitor-59395cbd.js +0 -4
- package/dist/esm-es5/compare-with-utils-a96ff2ea.js +0 -4
- package/dist/esm-es5/config-9898ed97.js +0 -4
- package/dist/esm-es5/cubic-bezier-fe2083dc.js +0 -4
- package/dist/esm-es5/data-0d7ea6eb.js +0 -4
- package/dist/esm-es5/dir-babeabeb.js +0 -4
- package/dist/esm-es5/focus-visible-dd40d69f.js +0 -4
- package/dist/esm-es5/framework-delegate-56b467ad.js +0 -4
- package/dist/esm-es5/gesture-controller-314a54f6.js +0 -4
- package/dist/esm-es5/haptic-ac164e4c.js +0 -4
- package/dist/esm-es5/hardware-back-button-a7eb8233.js +0 -4
- package/dist/esm-es5/helpers-d94bc8ad.js +0 -4
- package/dist/esm-es5/index-18f31305.js +0 -4
- package/dist/esm-es5/index-39782642.js +0 -4
- package/dist/esm-es5/index-527b9e34.js +0 -5
- package/dist/esm-es5/index-68c0d151.js +0 -4
- package/dist/esm-es5/index-9a17db3d.js +0 -4
- package/dist/esm-es5/index-a5d50daf.js +0 -4
- package/dist/esm-es5/index-be190feb.js +0 -4
- package/dist/esm-es5/index-cfd9c1f2.js +0 -5
- package/dist/esm-es5/index-e2cf2ceb.js +0 -4
- package/dist/esm-es5/index.js +0 -4
- package/dist/esm-es5/input-shims-279903e2.js +0 -4
- package/dist/esm-es5/input.utils-40504d6d.js +0 -4
- package/dist/esm-es5/ion-accordion_2.entry.js +0 -4
- package/dist/esm-es5/ion-action-sheet.entry.js +0 -4
- package/dist/esm-es5/ion-alert.entry.js +0 -4
- package/dist/esm-es5/ion-app_8.entry.js +0 -4
- package/dist/esm-es5/ion-avatar_3.entry.js +0 -4
- package/dist/esm-es5/ion-back-button.entry.js +0 -4
- package/dist/esm-es5/ion-backdrop.entry.js +0 -4
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +0 -4
- package/dist/esm-es5/ion-button_2.entry.js +0 -4
- package/dist/esm-es5/ion-card_5.entry.js +0 -4
- package/dist/esm-es5/ion-checkbox.entry.js +0 -4
- package/dist/esm-es5/ion-chip.entry.js +0 -4
- package/dist/esm-es5/ion-col_3.entry.js +0 -4
- package/dist/esm-es5/ion-datetime-button.entry.js +0 -4
- package/dist/esm-es5/ion-datetime_3.entry.js +0 -4
- package/dist/esm-es5/ion-fab_3.entry.js +0 -4
- package/dist/esm-es5/ion-img.entry.js +0 -4
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +0 -4
- package/dist/esm-es5/ion-input-password-toggle.entry.js +0 -4
- package/dist/esm-es5/ion-input.entry.js +0 -4
- package/dist/esm-es5/ion-item-option_3.entry.js +0 -4
- package/dist/esm-es5/ion-item_8.entry.js +0 -4
- package/dist/esm-es5/ion-loading.entry.js +0 -4
- package/dist/esm-es5/ion-menu_3.entry.js +0 -4
- package/dist/esm-es5/ion-modal.entry.js +0 -4
- package/dist/esm-es5/ion-nav_2.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column.entry.js +0 -4
- package/dist/esm-es5/ion-picker.entry.js +0 -4
- package/dist/esm-es5/ion-popover.entry.js +0 -4
- package/dist/esm-es5/ion-progress-bar.entry.js +0 -4
- package/dist/esm-es5/ion-radio_2.entry.js +0 -4
- package/dist/esm-es5/ion-range.entry.js +0 -4
- package/dist/esm-es5/ion-refresher_2.entry.js +0 -4
- package/dist/esm-es5/ion-reorder_2.entry.js +0 -4
- package/dist/esm-es5/ion-ripple-effect.entry.js +0 -4
- package/dist/esm-es5/ion-route_4.entry.js +0 -4
- package/dist/esm-es5/ion-searchbar.entry.js +0 -4
- package/dist/esm-es5/ion-segment-content.entry.js +0 -4
- package/dist/esm-es5/ion-segment-view.entry.js +0 -4
- package/dist/esm-es5/ion-segment_2.entry.js +0 -4
- package/dist/esm-es5/ion-select-modal.entry.js +0 -4
- package/dist/esm-es5/ion-select_3.entry.js +0 -4
- package/dist/esm-es5/ion-spinner.entry.js +0 -4
- package/dist/esm-es5/ion-split-pane.entry.js +0 -4
- package/dist/esm-es5/ion-tab-bar_2.entry.js +0 -4
- package/dist/esm-es5/ion-tab_2.entry.js +0 -4
- package/dist/esm-es5/ion-text.entry.js +0 -4
- package/dist/esm-es5/ion-textarea.entry.js +0 -4
- package/dist/esm-es5/ion-toast.entry.js +0 -4
- package/dist/esm-es5/ion-toggle.entry.js +0 -4
- package/dist/esm-es5/ionic-global-b26f573e.js +0 -4
- package/dist/esm-es5/ionic.js +0 -4
- package/dist/esm-es5/ios.transition-4047cb68.js +0 -4
- package/dist/esm-es5/keyboard-52278bd7.js +0 -4
- package/dist/esm-es5/keyboard-73175e24.js +0 -4
- package/dist/esm-es5/keyboard-controller-ec5c2bfa.js +0 -4
- package/dist/esm-es5/loader.js +0 -4
- package/dist/esm-es5/lock-controller-316928be.js +0 -4
- package/dist/esm-es5/md.transition-30ce8d1b.js +0 -4
- package/dist/esm-es5/notch-controller-1a1f7183.js +0 -4
- package/dist/esm-es5/overlays-d99dcb0a.js +0 -4
- package/dist/esm-es5/spinner-configs-964f7cf3.js +0 -4
- package/dist/esm-es5/status-tap-42a8af65.js +0 -4
- package/dist/esm-es5/swipe-back-04123e7c.js +0 -4
- package/dist/esm-es5/theme-01f3f29c.js +0 -4
- package/dist/esm-es5/watch-options-c2911ace.js +0 -4
- package/dist/ionic/ionic.js +0 -127
- package/dist/ionic/p-00023f5a.system.js +0 -4
- package/dist/ionic/p-012c3ceb.system.js +0 -4
- package/dist/ionic/p-03480b95.system.entry.js +0 -4
- package/dist/ionic/p-08cef0b1.entry.js +0 -4
- package/dist/ionic/p-08e01816.system.js +0 -4
- package/dist/ionic/p-0af640d6.entry.js +0 -4
- package/dist/ionic/p-105b2e8b.entry.js +0 -4
- package/dist/ionic/p-117d0013.system.entry.js +0 -4
- package/dist/ionic/p-11dca959.entry.js +0 -4
- package/dist/ionic/p-12193821.system.js +0 -4
- package/dist/ionic/p-12830298.system.entry.js +0 -4
- package/dist/ionic/p-14154301.system.entry.js +0 -4
- package/dist/ionic/p-1706b406.system.entry.js +0 -4
- package/dist/ionic/p-17e21141.js +0 -4
- package/dist/ionic/p-19494658.system.entry.js +0 -4
- package/dist/ionic/p-1966a13c.system.js +0 -4
- package/dist/ionic/p-1974d5b2.system.js +0 -4
- package/dist/ionic/p-1a7df1c3.system.js +0 -4
- package/dist/ionic/p-1a81ac09.system.js +0 -4
- package/dist/ionic/p-1b9c59ab.js +0 -4
- package/dist/ionic/p-1d307396.system.js +0 -4
- package/dist/ionic/p-1dfc11b3.system.js +0 -4
- package/dist/ionic/p-1e4371bd.js +0 -4
- package/dist/ionic/p-1e955a45.system.js +0 -4
- package/dist/ionic/p-200fc491.js +0 -4
- package/dist/ionic/p-20d469d0.system.js +0 -4
- package/dist/ionic/p-21891ead.js +0 -4
- package/dist/ionic/p-2233344a.system.js +0 -4
- package/dist/ionic/p-2469240b.entry.js +0 -4
- package/dist/ionic/p-24a6c8a3.system.entry.js +0 -4
- package/dist/ionic/p-257fb777.entry.js +0 -4
- package/dist/ionic/p-25b10f81.js +0 -4
- package/dist/ionic/p-2b7827c7.js +0 -4
- package/dist/ionic/p-2bff0e69.system.entry.js +0 -4
- package/dist/ionic/p-31dc303d.entry.js +0 -4
- package/dist/ionic/p-3535d6b5.entry.js +0 -4
- package/dist/ionic/p-35cdfd77.system.entry.js +0 -4
- package/dist/ionic/p-393ffcc2.entry.js +0 -4
- package/dist/ionic/p-39fa7dd1.system.entry.js +0 -4
- package/dist/ionic/p-3a30f31b.system.entry.js +0 -4
- package/dist/ionic/p-3e1e14d9.system.js +0 -4
- package/dist/ionic/p-42f08b26.system.entry.js +0 -4
- package/dist/ionic/p-4609d030.system.js +0 -4
- package/dist/ionic/p-481e0885.entry.js +0 -4
- package/dist/ionic/p-4a5be299.system.entry.js +0 -4
- package/dist/ionic/p-4c667fce.js +0 -4
- package/dist/ionic/p-4cf4172e.entry.js +0 -4
- package/dist/ionic/p-4da92dac.entry.js +0 -4
- package/dist/ionic/p-4ed5db19.system.js +0 -4
- package/dist/ionic/p-4f255d5a.system.js +0 -4
- package/dist/ionic/p-50cb2e8b.system.entry.js +0 -4
- package/dist/ionic/p-57957c0f.entry.js +0 -4
- package/dist/ionic/p-57d6e18e.entry.js +0 -4
- package/dist/ionic/p-57e55ecb.system.js +0 -4
- package/dist/ionic/p-5b67b447.js +0 -4
- package/dist/ionic/p-5c9feddc.system.entry.js +0 -4
- package/dist/ionic/p-5fac20aa.system.entry.js +0 -4
- package/dist/ionic/p-612096e6.system.entry.js +0 -4
- package/dist/ionic/p-6201c4ba.entry.js +0 -4
- package/dist/ionic/p-625248d0.system.js +0 -4
- package/dist/ionic/p-663413be.system.js +0 -4
- package/dist/ionic/p-6636a436.js +0 -4
- package/dist/ionic/p-66a5d6a8.js +0 -5
- package/dist/ionic/p-66df5468.system.entry.js +0 -4
- package/dist/ionic/p-67077d48.entry.js +0 -4
- package/dist/ionic/p-67cacd6d.entry.js +0 -4
- package/dist/ionic/p-6835ebdd.system.entry.js +0 -4
- package/dist/ionic/p-6b8530f5.system.entry.js +0 -4
- package/dist/ionic/p-6c474e87.entry.js +0 -4
- package/dist/ionic/p-6dd86ff5.system.entry.js +0 -4
- package/dist/ionic/p-6ec0c94a.entry.js +0 -4
- package/dist/ionic/p-6f832afe.system.entry.js +0 -4
- package/dist/ionic/p-707408c5.system.entry.js +0 -4
- package/dist/ionic/p-712c0131.entry.js +0 -4
- package/dist/ionic/p-721f43f9.entry.js +0 -4
- package/dist/ionic/p-7445a2e5.system.js +0 -4
- package/dist/ionic/p-7611ede3.system.entry.js +0 -4
- package/dist/ionic/p-781e2dbb.system.js +0 -4
- package/dist/ionic/p-792919fd.system.js +0 -4
- package/dist/ionic/p-7b8c12c3.entry.js +0 -4
- package/dist/ionic/p-7c5c7ae1.system.entry.js +0 -4
- package/dist/ionic/p-7e3e6ed2.entry.js +0 -4
- package/dist/ionic/p-7ffedf77.system.entry.js +0 -4
- package/dist/ionic/p-809483ac.js +0 -4
- package/dist/ionic/p-81904a80.entry.js +0 -4
- package/dist/ionic/p-84096b45.system.js +0 -4
- package/dist/ionic/p-8450f761.entry.js +0 -4
- package/dist/ionic/p-8460d95a.entry.js +0 -4
- package/dist/ionic/p-85b01465.js +0 -4
- package/dist/ionic/p-865fe95c.entry.js +0 -4
- package/dist/ionic/p-8674af94.entry.js +0 -4
- package/dist/ionic/p-890a4ee2.entry.js +0 -4
- package/dist/ionic/p-891553d8.entry.js +0 -4
- package/dist/ionic/p-8985cdb6.system.js +0 -4
- package/dist/ionic/p-8b050e84.system.js +0 -4
- package/dist/ionic/p-8d2d39d0.js +0 -4
- package/dist/ionic/p-8dacf4e2.entry.js +0 -4
- package/dist/ionic/p-8ededb41.js +0 -4
- package/dist/ionic/p-94551927.js +0 -4
- package/dist/ionic/p-95001a19.js +0 -4
- package/dist/ionic/p-965287fb.system.entry.js +0 -4
- package/dist/ionic/p-979d4f5c.system.js +0 -4
- package/dist/ionic/p-98fd942b.system.entry.js +0 -4
- package/dist/ionic/p-9df5043e.system.entry.js +0 -4
- package/dist/ionic/p-9e753482.system.entry.js +0 -4
- package/dist/ionic/p-a0fd2fe5.system.entry.js +0 -4
- package/dist/ionic/p-a2c6a9c8.entry.js +0 -4
- package/dist/ionic/p-a2dd5b69.system.entry.js +0 -4
- package/dist/ionic/p-a4866e3e.system.js +0 -4
- package/dist/ionic/p-a5dbe0ff.system.entry.js +0 -4
- package/dist/ionic/p-a7a97bf4.system.entry.js +0 -4
- package/dist/ionic/p-a835aca8.entry.js +0 -4
- package/dist/ionic/p-a83e3290.system.js +0 -4
- package/dist/ionic/p-a93873de.system.js +0 -4
- package/dist/ionic/p-aad57e35.entry.js +0 -4
- package/dist/ionic/p-ab7337e1.entry.js +0 -4
- package/dist/ionic/p-abe101da.system.js +0 -4
- package/dist/ionic/p-ad592db9.entry.js +0 -4
- package/dist/ionic/p-aded71ec.js +0 -4
- package/dist/ionic/p-ae039072.entry.js +0 -4
- package/dist/ionic/p-aebfab05.system.entry.js +0 -4
- package/dist/ionic/p-b06ac4a5.system.js +0 -4
- package/dist/ionic/p-b2e7eda0.system.entry.js +0 -4
- package/dist/ionic/p-b445ff65.entry.js +0 -4
- package/dist/ionic/p-b4d17da0.system.entry.js +0 -4
- package/dist/ionic/p-b5432d15.entry.js +0 -4
- package/dist/ionic/p-b8050298.system.entry.js +0 -4
- package/dist/ionic/p-b904cfe2.system.entry.js +0 -4
- package/dist/ionic/p-b9c793d4.entry.js +0 -4
- package/dist/ionic/p-bafc3eae.system.entry.js +0 -4
- package/dist/ionic/p-bf184319.system.entry.js +0 -4
- package/dist/ionic/p-bfb763d0.system.entry.js +0 -4
- package/dist/ionic/p-c16443a8.system.js +0 -4
- package/dist/ionic/p-c1b7d311.system.entry.js +0 -4
- package/dist/ionic/p-c2160d8c.entry.js +0 -4
- package/dist/ionic/p-c468af8a.system.js +0 -4
- package/dist/ionic/p-c5b77054.entry.js +0 -4
- package/dist/ionic/p-c5bfa3e9.entry.js +0 -4
- package/dist/ionic/p-c61cc894.js +0 -4
- package/dist/ionic/p-cad82569.entry.js +0 -4
- package/dist/ionic/p-d16fab3f.entry.js +0 -4
- package/dist/ionic/p-d1eb2d7f.entry.js +0 -4
- package/dist/ionic/p-d382f09c.system.js +0 -4
- package/dist/ionic/p-d8d84afa.system.js +0 -4
- package/dist/ionic/p-d984c1ab.system.entry.js +0 -4
- package/dist/ionic/p-dabe3bd4.js +0 -4
- package/dist/ionic/p-df069a0d.entry.js +0 -4
- package/dist/ionic/p-e1678e42.entry.js +0 -4
- package/dist/ionic/p-e6068998.system.entry.js +0 -4
- package/dist/ionic/p-e673a0a2.system.js +0 -4
- package/dist/ionic/p-e727e32d.system.entry.js +0 -4
- package/dist/ionic/p-e8245753.entry.js +0 -4
- package/dist/ionic/p-e887b6a9.system.js +0 -4
- package/dist/ionic/p-f08dfb19.entry.js +0 -4
- package/dist/ionic/p-f0c9f8e3.system.entry.js +0 -4
- package/dist/ionic/p-f0ef39ab.entry.js +0 -4
- package/dist/ionic/p-f11a9436.system.js +0 -5
- package/dist/ionic/p-f22490a7.system.entry.js +0 -4
- package/dist/ionic/p-f6bb9be7.system.entry.js +0 -4
- package/dist/ionic/p-f6e7d104.system.js +0 -4
- package/dist/ionic/p-f725bf9e.system.js +0 -4
- package/dist/ionic/p-f9a87db2.system.entry.js +0 -4
- package/dist/ionic/p-fa3f4b96.system.js +0 -4
- package/dist/ionic/p-fe063952.system.entry.js +0 -4
- package/loader/package.json +0 -11
- /package/dist/cjs/{compare-with-utils-df1001d7.js → compare-with-utils-DSicavqM.js} +0 -0
- /package/dist/cjs/{cubic-bezier-f2dccc53.js → cubic-bezier-DAjy1V-e.js} +0 -0
- /package/dist/cjs/{dir-94c21456.js → dir-Cn0z1rJH.js} +0 -0
- /package/dist/cjs/{focus-visible-7a0ce04f.js → focus-visible-CCvKiLh3.js} +0 -0
- /package/dist/cjs/{index-c8d52405.js → index-DkNv4J_i.js} +0 -0
- /package/dist/cjs/{lock-controller-6585a42a.js → lock-controller-aDB9wrEf.js} +0 -0
- /package/dist/cjs/{spinner-configs-282fd50a.js → spinner-configs-DxHKnd3-.js} +0 -0
- /package/dist/cjs/{theme-d1c573d2.js → theme-CeDs6Hcv.js} +0 -0
- /package/dist/cjs/{watch-options-f5f3e158.js → watch-options-CviOsrTS.js} +0 -0
- /package/dist/esm/{compare-with-utils-a96ff2ea.js → compare-with-utils-sObYyvOy.js} +0 -0
- /package/dist/esm/{cubic-bezier-fe2083dc.js → cubic-bezier-hHmYLOfE.js} +0 -0
- /package/dist/esm/{dir-babeabeb.js → dir-C53feagD.js} +0 -0
- /package/dist/esm/{focus-visible-dd40d69f.js → focus-visible-BmVRXR1y.js} +0 -0
- /package/dist/esm/{index-a5d50daf.js → index-ZjP4CjeZ.js} +0 -0
- /package/dist/esm/{lock-controller-316928be.js → lock-controller-B-hirT0v.js} +0 -0
- /package/dist/esm/{spinner-configs-964f7cf3.js → spinner-configs-D4RIp70E.js} +0 -0
- /package/dist/esm/{theme-01f3f29c.js → theme-DiVJyqlX.js} +0 -0
- /package/dist/esm/{watch-options-c2911ace.js → watch-options-Dtdm8lKC.js} +0 -0
- /package/dist/ionic/{p-ccd02320.js → p-B-hirT0v.js} +0 -0
- /package/dist/ionic/{p-9b97df10.js → p-BTEOs1at.js} +0 -0
- /package/dist/ionic/{p-d47265c8.js → p-BmVRXR1y.js} +0 -0
- /package/dist/ionic/{p-fb813dab.js → p-C53feagD.js} +0 -0
- /package/dist/ionic/{p-f0c2a614.js → p-D4RIp70E.js} +0 -0
- /package/dist/ionic/{p-47794def.js → p-DiVJyqlX.js} +0 -0
- /package/dist/ionic/{p-459d13d5.js → p-Dtdm8lKC.js} +0 -0
- /package/dist/ionic/{p-7b30edcc.js → p-ZjP4CjeZ.js} +0 -0
- /package/dist/ionic/{p-2408c236.js → p-hHmYLOfE.js} +0 -0
- /package/dist/ionic/{p-de756e5c.js → p-sObYyvOy.js} +0 -0
|
@@ -18,15 +18,22 @@ import { updateVisibility } from "../menu-toggle/menu-toggle-util";
|
|
|
18
18
|
export class MenuButton {
|
|
19
19
|
constructor() {
|
|
20
20
|
this.inheritedAttributes = {};
|
|
21
|
-
this.onClick = async () => {
|
|
22
|
-
return menuController.toggle(this.menu);
|
|
23
|
-
};
|
|
24
21
|
this.visible = false;
|
|
25
|
-
|
|
22
|
+
/**
|
|
23
|
+
* If `true`, the user cannot interact with the menu button.
|
|
24
|
+
*/
|
|
26
25
|
this.disabled = false;
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Automatically hides the menu button when the corresponding menu is not active
|
|
28
|
+
*/
|
|
28
29
|
this.autoHide = true;
|
|
30
|
+
/**
|
|
31
|
+
* The type of the button.
|
|
32
|
+
*/
|
|
29
33
|
this.type = 'button';
|
|
34
|
+
this.onClick = async () => {
|
|
35
|
+
return menuController.toggle(this.menu);
|
|
36
|
+
};
|
|
30
37
|
}
|
|
31
38
|
componentWillLoad() {
|
|
32
39
|
this.inheritedAttributes = inheritAriaAttributes(this.el);
|
|
@@ -46,7 +53,7 @@ export class MenuButton {
|
|
|
46
53
|
type: this.type,
|
|
47
54
|
};
|
|
48
55
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
49
|
-
return (h(Host, { key: '
|
|
56
|
+
return (h(Host, { key: '9f0f0e50d39a6872508220c58e64bb2092a0d7ef', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
|
|
50
57
|
[mode]: true,
|
|
51
58
|
button: true, // ion-buttons target .button
|
|
52
59
|
'menu-button-hidden': hidden,
|
|
@@ -55,7 +62,7 @@ export class MenuButton {
|
|
|
55
62
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
56
63
|
'ion-activatable': true,
|
|
57
64
|
'ion-focusable': true,
|
|
58
|
-
}) }, h("button", Object.assign({ key: '
|
|
65
|
+
}) }, h("button", Object.assign({ key: 'ffebf7083d23501839970059ef8e411b571de197' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: 'cab0c1c763b3ce33ef11dba1d230f66126e59424', class: "button-inner" }, h("slot", { key: 'ccfd2be8479b75b5c63e97e1ca7dfe203e9b36ee' }, h("ion-icon", { key: 'ac254fe7f327b08f1ae3fcea89d5cf0e83c9a96c', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { key: 'f0f17c4ca96e3eed3c1727ee00578d40af8f0115', type: "unbounded" }))));
|
|
59
66
|
}
|
|
60
67
|
static get is() { return "ion-menu-button"; }
|
|
61
68
|
static get encapsulation() { return "shadow"; }
|
|
@@ -75,6 +82,7 @@ export class MenuButton {
|
|
|
75
82
|
return {
|
|
76
83
|
"color": {
|
|
77
84
|
"type": "string",
|
|
85
|
+
"attribute": "color",
|
|
78
86
|
"mutable": false,
|
|
79
87
|
"complexType": {
|
|
80
88
|
"original": "Color",
|
|
@@ -93,11 +101,13 @@ export class MenuButton {
|
|
|
93
101
|
"tags": [],
|
|
94
102
|
"text": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics)."
|
|
95
103
|
},
|
|
96
|
-
"
|
|
104
|
+
"getter": false,
|
|
105
|
+
"setter": false,
|
|
97
106
|
"reflect": true
|
|
98
107
|
},
|
|
99
108
|
"disabled": {
|
|
100
109
|
"type": "boolean",
|
|
110
|
+
"attribute": "disabled",
|
|
101
111
|
"mutable": false,
|
|
102
112
|
"complexType": {
|
|
103
113
|
"original": "boolean",
|
|
@@ -110,12 +120,14 @@ export class MenuButton {
|
|
|
110
120
|
"tags": [],
|
|
111
121
|
"text": "If `true`, the user cannot interact with the menu button."
|
|
112
122
|
},
|
|
113
|
-
"
|
|
123
|
+
"getter": false,
|
|
124
|
+
"setter": false,
|
|
114
125
|
"reflect": false,
|
|
115
126
|
"defaultValue": "false"
|
|
116
127
|
},
|
|
117
128
|
"menu": {
|
|
118
129
|
"type": "string",
|
|
130
|
+
"attribute": "menu",
|
|
119
131
|
"mutable": false,
|
|
120
132
|
"complexType": {
|
|
121
133
|
"original": "string",
|
|
@@ -128,11 +140,13 @@ export class MenuButton {
|
|
|
128
140
|
"tags": [],
|
|
129
141
|
"text": "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"
|
|
130
142
|
},
|
|
131
|
-
"
|
|
143
|
+
"getter": false,
|
|
144
|
+
"setter": false,
|
|
132
145
|
"reflect": false
|
|
133
146
|
},
|
|
134
147
|
"autoHide": {
|
|
135
148
|
"type": "boolean",
|
|
149
|
+
"attribute": "auto-hide",
|
|
136
150
|
"mutable": false,
|
|
137
151
|
"complexType": {
|
|
138
152
|
"original": "boolean",
|
|
@@ -145,12 +159,14 @@ export class MenuButton {
|
|
|
145
159
|
"tags": [],
|
|
146
160
|
"text": "Automatically hides the menu button when the corresponding menu is not active"
|
|
147
161
|
},
|
|
148
|
-
"
|
|
162
|
+
"getter": false,
|
|
163
|
+
"setter": false,
|
|
149
164
|
"reflect": false,
|
|
150
165
|
"defaultValue": "true"
|
|
151
166
|
},
|
|
152
167
|
"type": {
|
|
153
168
|
"type": "string",
|
|
169
|
+
"attribute": "type",
|
|
154
170
|
"mutable": false,
|
|
155
171
|
"complexType": {
|
|
156
172
|
"original": "'submit' | 'reset' | 'button'",
|
|
@@ -163,7 +179,8 @@ export class MenuButton {
|
|
|
163
179
|
"tags": [],
|
|
164
180
|
"text": "The type of the button."
|
|
165
181
|
},
|
|
166
|
-
"
|
|
182
|
+
"getter": false,
|
|
183
|
+
"setter": false,
|
|
167
184
|
"reflect": false,
|
|
168
185
|
"defaultValue": "'button'"
|
|
169
186
|
}
|
|
@@ -10,12 +10,17 @@ import { updateVisibility } from "./menu-toggle-util";
|
|
|
10
10
|
*/
|
|
11
11
|
export class MenuToggle {
|
|
12
12
|
constructor() {
|
|
13
|
+
this.visible = false;
|
|
14
|
+
/**
|
|
15
|
+
* Automatically hides the content when the corresponding menu is not active.
|
|
16
|
+
*
|
|
17
|
+
* By default, it's `true`. Change it to `false` in order to
|
|
18
|
+
* keep `ion-menu-toggle` always visible regardless the state of the menu.
|
|
19
|
+
*/
|
|
20
|
+
this.autoHide = true;
|
|
13
21
|
this.onClick = () => {
|
|
14
22
|
return menuController.toggle(this.menu);
|
|
15
23
|
};
|
|
16
|
-
this.visible = false;
|
|
17
|
-
this.menu = undefined;
|
|
18
|
-
this.autoHide = true;
|
|
19
24
|
}
|
|
20
25
|
connectedCallback() {
|
|
21
26
|
this.visibilityChanged();
|
|
@@ -26,10 +31,10 @@ export class MenuToggle {
|
|
|
26
31
|
render() {
|
|
27
32
|
const mode = getIonMode(this);
|
|
28
33
|
const hidden = this.autoHide && !this.visible;
|
|
29
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: 'cd567114769a30bd3871ed5d15bf42aed39956e1', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
30
35
|
[mode]: true,
|
|
31
36
|
'menu-toggle-hidden': hidden,
|
|
32
|
-
} }, h("slot", { key: '
|
|
37
|
+
} }, h("slot", { key: '773d4cff95ca75f23578b1e1dca53c9933f28a33' })));
|
|
33
38
|
}
|
|
34
39
|
static get is() { return "ion-menu-toggle"; }
|
|
35
40
|
static get encapsulation() { return "shadow"; }
|
|
@@ -47,6 +52,7 @@ export class MenuToggle {
|
|
|
47
52
|
return {
|
|
48
53
|
"menu": {
|
|
49
54
|
"type": "string",
|
|
55
|
+
"attribute": "menu",
|
|
50
56
|
"mutable": false,
|
|
51
57
|
"complexType": {
|
|
52
58
|
"original": "string",
|
|
@@ -59,11 +65,13 @@ export class MenuToggle {
|
|
|
59
65
|
"tags": [],
|
|
60
66
|
"text": "Optional property that maps to a Menu's `menuId` prop.\nCan also be `start` or `end` for the menu side.\nThis is used to find the correct menu to toggle.\n\nIf this property is not used, `ion-menu-toggle` will toggle the\nfirst menu that is active."
|
|
61
67
|
},
|
|
62
|
-
"
|
|
68
|
+
"getter": false,
|
|
69
|
+
"setter": false,
|
|
63
70
|
"reflect": false
|
|
64
71
|
},
|
|
65
72
|
"autoHide": {
|
|
66
73
|
"type": "boolean",
|
|
74
|
+
"attribute": "auto-hide",
|
|
67
75
|
"mutable": false,
|
|
68
76
|
"complexType": {
|
|
69
77
|
"original": "boolean",
|
|
@@ -76,7 +84,8 @@ export class MenuToggle {
|
|
|
76
84
|
"tags": [],
|
|
77
85
|
"text": "Automatically hides the content when the corresponding menu is not active.\n\nBy default, it's `true`. Change it to `false` in order to\nkeep `ion-menu-toggle` always visible regardless the state of the menu."
|
|
78
86
|
},
|
|
79
|
-
"
|
|
87
|
+
"getter": false,
|
|
88
|
+
"setter": false,
|
|
80
89
|
"reflect": false,
|
|
81
90
|
"defaultValue": "true"
|
|
82
91
|
}
|
|
@@ -31,47 +31,7 @@ export const iosEnterAnimation = (baseEl, opts) => {
|
|
|
31
31
|
.addElement(baseEl)
|
|
32
32
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
33
33
|
.duration(500)
|
|
34
|
-
.addAnimation([wrapperAnimation])
|
|
35
|
-
.beforeAddWrite(() => {
|
|
36
|
-
if (expandToScroll) {
|
|
37
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* There are some browsers that causes flickering when
|
|
42
|
-
* dragging the content when scroll is enabled at every
|
|
43
|
-
* breakpoint. This is due to the wrapper element being
|
|
44
|
-
* transformed off the screen and having a snap animation.
|
|
45
|
-
*
|
|
46
|
-
* A workaround is to clone the footer element and append
|
|
47
|
-
* it outside of the wrapper element. This way, the footer
|
|
48
|
-
* is still visible and the drag can be done without
|
|
49
|
-
* flickering. The original footer is hidden until the modal
|
|
50
|
-
* is dismissed. This maintains the animation of the footer
|
|
51
|
-
* when the modal is dismissed.
|
|
52
|
-
*
|
|
53
|
-
* The workaround needs to be done before the animation starts
|
|
54
|
-
* so there are no flickering issues.
|
|
55
|
-
*/
|
|
56
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
57
|
-
/**
|
|
58
|
-
* This check is needed to prevent more than one footer
|
|
59
|
-
* from being appended to the shadow root.
|
|
60
|
-
* Otherwise, iOS and MD enter animations would append
|
|
61
|
-
* the footer twice.
|
|
62
|
-
*/
|
|
63
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
64
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
65
|
-
const footerHeight = ionFooter.clientHeight;
|
|
66
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
67
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
68
|
-
ionFooter.style.setProperty('display', 'none');
|
|
69
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
70
|
-
// Padding is added to prevent some content from being hidden.
|
|
71
|
-
const page = baseEl.querySelector('.ion-page');
|
|
72
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
34
|
+
.addAnimation([wrapperAnimation]);
|
|
75
35
|
if (contentAnimation) {
|
|
76
36
|
baseAnimation.addAnimation(contentAnimation);
|
|
77
37
|
}
|
|
@@ -14,7 +14,7 @@ const createLeaveAnimation = () => {
|
|
|
14
14
|
* iOS Modal Leave Animation
|
|
15
15
|
*/
|
|
16
16
|
export const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
17
|
-
const { presentingEl, currentBreakpoint
|
|
17
|
+
const { presentingEl, currentBreakpoint } = opts;
|
|
18
18
|
const root = getElementRoot(baseEl);
|
|
19
19
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
20
20
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -23,29 +23,7 @@ export const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
23
23
|
.addElement(baseEl)
|
|
24
24
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
25
25
|
.duration(duration)
|
|
26
|
-
.addAnimation(wrapperAnimation)
|
|
27
|
-
.beforeAddWrite(() => {
|
|
28
|
-
if (expandToScroll) {
|
|
29
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* If expandToScroll is disabled, we need to swap
|
|
34
|
-
* the visibility to the original, so the footer
|
|
35
|
-
* dismisses with the modal and doesn't stay
|
|
36
|
-
* until the modal is removed from the DOM.
|
|
37
|
-
*/
|
|
38
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
39
|
-
if (ionFooter) {
|
|
40
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
41
|
-
ionFooter.style.removeProperty('display');
|
|
42
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
43
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
44
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
45
|
-
const page = baseEl.querySelector('.ion-page');
|
|
46
|
-
page.style.removeProperty('padding-bottom');
|
|
47
|
-
}
|
|
48
|
-
});
|
|
26
|
+
.addAnimation(wrapperAnimation);
|
|
49
27
|
const appEl = baseEl.closest('ion-app');
|
|
50
28
|
if (presentingEl && appEl) {
|
|
51
29
|
const isMobile = window.innerWidth < 768;
|
|
@@ -28,52 +28,12 @@ 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 && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
31
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : 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)')
|
|
35
35
|
.duration(280)
|
|
36
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
37
|
-
.beforeAddWrite(() => {
|
|
38
|
-
if (expandToScroll) {
|
|
39
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* There are some browsers that causes flickering when
|
|
44
|
-
* dragging the content when scroll is enabled at every
|
|
45
|
-
* breakpoint. This is due to the wrapper element being
|
|
46
|
-
* transformed off the screen and having a snap animation.
|
|
47
|
-
*
|
|
48
|
-
* A workaround is to clone the footer element and append
|
|
49
|
-
* it outside of the wrapper element. This way, the footer
|
|
50
|
-
* is still visible and the drag can be done without
|
|
51
|
-
* flickering. The original footer is hidden until the modal
|
|
52
|
-
* is dismissed. This maintains the animation of the footer
|
|
53
|
-
* when the modal is dismissed.
|
|
54
|
-
*
|
|
55
|
-
* The workaround needs to be done before the animation starts
|
|
56
|
-
* so there are no flickering issues.
|
|
57
|
-
*/
|
|
58
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
59
|
-
/**
|
|
60
|
-
* This check is needed to prevent more than one footer
|
|
61
|
-
* from being appended to the shadow root.
|
|
62
|
-
* Otherwise, iOS and MD enter animations would append
|
|
63
|
-
* the footer twice.
|
|
64
|
-
*/
|
|
65
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
66
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
67
|
-
const footerHeight = ionFooter.clientHeight;
|
|
68
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
69
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
70
|
-
ionFooter.style.setProperty('display', 'none');
|
|
71
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
72
|
-
// Padding is added to prevent some content from being hidden.
|
|
73
|
-
const page = baseEl.querySelector('.ion-page');
|
|
74
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
36
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
77
37
|
if (contentAnimation) {
|
|
78
38
|
baseAnimation.addAnimation(contentAnimation);
|
|
79
39
|
}
|
|
@@ -16,7 +16,7 @@ const createLeaveAnimation = () => {
|
|
|
16
16
|
* Md Modal Leave Animation
|
|
17
17
|
*/
|
|
18
18
|
export const mdLeaveAnimation = (baseEl, opts) => {
|
|
19
|
-
const { currentBreakpoint
|
|
19
|
+
const { currentBreakpoint } = opts;
|
|
20
20
|
const root = getElementRoot(baseEl);
|
|
21
21
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
22
22
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -24,28 +24,6 @@ export const mdLeaveAnimation = (baseEl, opts) => {
|
|
|
24
24
|
const baseAnimation = createAnimation()
|
|
25
25
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
26
26
|
.duration(200)
|
|
27
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
28
|
-
.beforeAddWrite(() => {
|
|
29
|
-
if (expandToScroll) {
|
|
30
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* If expandToScroll is disabled, we need to swap
|
|
35
|
-
* the visibility to the original, so the footer
|
|
36
|
-
* dismisses with the modal and doesn't stay
|
|
37
|
-
* until the modal is removed from the DOM.
|
|
38
|
-
*/
|
|
39
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
40
|
-
if (ionFooter) {
|
|
41
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
42
|
-
ionFooter.style.removeProperty('display');
|
|
43
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
44
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
45
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
46
|
-
const page = baseEl.querySelector('.ion-page');
|
|
47
|
-
page.style.removeProperty('padding-bottom');
|
|
48
|
-
}
|
|
49
|
-
});
|
|
27
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
50
28
|
return baseAnimation;
|
|
51
29
|
};
|
|
@@ -35,6 +35,9 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
35
35
|
let offset = 0;
|
|
36
36
|
let canDismissBlocksGesture = false;
|
|
37
37
|
let cachedScrollEl = null;
|
|
38
|
+
let cachedFooterEls = null;
|
|
39
|
+
let cachedFooterYPosition = null;
|
|
40
|
+
let currentFooterState = null;
|
|
38
41
|
const canDismissMaxStep = 0.95;
|
|
39
42
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
40
43
|
const minBreakpoint = breakpoints[0];
|
|
@@ -64,29 +67,87 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
64
67
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
65
68
|
};
|
|
66
69
|
/**
|
|
67
|
-
* Toggles the
|
|
68
|
-
*
|
|
70
|
+
* Toggles the footer to an absolute position while moving to prevent
|
|
71
|
+
* it from shaking while the sheet is being dragged.
|
|
72
|
+
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
69
73
|
*/
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
const swapFooterPosition = (newPosition) => {
|
|
75
|
+
if (!cachedFooterEls) {
|
|
76
|
+
cachedFooterEls = Array.from(baseEl.querySelectorAll('ion-footer'));
|
|
77
|
+
if (!cachedFooterEls.length) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
74
80
|
}
|
|
75
|
-
const clonedFooter = wrapperEl.nextElementSibling;
|
|
76
|
-
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
77
|
-
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
78
|
-
footerToShow.style.removeProperty('display');
|
|
79
|
-
footerToShow.removeAttribute('aria-hidden');
|
|
80
81
|
const page = baseEl.querySelector('.ion-page');
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
currentFooterState = newPosition;
|
|
83
|
+
if (newPosition === 'stationary') {
|
|
84
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
85
|
+
// Reset positioning styles to allow normal document flow
|
|
86
|
+
cachedFooterEl.classList.remove('modal-footer-moving');
|
|
87
|
+
cachedFooterEl.style.removeProperty('position');
|
|
88
|
+
cachedFooterEl.style.removeProperty('width');
|
|
89
|
+
cachedFooterEl.style.removeProperty('height');
|
|
90
|
+
cachedFooterEl.style.removeProperty('top');
|
|
91
|
+
cachedFooterEl.style.removeProperty('left');
|
|
92
|
+
page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
|
|
93
|
+
// Move to page
|
|
94
|
+
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
95
|
+
});
|
|
83
96
|
}
|
|
84
97
|
else {
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
let footerHeights = 0;
|
|
99
|
+
cachedFooterEls.forEach((cachedFooterEl, index) => {
|
|
100
|
+
// Get both the footer and document body positions
|
|
101
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
102
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
103
|
+
// Calculate the total height of all footers
|
|
104
|
+
// so we can add padding to the page element
|
|
105
|
+
footerHeights += cachedFooterEl.clientHeight;
|
|
106
|
+
// Calculate absolute position relative to body
|
|
107
|
+
// We need to subtract the body's offsetTop to get true position within document.body
|
|
108
|
+
const absoluteTop = cachedFooterElRect.top - bodyRect.top;
|
|
109
|
+
const absoluteLeft = cachedFooterElRect.left - bodyRect.left;
|
|
110
|
+
// Capture the footer's current dimensions and store them in CSS variables for
|
|
111
|
+
// later use when applying absolute positioning.
|
|
112
|
+
cachedFooterEl.style.setProperty('--pinned-width', `${cachedFooterEl.clientWidth}px`);
|
|
113
|
+
cachedFooterEl.style.setProperty('--pinned-height', `${cachedFooterEl.clientHeight}px`);
|
|
114
|
+
cachedFooterEl.style.setProperty('--pinned-top', `${absoluteTop}px`);
|
|
115
|
+
cachedFooterEl.style.setProperty('--pinned-left', `${absoluteLeft}px`);
|
|
116
|
+
// Only cache the first footer's Y position
|
|
117
|
+
// This is used to determine if the sheet has been moved below the footer
|
|
118
|
+
// and needs to be swapped back to stationary so it collapses correctly.
|
|
119
|
+
if (index === 0) {
|
|
120
|
+
cachedFooterYPosition = absoluteTop;
|
|
121
|
+
// If there's a header, we need to combine the header height with the footer position
|
|
122
|
+
// because the header moves with the drag handle, so when it starts overlapping the footer,
|
|
123
|
+
// we need to account for that.
|
|
124
|
+
const header = baseEl.querySelector('ion-header');
|
|
125
|
+
if (header) {
|
|
126
|
+
cachedFooterYPosition -= header.clientHeight;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
// Apply the pinning of styles after we've calculated everything
|
|
131
|
+
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
132
|
+
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
133
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
134
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
135
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
136
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
137
|
+
// sheet to scroll.
|
|
138
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
139
|
+
// Apply positioning styles to keep footer at bottom
|
|
140
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
141
|
+
// Apply our preserved styles to pin the footer
|
|
142
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
143
|
+
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
144
|
+
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
145
|
+
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
146
|
+
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
147
|
+
// Move the element to the body when everything else is done
|
|
148
|
+
document.body.appendChild(cachedFooterEl);
|
|
149
|
+
});
|
|
87
150
|
}
|
|
88
|
-
footerToHide.style.setProperty('display', 'none');
|
|
89
|
-
footerToHide.setAttribute('aria-hidden', 'true');
|
|
90
151
|
};
|
|
91
152
|
/**
|
|
92
153
|
* After the entering animation completes,
|
|
@@ -180,12 +241,11 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
180
241
|
}
|
|
181
242
|
/**
|
|
182
243
|
* If expandToScroll is disabled, we need to swap
|
|
183
|
-
* the footer
|
|
184
|
-
*
|
|
185
|
-
* and doesn't stay on the screen after the modal is gone.
|
|
244
|
+
* the footer position to moving so that it doesn't shake
|
|
245
|
+
* while the sheet is being dragged.
|
|
186
246
|
*/
|
|
187
247
|
if (!expandToScroll) {
|
|
188
|
-
|
|
248
|
+
swapFooterPosition('moving');
|
|
189
249
|
}
|
|
190
250
|
/**
|
|
191
251
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
@@ -204,6 +264,21 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
204
264
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
205
265
|
};
|
|
206
266
|
const onMove = (detail) => {
|
|
267
|
+
/**
|
|
268
|
+
* If `expandToScroll` is disabled, we need to see if we're currently below
|
|
269
|
+
* the footer element and the footer is in a stationary position. If so,
|
|
270
|
+
* we need to make the stationary the original position so that the footer
|
|
271
|
+
* collapses with the sheet.
|
|
272
|
+
*/
|
|
273
|
+
if (!expandToScroll && cachedFooterYPosition !== null && currentFooterState !== null) {
|
|
274
|
+
// Check if we need to swap the footer position
|
|
275
|
+
if (detail.currentY >= cachedFooterYPosition && currentFooterState === 'moving') {
|
|
276
|
+
swapFooterPosition('stationary');
|
|
277
|
+
}
|
|
278
|
+
else if (detail.currentY < cachedFooterYPosition && currentFooterState === 'stationary') {
|
|
279
|
+
swapFooterPosition('moving');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
207
282
|
/**
|
|
208
283
|
* If `expandToScroll` is disabled, and an upwards swipe gesture is done within
|
|
209
284
|
* the scrollable content, we should not allow the swipe gesture to continue.
|
|
@@ -263,6 +338,14 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
263
338
|
* is not scrolled to the top.
|
|
264
339
|
*/
|
|
265
340
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
341
|
+
/**
|
|
342
|
+
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
343
|
+
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
344
|
+
* dragging (e.g. through a dismiss button).
|
|
345
|
+
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
346
|
+
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
347
|
+
*/
|
|
348
|
+
swapFooterPosition('stationary');
|
|
266
349
|
return;
|
|
267
350
|
}
|
|
268
351
|
/**
|
|
@@ -337,14 +420,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
337
420
|
* snapping animation completes.
|
|
338
421
|
*/
|
|
339
422
|
gesture.enable(false);
|
|
340
|
-
/**
|
|
341
|
-
* If expandToScroll is disabled, we need to swap
|
|
342
|
-
* the footer visibility to the cloned one so the footer
|
|
343
|
-
* doesn't flicker when the sheet's height is animated.
|
|
344
|
-
*/
|
|
345
|
-
if (!expandToScroll && shouldRemainOpen) {
|
|
346
|
-
swapFooterVisibility('cloned');
|
|
347
|
-
}
|
|
348
423
|
if (shouldPreventDismiss) {
|
|
349
424
|
handleCanDismiss(baseEl, animation);
|
|
350
425
|
}
|
|
@@ -361,10 +436,28 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
361
436
|
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
362
437
|
contentEl.scrollY = true;
|
|
363
438
|
}
|
|
439
|
+
/**
|
|
440
|
+
* If expandToScroll is disabled and we're animating
|
|
441
|
+
* to close the sheet, we need to swap
|
|
442
|
+
* the footer position to stationary so that it
|
|
443
|
+
* will collapse correctly. We cannot just always swap
|
|
444
|
+
* here or it'll be jittery while animating movement.
|
|
445
|
+
*/
|
|
446
|
+
if (!expandToScroll && snapToBreakpoint === 0) {
|
|
447
|
+
swapFooterPosition('stationary');
|
|
448
|
+
}
|
|
364
449
|
return new Promise((resolve) => {
|
|
365
450
|
animation
|
|
366
451
|
.onFinish(() => {
|
|
367
452
|
if (shouldRemainOpen) {
|
|
453
|
+
/**
|
|
454
|
+
* If expandToScroll is disabled, we need to swap
|
|
455
|
+
* the footer position to stationary so that it
|
|
456
|
+
* will act as it would by default.
|
|
457
|
+
*/
|
|
458
|
+
if (!expandToScroll) {
|
|
459
|
+
swapFooterPosition('stationary');
|
|
460
|
+
}
|
|
368
461
|
/**
|
|
369
462
|
* Once the snapping animation completes,
|
|
370
463
|
* we need to reset the animation to go
|
|
@@ -331,14 +331,4 @@ ion-backdrop {
|
|
|
331
331
|
border-start-end-radius: var(--border-radius);
|
|
332
332
|
border-end-end-radius: 0;
|
|
333
333
|
border-end-start-radius: 0;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Sheet modals require an additional padding as mentioned in the
|
|
338
|
-
* `core.scss` file. However, there's a workaround that requires
|
|
339
|
-
* a cloned footer to be added to the modal. This is only necessary
|
|
340
|
-
* because the core styles are not being applied to the cloned footer.
|
|
341
|
-
*/
|
|
342
|
-
:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type {
|
|
343
|
-
padding-top: 6px;
|
|
344
334
|
}
|