@ionic/core 8.0.2-nightly.20240501 → 8.1.0
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/index2.js +119 -1
- package/components/ion-content.js +6 -4
- package/components/ion-datetime-button.js +2 -2
- package/components/ion-datetime.js +15 -13
- package/components/ion-fab-button.js +2 -2
- package/components/ion-fab-list.js +2 -2
- package/components/ion-fab.js +2 -2
- package/components/ion-footer.js +2 -2
- package/components/ion-grid.js +2 -2
- package/components/ion-header.js +2 -2
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +2 -2
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-password-toggle.js +3 -3
- package/components/ion-input.js +8 -4
- 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-modal.js +10 -8
- 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 +3 -3
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +2 -2
- 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-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +3 -3
- package/components/ion-toolbar.js +2 -2
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/list.js +1 -1
- package/components/overlays.js +3 -2
- package/components/picker-column-option.js +2 -2
- package/components/picker-column.js +156 -4
- package/components/picker-column2.js +2 -2
- package/components/picker.js +2 -2
- package/components/popover.js +6 -4
- package/components/radio-group.js +1 -1
- package/components/radio.js +3 -3
- package/components/ripple-effect.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{index-6047957b.js → index-c0b7f8f4.js} +124 -6
- package/dist/cjs/index.cjs.js +5 -5
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-app_8.cjs.entry.js +15 -14
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +20 -18
- package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
- 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 +3 -3
- package/dist/cjs/ion-input.cjs.entry.js +7 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +10 -9
- package/dist/cjs/ion-nav_2.cjs.entry.js +4 -3
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column.cjs.entry.js +154 -4
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +6 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
- 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 +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-59b0e1d9.js → ios.transition-5ddf92f1.js} +3 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-0cc7c831.js → md.transition-047c18c5.js} +3 -1
- package/dist/cjs/{overlays-2feabb85.js → overlays-cb04d075.js} +3 -1
- package/dist/collection/components/content/content.js +23 -4
- package/dist/collection/components/content/test/content.spec.js +27 -0
- package/dist/collection/components/datetime/datetime.js +15 -13
- package/dist/collection/components/datetime/test/overlay-roles/datetime.e2e.js +34 -0
- package/dist/collection/components/datetime-button/datetime-button.js +2 -2
- package/dist/collection/components/fab/fab.js +2 -2
- package/dist/collection/components/fab-button/fab-button.js +2 -2
- package/dist/collection/components/fab-list/fab-list.js +2 -2
- package/dist/collection/components/footer/footer.js +2 -2
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/img/img.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
- package/dist/collection/components/input/input.js +24 -4
- package/dist/collection/components/input/test/input.spec.js +13 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
- 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/list.js +1 -1
- 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/gestures/sheet.js +3 -2
- package/dist/collection/components/modal/modal.js +25 -6
- package/dist/collection/components/modal/test/basic/modal.spec.js +19 -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/picker.js +2 -2
- package/dist/collection/components/picker-column/picker-column.css +19 -0
- package/dist/collection/components/picker-column/picker-column.js +158 -3
- package/dist/collection/components/picker-column/test/picker-column.spec.js +83 -0
- 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 +23 -4
- package/dist/collection/components/popover/test/basic/popover.spec.js +19 -0
- 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.js +1 -1
- 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 +3 -3
- package/dist/collection/components/select/select.js +2 -2
- 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 +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/utils/focus-controller/index.js +112 -0
- package/dist/collection/utils/focus-controller/test/generic/focus-controller.e2e.js +52 -0
- package/dist/collection/utils/focus-controller/test/ionic/focus-controller.e2e.js +52 -0
- package/dist/collection/utils/overlays.js +2 -1
- package/dist/collection/utils/transition/index.js +11 -1
- package/dist/docs.json +96 -1
- package/dist/esm/{index-f4460246.js → index-8e6b6a24.js} +121 -3
- package/dist/esm/index.js +5 -5
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-app_8.entry.js +15 -14
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +3 -3
- package/dist/esm/ion-datetime-button.entry.js +2 -2
- package/dist/esm/ion-datetime_3.entry.js +20 -18
- package/dist/esm/ion-fab_3.entry.js +6 -6
- 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 +3 -3
- package/dist/esm/ion-input.entry.js +7 -4
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +12 -12
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +10 -9
- package/dist/esm/ion-nav_2.entry.js +4 -3
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-picker-column.entry.js +154 -4
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +6 -5
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +4 -4
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +4 -4
- package/dist/esm/ion-segment_2.entry.js +5 -5
- package/dist/esm/ion-select_3.entry.js +5 -5
- 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 +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-72f59adb.js → ios.transition-e35d0940.js} +3 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-ef0437fe.js → md.transition-4b90a1f0.js} +3 -1
- package/dist/esm/{overlays-56045efc.js → overlays-df2c06b2.js} +3 -2
- package/dist/esm-es5/index-8e6b6a24.js +4 -0
- package/dist/esm-es5/index.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-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_2.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-e35d0940.js +4 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-4b90a1f0.js +4 -0
- package/dist/esm-es5/{overlays-56045efc.js → overlays-df2c06b2.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-e58a04ae.system.entry.js → p-01a27023.system.entry.js} +1 -1
- package/dist/ionic/p-0395be73.entry.js +4 -0
- package/dist/ionic/p-049d43bd.entry.js +4 -0
- package/dist/ionic/p-0536574e.entry.js +4 -0
- package/dist/ionic/{p-4f17f03d.entry.js → p-09538818.entry.js} +1 -1
- package/dist/ionic/{p-9c5b6727.entry.js → p-09b4e9ec.entry.js} +1 -1
- package/dist/ionic/{p-22ef5198.system.entry.js → p-0a6d801e.system.entry.js} +1 -1
- package/dist/ionic/{p-dc242acb.system.entry.js → p-0b007acc.system.entry.js} +1 -1
- package/dist/ionic/{p-100d079f.system.entry.js → p-10feef7e.system.entry.js} +1 -1
- package/dist/ionic/p-15d1ddba.js +4 -0
- package/dist/ionic/{p-2bd9b326.system.entry.js → p-199f826f.system.entry.js} +1 -1
- package/dist/ionic/p-1b435d20.entry.js +4 -0
- package/dist/ionic/{p-7cf7ef9f.entry.js → p-1eb63fa4.entry.js} +1 -1
- package/dist/ionic/{p-672b53f3.entry.js → p-207e11dc.entry.js} +1 -1
- package/dist/ionic/{p-32df9442.entry.js → p-29de09dd.entry.js} +1 -1
- package/dist/ionic/p-30baae57.system.js +1 -1
- package/dist/ionic/p-33e10509.system.js +4 -0
- package/dist/ionic/{p-eed23392.system.entry.js → p-380efbfa.system.entry.js} +1 -1
- package/dist/ionic/p-3c27be4a.entry.js +4 -0
- package/dist/ionic/{p-022bc8ff.entry.js → p-3f53a0b1.entry.js} +1 -1
- package/dist/ionic/{p-0ae12601.entry.js → p-433157a4.entry.js} +1 -1
- package/dist/ionic/p-498eb648.system.entry.js +4 -0
- package/dist/ionic/{p-eaac2522.system.entry.js → p-4d8f408d.system.entry.js} +1 -1
- package/dist/ionic/{p-44edbb29.system.entry.js → p-509620b8.system.entry.js} +1 -1
- package/dist/ionic/{p-797fc793.entry.js → p-5109a566.entry.js} +1 -1
- package/dist/ionic/{p-af6c2b39.entry.js → p-52ce473d.entry.js} +1 -1
- package/dist/ionic/{p-4ba654fa.system.entry.js → p-57bc32e2.system.entry.js} +1 -1
- package/dist/ionic/p-5dc9f99a.entry.js +4 -0
- package/dist/ionic/p-5ec3bb70.system.entry.js +4 -0
- package/dist/ionic/{p-0300cf19.system.entry.js → p-62e44e4a.system.entry.js} +1 -1
- package/dist/ionic/p-66ed603b.js +4 -0
- package/dist/ionic/p-68bb9870.system.entry.js +4 -0
- package/dist/ionic/{p-2912d62c.system.entry.js → p-6a2cf398.system.entry.js} +1 -1
- package/dist/ionic/{p-7f512c4d.system.entry.js → p-6df12af0.system.entry.js} +1 -1
- package/dist/ionic/{p-5d723a0a.entry.js → p-6ec88301.entry.js} +1 -1
- package/dist/ionic/p-6f008ad2.js +4 -0
- package/dist/ionic/{p-86a7576c.system.entry.js → p-700567ab.system.entry.js} +1 -1
- package/dist/ionic/p-712d54ae.js +4 -0
- package/dist/ionic/{p-508d5d0d.entry.js → p-7349de07.entry.js} +1 -1
- package/dist/ionic/{p-3098a7cb.entry.js → p-78405458.entry.js} +1 -1
- package/dist/ionic/{p-cac9bd5d.entry.js → p-7eb47906.entry.js} +1 -1
- package/dist/ionic/{p-637e85a2.entry.js → p-80265a58.entry.js} +1 -1
- package/dist/ionic/{p-f8b4ac1f.system.entry.js → p-83d748f8.system.entry.js} +2 -2
- package/dist/ionic/{p-3b974a28.entry.js → p-8a03fbee.entry.js} +1 -1
- package/dist/ionic/{p-a23a7b64.system.entry.js → p-8cb80f83.system.entry.js} +1 -1
- package/dist/ionic/{p-bae97f84.system.entry.js → p-8d14ee8c.system.entry.js} +2 -2
- package/dist/ionic/{p-61d8c43c.system.entry.js → p-9213681c.system.entry.js} +1 -1
- package/dist/ionic/p-92d7e99d.system.js +4 -0
- package/dist/ionic/{p-e1f7425b.system.entry.js → p-9664a1a2.system.entry.js} +1 -1
- package/dist/ionic/{p-762156c0.entry.js → p-9797f6eb.entry.js} +1 -1
- package/dist/ionic/{p-dba28cb1.system.entry.js → p-9848d7be.system.entry.js} +1 -1
- package/dist/ionic/{p-5b183a1c.entry.js → p-99884813.entry.js} +1 -1
- package/dist/ionic/{p-a87cdd33.system.entry.js → p-99ca9787.system.entry.js} +1 -1
- package/dist/ionic/{p-a51b22fb.system.entry.js → p-9bfd7cda.system.entry.js} +1 -1
- package/dist/ionic/p-9c6dcf78.system.entry.js +4 -0
- package/dist/ionic/{p-1ae3a136.system.entry.js → p-a2e94ade.system.entry.js} +1 -1
- package/dist/ionic/p-a488b7ab.system.js +4 -0
- package/dist/ionic/{p-18470679.entry.js → p-a4ab7449.entry.js} +1 -1
- package/dist/ionic/{p-5d26afde.system.entry.js → p-a50f23bf.system.entry.js} +2 -2
- package/dist/ionic/p-a6a8b478.system.entry.js +4 -0
- package/dist/ionic/{p-47212f88.system.entry.js → p-a76ab3ea.system.entry.js} +1 -1
- package/dist/ionic/{p-3a3d5a1a.entry.js → p-aaaaaea1.entry.js} +1 -1
- package/dist/ionic/{p-cfbf4588.entry.js → p-b02eda30.entry.js} +1 -1
- package/dist/ionic/{p-8162bcf4.entry.js → p-b04c27d8.entry.js} +1 -1
- package/dist/ionic/{p-a822c02f.system.entry.js → p-b07affd5.system.entry.js} +1 -1
- package/dist/ionic/{p-15daa308.system.entry.js → p-b28d3ccb.system.entry.js} +2 -2
- package/dist/ionic/{p-3fefc7cd.entry.js → p-b563b6ac.entry.js} +1 -1
- package/dist/ionic/{p-27206537.system.entry.js → p-b9181033.system.entry.js} +1 -1
- package/dist/ionic/{p-6143e16a.entry.js → p-ba70039f.entry.js} +1 -1
- package/dist/ionic/{p-74806c03.entry.js → p-bbbe869e.entry.js} +1 -1
- package/dist/ionic/p-c0e9ba51.entry.js +4 -0
- package/dist/ionic/p-c5dd0892.system.entry.js +4 -0
- package/dist/ionic/p-cec8589b.system.js +4 -0
- package/dist/ionic/{p-939dbcc6.system.entry.js → p-d69b26d9.system.entry.js} +1 -1
- package/dist/ionic/p-d9f3d68a.entry.js +4 -0
- package/dist/ionic/{p-fb088c7d.system.entry.js → p-dc0d9ff5.system.entry.js} +2 -2
- package/dist/ionic/{p-53c46dd1.entry.js → p-dc1e363a.entry.js} +1 -1
- package/dist/ionic/{p-4c103f8d.system.entry.js → p-e0a8ffd0.system.entry.js} +1 -1
- package/dist/ionic/{p-091697a4.system.entry.js → p-e6e197f5.system.entry.js} +1 -1
- package/dist/ionic/{p-2d641da7.entry.js → p-e6e88ab9.entry.js} +1 -1
- package/dist/ionic/{p-f14daa66.system.js → p-eb3023c9.system.js} +1 -1
- package/dist/ionic/p-ecbdbf25.system.entry.js +4 -0
- package/dist/ionic/{p-3dd57c9c.system.entry.js → p-ed5aebaa.system.entry.js} +1 -1
- package/dist/ionic/p-f0e81ddb.entry.js +4 -0
- package/dist/ionic/{p-d979153a.entry.js → p-f357707e.entry.js} +1 -1
- package/dist/ionic/{p-430a7e95.entry.js → p-f53bcebd.entry.js} +1 -1
- package/dist/ionic/p-f9baf25c.entry.js +4 -0
- package/dist/ionic/{p-307c6b05.entry.js → p-fa8f2e62.entry.js} +1 -1
- package/dist/ionic/{p-05a8a97d.system.entry.js → p-fb21fd1c.system.entry.js} +1 -1
- package/dist/ionic/{p-23610251.entry.js → p-fcecca8f.entry.js} +1 -1
- package/dist/types/components/content/content.d.ts +8 -0
- package/dist/types/components/input/input.d.ts +4 -0
- package/dist/types/components/modal/modal-interface.d.ts +1 -0
- package/dist/types/components/modal/modal.d.ts +18 -0
- package/dist/types/components/picker-column/picker-column.d.ts +35 -0
- package/dist/types/components/popover/popover-interface.d.ts +1 -0
- package/dist/types/components/popover/popover.d.ts +18 -0
- package/dist/types/components.d.ts +32 -0
- package/dist/types/utils/config.d.ts +9 -0
- package/dist/types/utils/focus-controller/index.d.ts +13 -0
- package/dist/types/utils/overlays.d.ts +1 -0
- package/hydrate/index.js +426 -146
- package/package.json +1 -1
- package/dist/esm-es5/index-f4460246.js +0 -4
- package/dist/esm-es5/ios.transition-72f59adb.js +0 -4
- package/dist/esm-es5/md.transition-ef0437fe.js +0 -4
- package/dist/ionic/p-00d9d02d.js +0 -4
- package/dist/ionic/p-0df52fbc.entry.js +0 -4
- package/dist/ionic/p-16b35bc9.system.entry.js +0 -4
- package/dist/ionic/p-19d50867.system.entry.js +0 -4
- package/dist/ionic/p-3b185894.system.js +0 -4
- package/dist/ionic/p-3bece4aa.entry.js +0 -4
- package/dist/ionic/p-3ce83c9b.entry.js +0 -4
- package/dist/ionic/p-439b8b3c.system.entry.js +0 -4
- package/dist/ionic/p-657157d7.entry.js +0 -4
- package/dist/ionic/p-6636ef29.js +0 -4
- package/dist/ionic/p-6a5fe8b0.js +0 -4
- package/dist/ionic/p-6c64aef2.entry.js +0 -4
- package/dist/ionic/p-7f189103.system.entry.js +0 -4
- package/dist/ionic/p-99c42ae3.entry.js +0 -4
- package/dist/ionic/p-aa71aee7.js +0 -4
- package/dist/ionic/p-b4a034c8.system.js +0 -4
- package/dist/ionic/p-b6d4e78d.system.entry.js +0 -4
- package/dist/ionic/p-b9c741b6.entry.js +0 -4
- package/dist/ionic/p-cab332d1.system.js +0 -4
- package/dist/ionic/p-cc3fc234.entry.js +0 -4
- package/dist/ionic/p-d0d2827d.system.entry.js +0 -4
- package/dist/ionic/p-d78ce4cc.system.entry.js +0 -4
- package/dist/ionic/p-e95ac94c.entry.js +0 -4
- package/dist/ionic/p-f2026596.system.js +0 -4
- package/dist/ionic/p-f350f4c2.entry.js +0 -4
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import { config } from "../../global/config";
|
|
4
5
|
import { Build, writeTask } from "@stencil/core";
|
|
5
6
|
import { LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, } from "../../components/nav/constants";
|
|
7
|
+
import { createFocusController } from "../focus-controller";
|
|
6
8
|
import { raf } from "../helpers";
|
|
7
9
|
const iosTransitionAnimation = () => import('./ios.transition');
|
|
8
10
|
const mdTransitionAnimation = () => import('./md.transition');
|
|
11
|
+
const focusController = createFocusController();
|
|
9
12
|
// TODO(FW-2832): types
|
|
10
13
|
export const transition = (opts) => {
|
|
11
14
|
return new Promise((resolve, reject) => {
|
|
@@ -27,6 +30,7 @@ export const transition = (opts) => {
|
|
|
27
30
|
const beforeTransition = (opts) => {
|
|
28
31
|
const enteringEl = opts.enteringEl;
|
|
29
32
|
const leavingEl = opts.leavingEl;
|
|
33
|
+
focusController.saveViewFocus(leavingEl);
|
|
30
34
|
setZIndex(enteringEl, leavingEl, opts.direction);
|
|
31
35
|
if (opts.showGoBack) {
|
|
32
36
|
enteringEl.classList.add('can-go-back');
|
|
@@ -61,6 +65,7 @@ const afterTransition = (opts) => {
|
|
|
61
65
|
leavingEl.classList.remove('ion-page-invisible');
|
|
62
66
|
leavingEl.style.removeProperty('pointer-events');
|
|
63
67
|
}
|
|
68
|
+
focusController.setViewFocus(enteringEl);
|
|
64
69
|
};
|
|
65
70
|
const getAnimationBuilder = async (opts) => {
|
|
66
71
|
if (!opts.leavingEl || !opts.animated || opts.duration === 0) {
|
|
@@ -93,7 +98,12 @@ const animation = async (animationBuilder, opts) => {
|
|
|
93
98
|
const noAnimation = async (opts) => {
|
|
94
99
|
const enteringEl = opts.enteringEl;
|
|
95
100
|
const leavingEl = opts.leavingEl;
|
|
96
|
-
|
|
101
|
+
const focusManagerEnabled = config.get('focusManagerPriority', false);
|
|
102
|
+
/**
|
|
103
|
+
* If the focus manager is enabled then we need to wait for Ionic components to be
|
|
104
|
+
* rendered otherwise the component to focus may not be focused because it is hidden.
|
|
105
|
+
*/
|
|
106
|
+
await waitForReady(opts, focusManagerEnabled);
|
|
97
107
|
fireWillEvents(enteringEl, leavingEl);
|
|
98
108
|
fireDidEvents(enteringEl, leavingEl);
|
|
99
109
|
return {
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2024-05-
|
|
2
|
+
"timestamp": "2024-05-01T14:29:25",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.17.2",
|
|
@@ -6309,6 +6309,33 @@
|
|
|
6309
6309
|
"optional": true,
|
|
6310
6310
|
"required": false
|
|
6311
6311
|
},
|
|
6312
|
+
{
|
|
6313
|
+
"name": "fixedSlotPlacement",
|
|
6314
|
+
"type": "\"after\" | \"before\"",
|
|
6315
|
+
"complexType": {
|
|
6316
|
+
"original": "'after' | 'before'",
|
|
6317
|
+
"resolved": "\"after\" | \"before\"",
|
|
6318
|
+
"references": {}
|
|
6319
|
+
},
|
|
6320
|
+
"mutable": false,
|
|
6321
|
+
"attr": "fixed-slot-placement",
|
|
6322
|
+
"reflectToAttr": false,
|
|
6323
|
+
"docs": "Controls where the fixed content is placed relative to the main content\nin the DOM. This can be used to control the order in which fixed elements\nreceive keyboard focus.\nFor example, if a FAB in the fixed slot should receive keyboard focus before\nthe main page content, set this property to `'before'`.",
|
|
6324
|
+
"docsTags": [],
|
|
6325
|
+
"default": "'after'",
|
|
6326
|
+
"values": [
|
|
6327
|
+
{
|
|
6328
|
+
"value": "after",
|
|
6329
|
+
"type": "string"
|
|
6330
|
+
},
|
|
6331
|
+
{
|
|
6332
|
+
"value": "before",
|
|
6333
|
+
"type": "string"
|
|
6334
|
+
}
|
|
6335
|
+
],
|
|
6336
|
+
"optional": false,
|
|
6337
|
+
"required": false
|
|
6338
|
+
},
|
|
6312
6339
|
{
|
|
6313
6340
|
"name": "forceOverscroll",
|
|
6314
6341
|
"type": "boolean | undefined",
|
|
@@ -10073,6 +10100,30 @@
|
|
|
10073
10100
|
"optional": false,
|
|
10074
10101
|
"required": false
|
|
10075
10102
|
},
|
|
10103
|
+
{
|
|
10104
|
+
"name": "clearInputIcon",
|
|
10105
|
+
"type": "string | undefined",
|
|
10106
|
+
"complexType": {
|
|
10107
|
+
"original": "string",
|
|
10108
|
+
"resolved": "string | undefined",
|
|
10109
|
+
"references": {}
|
|
10110
|
+
},
|
|
10111
|
+
"mutable": false,
|
|
10112
|
+
"attr": "clear-input-icon",
|
|
10113
|
+
"reflectToAttr": false,
|
|
10114
|
+
"docs": "The icon to use for the clear button. Only applies when `clearInput` is set to `true`.",
|
|
10115
|
+
"docsTags": [],
|
|
10116
|
+
"values": [
|
|
10117
|
+
{
|
|
10118
|
+
"type": "string"
|
|
10119
|
+
},
|
|
10120
|
+
{
|
|
10121
|
+
"type": "undefined"
|
|
10122
|
+
}
|
|
10123
|
+
],
|
|
10124
|
+
"optional": true,
|
|
10125
|
+
"required": false
|
|
10126
|
+
},
|
|
10076
10127
|
{
|
|
10077
10128
|
"name": "clearOnEdit",
|
|
10078
10129
|
"type": "boolean | undefined",
|
|
@@ -15172,6 +15223,28 @@
|
|
|
15172
15223
|
"optional": true,
|
|
15173
15224
|
"required": false
|
|
15174
15225
|
},
|
|
15226
|
+
{
|
|
15227
|
+
"name": "focusTrap",
|
|
15228
|
+
"type": "boolean",
|
|
15229
|
+
"complexType": {
|
|
15230
|
+
"original": "boolean",
|
|
15231
|
+
"resolved": "boolean",
|
|
15232
|
+
"references": {}
|
|
15233
|
+
},
|
|
15234
|
+
"mutable": false,
|
|
15235
|
+
"attr": "focus-trap",
|
|
15236
|
+
"reflectToAttr": false,
|
|
15237
|
+
"docs": "If `true`, focus will not be allowed to move outside of this overlay.\nIf `false`, focus will be allowed to move outside of the overlay.\n\nIn most scenarios this property should remain set to `true`. Setting\nthis property to `false` can cause severe accessibility issues as users\nrelying on assistive technologies may be able to move focus into\na confusing state. We recommend only setting this to `false` when\nabsolutely necessary.\n\nDevelopers may want to consider disabling focus trapping if this\noverlay presents a non-Ionic overlay from a 3rd party library.\nDevelopers would disable focus trapping on the Ionic overlay\nwhen presenting the 3rd party overlay and then re-enable\nfocus trapping when dismissing the 3rd party overlay and moving\nfocus back to the Ionic overlay.",
|
|
15238
|
+
"docsTags": [],
|
|
15239
|
+
"default": "true",
|
|
15240
|
+
"values": [
|
|
15241
|
+
{
|
|
15242
|
+
"type": "boolean"
|
|
15243
|
+
}
|
|
15244
|
+
],
|
|
15245
|
+
"optional": false,
|
|
15246
|
+
"required": false
|
|
15247
|
+
},
|
|
15175
15248
|
{
|
|
15176
15249
|
"name": "handle",
|
|
15177
15250
|
"type": "boolean | undefined",
|
|
@@ -18860,6 +18933,28 @@
|
|
|
18860
18933
|
"optional": false,
|
|
18861
18934
|
"required": false
|
|
18862
18935
|
},
|
|
18936
|
+
{
|
|
18937
|
+
"name": "focusTrap",
|
|
18938
|
+
"type": "boolean",
|
|
18939
|
+
"complexType": {
|
|
18940
|
+
"original": "boolean",
|
|
18941
|
+
"resolved": "boolean",
|
|
18942
|
+
"references": {}
|
|
18943
|
+
},
|
|
18944
|
+
"mutable": false,
|
|
18945
|
+
"attr": "focus-trap",
|
|
18946
|
+
"reflectToAttr": false,
|
|
18947
|
+
"docs": "If `true`, focus will not be allowed to move outside of this overlay.\nIf `false`, focus will be allowed to move outside of the overlay.\n\nIn most scenarios this property should remain set to `true`. Setting\nthis property to `false` can cause severe accessibility issues as users\nrelying on assistive technologies may be able to move focus into\na confusing state. We recommend only setting this to `false` when\nabsolutely necessary.\n\nDevelopers may want to consider disabling focus trapping if this\noverlay presents a non-Ionic overlay from a 3rd party library.\nDevelopers would disable focus trapping on the Ionic overlay\nwhen presenting the 3rd party overlay and then re-enable\nfocus trapping when dismissing the 3rd party overlay and moving\nfocus back to the Ionic overlay.",
|
|
18948
|
+
"docsTags": [],
|
|
18949
|
+
"default": "true",
|
|
18950
|
+
"values": [
|
|
18951
|
+
{
|
|
18952
|
+
"type": "boolean"
|
|
18953
|
+
}
|
|
18954
|
+
],
|
|
18955
|
+
"optional": false,
|
|
18956
|
+
"required": false
|
|
18957
|
+
},
|
|
18863
18958
|
{
|
|
18864
18959
|
"name": "htmlAttributes",
|
|
18865
18960
|
"type": "undefined | { [key: string]: any; }",
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import { c as config } from './ionic-global-4528d288.js';
|
|
4
5
|
import { w as writeTask, B as Build } from './index-9aab3bcf.js';
|
|
6
|
+
import { p as printIonWarning } from './index-9b0d46f4.js';
|
|
5
7
|
import { r as raf } from './helpers-da915de8.js';
|
|
6
8
|
|
|
7
9
|
const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
|
@@ -10,8 +12,117 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
|
|
|
10
12
|
const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
|
|
11
13
|
const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Moves focus to a specified element. Note that we do not remove the tabindex
|
|
17
|
+
* because that can result in an unintentional blur. Non-focusables can't be
|
|
18
|
+
* focused, so the body will get focused again.
|
|
19
|
+
*/
|
|
20
|
+
const moveFocus = (el) => {
|
|
21
|
+
el.tabIndex = -1;
|
|
22
|
+
el.focus();
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Elements that are hidden using `display: none` should not be focused even if
|
|
26
|
+
* they are present in the DOM.
|
|
27
|
+
*/
|
|
28
|
+
const isVisible = (el) => {
|
|
29
|
+
return el.offsetParent !== null;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* The focus controller allows us to manage focus within a view so assistive
|
|
33
|
+
* technologies can inform users of changes to the navigation state. Traditional
|
|
34
|
+
* native apps have a way of informing assistive technology about a navigation
|
|
35
|
+
* state change. Mobile browsers have this too, but only when doing a full page
|
|
36
|
+
* load. In a single page app we do not do that, so we need to build this
|
|
37
|
+
* integration ourselves.
|
|
38
|
+
*/
|
|
39
|
+
const createFocusController = () => {
|
|
40
|
+
const saveViewFocus = (referenceEl) => {
|
|
41
|
+
const focusManagerEnabled = config.get('focusManagerPriority', false);
|
|
42
|
+
/**
|
|
43
|
+
* When going back to a previously visited page focus should typically be moved
|
|
44
|
+
* back to the element that was last focused when the user was on this view.
|
|
45
|
+
*/
|
|
46
|
+
if (focusManagerEnabled) {
|
|
47
|
+
const activeEl = document.activeElement;
|
|
48
|
+
if (activeEl !== null && (referenceEl === null || referenceEl === void 0 ? void 0 : referenceEl.contains(activeEl))) {
|
|
49
|
+
activeEl.setAttribute(LAST_FOCUS, 'true');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const setViewFocus = (referenceEl) => {
|
|
54
|
+
const focusManagerPriorities = config.get('focusManagerPriority', false);
|
|
55
|
+
/**
|
|
56
|
+
* If the focused element is a descendant of the referenceEl then it's possible
|
|
57
|
+
* that the app developer manually moved focus, so we do not want to override that.
|
|
58
|
+
* This can happen with inputs the are focused when a view transitions in.
|
|
59
|
+
*/
|
|
60
|
+
if (Array.isArray(focusManagerPriorities) && !referenceEl.contains(document.activeElement)) {
|
|
61
|
+
/**
|
|
62
|
+
* When going back to a previously visited view focus should always be moved back
|
|
63
|
+
* to the element that the user was last focused on when they were on this view.
|
|
64
|
+
*/
|
|
65
|
+
const lastFocus = referenceEl.querySelector(`[${LAST_FOCUS}]`);
|
|
66
|
+
if (lastFocus && isVisible(lastFocus)) {
|
|
67
|
+
moveFocus(lastFocus);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
for (const priority of focusManagerPriorities) {
|
|
71
|
+
/**
|
|
72
|
+
* For each recognized case (excluding the default case) make sure to return
|
|
73
|
+
* so that the fallback focus behavior does not run.
|
|
74
|
+
*
|
|
75
|
+
* We intentionally query for specific roles/semantic elements so that the
|
|
76
|
+
* transition manager can work with both Ionic and non-Ionic UI components.
|
|
77
|
+
*
|
|
78
|
+
* If new selectors are added, be sure to remove the outline ring by adding
|
|
79
|
+
* new selectors to rule in core.scss.
|
|
80
|
+
*/
|
|
81
|
+
switch (priority) {
|
|
82
|
+
case 'content':
|
|
83
|
+
const content = referenceEl.querySelector('main, [role="main"]');
|
|
84
|
+
if (content && isVisible(content)) {
|
|
85
|
+
moveFocus(content);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
case 'heading':
|
|
90
|
+
const headingOne = referenceEl.querySelector('h1, [role="heading"][aria-level="1"]');
|
|
91
|
+
if (headingOne && isVisible(headingOne)) {
|
|
92
|
+
moveFocus(headingOne);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
case 'banner':
|
|
97
|
+
const header = referenceEl.querySelector('header, [role="banner"]');
|
|
98
|
+
if (header && isVisible(header)) {
|
|
99
|
+
moveFocus(header);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
default:
|
|
104
|
+
printIonWarning(`Unrecognized focus manager priority value ${priority}`);
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* If there is nothing to focus then focus the page so focus at least moves to
|
|
110
|
+
* the correct view. The browser will then determine where within the page to
|
|
111
|
+
* move focus to.
|
|
112
|
+
*/
|
|
113
|
+
moveFocus(referenceEl);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
return {
|
|
117
|
+
saveViewFocus,
|
|
118
|
+
setViewFocus,
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const LAST_FOCUS = 'ion-last-focus';
|
|
122
|
+
|
|
123
|
+
const iosTransitionAnimation = () => import('./ios.transition-e35d0940.js');
|
|
124
|
+
const mdTransitionAnimation = () => import('./md.transition-4b90a1f0.js');
|
|
125
|
+
const focusController = createFocusController();
|
|
15
126
|
// TODO(FW-2832): types
|
|
16
127
|
const transition = (opts) => {
|
|
17
128
|
return new Promise((resolve, reject) => {
|
|
@@ -33,6 +144,7 @@ const transition = (opts) => {
|
|
|
33
144
|
const beforeTransition = (opts) => {
|
|
34
145
|
const enteringEl = opts.enteringEl;
|
|
35
146
|
const leavingEl = opts.leavingEl;
|
|
147
|
+
focusController.saveViewFocus(leavingEl);
|
|
36
148
|
setZIndex(enteringEl, leavingEl, opts.direction);
|
|
37
149
|
if (opts.showGoBack) {
|
|
38
150
|
enteringEl.classList.add('can-go-back');
|
|
@@ -67,6 +179,7 @@ const afterTransition = (opts) => {
|
|
|
67
179
|
leavingEl.classList.remove('ion-page-invisible');
|
|
68
180
|
leavingEl.style.removeProperty('pointer-events');
|
|
69
181
|
}
|
|
182
|
+
focusController.setViewFocus(enteringEl);
|
|
70
183
|
};
|
|
71
184
|
const getAnimationBuilder = async (opts) => {
|
|
72
185
|
if (!opts.leavingEl || !opts.animated || opts.duration === 0) {
|
|
@@ -99,7 +212,12 @@ const animation = async (animationBuilder, opts) => {
|
|
|
99
212
|
const noAnimation = async (opts) => {
|
|
100
213
|
const enteringEl = opts.enteringEl;
|
|
101
214
|
const leavingEl = opts.leavingEl;
|
|
102
|
-
|
|
215
|
+
const focusManagerEnabled = config.get('focusManagerPriority', false);
|
|
216
|
+
/**
|
|
217
|
+
* If the focus manager is enabled then we need to wait for Ionic components to be
|
|
218
|
+
* rendered otherwise the component to focus may not be focused because it is hidden.
|
|
219
|
+
*/
|
|
220
|
+
await waitForReady(opts, focusManagerEnabled);
|
|
103
221
|
fireWillEvents(enteringEl, leavingEl);
|
|
104
222
|
fireDidEvents(enteringEl, leavingEl);
|
|
105
223
|
return {
|
package/dist/esm/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
export { c as createAnimation } from './animation-eab5a4ca.js';
|
|
5
|
-
export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-
|
|
6
|
-
export { iosTransitionAnimation } from './ios.transition-
|
|
7
|
-
export { mdTransitionAnimation } from './md.transition-
|
|
5
|
+
export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-8e6b6a24.js';
|
|
6
|
+
export { iosTransitionAnimation } from './ios.transition-e35d0940.js';
|
|
7
|
+
export { mdTransitionAnimation } from './md.transition-4b90a1f0.js';
|
|
8
8
|
export { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
|
|
9
9
|
export { createGesture } from './index-39782642.js';
|
|
10
10
|
export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-4528d288.js';
|
|
@@ -12,12 +12,12 @@ export { c as componentOnReady } from './helpers-da915de8.js';
|
|
|
12
12
|
export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-49c88215.js';
|
|
13
13
|
export { o as openURL } from './theme-01f3f29c.js';
|
|
14
14
|
export { m as menuController } from './index-7ae7186a.js';
|
|
15
|
-
export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-
|
|
15
|
+
export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-df2c06b2.js';
|
|
16
16
|
import './index-a5d50daf.js';
|
|
17
17
|
import './index-9aab3bcf.js';
|
|
18
|
+
import './index-9b0d46f4.js';
|
|
18
19
|
import './gesture-controller-314a54f6.js';
|
|
19
20
|
import './hardware-back-button-2d9760b6.js';
|
|
20
|
-
import './index-9b0d46f4.js';
|
|
21
21
|
import './framework-delegate-63d1a679.js';
|
|
22
22
|
|
|
23
23
|
const IonicSlides = (opts) => {
|
|
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, e as readTask, h, f as Host, i
|
|
|
5
5
|
import { c as createButtonActiveGesture } from './button-active-920addb8.js';
|
|
6
6
|
import { r as raf } from './helpers-da915de8.js';
|
|
7
7
|
import { c as createLockController } from './lock-controller-316928be.js';
|
|
8
|
-
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-
|
|
8
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-df2c06b2.js';
|
|
9
9
|
import { g as getClassMap } from './theme-01f3f29c.js';
|
|
10
10
|
import { b as getIonMode } from './ionic-global-4528d288.js';
|
|
11
11
|
import { c as createAnimation } from './animation-eab5a4ca.js';
|
|
@@ -6,7 +6,7 @@ import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './conf
|
|
|
6
6
|
import { c as createButtonActiveGesture } from './button-active-920addb8.js';
|
|
7
7
|
import { r as raf } from './helpers-da915de8.js';
|
|
8
8
|
import { c as createLockController } from './lock-controller-316928be.js';
|
|
9
|
-
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-
|
|
9
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-df2c06b2.js';
|
|
10
10
|
import { g as getClassMap } from './theme-01f3f29c.js';
|
|
11
11
|
import { c as config, b as getIonMode } from './ionic-global-4528d288.js';
|
|
12
12
|
import { c as createAnimation } from './animation-eab5a4ca.js';
|
|
@@ -13,7 +13,7 @@ import { c as createKeyboardController } from './keyboard-controller-ec5c2bfa.js
|
|
|
13
13
|
import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
|
|
14
14
|
import { a as attachComponent, d as detachComponent } from './framework-delegate-63d1a679.js';
|
|
15
15
|
import { c as createLockController } from './lock-controller-316928be.js';
|
|
16
|
-
import { t as transition } from './index-
|
|
16
|
+
import { t as transition } from './index-8e6b6a24.js';
|
|
17
17
|
import './index-a5d50daf.js';
|
|
18
18
|
import './keyboard-73175e24.js';
|
|
19
19
|
import './capacitor-59395cbd.js';
|
|
@@ -184,6 +184,7 @@ const Content = class {
|
|
|
184
184
|
};
|
|
185
185
|
this.color = undefined;
|
|
186
186
|
this.fullscreen = false;
|
|
187
|
+
this.fixedSlotPlacement = 'after';
|
|
187
188
|
this.forceOverscroll = undefined;
|
|
188
189
|
this.scrollX = false;
|
|
189
190
|
this.scrollY = true;
|
|
@@ -465,13 +466,13 @@ const Content = class {
|
|
|
465
466
|
}
|
|
466
467
|
}
|
|
467
468
|
render() {
|
|
468
|
-
const { isMainContent, scrollX, scrollY, el } = this;
|
|
469
|
+
const { fixedSlotPlacement, isMainContent, scrollX, scrollY, el } = this;
|
|
469
470
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
470
471
|
const mode = getIonMode(this);
|
|
471
472
|
const forceOverscroll = this.shouldForceOverscroll();
|
|
472
473
|
const transitionShadow = mode === 'ios';
|
|
473
474
|
this.resize();
|
|
474
|
-
return (h(Host, { key: '
|
|
475
|
+
return (h(Host, { key: 'f599a7da14969df38c20a6f650179d2a319fb58b', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
|
|
475
476
|
[mode]: true,
|
|
476
477
|
'content-sizing': hostContext('ion-popover', this.el),
|
|
477
478
|
overscroll: forceOverscroll,
|
|
@@ -479,12 +480,12 @@ const Content = class {
|
|
|
479
480
|
}), style: {
|
|
480
481
|
'--offset-top': `${this.cTop}px`,
|
|
481
482
|
'--offset-bottom': `${this.cBottom}px`,
|
|
482
|
-
} }, h("div", { key: '
|
|
483
|
+
} }, h("div", { key: '7c545c3c95ea05abd036d0462936ac153d2a8fc6', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: 'a67ab7438466c99f74b7ba59964802c3ba86ac5b', class: {
|
|
483
484
|
'inner-scroll': true,
|
|
484
485
|
'scroll-x': scrollX,
|
|
485
486
|
'scroll-y': scrollY,
|
|
486
487
|
overscroll: (scrollX || scrollY) && forceOverscroll,
|
|
487
|
-
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '
|
|
488
|
+
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '6d10fcac2e40b4dd6c20d91a8957ac07251d2fa7' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
|
|
488
489
|
}
|
|
489
490
|
get el() { return getElement(this); }
|
|
490
491
|
};
|
|
@@ -652,7 +653,7 @@ const Footer = class {
|
|
|
652
653
|
const mode = getIonMode(this);
|
|
653
654
|
const tabs = this.el.closest('ion-tabs');
|
|
654
655
|
const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
|
|
655
|
-
return (h(Host, { key: '
|
|
656
|
+
return (h(Host, { key: '5da19dc38ba73e1ddfd1bef3ebd485105d77c751', role: "contentinfo", class: {
|
|
656
657
|
[mode]: true,
|
|
657
658
|
// Used internally for styling
|
|
658
659
|
[`footer-${mode}`]: true,
|
|
@@ -660,7 +661,7 @@ const Footer = class {
|
|
|
660
661
|
[`footer-translucent-${mode}`]: translucent,
|
|
661
662
|
['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
|
|
662
663
|
[`footer-collapse-${collapse}`]: collapse !== undefined,
|
|
663
|
-
} }, mode === 'ios' && translucent && h("div", { key: '
|
|
664
|
+
} }, mode === 'ios' && translucent && h("div", { key: 'fafad08090a33d8c4e8a5b63d61929dcb89aab47', class: "footer-background" }), h("slot", { key: 'e0a443d346afa55e4317c0bc1263fdbe3c619559' })));
|
|
664
665
|
}
|
|
665
666
|
get el() { return getElement(this); }
|
|
666
667
|
};
|
|
@@ -982,14 +983,14 @@ const Header = class {
|
|
|
982
983
|
const collapse = this.collapse || 'none';
|
|
983
984
|
// banner role must be at top level, so remove role if inside a menu
|
|
984
985
|
const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
|
|
985
|
-
return (h(Host, Object.assign({ key: '
|
|
986
|
+
return (h(Host, Object.assign({ key: 'c687314ef290793a9d633ad20cfc5eeb47621e31', role: roleType, class: {
|
|
986
987
|
[mode]: true,
|
|
987
988
|
// Used internally for styling
|
|
988
989
|
[`header-${mode}`]: true,
|
|
989
990
|
[`header-translucent`]: this.translucent,
|
|
990
991
|
[`header-collapse-${collapse}`]: true,
|
|
991
992
|
[`header-translucent-${mode}`]: this.translucent,
|
|
992
|
-
} }, inheritedAttributes), mode === 'ios' && translucent && h("div", { key: '
|
|
993
|
+
} }, inheritedAttributes), mode === 'ios' && translucent && h("div", { key: 'b429996046082405a91e7c23f95516db0b736f12', class: "header-background" }), h("slot", { key: 'e17a8965f8d3a33c1bfcb056c153d8242e5229fa' })));
|
|
993
994
|
}
|
|
994
995
|
get el() { return getElement(this); }
|
|
995
996
|
};
|
|
@@ -1173,7 +1174,7 @@ const RouterOutlet = class {
|
|
|
1173
1174
|
return true;
|
|
1174
1175
|
}
|
|
1175
1176
|
render() {
|
|
1176
|
-
return h("slot", { key: '
|
|
1177
|
+
return h("slot", { key: '8279a453c66a766e6e383ff59842b4ae070c13a9' });
|
|
1177
1178
|
}
|
|
1178
1179
|
get el() { return getElement(this); }
|
|
1179
1180
|
static get watchers() { return {
|
|
@@ -1213,11 +1214,11 @@ const ToolbarTitle = class {
|
|
|
1213
1214
|
render() {
|
|
1214
1215
|
const mode = getIonMode(this);
|
|
1215
1216
|
const size = this.getSize();
|
|
1216
|
-
return (h(Host, { key: '
|
|
1217
|
+
return (h(Host, { key: '5a58dc437a6f4257244bbdd7e9a682a17d8c9a6b', class: createColorClasses(this.color, {
|
|
1217
1218
|
[mode]: true,
|
|
1218
1219
|
[`title-${size}`]: true,
|
|
1219
1220
|
'title-rtl': document.dir === 'rtl',
|
|
1220
|
-
}) }, h("div", { key: '
|
|
1221
|
+
}) }, h("div", { key: '58682ea7b8f47a08adfad419b5c76b34784c6501', class: "toolbar-title" }, h("slot", { key: '8a9248534e4c3076f5e2dfda38ef86069796851c' }))));
|
|
1221
1222
|
}
|
|
1222
1223
|
get el() { return getElement(this); }
|
|
1223
1224
|
static get watchers() { return {
|
|
@@ -1285,10 +1286,10 @@ const Toolbar = class {
|
|
|
1285
1286
|
this.childrenStyles.forEach((value) => {
|
|
1286
1287
|
Object.assign(childStyles, value);
|
|
1287
1288
|
});
|
|
1288
|
-
return (h(Host, { key: '
|
|
1289
|
+
return (h(Host, { key: '4bb3a55001408a3bdf033af76b9196cb96c07c09', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
|
|
1289
1290
|
[mode]: true,
|
|
1290
1291
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
1291
|
-
})) }, h("div", { key: '
|
|
1292
|
+
})) }, h("div", { key: '0891db157d6e028c6d03696f13fb510ea91b0296', class: "toolbar-background" }), h("div", { key: '95fbc870d808f74af4bb18cd8f8ec8c7828a9e0b', class: "toolbar-container" }, h("slot", { key: '84d4a9644660fe00ca085055ca8d12f3647531ad', name: "start" }), h("slot", { key: 'fd361dc9c9979f59aed2fedcf94629506fae62b0', name: "secondary" }), h("div", { key: '54d2b28616a4627c55766f66dc453707752758a6', class: "toolbar-content" }, h("slot", { key: '8f65e0830cce7135640b90eb694e282cb7e5efd2' })), h("slot", { key: 'c78be11a207c8674f222543646398636956087e6', name: "primary" }), h("slot", { key: 'ab25e1601ccaa8cb0d81921b849bcb7402aa7826', name: "end" }))));
|
|
1292
1293
|
}
|
|
1293
1294
|
get el() { return getElement(this); }
|
|
1294
1295
|
};
|
|
@@ -55,7 +55,7 @@ const Thumbnail = class {
|
|
|
55
55
|
registerInstance(this, hostRef);
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: 'ea55000055f941b0c79561e8934be6242ec8e114', class: getIonMode(this) }, h("slot", { key: 'a4f934f442797f5c66a77e0ef8920fdd07c204f2' })));
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
Thumbnail.style = IonThumbnailStyle0;
|
|
@@ -153,10 +153,10 @@ const Grid = class {
|
|
|
153
153
|
}
|
|
154
154
|
render() {
|
|
155
155
|
const mode = getIonMode(this);
|
|
156
|
-
return (h(Host, { key: '
|
|
156
|
+
return (h(Host, { key: '930ce78b02f8360fbca08a35d364d2c09128c6c8', class: {
|
|
157
157
|
[mode]: true,
|
|
158
158
|
'grid-fixed': this.fixed,
|
|
159
|
-
} }, h("slot", { key: '
|
|
159
|
+
} }, h("slot", { key: 'c47bf7ef2197f5ebc42d3e2c55044276fb0db393' })));
|
|
160
160
|
}
|
|
161
161
|
};
|
|
162
162
|
Grid.style = IonGridStyle0;
|
|
@@ -169,7 +169,7 @@ const Row = class {
|
|
|
169
169
|
registerInstance(this, hostRef);
|
|
170
170
|
}
|
|
171
171
|
render() {
|
|
172
|
-
return (h(Host, { key: '
|
|
172
|
+
return (h(Host, { key: '813c9a7f6782d2cf8eb27f30d3ab28e6f3122868', class: getIonMode(this) }, h("slot", { key: '356bec4d4d408ea63d6b431b06465d5b7bcbff71' })));
|
|
173
173
|
}
|
|
174
174
|
};
|
|
175
175
|
Row.style = IonRowStyle0;
|
|
@@ -334,11 +334,11 @@ const DatetimeButton = class {
|
|
|
334
334
|
render() {
|
|
335
335
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
336
336
|
const mode = getIonMode(this);
|
|
337
|
-
return (h(Host, { key: '
|
|
337
|
+
return (h(Host, { key: '0be955404133adbb31ae16a6599014bb29765f19', class: createColorClasses(color, {
|
|
338
338
|
[mode]: true,
|
|
339
339
|
[`${selectedButton}-active`]: datetimeActive,
|
|
340
340
|
['datetime-button-disabled']: disabled,
|
|
341
|
-
}) }, dateText && (h("button", { key: '
|
|
341
|
+
}) }, dateText && (h("button", { key: '812dcb50b17768cc13a5cfa0bcce8b113cee0f09', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, h("slot", { key: '46930c740a32a78502df9e651f9bd5914d6a9fea', name: "date-target" }, dateText), mode === 'md' && h("ion-ripple-effect", { key: '0602999cc8435dc37aa22da7f5531bc8cb71e1b4' }))), timeText && (h("button", { key: 'ecdd21da5181ecbdce03209f9f6673b7dcbc1f78', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, h("slot", { key: 'b5b093b5166d12d11e27360788edaac916d44390', name: "time-target" }, timeText), mode === 'md' && h("ion-ripple-effect", { key: '70bb3a04f4748d13233eeb257503968dbd1161a9' })))));
|
|
342
342
|
}
|
|
343
343
|
get el() { return getElement(this); }
|
|
344
344
|
};
|