@ionic/core 8.4.4-dev.11741048645.1fe58d92 → 8.4.4-dev.11741101920.155e1c29
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/checkbox.js +6 -4
- package/components/helpers.js +1 -11
- package/components/index6.js +11 -3
- package/components/index7.js +2 -2
- package/components/index9.js +1 -1
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +2 -2
- package/components/ion-menu-toggle.js +2 -2
- package/components/ion-menu.js +2 -2
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +2 -2
- package/components/ion-picker-legacy.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-range.js +3 -3
- 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-router-link.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +4 -4
- package/components/ion-segment-button.js +9 -40
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +2 -2
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +16 -41
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-textarea.js +2 -2
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +6 -4
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/modal.js +259 -35
- package/components/picker-column-option.js +2 -2
- package/components/picker-column2.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +39 -2
- package/components/radio.js +3 -3
- package/components/ripple-effect.js +1 -1
- package/components/select-modal.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/components/title.js +2 -2
- package/components/toolbar.js +2 -2
- 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/palettes/dark.always.css +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css +1 -1
- package/css/structure.css.map +1 -1
- package/css/typography.css +1 -1
- package/css/typography.css.map +1 -1
- package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
- package/dist/cjs/{framework-delegate-05579976.js → framework-delegate-55f5683a.js} +1 -1
- package/dist/cjs/{helpers-4be3f90d.js → helpers-afaa9001.js} +0 -11
- package/dist/cjs/{index-0e360e93.js → index-073c7cdc.js} +2 -2
- package/dist/cjs/{index-c441c903.js → index-0d762bba.js} +2 -2
- package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
- package/dist/cjs/{index-1ae3f40a.js → index-3652c918.js} +2 -2
- package/dist/cjs/{index-ad7a712e.js → index-9509ecad.js} +1 -1
- package/dist/cjs/{index-4e14a46e.js → index-e975c92b.js} +4 -4
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{input-shims-e748a364.js → input-shims-cd05268a.js} +5 -3
- package/dist/cjs/{input.utils-74e4ec28.js → input.utils-ffb2f81b.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +6 -5
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -10
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +1 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +5 -5
- package/dist/cjs/ion-item-option_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +12 -12
- package/dist/cjs/ion-modal.cjs.entry.js +264 -41
- package/dist/cjs/ion-nav_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +7 -7
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +40 -5
- package/dist/cjs/ion-range.cjs.entry.js +6 -6
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
- package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +11 -42
- package/dist/cjs/ion-select-modal.cjs.entry.js +5 -5
- package/dist/cjs/ion-select_3.cjs.entry.js +22 -48
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-tab_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +6 -6
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +7 -6
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-afdec89f.js → ios.transition-0e664e88.js} +3 -3
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-9f0d3db5.js → md.transition-2e8aef2c.js} +3 -3
- package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-d69150f5.js} +1 -1
- package/dist/cjs/{overlays-76b29cd4.js → overlays-65fdaff6.js} +3 -3
- package/dist/cjs/{status-tap-fb807fad.js → status-tap-d74f1429.js} +4 -3
- package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-0303a5e4.js} +1 -1
- package/dist/collection/components/checkbox/checkbox.js +23 -4
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/animations/ios.enter.js +50 -4
- package/dist/collection/components/modal/animations/ios.leave.js +24 -2
- package/dist/collection/components/modal/animations/md.enter.js +52 -5
- package/dist/collection/components/modal/animations/md.leave.js +26 -3
- package/dist/collection/components/modal/animations/sheet.js +11 -2
- package/dist/collection/components/modal/gestures/sheet.js +79 -10
- package/dist/collection/components/modal/modal.ios.css +16 -0
- package/dist/collection/components/modal/modal.js +32 -7
- package/dist/collection/components/modal/modal.md.css +6 -0
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.ios.css +206 -0
- package/dist/collection/components/radio-group/radio-group.js +72 -1
- package/dist/collection/components/radio-group/radio-group.md.css +206 -0
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +4 -4
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +9 -40
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.js +32 -40
- package/dist/collection/components/select-modal/select-modal.js +1 -1
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +23 -4
- package/dist/collection/components/toolbar/toolbar.js +6 -2
- package/dist/collection/utils/helpers.js +0 -10
- package/dist/collection/utils/logging/index.js +10 -3
- package/dist/docs.json +163 -2
- package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm/{framework-delegate-f683816e.js → framework-delegate-63d1a679.js} +1 -1
- package/dist/esm/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -11
- package/dist/esm/{index-7ec5519a.js → index-2f7fde3d.js} +4 -4
- package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
- package/dist/esm/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
- package/dist/esm/{index-8785a9c6.js → index-cb21eccb.js} +2 -2
- package/dist/esm/{index-10f4ed65.js → index-e2cf2ceb.js} +2 -2
- package/dist/esm/{index-33f7e3ff.js → index-efb8ecdf.js} +2 -2
- package/dist/esm/index.js +8 -8
- package/dist/esm/{input-shims-0e65111b.js → input-shims-2fd7c6ef.js} +5 -3
- package/dist/esm/{input.utils-1ad8dafc.js → input.utils-961c9f17.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +14 -14
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +6 -5
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +3 -3
- package/dist/esm/ion-datetime_3.entry.js +10 -10
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +1 -1
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +5 -5
- package/dist/esm/ion-item-option_3.entry.js +7 -7
- package/dist/esm/ion-item_8.entry.js +13 -13
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +12 -12
- package/dist/esm/ion-modal.entry.js +264 -41
- package/dist/esm/ion-nav_2.entry.js +7 -7
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +1 -1
- package/dist/esm/ion-picker.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +7 -7
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +40 -5
- package/dist/esm/ion-range.entry.js +6 -6
- package/dist/esm/ion-refresher_2.entry.js +6 -6
- package/dist/esm/ion-reorder_2.entry.js +6 -6
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +3 -3
- package/dist/esm/ion-searchbar.entry.js +6 -6
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +11 -42
- package/dist/esm/ion-select-modal.entry.js +5 -5
- package/dist/esm/ion-select_3.entry.js +22 -48
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +5 -5
- package/dist/esm/ion-tab_2.entry.js +5 -5
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +6 -6
- package/dist/esm/ion-toast.entry.js +6 -6
- package/dist/esm/ion-toggle.entry.js +7 -6
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-085853ff.js → ios.transition-b1da3753.js} +3 -3
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-33826623.js → md.transition-571b3859.js} +3 -3
- package/dist/esm/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
- package/dist/esm/{overlays-e3d0d356.js → overlays-5deab4de.js} +3 -3
- package/dist/esm/{status-tap-163e8128.js → status-tap-79eac0ac.js} +4 -3
- package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-e5394307.js} +1 -1
- package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm-es5/{framework-delegate-f683816e.js → framework-delegate-63d1a679.js} +1 -1
- package/dist/esm-es5/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -1
- package/dist/esm-es5/{index-7ec5519a.js → index-2f7fde3d.js} +1 -1
- package/dist/esm-es5/index-6ad967f3.js +4 -0
- package/dist/esm-es5/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
- package/dist/esm-es5/{index-8785a9c6.js → index-cb21eccb.js} +1 -1
- package/dist/esm-es5/{index-10f4ed65.js → index-e2cf2ceb.js} +1 -1
- package/dist/esm-es5/{index-33f7e3ff.js → index-efb8ecdf.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-2fd7c6ef.js +4 -0
- package/dist/esm-es5/{input.utils-1ad8dafc.js → input.utils-961c9f17.js} +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment-content.entry.js +1 -1
- package/dist/esm-es5/ion-segment-view.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-085853ff.js → ios.transition-b1da3753.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-571b3859.js +4 -0
- package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
- package/dist/esm-es5/{overlays-e3d0d356.js → overlays-5deab4de.js} +1 -1
- package/dist/esm-es5/status-tap-79eac0ac.js +4 -0
- package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-e5394307.js} +1 -1
- package/dist/html.html-data.json +24 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-a9e24ae2.system.entry.js → p-01186920.system.entry.js} +1 -1
- package/dist/ionic/{p-ffc48bc5.system.entry.js → p-01af2109.system.entry.js} +1 -1
- package/dist/ionic/{p-3eaf1444.system.entry.js → p-05b74e45.system.entry.js} +1 -1
- package/dist/ionic/{p-d9b3fa7e.entry.js → p-081a4ce4.entry.js} +1 -1
- package/dist/ionic/p-0af823e1.js +4 -0
- package/dist/ionic/p-0b7112fc.entry.js +4 -0
- package/dist/ionic/{p-aa63b365.system.js → p-0eb35a7f.system.js} +1 -1
- package/dist/ionic/{p-3df889b3.system.entry.js → p-0ef6abb0.system.entry.js} +1 -1
- package/dist/ionic/p-109cae7d.entry.js +4 -0
- package/dist/ionic/{p-203633d1.entry.js → p-120fb79a.entry.js} +1 -1
- package/dist/ionic/{p-702caed7.entry.js → p-15d18206.entry.js} +1 -1
- package/dist/ionic/{p-03ee25cb.entry.js → p-15e76dd1.entry.js} +1 -1
- package/dist/ionic/{p-5126cf1e.system.js → p-19ea7bff.system.js} +1 -1
- package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
- package/dist/ionic/{p-42808996.js → p-1ab13b2b.js} +1 -1
- package/dist/ionic/{p-62af944c.entry.js → p-1c934892.entry.js} +1 -1
- package/dist/ionic/{p-2cf2db18.system.entry.js → p-1e67b266.system.entry.js} +1 -1
- package/dist/ionic/{p-4c252070.entry.js → p-1e6d7da3.entry.js} +1 -1
- package/dist/ionic/{p-32be7b07.system.js → p-1e955a45.system.js} +1 -1
- package/dist/ionic/{p-e2e19375.system.entry.js → p-1fbc571c.system.entry.js} +1 -1
- package/dist/ionic/{p-77036bbd.system.entry.js → p-2346ab53.system.entry.js} +1 -1
- package/dist/ionic/{p-6a2d9764.system.entry.js → p-248318e0.system.entry.js} +1 -1
- package/dist/ionic/{p-02e23f26.entry.js → p-27d29df8.entry.js} +1 -1
- package/dist/ionic/{p-f5035354.js → p-28706c6f.js} +1 -1
- package/dist/ionic/p-2b048a95.system.entry.js +4 -0
- package/dist/ionic/{p-afecb188.entry.js → p-2d1d8a25.entry.js} +1 -1
- package/dist/ionic/{p-f301a694.system.entry.js → p-31c37f38.system.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +1 -1
- package/dist/ionic/{p-70ccc275.system.entry.js → p-33c9f005.system.entry.js} +2 -2
- package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
- package/dist/ionic/{p-2bc73fb5.js → p-34b11c24.js} +1 -1
- package/dist/ionic/{p-a4575db1.system.entry.js → p-37495da1.system.entry.js} +1 -1
- package/dist/ionic/{p-f2c19415.system.entry.js → p-39164acf.system.entry.js} +1 -1
- package/dist/ionic/{p-b3680e2f.system.js → p-3ad285e3.system.js} +1 -1
- package/dist/ionic/{p-e97a3f44.entry.js → p-3b33b7d3.entry.js} +1 -1
- package/dist/ionic/{p-d4ca0475.js → p-3cc276f4.js} +1 -1
- package/dist/ionic/p-3e6be709.entry.js +4 -0
- package/dist/ionic/{p-26194519.entry.js → p-40b5455f.entry.js} +1 -1
- package/dist/ionic/{p-1693cbc4.entry.js → p-4b4f4a4c.entry.js} +1 -1
- package/dist/ionic/p-4c2d5b80.system.js +4 -0
- package/dist/ionic/p-4c98e2cf.system.js +4 -0
- package/dist/ionic/{p-7c1f8b94.entry.js → p-4e6a6eca.entry.js} +1 -1
- package/dist/ionic/{p-32e99b0a.entry.js → p-51030d96.entry.js} +1 -1
- package/dist/ionic/{p-4ad78edc.entry.js → p-52d7a191.entry.js} +1 -1
- package/dist/ionic/{p-7b96e5c1.system.entry.js → p-542a569d.system.entry.js} +1 -1
- package/dist/ionic/{p-77e7b7b6.system.entry.js → p-55d16109.system.entry.js} +1 -1
- package/dist/ionic/{p-da8ef548.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
- package/dist/ionic/{p-9eee4de1.system.js → p-5c08627a.system.js} +1 -1
- package/dist/ionic/{p-424eb140.system.entry.js → p-5cc9314d.system.entry.js} +1 -1
- package/dist/ionic/{p-1bc65aec.system.entry.js → p-5d0c6c4d.system.entry.js} +1 -1
- package/dist/ionic/{p-803f0bc2.entry.js → p-5d93d251.entry.js} +1 -1
- package/dist/ionic/{p-4346c79d.system.entry.js → p-5e0df4c8.system.entry.js} +1 -1
- package/dist/ionic/{p-8922be26.system.entry.js → p-62f648c8.system.entry.js} +1 -1
- package/dist/ionic/{p-45accc62.system.entry.js → p-63b0abde.system.entry.js} +1 -1
- package/dist/ionic/p-67222c16.system.js +4 -0
- package/dist/ionic/p-6c95736e.entry.js +4 -0
- package/dist/ionic/p-71c9d1fe.entry.js +4 -0
- package/dist/ionic/{p-7a1766d6.js → p-72812e99.js} +1 -1
- package/dist/ionic/p-72bc8a1c.js +4 -0
- package/dist/ionic/{p-fca6ef5f.system.entry.js → p-744b2484.system.entry.js} +1 -1
- package/dist/ionic/p-7513b0c4.js +4 -0
- package/dist/ionic/{p-76446a85.entry.js → p-7895d719.entry.js} +1 -1
- package/dist/ionic/{p-85fee58d.entry.js → p-7a6eaf9e.entry.js} +1 -1
- package/dist/ionic/{p-16799667.system.entry.js → p-7af3d1e8.system.entry.js} +1 -1
- package/dist/ionic/{p-7bac3d83.entry.js → p-7b9a2b23.entry.js} +1 -1
- package/dist/ionic/{p-a2b6dd57.system.js → p-7de1e42c.system.js} +1 -1
- package/dist/ionic/{p-0eb2553a.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
- package/dist/ionic/{p-95da3ae2.system.js → p-8635f5e6.system.js} +1 -1
- package/dist/ionic/p-870ae33b.system.entry.js +4 -0
- package/dist/ionic/p-87479c71.entry.js +4 -0
- package/dist/ionic/{p-ed882fb1.entry.js → p-89bf08c7.entry.js} +1 -1
- package/dist/ionic/p-89cc9270.entry.js +4 -0
- package/dist/ionic/{p-48a8d9b4.system.entry.js → p-8ac07653.system.entry.js} +2 -2
- package/dist/ionic/{p-085a5dd6.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
- package/dist/ionic/p-8e35b472.entry.js +4 -0
- package/dist/ionic/{p-2aebc4a0.entry.js → p-8e5dbf2b.entry.js} +1 -1
- package/dist/ionic/p-8f4361a8.system.entry.js +4 -0
- package/dist/ionic/p-9135153b.entry.js +4 -0
- package/dist/ionic/{p-e1bbacb7.entry.js → p-922daa9f.entry.js} +1 -1
- package/dist/ionic/{p-561ddcd4.system.entry.js → p-933727f9.system.entry.js} +2 -2
- package/dist/ionic/p-9343a445.js +4 -0
- package/dist/ionic/{p-57379000.entry.js → p-948e6c6a.entry.js} +1 -1
- package/dist/ionic/{p-dc146a2a.system.entry.js → p-985a7e17.system.entry.js} +1 -1
- package/dist/ionic/{p-3572f86a.system.entry.js → p-a090bce8.system.entry.js} +1 -1
- package/dist/ionic/{p-4452a8ac.system.js → p-a15ddedb.system.js} +1 -1
- package/dist/ionic/{p-2ef3c7ee.system.entry.js → p-a3a1d721.system.entry.js} +1 -1
- package/dist/ionic/p-a3db8ee3.js +4 -0
- package/dist/ionic/{p-e456ee59.system.entry.js → p-a4a2420e.system.entry.js} +1 -1
- package/dist/ionic/{p-1a790eef.system.js → p-a88dec0d.system.js} +2 -2
- package/dist/ionic/{p-b0d8bbee.entry.js → p-a8f2c254.entry.js} +1 -1
- package/dist/ionic/{p-af09741c.entry.js → p-abf549eb.entry.js} +1 -1
- package/dist/ionic/{p-c1b51537.system.js → p-ada36597.system.js} +1 -1
- package/dist/ionic/{p-e265ae18.system.entry.js → p-b0c7b12b.system.entry.js} +1 -1
- package/dist/ionic/{p-45de8d2a.entry.js → p-b1eb86fd.entry.js} +1 -1
- package/dist/ionic/{p-5b932840.entry.js → p-b1f885df.entry.js} +1 -1
- package/dist/ionic/{p-e8232807.system.js → p-b3c60433.system.js} +1 -1
- package/dist/ionic/{p-bb11d9fb.js → p-b51e4004.js} +1 -1
- package/dist/ionic/{p-13dc21b0.js → p-b6efeab8.js} +1 -1
- package/dist/ionic/{p-e8aed00f.system.entry.js → p-b7329612.system.entry.js} +1 -1
- package/dist/ionic/{p-9b3bb24e.entry.js → p-b9d7015f.entry.js} +1 -1
- package/dist/ionic/p-ba3f918e.entry.js +4 -0
- package/dist/ionic/{p-f78af648.system.entry.js → p-bc68c7cf.system.entry.js} +1 -1
- package/dist/ionic/{p-337a61d5.entry.js → p-bd5f29ea.entry.js} +1 -1
- package/dist/ionic/{p-95775830.entry.js → p-bf63d4b2.entry.js} +1 -1
- package/dist/ionic/{p-c8d645b3.entry.js → p-c41ac815.entry.js} +1 -1
- package/dist/ionic/{p-340e3f24.system.js → p-c4238c12.system.js} +1 -1
- package/dist/ionic/p-c4d86289.entry.js +4 -0
- package/dist/ionic/{p-c32644d7.entry.js → p-c51dc7fe.entry.js} +1 -1
- package/dist/ionic/{p-23b73db1.system.entry.js → p-c7ab2908.system.entry.js} +1 -1
- package/dist/ionic/{p-a0f3846e.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
- package/dist/ionic/{p-51dec25d.js → p-cb13696c.js} +1 -1
- package/dist/ionic/{p-551e8ff7.system.entry.js → p-cb6954d4.system.entry.js} +1 -1
- package/dist/ionic/{p-17ba2b14.system.entry.js → p-cd7ffa67.system.entry.js} +1 -1
- package/dist/ionic/p-d1c5b60e.system.js +4 -0
- package/dist/ionic/{p-9be5f3ee.system.entry.js → p-d2203d60.system.entry.js} +2 -2
- package/dist/ionic/{p-881d9e52.system.js → p-d22e2a38.system.js} +1 -1
- package/dist/ionic/{p-b91acf8d.system.entry.js → p-d341d412.system.entry.js} +1 -1
- package/dist/ionic/{p-955c3eb8.entry.js → p-d7aa6b00.entry.js} +1 -1
- package/dist/ionic/{p-697b4a5e.system.entry.js → p-d8d15f9b.system.entry.js} +2 -2
- package/dist/ionic/{p-e6200d13.js → p-da2b833b.js} +1 -1
- package/dist/ionic/p-da7e1bc4.entry.js +4 -0
- package/dist/ionic/{p-91f17b25.system.entry.js → p-e09d6392.system.entry.js} +2 -2
- package/dist/ionic/{p-2507278c.system.entry.js → p-e0a6dc45.system.entry.js} +1 -1
- package/dist/ionic/{p-57ceead7.entry.js → p-e75295c8.entry.js} +1 -1
- package/dist/ionic/{p-f42743d1.entry.js → p-e76dae93.entry.js} +1 -1
- package/dist/ionic/p-e8d56122.js +4 -0
- package/dist/ionic/{p-2abae1cc.system.entry.js → p-e9ddf8fe.system.entry.js} +1 -1
- package/dist/ionic/{p-02e1ebd9.js → p-f1c4dcd4.js} +1 -1
- package/dist/ionic/{p-73dc4950.entry.js → p-f2a72b24.entry.js} +1 -1
- package/dist/ionic/{p-0f191cbe.system.entry.js → p-f658c74e.system.entry.js} +1 -1
- package/dist/ionic/{p-7458862e.system.entry.js → p-f8e37d24.system.entry.js} +1 -1
- package/dist/ionic/{p-f3269679.entry.js → p-f907406b.entry.js} +1 -1
- package/dist/ionic/{p-ed75fcfb.system.entry.js → p-fd4e25b5.system.entry.js} +1 -1
- package/dist/ionic/{p-6d32975a.entry.js → p-fd6cff12.entry.js} +1 -1
- package/dist/ionic/svg/accessibility-outline.svg +1 -1
- package/dist/ionic/svg/accessibility-sharp.svg +1 -1
- package/dist/ionic/svg/accessibility.svg +1 -1
- package/dist/ionic/svg/bag-add-outline.svg +1 -1
- package/dist/ionic/svg/bag-add-sharp.svg +1 -1
- package/dist/ionic/svg/bag-add.svg +1 -1
- package/dist/ionic/svg/bag-check-outline.svg +1 -1
- package/dist/ionic/svg/bag-check-sharp.svg +1 -1
- package/dist/ionic/svg/bag-check.svg +1 -1
- package/dist/ionic/svg/bag-handle-outline.svg +1 -1
- package/dist/ionic/svg/bag-handle-sharp.svg +1 -1
- package/dist/ionic/svg/bag-handle.svg +1 -1
- package/dist/ionic/svg/bag-outline.svg +1 -1
- package/dist/ionic/svg/bag-remove-outline.svg +1 -1
- package/dist/ionic/svg/bag-remove-sharp.svg +1 -1
- package/dist/ionic/svg/bag-remove.svg +1 -1
- package/dist/ionic/svg/bag-sharp.svg +1 -1
- package/dist/ionic/svg/bag.svg +1 -1
- package/dist/ionic/svg/balloon-outline.svg +1 -1
- package/dist/ionic/svg/balloon-sharp.svg +1 -1
- package/dist/ionic/svg/balloon.svg +1 -1
- package/dist/ionic/svg/ban-outline.svg +1 -1
- package/dist/ionic/svg/ban-sharp.svg +1 -1
- package/dist/ionic/svg/ban.svg +1 -1
- package/dist/ionic/svg/body-outline.svg +1 -1
- package/dist/ionic/svg/bowling-ball-outline.svg +1 -1
- package/dist/ionic/svg/bowling-ball-sharp.svg +1 -1
- package/dist/ionic/svg/bowling-ball.svg +1 -1
- package/dist/ionic/svg/calendar-clear-outline.svg +1 -1
- package/dist/ionic/svg/calendar-clear-sharp.svg +1 -1
- package/dist/ionic/svg/calendar-clear.svg +1 -1
- package/dist/ionic/svg/calendar-number-outline.svg +1 -1
- package/dist/ionic/svg/calendar-number-sharp.svg +1 -1
- package/dist/ionic/svg/calendar-number.svg +1 -1
- package/dist/ionic/svg/calendar-outline.svg +1 -1
- package/dist/ionic/svg/calendar-sharp.svg +1 -1
- package/dist/ionic/svg/calendar.svg +1 -1
- package/dist/ionic/svg/chevron-collapse-outline.svg +1 -1
- package/dist/ionic/svg/chevron-collapse-sharp.svg +1 -1
- package/dist/ionic/svg/chevron-collapse.svg +1 -1
- package/dist/ionic/svg/chevron-expand-outline.svg +1 -1
- package/dist/ionic/svg/chevron-expand-sharp.svg +1 -1
- package/dist/ionic/svg/chevron-expand.svg +1 -1
- package/dist/ionic/svg/color-wand-outline.svg +1 -1
- package/dist/ionic/svg/color-wand.svg +1 -1
- package/dist/ionic/svg/diamond-outline.svg +1 -1
- package/dist/ionic/svg/diamond-sharp.svg +1 -1
- package/dist/ionic/svg/diamond.svg +1 -1
- package/dist/ionic/svg/dice-outline.svg +1 -1
- package/dist/ionic/svg/dice-sharp.svg +1 -1
- package/dist/ionic/svg/dice.svg +1 -1
- package/dist/ionic/svg/document-lock-outline.svg +1 -1
- package/dist/ionic/svg/document-lock-sharp.svg +1 -1
- package/dist/ionic/svg/document-lock.svg +1 -1
- package/dist/ionic/svg/extension-puzzle-outline.svg +1 -1
- package/dist/ionic/svg/extension-puzzle-sharp.svg +1 -1
- package/dist/ionic/svg/extension-puzzle.svg +1 -1
- package/dist/ionic/svg/filter-circle-outline.svg +1 -1
- package/dist/ionic/svg/filter-circle-sharp.svg +1 -1
- package/dist/ionic/svg/filter-circle.svg +1 -1
- package/dist/ionic/svg/fish-outline.svg +1 -1
- package/dist/ionic/svg/fish-sharp.svg +1 -1
- package/dist/ionic/svg/fish.svg +1 -1
- package/dist/ionic/svg/footsteps-outline.svg +1 -1
- package/dist/ionic/svg/footsteps-sharp.svg +1 -1
- package/dist/ionic/svg/footsteps.svg +1 -1
- package/dist/ionic/svg/id-card-outline.svg +1 -1
- package/dist/ionic/svg/id-card-sharp.svg +1 -1
- package/dist/ionic/svg/id-card.svg +1 -1
- package/dist/ionic/svg/invert-mode-outline.svg +1 -1
- package/dist/ionic/svg/invert-mode-sharp.svg +1 -1
- package/dist/ionic/svg/invert-mode.svg +1 -1
- package/dist/ionic/svg/logo-alipay.svg +1 -1
- package/dist/ionic/svg/logo-android.svg +1 -1
- package/dist/ionic/svg/logo-apple-ar.svg +1 -1
- package/dist/ionic/svg/logo-behance.svg +1 -1
- package/dist/ionic/svg/logo-bitbucket.svg +1 -1
- package/dist/ionic/svg/logo-deviantart.svg +1 -1
- package/dist/ionic/svg/logo-discord.svg +1 -1
- package/dist/ionic/svg/logo-docker.svg +1 -1
- package/dist/ionic/svg/logo-edge.svg +1 -1
- package/dist/ionic/svg/logo-facebook.svg +1 -1
- package/dist/ionic/svg/logo-figma.svg +1 -1
- package/dist/ionic/svg/logo-firebase.svg +1 -1
- package/dist/ionic/svg/logo-gitlab.svg +1 -1
- package/dist/ionic/svg/logo-ionic.svg +1 -1
- package/dist/ionic/svg/logo-mastodon.svg +1 -1
- package/dist/ionic/svg/logo-medium.svg +1 -1
- package/dist/ionic/svg/logo-microsoft.svg +1 -1
- package/dist/ionic/svg/logo-npm.svg +1 -1
- package/dist/ionic/svg/logo-paypal.svg +1 -1
- package/dist/ionic/svg/logo-soundcloud.svg +1 -1
- package/dist/ionic/svg/logo-tableau.svg +1 -1
- package/dist/ionic/svg/logo-tiktok.svg +1 -1
- package/dist/ionic/svg/logo-venmo.svg +1 -1
- package/dist/ionic/svg/logo-vercel.svg +1 -1
- package/dist/ionic/svg/logo-wechat.svg +1 -1
- package/dist/ionic/svg/logo-yahoo.svg +1 -1
- package/dist/ionic/svg/prism-outline.svg +1 -1
- package/dist/ionic/svg/prism-sharp.svg +1 -1
- package/dist/ionic/svg/prism.svg +1 -1
- package/dist/ionic/svg/scale-outline.svg +1 -1
- package/dist/ionic/svg/scale-sharp.svg +1 -1
- package/dist/ionic/svg/scale.svg +1 -1
- package/dist/ionic/svg/server-outline.svg +1 -1
- package/dist/ionic/svg/server-sharp.svg +1 -1
- package/dist/ionic/svg/server.svg +1 -1
- package/dist/ionic/svg/shield-half-outline.svg +1 -1
- package/dist/ionic/svg/shield-half-sharp.svg +1 -1
- package/dist/ionic/svg/shield-half.svg +1 -1
- package/dist/ionic/svg/sparkles-outline.svg +1 -1
- package/dist/ionic/svg/sparkles-sharp.svg +1 -1
- package/dist/ionic/svg/sparkles.svg +1 -1
- package/dist/ionic/svg/storefront-outline.svg +1 -1
- package/dist/ionic/svg/storefront-sharp.svg +1 -1
- package/dist/ionic/svg/storefront.svg +1 -1
- package/dist/ionic/svg/telescope-outline.svg +1 -1
- package/dist/ionic/svg/telescope-sharp.svg +1 -1
- package/dist/ionic/svg/telescope.svg +1 -1
- package/dist/ionic/svg/ticket-outline.svg +1 -1
- package/dist/ionic/svg/ticket-sharp.svg +1 -1
- package/dist/ionic/svg/ticket.svg +1 -1
- package/dist/ionic/svg/today-outline.svg +1 -1
- package/dist/ionic/svg/today-sharp.svg +1 -1
- package/dist/ionic/svg/today.svg +1 -1
- package/dist/ionic/svg/unlink-outline.svg +1 -1
- package/dist/ionic/svg/unlink-sharp.svg +1 -1
- package/dist/ionic/svg/unlink.svg +1 -1
- package/dist/ionic/svg/videocam-off-outline.svg +1 -1
- package/dist/ionic/svg/videocam-off-sharp.svg +1 -1
- package/dist/ionic/svg/videocam-off.svg +1 -1
- package/dist/ionic/svg/wifi-outline.svg +1 -1
- package/dist/ionic/svg/wifi-sharp.svg +1 -1
- package/dist/ionic/svg/wifi.svg +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +6 -0
- package/dist/types/components/modal/animations/sheet.d.ts +1 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +1 -0
- package/dist/types/components/modal/modal.d.ts +11 -0
- package/dist/types/components/radio-group/radio-group.d.ts +15 -0
- package/dist/types/components/segment-button/segment-button.d.ts +1 -2
- package/dist/types/components/select/select.d.ts +6 -0
- package/dist/types/components/toggle/toggle.d.ts +6 -0
- package/dist/types/components/toolbar/toolbar.d.ts +4 -0
- package/dist/types/components.d.ts +48 -0
- package/dist/types/utils/config.d.ts +9 -0
- package/dist/types/utils/helpers.d.ts +0 -1
- package/dist/types/utils/logging/index.d.ts +13 -1
- package/hydrate/index.js +430 -221
- package/hydrate/index.mjs +430 -221
- package/package.json +5 -5
- package/dist/esm-es5/index-9b0d46f4.js +0 -4
- package/dist/esm-es5/input-shims-0e65111b.js +0 -4
- package/dist/esm-es5/md.transition-33826623.js +0 -4
- package/dist/esm-es5/status-tap-163e8128.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-075a94bd.js +0 -4
- package/dist/ionic/p-0a59f4fa.entry.js +0 -4
- package/dist/ionic/p-0e43be1b.entry.js +0 -4
- package/dist/ionic/p-0ee3b5a2.system.js +0 -4
- package/dist/ionic/p-135e5731.js +0 -4
- package/dist/ionic/p-14be4015.entry.js +0 -4
- package/dist/ionic/p-16bfb979.system.entry.js +0 -4
- package/dist/ionic/p-1f405274.js +0 -4
- package/dist/ionic/p-25fa1d30.system.entry.js +0 -4
- package/dist/ionic/p-265939f0.entry.js +0 -4
- package/dist/ionic/p-2c9eb774.system.js +0 -4
- package/dist/ionic/p-49a0e74c.entry.js +0 -4
- package/dist/ionic/p-56da53ad.system.entry.js +0 -4
- package/dist/ionic/p-6190d0d6.entry.js +0 -4
- package/dist/ionic/p-68dc53a5.js +0 -4
- package/dist/ionic/p-83810019.entry.js +0 -4
- package/dist/ionic/p-8a836849.entry.js +0 -4
- package/dist/ionic/p-8d5472fb.entry.js +0 -4
- package/dist/ionic/p-b7433d7d.js +0 -4
- package/dist/ionic/p-cc700b6b.entry.js +0 -4
- package/dist/ionic/p-df862603.entry.js +0 -4
- package/dist/ionic/p-e308de5b.system.js +0 -4
- package/dist/ionic/p-f4066aa9.entry.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
- package/dist/ionic/svg/arrow-down-left-box-outline.svg +0 -1
- package/dist/ionic/svg/arrow-down-left-box-sharp.svg +0 -1
- package/dist/ionic/svg/arrow-down-left-box.svg +0 -1
- package/dist/ionic/svg/arrow-down-right-box-outline.svg +0 -1
- package/dist/ionic/svg/arrow-down-right-box-sharp.svg +0 -1
- package/dist/ionic/svg/arrow-down-right-box.svg +0 -1
- package/dist/ionic/svg/arrow-up-left-box-outline.svg +0 -1
- package/dist/ionic/svg/arrow-up-left-box-sharp.svg +0 -1
- package/dist/ionic/svg/arrow-up-left-box.svg +0 -1
- package/dist/ionic/svg/arrow-up-right-box-outline.svg +0 -1
- package/dist/ionic/svg/arrow-up-right-box-sharp.svg +0 -1
- package/dist/ionic/svg/arrow-up-right-box.svg +0 -1
- package/dist/ionic/svg/binoculars-outline.svg +0 -1
- package/dist/ionic/svg/binoculars-sharp.svg +0 -1
- package/dist/ionic/svg/binoculars.svg +0 -1
- package/dist/ionic/svg/logo-appflow.svg +0 -1
- package/dist/ionic/svg/logo-trapeze.svg +0 -1
- package/dist/ionic/svg/logo-x.svg +0 -1
|
@@ -55,13 +55,13 @@ export class Label {
|
|
|
55
55
|
render() {
|
|
56
56
|
const position = this.position;
|
|
57
57
|
const mode = getIonMode(this);
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: '4da84c95351a74b547f8224ecfa66924d21398c5', class: createColorClasses(this.color, {
|
|
59
59
|
[mode]: true,
|
|
60
60
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
61
61
|
[`label-${position}`]: position !== undefined,
|
|
62
62
|
[`label-no-animate`]: this.noAnimate,
|
|
63
63
|
'label-rtl': document.dir === 'rtl',
|
|
64
|
-
}) }, h("slot", { key: '
|
|
64
|
+
}) }, h("slot", { key: 'ea158ebb620275e5492965234d0ab925d391f919' })));
|
|
65
65
|
}
|
|
66
66
|
static get is() { return "ion-label"; }
|
|
67
67
|
static get encapsulation() { return "scoped"; }
|
|
@@ -15,10 +15,10 @@ export class ListHeader {
|
|
|
15
15
|
render() {
|
|
16
16
|
const { lines } = this;
|
|
17
17
|
const mode = getIonMode(this);
|
|
18
|
-
return (h(Host, { key: '
|
|
18
|
+
return (h(Host, { key: '95ce2135e2b1ad4d7d6020b0fb9bc6e02b3c0851', class: createColorClasses(this.color, {
|
|
19
19
|
[mode]: true,
|
|
20
20
|
[`list-header-lines-${lines}`]: lines !== undefined,
|
|
21
|
-
}) }, h("div", { key: '
|
|
21
|
+
}) }, h("div", { key: '3065b0a094bc31a90518898a5126a813c8a33816', class: "list-header-inner" }, h("slot", { key: 'fe15c87d7867f3e5d8185645c49c0228496697b8' }))));
|
|
22
22
|
}
|
|
23
23
|
static get is() { return "ion-list-header"; }
|
|
24
24
|
static get encapsulation() { return "shadow"; }
|
|
@@ -161,9 +161,9 @@ export class Loading {
|
|
|
161
161
|
* Otherwise, don't set aria-labelledby.
|
|
162
162
|
*/
|
|
163
163
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
164
|
-
return (h(Host, Object.assign({ key: '
|
|
164
|
+
return (h(Host, Object.assign({ key: 'd6066c8b56b1fe4b597a243a7dab191ef0d21286', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
165
165
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
166
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
166
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '2431eda00a2a3f510f5dfc39b7c7d47c056dfa3d', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'cf210aaf5e754e4eccdb49cf7ead4647b3f9b2d1', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'fa9375143d391656d70e181d25b952c77c2fc6ec', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '8e4a4ed994f7f62df86b03696ac95162df41f52d', class: "loading-spinner" }, h("ion-spinner", { key: 'e5b323c272d365853ba92bd211e390b4fd4751d2', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'cae35ec8c34800477bff3ebcec8010e632158233', tabindex: "0", "aria-hidden": "true" })));
|
|
167
167
|
}
|
|
168
168
|
static get is() { return "ion-loading"; }
|
|
169
169
|
static get encapsulation() { return "scoped"; }
|
|
@@ -614,14 +614,14 @@ export class Menu {
|
|
|
614
614
|
* the ionBackButton listener in the menu controller
|
|
615
615
|
* will handle closing the menu when Escape is pressed.
|
|
616
616
|
*/
|
|
617
|
-
return (h(Host, { key: '
|
|
617
|
+
return (h(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
618
618
|
[mode]: true,
|
|
619
619
|
[`menu-type-${type}`]: true,
|
|
620
620
|
'menu-enabled': !disabled,
|
|
621
621
|
[`menu-side-${side}`]: true,
|
|
622
622
|
'menu-pane-visible': isPaneVisible,
|
|
623
623
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
624
|
-
} }, h("div", { key: '
|
|
624
|
+
} }, h("div", { key: '3c9bec2862b7fb9d88de66b1600be01f6735e3dd', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '76283b4b2a65c78646f92c3b273eea021eda499c' })), h("ion-backdrop", { key: '121c395bc4873542a1b6ae2c9e23f2e881e75d93', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
625
625
|
}
|
|
626
626
|
static get is() { return "ion-menu"; }
|
|
627
627
|
static get encapsulation() { return "shadow"; }
|
|
@@ -46,7 +46,7 @@ export class MenuButton {
|
|
|
46
46
|
type: this.type,
|
|
47
47
|
};
|
|
48
48
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
49
|
-
return (h(Host, { key: '
|
|
49
|
+
return (h(Host, { key: '3cde3704f28eb275f4a5ff2985bbb68c1024e79c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
|
|
50
50
|
[mode]: true,
|
|
51
51
|
button: true, // ion-buttons target .button
|
|
52
52
|
'menu-button-hidden': hidden,
|
|
@@ -55,7 +55,7 @@ export class MenuButton {
|
|
|
55
55
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
56
56
|
'ion-activatable': true,
|
|
57
57
|
'ion-focusable': true,
|
|
58
|
-
}) }, h("button", Object.assign({ key: '
|
|
58
|
+
}) }, h("button", Object.assign({ key: 'a02a3374288bd1759b6e352ada8eab0d45c6422f' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: 'ba699f2277a4e7b27ce5e42faeefc53d8805bb43', class: "button-inner" }, h("slot", { key: '829fe6cbdeb173f50d1a670389d1565baa6273e4' }, h("ion-icon", { key: 'a9a9f7b8dcffc648a8429fe0adbe766869de72fd', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { key: '48deca9a771a249f2fc76eaa8b9741c8d66d8355', type: "unbounded" }))));
|
|
59
59
|
}
|
|
60
60
|
static get is() { return "ion-menu-button"; }
|
|
61
61
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,10 +26,10 @@ export class MenuToggle {
|
|
|
26
26
|
render() {
|
|
27
27
|
const mode = getIonMode(this);
|
|
28
28
|
const hidden = this.autoHide && !this.visible;
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
return (h(Host, { key: '88e88fa13ac7f10ba3acfe378bd11cda0c7e2749', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
30
30
|
[mode]: true,
|
|
31
31
|
'menu-toggle-hidden': hidden,
|
|
32
|
-
} }, h("slot", { key: '
|
|
32
|
+
} }, h("slot", { key: '0a14c7b63eda64702d2fd1b4bc7db4809892842d' })));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "ion-menu-toggle"; }
|
|
35
35
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,22 +13,68 @@ const createEnterAnimation = () => {
|
|
|
13
13
|
})
|
|
14
14
|
.afterClearStyles(['pointer-events']);
|
|
15
15
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
16
|
-
return { backdropAnimation, wrapperAnimation };
|
|
16
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* iOS Modal Enter Animation for the Card presentation style
|
|
20
20
|
*/
|
|
21
21
|
export const iosEnterAnimation = (baseEl, opts) => {
|
|
22
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
22
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
23
23
|
const root = getElementRoot(baseEl);
|
|
24
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
24
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
25
25
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
26
26
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
27
|
+
// The content animation is only added if scrolling is enabled for
|
|
28
|
+
// all the breakpoints.
|
|
29
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
27
30
|
const baseAnimation = createAnimation('entering-base')
|
|
28
31
|
.addElement(baseEl)
|
|
29
32
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
30
33
|
.duration(500)
|
|
31
|
-
.addAnimation(wrapperAnimation)
|
|
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
|
+
});
|
|
75
|
+
if (contentAnimation) {
|
|
76
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
77
|
+
}
|
|
32
78
|
if (presentingEl) {
|
|
33
79
|
const isMobile = window.innerWidth < 768;
|
|
34
80
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -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 } = opts;
|
|
17
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = 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,7 +23,29 @@ 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)
|
|
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
|
+
});
|
|
27
49
|
if (presentingEl) {
|
|
28
50
|
const isMobile = window.innerWidth < 768;
|
|
29
51
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -15,20 +15,67 @@ const createEnterAnimation = () => {
|
|
|
15
15
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
16
16
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
17
17
|
]);
|
|
18
|
-
return { backdropAnimation, wrapperAnimation };
|
|
18
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
21
|
* Md Modal Enter Animation
|
|
22
22
|
*/
|
|
23
23
|
export const mdEnterAnimation = (baseEl, opts) => {
|
|
24
|
-
const { currentBreakpoint } = opts;
|
|
24
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
25
25
|
const root = getElementRoot(baseEl);
|
|
26
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
26
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
27
27
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
28
28
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
29
|
-
|
|
29
|
+
// The content animation is only added if scrolling is enabled for
|
|
30
|
+
// all the breakpoints.
|
|
31
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
32
|
+
const baseAnimation = createAnimation()
|
|
30
33
|
.addElement(baseEl)
|
|
31
34
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
32
35
|
.duration(280)
|
|
33
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
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
|
+
});
|
|
77
|
+
if (contentAnimation) {
|
|
78
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
79
|
+
}
|
|
80
|
+
return baseAnimation;
|
|
34
81
|
};
|
|
@@ -16,13 +16,36 @@ const createLeaveAnimation = () => {
|
|
|
16
16
|
* Md Modal Leave Animation
|
|
17
17
|
*/
|
|
18
18
|
export const mdLeaveAnimation = (baseEl, opts) => {
|
|
19
|
-
const { currentBreakpoint } = opts;
|
|
19
|
+
const { currentBreakpoint, expandToScroll } = 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'));
|
|
23
23
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
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])
|
|
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
|
+
});
|
|
50
|
+
return baseAnimation;
|
|
28
51
|
};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
5
|
import { getBackdropValueForSheet } from "../utils";
|
|
6
6
|
export const createSheetEnterAnimation = (opts) => {
|
|
7
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
7
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
8
8
|
/**
|
|
9
9
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
10
10
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -24,7 +24,16 @@ export const createSheetEnterAnimation = (opts) => {
|
|
|
24
24
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
25
25
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
26
26
|
]);
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
29
|
+
*/
|
|
30
|
+
const contentAnimation = !expandToScroll
|
|
31
|
+
? createAnimation('contentAnimation').keyframes([
|
|
32
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
33
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
34
|
+
])
|
|
35
|
+
: undefined;
|
|
36
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
28
37
|
};
|
|
29
38
|
export const createSheetLeaveAnimation = (opts) => {
|
|
30
39
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -7,7 +7,7 @@ import { clamp, raf, getElementRoot } from "../../../utils/helpers";
|
|
|
7
7
|
import { FOCUS_TRAP_DISABLE_CLASS } from "../../../utils/overlays";
|
|
8
8
|
import { getBackdropValueForSheet } from "../utils";
|
|
9
9
|
import { calculateSpringStep, handleCanDismiss } from "./utils";
|
|
10
|
-
export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
10
|
+
export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
11
11
|
// Defaults for the sheet swipe animation
|
|
12
12
|
const defaultBackdrop = [
|
|
13
13
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -24,6 +24,10 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
24
24
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
25
25
|
],
|
|
26
26
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
27
|
+
CONTENT_KEYFRAMES: [
|
|
28
|
+
{ offset: 0, maxHeight: '100%' },
|
|
29
|
+
{ offset: 1, maxHeight: '0%' },
|
|
30
|
+
],
|
|
27
31
|
};
|
|
28
32
|
const contentEl = baseEl.querySelector('ion-content');
|
|
29
33
|
const height = wrapperEl.clientHeight;
|
|
@@ -31,10 +35,11 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
31
35
|
let offset = 0;
|
|
32
36
|
let canDismissBlocksGesture = false;
|
|
33
37
|
const canDismissMaxStep = 0.95;
|
|
34
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
35
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
36
38
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
37
39
|
const minBreakpoint = breakpoints[0];
|
|
40
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
41
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
42
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
38
43
|
const enableBackdrop = () => {
|
|
39
44
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
40
45
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -57,6 +62,31 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
57
62
|
*/
|
|
58
63
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
59
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
67
|
+
* @param footer The footer to show.
|
|
68
|
+
*/
|
|
69
|
+
const swapFooterVisibility = (footer) => {
|
|
70
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
71
|
+
if (!originalFooter) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
75
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
76
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
77
|
+
footerToShow.style.removeProperty('display');
|
|
78
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
79
|
+
const page = baseEl.querySelector('.ion-page');
|
|
80
|
+
if (footer === 'original') {
|
|
81
|
+
page.style.removeProperty('padding-bottom');
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const pagePadding = footerToShow.clientHeight;
|
|
85
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
86
|
+
}
|
|
87
|
+
footerToHide.style.setProperty('display', 'none');
|
|
88
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
89
|
+
};
|
|
60
90
|
/**
|
|
61
91
|
* After the entering animation completes,
|
|
62
92
|
* we need to set the animation to go from
|
|
@@ -68,6 +98,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
68
98
|
if (wrapperAnimation && backdropAnimation) {
|
|
69
99
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
70
100
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
101
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
71
102
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
72
103
|
/**
|
|
73
104
|
* If backdrop is not enabled, then content
|
|
@@ -84,7 +115,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
84
115
|
disableBackdrop();
|
|
85
116
|
}
|
|
86
117
|
}
|
|
87
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
118
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
88
119
|
contentEl.scrollY = false;
|
|
89
120
|
}
|
|
90
121
|
const canStart = (detail) => {
|
|
@@ -98,6 +129,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
98
129
|
*/
|
|
99
130
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
100
131
|
currentBreakpoint = getCurrentBreakpoint();
|
|
132
|
+
/**
|
|
133
|
+
* If we have expandToScroll disabled, we should not allow the swipe gesture to start
|
|
134
|
+
* if the content is being swiped.
|
|
135
|
+
*/
|
|
136
|
+
if (!expandToScroll && contentEl) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
101
139
|
if (currentBreakpoint === 1 && contentEl) {
|
|
102
140
|
/**
|
|
103
141
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -128,6 +166,15 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
128
166
|
* Remove undefined check
|
|
129
167
|
*/
|
|
130
168
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
169
|
+
/**
|
|
170
|
+
* If expandToScroll is disabled, we need to swap
|
|
171
|
+
* the footer visibility to the original, so if the modal
|
|
172
|
+
* is dismissed, the footer dismisses with the modal
|
|
173
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
174
|
+
*/
|
|
175
|
+
if (!expandToScroll) {
|
|
176
|
+
swapFooterVisibility('original');
|
|
177
|
+
}
|
|
131
178
|
/**
|
|
132
179
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
133
180
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -243,6 +290,19 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
243
290
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
244
291
|
},
|
|
245
292
|
]);
|
|
293
|
+
if (contentAnimation) {
|
|
294
|
+
/**
|
|
295
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
296
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
297
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
298
|
+
* behavior would show the content off the screen and only allow
|
|
299
|
+
* scrolling when the sheet is fully expanded.
|
|
300
|
+
*/
|
|
301
|
+
contentAnimation.keyframes([
|
|
302
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
303
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
304
|
+
]);
|
|
305
|
+
}
|
|
246
306
|
animation.progressStep(0);
|
|
247
307
|
}
|
|
248
308
|
/**
|
|
@@ -250,6 +310,14 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
250
310
|
* snapping animation completes.
|
|
251
311
|
*/
|
|
252
312
|
gesture.enable(false);
|
|
313
|
+
/**
|
|
314
|
+
* If expandToScroll is disabled, we need to swap
|
|
315
|
+
* the footer visibility to the cloned one so the footer
|
|
316
|
+
* doesn't flicker when the sheet's height is animated.
|
|
317
|
+
*/
|
|
318
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
319
|
+
swapFooterVisibility('cloned');
|
|
320
|
+
}
|
|
253
321
|
if (shouldPreventDismiss) {
|
|
254
322
|
handleCanDismiss(baseEl, animation);
|
|
255
323
|
}
|
|
@@ -257,13 +325,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
257
325
|
onDismiss();
|
|
258
326
|
}
|
|
259
327
|
/**
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
328
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
329
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
330
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
331
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
332
|
+
* released, so we align with that behavior.
|
|
265
333
|
*/
|
|
266
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
334
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
267
335
|
contentEl.scrollY = true;
|
|
268
336
|
}
|
|
269
337
|
return new Promise((resolve) => {
|
|
@@ -281,6 +349,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
281
349
|
raf(() => {
|
|
282
350
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
283
351
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
352
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
284
353
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
285
354
|
currentBreakpoint = snapToBreakpoint;
|
|
286
355
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -201,6 +201,12 @@ ion-backdrop {
|
|
|
201
201
|
bottom: 0;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
:host(.modal-sheet.modal-no-expand-scroll) ion-footer {
|
|
205
|
+
position: absolute;
|
|
206
|
+
bottom: 0;
|
|
207
|
+
width: var(--width);
|
|
208
|
+
}
|
|
209
|
+
|
|
204
210
|
/**
|
|
205
211
|
* Convert a font size to a dynamic font size.
|
|
206
212
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -325,4 +331,14 @@ ion-backdrop {
|
|
|
325
331
|
border-start-end-radius: var(--border-radius);
|
|
326
332
|
border-end-end-radius: 0;
|
|
327
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;
|
|
328
344
|
}
|