voyager-ionic-core 7.7.0 → 7.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/action-sheet.js +8 -4
- package/components/alert.js +6 -2
- package/components/helpers.js +2 -2
- package/components/ion-loading.js +6 -2
- package/components/ion-modal.js +8 -6
- package/components/ion-picker.js +6 -2
- package/components/ion-select.js +3 -3
- package/components/ion-toast.js +6 -2
- package/components/item.js +3 -12
- package/components/label.js +2 -2
- package/components/overlays.js +120 -29
- package/components/popover.js +7 -3
- package/components/select-popover.js +2 -2
- package/dist/cjs/{animation-fdab9de5.js → animation-c2840aea.js} +1 -1
- package/dist/cjs/{app-globals-5a17c5e1.js → app-globals-92ad1b3d.js} +1 -1
- package/dist/cjs/{button-active-b8c3f603.js → button-active-2d6520ec.js} +1 -1
- package/dist/cjs/{form-controller-7b90d7b7.js → form-controller-c83330c0.js} +1 -1
- package/dist/cjs/{framework-delegate-a3e6d060.js → framework-delegate-e0e13baa.js} +1 -1
- package/dist/cjs/{hardware-back-button-d23873bb.js → hardware-back-button-2696acaf.js} +2 -2
- package/dist/cjs/{helpers-2e1028fa.js → helpers-da4c0ed1.js} +2 -2
- package/dist/cjs/{index-5a471146.js → index-0ffe376d.js} +25 -22
- package/dist/cjs/{index-8c679cbf.js → index-4c96691f.js} +4 -4
- package/dist/cjs/{index-10da82ce.js → index-62290fec.js} +1 -1
- package/dist/cjs/{index-84351d21.js → index-9bfcb6e8.js} +4 -4
- package/dist/cjs/{index-53d162b2.js → index-bef98850.js} +1 -1
- package/dist/cjs/index.cjs.js +11 -11
- package/dist/cjs/{input-shims-6f804705.js → input-shims-a9a85bb9.js} +2 -2
- package/dist/cjs/{input.utils-d693d18a.js → input.utils-d7dca90f.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +16 -12
- package/dist/cjs/ion-alert.cjs.entry.js +14 -10
- package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
- package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +13 -9
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-input.cjs.entry.js +6 -6
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +7 -7
- package/dist/cjs/ion-loading.cjs.entry.js +13 -9
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-modal.cjs.entry.js +16 -14
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +15 -11
- package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-range.cjs.entry.js +5 -5
- package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
- package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-select_3.cjs.entry.js +12 -12
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
- 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 +6 -6
- package/dist/cjs/ion-toast.cjs.entry.js +13 -9
- package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
- package/dist/cjs/{ionic-global-7358c23e.js → ionic-global-59a10130.js} +1 -1
- package/dist/cjs/ionic.cjs.js +6 -6
- package/dist/cjs/{ios.transition-8e40c54e.js → ios.transition-96679580.js} +4 -4
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/{md.transition-597a2479.js → md.transition-d6c98822.js} +4 -4
- package/dist/cjs/{notch-controller-db0127c4.js → notch-controller-bfbcbb7a.js} +1 -1
- package/dist/cjs/{overlays-eaf2075f.js → overlays-db5d96f3.js} +122 -32
- package/dist/cjs/{status-tap-b0bfea34.js → status-tap-7ad5f0fb.js} +3 -3
- package/dist/cjs/{swipe-back-7a848bb8.js → swipe-back-dcd0d4a9.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/action-sheet/action-sheet.ios.css +13 -1
- package/dist/collection/components/action-sheet/action-sheet.js +9 -5
- package/dist/collection/components/alert/alert.js +8 -4
- package/dist/collection/components/item/item.js +3 -12
- package/dist/collection/components/label/label.ios.css +0 -4
- package/dist/collection/components/label/label.md.css +0 -4
- package/dist/collection/components/label/test/item/item.e2e.js +24 -0
- package/dist/collection/components/loading/loading.js +8 -4
- package/dist/collection/components/modal/modal.js +10 -8
- package/dist/collection/components/modal/test/animations/modal.e2e.js +36 -0
- package/dist/collection/components/picker/picker.js +8 -4
- package/dist/collection/components/popover/popover.ios.css +7 -0
- package/dist/collection/components/popover/popover.js +8 -4
- package/dist/collection/components/select/select.js +3 -3
- package/dist/collection/components/select-popover/select-popover.ios.css +10 -0
- package/dist/collection/components/select-popover/select-popover.md.css +10 -0
- package/dist/collection/components/toast/test/toast.spec.js +12 -0
- package/dist/collection/components/toast/toast.js +8 -4
- package/dist/collection/utils/helpers.js +1 -1
- package/dist/collection/utils/overlays.js +119 -28
- package/dist/collection/utils/test/overlays/overlays.e2e.js +122 -0
- package/dist/collection/utils/test/overlays/overlays.spec.js +51 -0
- package/dist/docs.json +23 -23
- package/dist/esm/{animation-60dbdd13.js → animation-6a0c5338.js} +1 -1
- package/dist/esm/{app-globals-47226a12.js → app-globals-5cf6195b.js} +1 -1
- package/dist/esm/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
- package/dist/esm/{form-controller-014aa89f.js → form-controller-21dd62b1.js} +1 -1
- package/dist/esm/{framework-delegate-fed7fe7c.js → framework-delegate-ed4ba327.js} +1 -1
- package/dist/esm/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +2 -2
- package/dist/esm/{helpers-c0b9ca37.js → helpers-be245865.js} +2 -2
- package/dist/esm/{index-d64f34ea.js → index-020f5464.js} +1 -1
- package/dist/esm/{index-4b98143d.js → index-348ed70a.js} +4 -4
- package/dist/esm/{index-73881b51.js → index-4c30cddd.js} +25 -22
- package/dist/esm/{index-48209844.js → index-e1b622e3.js} +4 -4
- package/dist/esm/{index-eb12ef92.js → index-f3946ac1.js} +1 -1
- package/dist/esm/index.js +11 -11
- package/dist/esm/{input-shims-b90ca55f.js → input-shims-5329bbe8.js} +2 -2
- package/dist/esm/{input.utils-6e9b0046.js → input.utils-a445f677.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +16 -12
- package/dist/esm/ion-alert.entry.js +14 -10
- package/dist/esm/ion-app_8.entry.js +12 -12
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-card_5.entry.js +3 -3
- package/dist/esm/ion-checkbox.entry.js +4 -4
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +3 -3
- package/dist/esm/ion-datetime_3.entry.js +13 -9
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
- package/dist/esm/ion-input.entry.js +6 -6
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +7 -7
- package/dist/esm/ion-loading.entry.js +13 -9
- package/dist/esm/ion-menu_3.entry.js +8 -8
- package/dist/esm/ion-modal.entry.js +16 -14
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-internal.entry.js +3 -3
- package/dist/esm/ion-picker-internal.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +15 -11
- package/dist/esm/ion-progress-bar.entry.js +3 -3
- package/dist/esm/ion-radio_2.entry.js +4 -4
- package/dist/esm/ion-range.entry.js +5 -5
- package/dist/esm/ion-refresher_2.entry.js +5 -5
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +3 -3
- package/dist/esm/ion-searchbar.entry.js +3 -3
- package/dist/esm/ion-segment_2.entry.js +3 -3
- package/dist/esm/ion-select_3.entry.js +12 -12
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +3 -3
- 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 +6 -6
- package/dist/esm/ion-toast.entry.js +13 -9
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
- package/dist/esm/ionic.js +7 -7
- package/dist/esm/{ios.transition-7ff7381d.js → ios.transition-7459f819.js} +4 -4
- package/dist/esm/loader.js +6 -6
- package/dist/esm/{md.transition-28a9a26b.js → md.transition-b8224313.js} +4 -4
- package/dist/esm/{notch-controller-15d281a4.js → notch-controller-6bd3e0f9.js} +1 -1
- package/dist/esm/{overlays-fad5fe01.js → overlays-19b26885.js} +123 -32
- package/dist/esm/{status-tap-2b335fb7.js → status-tap-b41ece3c.js} +3 -3
- package/dist/esm/{swipe-back-fa0ec5cd.js → swipe-back-c6d0e5d9.js} +1 -1
- package/dist/esm-es5/{animation-60dbdd13.js → animation-6a0c5338.js} +1 -1
- package/dist/esm-es5/app-globals-5cf6195b.js +4 -0
- package/dist/esm-es5/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
- package/dist/esm-es5/{form-controller-014aa89f.js → form-controller-21dd62b1.js} +1 -1
- package/dist/esm-es5/{framework-delegate-fed7fe7c.js → framework-delegate-ed4ba327.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +1 -1
- package/dist/esm-es5/helpers-be245865.js +4 -0
- package/dist/esm-es5/index-020f5464.js +4 -0
- package/dist/esm-es5/{index-4b98143d.js → index-348ed70a.js} +1 -1
- package/dist/esm-es5/{index-73881b51.js → index-4c30cddd.js} +1 -1
- package/dist/esm-es5/{index-48209844.js → index-e1b622e3.js} +1 -1
- package/dist/esm-es5/{index-eb12ef92.js → index-f3946ac1.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{input-shims-b90ca55f.js → input-shims-5329bbe8.js} +1 -1
- package/dist/esm-es5/{input.utils-6e9b0046.js → input.utils-a445f677.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-backdrop.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-chip.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.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-internal.entry.js +1 -1
- package/dist/esm-es5/ion-picker-internal.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-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
- package/dist/esm-es5/ionic.js +2 -2
- package/dist/esm-es5/{ios.transition-7ff7381d.js → ios.transition-7459f819.js} +1 -1
- package/dist/esm-es5/loader.js +2 -2
- package/dist/esm-es5/md.transition-b8224313.js +4 -0
- package/dist/esm-es5/{notch-controller-15d281a4.js → notch-controller-6bd3e0f9.js} +1 -1
- package/dist/esm-es5/overlays-19b26885.js +4 -0
- package/dist/esm-es5/{status-tap-2b335fb7.js → status-tap-b41ece3c.js} +1 -1
- package/dist/esm-es5/{swipe-back-fa0ec5cd.js → swipe-back-c6d0e5d9.js} +1 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-38a6fee7.entry.js → p-021f9d72.entry.js} +1 -1
- package/dist/ionic/{p-680f96e8.system.entry.js → p-02542247.system.entry.js} +1 -1
- package/dist/ionic/p-02ad4bbe.js +4 -0
- package/dist/ionic/{p-b4d8fe47.js → p-05253db9.js} +1 -1
- package/dist/ionic/{p-efe9180b.entry.js → p-079da3df.entry.js} +1 -1
- package/dist/ionic/p-0b34d3a7.system.js +4 -0
- package/dist/ionic/{p-51f08a9f.entry.js → p-12527c4b.entry.js} +1 -1
- package/dist/ionic/{p-c6fef62b.system.js → p-125f8cdd.system.js} +1 -1
- package/dist/ionic/{p-b253ad7f.js → p-12a8643e.js} +1 -1
- package/dist/ionic/{p-f7b43141.system.entry.js → p-15a40a0b.system.entry.js} +1 -1
- package/dist/ionic/{p-5eea8b4c.system.js → p-1636923f.system.js} +1 -1
- package/dist/ionic/{p-333f06ed.entry.js → p-16a61810.entry.js} +1 -1
- package/dist/ionic/p-1846513c.js +4 -0
- package/dist/ionic/{p-6f38d0c5.system.entry.js → p-18918a24.system.entry.js} +1 -1
- package/dist/ionic/{p-ce2eabd5.entry.js → p-1a680496.entry.js} +1 -1
- package/dist/ionic/{p-b8c685a7.system.js → p-1bc9b5f5.system.js} +1 -1
- package/dist/ionic/{p-396c1a55.entry.js → p-1f16d040.entry.js} +1 -1
- package/dist/ionic/{p-e6aaff14.system.entry.js → p-1f19958f.system.entry.js} +1 -1
- package/dist/ionic/{p-d7260b87.entry.js → p-2178329b.entry.js} +1 -1
- package/dist/ionic/p-257046d2.system.js +4 -0
- package/dist/ionic/p-262024fd.entry.js +4 -0
- package/dist/ionic/{p-9f5b40c0.system.entry.js → p-2765a571.system.entry.js} +1 -1
- package/dist/ionic/{p-7c32fb95.system.entry.js → p-288649db.system.entry.js} +1 -1
- package/dist/ionic/{p-94be3ad7.js → p-2c118b1e.js} +1 -1
- package/dist/ionic/{p-3a98f8db.entry.js → p-2c4bfe1c.entry.js} +1 -1
- package/dist/ionic/{p-25b08bc4.system.js → p-2c86025e.system.js} +1 -1
- package/dist/ionic/{p-8569d759.system.entry.js → p-2ea71956.system.entry.js} +1 -1
- package/dist/ionic/{p-9db1e4c5.entry.js → p-2fd3c3dd.entry.js} +1 -1
- package/dist/ionic/{p-aa7ae6aa.entry.js → p-3079950e.entry.js} +1 -1
- package/dist/ionic/{p-b8c4df21.entry.js → p-337ac0f5.entry.js} +1 -1
- package/dist/ionic/p-36be3332.js +4 -0
- package/dist/ionic/{p-9eb4ea47.system.entry.js → p-437f4d02.system.entry.js} +1 -1
- package/dist/ionic/{p-c858f685.js → p-46bcc2f5.js} +1 -1
- package/dist/ionic/{p-108f730a.entry.js → p-4788693d.entry.js} +1 -1
- package/dist/ionic/{p-5f456b3c.system.entry.js → p-479f5926.system.entry.js} +1 -1
- package/dist/ionic/{p-34947dff.system.entry.js → p-482ea916.system.entry.js} +1 -1
- package/dist/ionic/p-49f481cc.system.entry.js +4 -0
- package/dist/ionic/{p-0eef8b34.system.entry.js → p-4b8a620f.system.entry.js} +1 -1
- package/dist/ionic/{p-df468a8f.entry.js → p-521b3971.entry.js} +1 -1
- package/dist/ionic/{p-31c495c2.js → p-56ee6d9a.js} +1 -1
- package/dist/ionic/{p-30c9e049.system.entry.js → p-5cb5f63d.system.entry.js} +1 -1
- package/dist/ionic/{p-1aa7c019.js → p-5d7e32ce.js} +1 -1
- package/dist/ionic/{p-4fc40349.system.entry.js → p-5de920f4.system.entry.js} +1 -1
- package/dist/ionic/{p-6871553b.system.js → p-62b7320a.system.js} +1 -1
- package/dist/ionic/{p-bc2c03d7.system.entry.js → p-644d03d7.system.entry.js} +1 -1
- package/dist/ionic/{p-3f028207.system.js → p-6525a8cd.system.js} +1 -1
- package/dist/ionic/{p-d8607ede.entry.js → p-657ccdd6.entry.js} +1 -1
- package/dist/ionic/p-6812d37d.js +4 -0
- package/dist/ionic/{p-61ba2137.system.js → p-6afef6c1.system.js} +1 -1
- package/dist/ionic/p-6b6ca3f5.system.entry.js +4 -0
- package/dist/ionic/p-6c45c617.js +4 -0
- package/dist/ionic/{p-8a671f16.entry.js → p-6e23d039.entry.js} +1 -1
- package/dist/ionic/p-6f59cdbc.system.entry.js +4 -0
- package/dist/ionic/{p-dce9bc53.entry.js → p-70fbf4e2.entry.js} +1 -1
- package/dist/ionic/{p-20a6513f.system.entry.js → p-717e2526.system.entry.js} +1 -1
- package/dist/ionic/{p-76893257.system.js → p-72fa96bf.system.js} +1 -1
- package/dist/ionic/{p-0fd295ef.system.entry.js → p-741a0f0d.system.entry.js} +1 -1
- package/dist/ionic/{p-1c531ca2.entry.js → p-7670acd8.entry.js} +1 -1
- package/dist/ionic/{p-84879f61.system.entry.js → p-76b8bcb8.system.entry.js} +1 -1
- package/dist/ionic/{p-a3f572a7.js → p-779aede8.js} +1 -1
- package/dist/ionic/{p-9f6397ce.entry.js → p-7a615a5a.entry.js} +1 -1
- package/dist/ionic/{p-89b5aff2.entry.js → p-7e16220b.entry.js} +1 -1
- package/dist/ionic/{p-a1bfaa5c.system.entry.js → p-7e838f43.system.entry.js} +1 -1
- package/dist/ionic/{p-2da0a76c.entry.js → p-7f30ad48.entry.js} +1 -1
- package/dist/ionic/{p-70026e8f.system.entry.js → p-80aed9fb.system.entry.js} +1 -1
- package/dist/ionic/{p-a2ad515b.entry.js → p-822730c4.entry.js} +1 -1
- package/dist/ionic/{p-dbb4c012.entry.js → p-84b85535.entry.js} +1 -1
- package/dist/ionic/p-85f66c3c.entry.js +4 -0
- package/dist/ionic/{p-d181166c.system.entry.js → p-860e2539.system.entry.js} +1 -1
- package/dist/ionic/{p-58e3ae88.system.entry.js → p-86813176.system.entry.js} +1 -1
- package/dist/ionic/{p-a051c371.entry.js → p-88e9052d.entry.js} +1 -1
- package/dist/ionic/{p-b94882a9.system.js → p-89ca4c4b.system.js} +1 -1
- package/dist/ionic/{p-c569d1c8.entry.js → p-8cc34120.entry.js} +1 -1
- package/dist/ionic/{p-f46775e4.entry.js → p-8e651c29.entry.js} +1 -1
- package/dist/ionic/{p-f97b9cdd.system.entry.js → p-9056778e.system.entry.js} +1 -1
- package/dist/ionic/{p-92c2178e.system.entry.js → p-91f4e611.system.entry.js} +1 -1
- package/dist/ionic/{p-9393a49f.js → p-942a9358.js} +1 -1
- package/dist/ionic/{p-ef441122.entry.js → p-96084f36.entry.js} +1 -1
- package/dist/ionic/{p-a114530c.entry.js → p-973b4db3.entry.js} +1 -1
- package/dist/ionic/{p-3c6f02cf.system.js → p-97ca0cb9.system.js} +1 -1
- package/dist/ionic/{p-a02b2d75.entry.js → p-98aa0553.entry.js} +1 -1
- package/dist/ionic/{p-1f6cdf2c.system.entry.js → p-9998cb62.system.entry.js} +1 -1
- package/dist/ionic/{p-5615cf3f.system.entry.js → p-9de75bac.system.entry.js} +1 -1
- package/dist/ionic/{p-3cdbaa49.entry.js → p-a02ea777.entry.js} +1 -1
- package/dist/ionic/{p-c2289cd1.js → p-a1036ce7.js} +1 -1
- package/dist/ionic/{p-fd3f475f.entry.js → p-a1222c24.entry.js} +1 -1
- package/dist/ionic/{p-eda7a1db.system.entry.js → p-a3df16b9.system.entry.js} +1 -1
- package/dist/ionic/{p-dd60faa5.system.entry.js → p-a4aa6dd2.system.entry.js} +1 -1
- package/dist/ionic/{p-49543c9c.system.js → p-a667dd1f.system.js} +1 -1
- package/dist/ionic/{p-8ddc00f7.js → p-a6c0a380.js} +1 -1
- package/dist/ionic/{p-5e60dbc8.entry.js → p-a8459bfb.entry.js} +1 -1
- package/dist/ionic/{p-9a6ab80a.system.entry.js → p-a85d9047.system.entry.js} +1 -1
- package/dist/ionic/{p-ac20160b.system.entry.js → p-abcedc15.system.entry.js} +1 -1
- package/dist/ionic/{p-e68980ff.system.entry.js → p-ae2b3a7a.system.entry.js} +1 -1
- package/dist/ionic/{p-eb1fdf9f.system.entry.js → p-ae828bd9.system.entry.js} +1 -1
- package/dist/ionic/{p-20f7a91e.system.entry.js → p-b0aa3806.system.entry.js} +1 -1
- package/dist/ionic/{p-078fd095.system.entry.js → p-b27bba38.system.entry.js} +1 -1
- package/dist/ionic/p-b4d2f43c.system.js +4 -0
- package/dist/ionic/{p-594ead2f.entry.js → p-b58686e0.entry.js} +1 -1
- package/dist/ionic/{p-fe92da17.entry.js → p-b6279412.entry.js} +1 -1
- package/dist/ionic/{p-400574bf.entry.js → p-b727af6a.entry.js} +1 -1
- package/dist/ionic/{p-a19f5ae1.entry.js → p-ba0fbecc.entry.js} +1 -1
- package/dist/ionic/{p-0e29919c.system.entry.js → p-baf8eeac.system.entry.js} +1 -1
- package/dist/ionic/{p-95c44e02.system.js → p-bcd9cad8.system.js} +1 -1
- package/dist/ionic/{p-37c33319.system.js → p-bd313b73.system.js} +1 -1
- package/dist/ionic/p-bdca4784.js +4 -0
- package/dist/ionic/{p-0ae25399.system.entry.js → p-c1a871ff.system.entry.js} +1 -1
- package/dist/ionic/{p-c3d041af.entry.js → p-c1c7309e.entry.js} +1 -1
- package/dist/ionic/{p-e6cfaa07.system.entry.js → p-c7288e78.system.entry.js} +1 -1
- package/dist/ionic/{p-d74ca358.entry.js → p-cb3065b8.entry.js} +1 -1
- package/dist/ionic/{p-5a0c301f.entry.js → p-cb9812f7.entry.js} +1 -1
- package/dist/ionic/{p-55d5cd00.system.js → p-cbcffe6e.system.js} +1 -1
- package/dist/ionic/{p-df281664.system.entry.js → p-ce1c0a0e.system.entry.js} +1 -1
- package/dist/ionic/{p-4b2d5b9c.js → p-ceceac26.js} +1 -1
- package/dist/ionic/p-cfb4d7e0.js +4 -0
- package/dist/ionic/{p-3a54c070.system.entry.js → p-d143fefa.system.entry.js} +1 -1
- package/dist/ionic/{p-97eca294.entry.js → p-d425b1de.entry.js} +1 -1
- package/dist/ionic/{p-78edc0cd.system.entry.js → p-d6c6541b.system.entry.js} +1 -1
- package/dist/ionic/{p-341b4519.js → p-de55ec45.js} +1 -1
- package/dist/ionic/{p-001010b6.system.js → p-df504a37.system.js} +1 -1
- package/dist/ionic/{p-ea8fbf09.entry.js → p-dff97cfa.entry.js} +1 -1
- package/dist/ionic/{p-d95c8e90.entry.js → p-e1c52dc6.entry.js} +1 -1
- package/dist/ionic/{p-044ad008.system.entry.js → p-e4e74b5f.system.entry.js} +1 -1
- package/dist/ionic/{p-cd055d60.system.entry.js → p-e626800f.system.entry.js} +1 -1
- package/dist/ionic/{p-84f589e1.entry.js → p-e94c1402.entry.js} +1 -1
- package/dist/ionic/{p-30d77a91.system.js → p-ebc1ca90.system.js} +1 -1
- package/dist/ionic/{p-2f66e177.system.entry.js → p-ebc86ce9.system.entry.js} +1 -1
- package/dist/ionic/{p-88ca4854.entry.js → p-ed4760ef.entry.js} +1 -1
- package/dist/ionic/p-ed7a529f.js +5 -0
- package/dist/ionic/{p-fd36799d.system.js → p-f02c41af.system.js} +1 -1
- package/dist/ionic/{p-1d8c2cfc.system.entry.js → p-f0e54781.system.entry.js} +1 -1
- package/dist/ionic/{p-f88dd429.entry.js → p-fa8d3b01.entry.js} +1 -1
- package/dist/ionic/p-fbd01db3.system.js +4 -0
- package/dist/ionic/{p-e2bb92ed.system.js → p-fe320051.system.js} +1 -1
- package/dist/types/components/action-sheet/action-sheet.d.ts +4 -0
- package/dist/types/components/alert/alert.d.ts +4 -0
- package/dist/types/components/loading/loading.d.ts +4 -0
- package/dist/types/components/modal/modal.d.ts +4 -0
- package/dist/types/components/picker/picker.d.ts +4 -0
- package/dist/types/components/popover/popover.d.ts +4 -0
- package/dist/types/components/toast/toast.d.ts +4 -0
- package/dist/types/components.d.ts +7 -7
- package/dist/types/utils/helpers.d.ts +1 -1
- package/dist/types/utils/overlays.d.ts +5 -0
- package/hydrate/index.d.ts +1 -1
- package/hydrate/index.js +292 -68
- package/package.json +6 -6
- package/dist/esm-es5/app-globals-47226a12.js +0 -4
- package/dist/esm-es5/helpers-c0b9ca37.js +0 -4
- package/dist/esm-es5/index-d64f34ea.js +0 -4
- package/dist/esm-es5/md.transition-28a9a26b.js +0 -4
- package/dist/esm-es5/overlays-fad5fe01.js +0 -4
- package/dist/ionic/p-0b955124.system.js +0 -4
- package/dist/ionic/p-1375f21f.js +0 -4
- package/dist/ionic/p-3eb2da31.js +0 -4
- package/dist/ionic/p-41fde260.entry.js +0 -4
- package/dist/ionic/p-4f777b5e.js +0 -4
- package/dist/ionic/p-52e02877.entry.js +0 -4
- package/dist/ionic/p-62067818.system.entry.js +0 -4
- package/dist/ionic/p-62a3c609.system.js +0 -4
- package/dist/ionic/p-6b02edd6.js +0 -4
- package/dist/ionic/p-86670b91.system.js +0 -4
- package/dist/ionic/p-8f1ce253.js +0 -4
- package/dist/ionic/p-b1f0c48e.system.entry.js +0 -4
- package/dist/ionic/p-b4a95b80.system.entry.js +0 -4
- package/dist/ionic/p-c5c3710c.js +0 -4
- package/dist/ionic/p-c80c7e90.system.js +0 -4
- package/dist/ionic/p-e1271366.js +0 -5
- package/dist/ionic/p-fd2aa50c.js +0 -4
- /package/dist/ionic/{p-b5839dc2.js → p-1b3ffb2f.js} +0 -0
- /package/dist/ionic/{p-fd8ced99.system.js → p-5fc8d5ef.system.js} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { expect } from "@playwright/test";
|
|
5
|
+
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
+
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
7
|
+
test.describe(title('label: in item'), () => {
|
|
8
|
+
test('should render correctly in an item', async ({ page }) => {
|
|
9
|
+
test.info().annotations.push({
|
|
10
|
+
type: 'issue',
|
|
11
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/29033',
|
|
12
|
+
});
|
|
13
|
+
await page.setContent(`
|
|
14
|
+
<ion-item>
|
|
15
|
+
<ion-label slot="start">Start</ion-label>
|
|
16
|
+
<ion-label>Default</ion-label>
|
|
17
|
+
<ion-label slot="end">End</ion-label>
|
|
18
|
+
</ion-item>
|
|
19
|
+
`, config);
|
|
20
|
+
const item = page.locator('ion-item');
|
|
21
|
+
await expect(item).toHaveScreenshot(screenshot(`label-item`));
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -113,6 +113,10 @@ export class Loading {
|
|
|
113
113
|
* This can be useful in a button handler for determining which button was
|
|
114
114
|
* clicked to dismiss the loading.
|
|
115
115
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
116
|
+
*
|
|
117
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
118
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
119
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
116
120
|
*/
|
|
117
121
|
async dismiss(data, role) {
|
|
118
122
|
const unlock = await this.lockController.lock();
|
|
@@ -154,9 +158,9 @@ export class Loading {
|
|
|
154
158
|
* Otherwise, don't set aria-labelledby.
|
|
155
159
|
*/
|
|
156
160
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
157
|
-
return (h(Host, Object.assign({ key: '
|
|
161
|
+
return (h(Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
158
162
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
159
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
163
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), h("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
|
|
160
164
|
}
|
|
161
165
|
static get is() { return "ion-loading"; }
|
|
162
166
|
static get encapsulation() { return "scoped"; }
|
|
@@ -680,7 +684,7 @@ export class Loading {
|
|
|
680
684
|
}, {
|
|
681
685
|
"name": "role",
|
|
682
686
|
"type": "string | undefined",
|
|
683
|
-
"docs": "The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"
|
|
687
|
+
"docs": "The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
684
688
|
}],
|
|
685
689
|
"references": {
|
|
686
690
|
"Promise": {
|
|
@@ -697,7 +701,7 @@ export class Loading {
|
|
|
697
701
|
"text": "data Any data to emit in the dismiss events."
|
|
698
702
|
}, {
|
|
699
703
|
"name": "param",
|
|
700
|
-
"text": "role The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"
|
|
704
|
+
"text": "role The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
701
705
|
}]
|
|
702
706
|
}
|
|
703
707
|
},
|
|
@@ -8,7 +8,7 @@ import { raf, inheritAttributes, hasLazyBuild } from "../../utils/helpers";
|
|
|
8
8
|
import { createLockController } from "../../utils/lock-controller";
|
|
9
9
|
import { printIonWarning } from "../../utils/logging/index";
|
|
10
10
|
import { Style as StatusBarStyle, StatusBar } from "../../utils/native/status-bar";
|
|
11
|
-
import { GESTURE, BACKDROP,
|
|
11
|
+
import { GESTURE, BACKDROP, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, } from "../../utils/overlays";
|
|
12
12
|
import { getClassMap } from "../../utils/theme";
|
|
13
13
|
import { deepReady, waitForMount } from "../../utils/transition/index";
|
|
14
14
|
import { config } from "../../global/config";
|
|
@@ -396,6 +396,10 @@ export class Modal {
|
|
|
396
396
|
*
|
|
397
397
|
* @param data Any data to emit in the dismiss events.
|
|
398
398
|
* @param role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.
|
|
399
|
+
*
|
|
400
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
401
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
402
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
399
403
|
*/
|
|
400
404
|
async dismiss(data, role) {
|
|
401
405
|
var _a;
|
|
@@ -432,7 +436,6 @@ export class Modal {
|
|
|
432
436
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
433
437
|
this.keyboardOpenCallback = undefined;
|
|
434
438
|
}
|
|
435
|
-
const enteringAnimation = activeAnimations.get(this) || [];
|
|
436
439
|
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
|
|
437
440
|
presentingEl: presentingElement,
|
|
438
441
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
@@ -448,7 +451,6 @@ export class Modal {
|
|
|
448
451
|
if (this.gesture) {
|
|
449
452
|
this.gesture.destroy();
|
|
450
453
|
}
|
|
451
|
-
enteringAnimation.forEach((ani) => ani.destroy());
|
|
452
454
|
}
|
|
453
455
|
this.currentBreakpoint = undefined;
|
|
454
456
|
this.animation = undefined;
|
|
@@ -528,9 +530,9 @@ export class Modal {
|
|
|
528
530
|
const mode = getIonMode(this);
|
|
529
531
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
530
532
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
531
|
-
return (h(Host, Object.assign({ key: '
|
|
533
|
+
return (h(Host, Object.assign({ key: '0c2c4369ab2df4ef4660addea5e927c6a0232864', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
532
534
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
533
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '
|
|
535
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'd044383a776c2ee1703f996caedaedca47f2948f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '8d23b6a3cc9069e4d46fa0645cde9db3e6f89507',
|
|
534
536
|
/*
|
|
535
537
|
role and aria-modal must be used on the
|
|
536
538
|
same element. They must also be set inside the
|
|
@@ -539,7 +541,7 @@ export class Modal {
|
|
|
539
541
|
*/
|
|
540
542
|
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
|
|
541
543
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
542
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '
|
|
544
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '3fbb689e4bf5575fbb26ad1000f6ac5993f3bf8f' }))));
|
|
543
545
|
}
|
|
544
546
|
static get is() { return "ion-modal"; }
|
|
545
547
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1234,7 +1236,7 @@ export class Modal {
|
|
|
1234
1236
|
}, {
|
|
1235
1237
|
"name": "role",
|
|
1236
1238
|
"type": "string | undefined",
|
|
1237
|
-
"docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
|
|
1239
|
+
"docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
1238
1240
|
}],
|
|
1239
1241
|
"references": {
|
|
1240
1242
|
"Promise": {
|
|
@@ -1255,7 +1257,7 @@ export class Modal {
|
|
|
1255
1257
|
"text": "data Any data to emit in the dismiss events."
|
|
1256
1258
|
}, {
|
|
1257
1259
|
"name": "param",
|
|
1258
|
-
"text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
|
|
1260
|
+
"text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
1259
1261
|
}]
|
|
1260
1262
|
}
|
|
1261
1263
|
},
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { expect } from "@playwright/test";
|
|
5
|
+
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
+
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => {
|
|
7
|
+
test.describe(title('modal: animations'), () => {
|
|
8
|
+
test.beforeEach(async ({ page }) => {
|
|
9
|
+
await page.setContent(`
|
|
10
|
+
<ion-modal is-open="true" trigger="open-modal"></ion-modal>
|
|
11
|
+
`, config);
|
|
12
|
+
});
|
|
13
|
+
test('card modal should clean up animations on dismiss', async ({ page }, testInfo) => {
|
|
14
|
+
testInfo.annotations.push({
|
|
15
|
+
type: 'issue',
|
|
16
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/28352',
|
|
17
|
+
});
|
|
18
|
+
const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
|
|
19
|
+
const modal = page.locator('ion-modal');
|
|
20
|
+
const initialAnimations = await modal.evaluate((el) => {
|
|
21
|
+
return el.shadowRoot.getAnimations();
|
|
22
|
+
});
|
|
23
|
+
// While the modal is open, it should have animations
|
|
24
|
+
expect(initialAnimations.length).toBeGreaterThan(0);
|
|
25
|
+
await modal.evaluate((el) => {
|
|
26
|
+
el.dismiss();
|
|
27
|
+
});
|
|
28
|
+
await ionModalDidDismiss.next();
|
|
29
|
+
const currentAnimations = await modal.evaluate((el) => {
|
|
30
|
+
return el.shadowRoot.getAnimations();
|
|
31
|
+
});
|
|
32
|
+
// Once the modal has finished closing, there should be no animations
|
|
33
|
+
expect(currentAnimations.length).toBe(0);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
@@ -109,6 +109,10 @@ export class Picker {
|
|
|
109
109
|
* This can be useful in a button handler for determining which button was
|
|
110
110
|
* clicked to dismiss the picker.
|
|
111
111
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
112
|
+
*
|
|
113
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
114
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
115
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
112
116
|
*/
|
|
113
117
|
async dismiss(data, role) {
|
|
114
118
|
const unlock = await this.lockController.lock();
|
|
@@ -180,11 +184,11 @@ export class Picker {
|
|
|
180
184
|
render() {
|
|
181
185
|
const { htmlAttributes } = this;
|
|
182
186
|
const mode = getIonMode(this);
|
|
183
|
-
return (h(Host, Object.assign({ key: '
|
|
187
|
+
return (h(Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
184
188
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
185
189
|
}, class: Object.assign({ [mode]: true,
|
|
186
190
|
// Used internally for styling
|
|
187
|
-
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '
|
|
191
|
+
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '35ee3e5028028835580e28ac2c8db65a924d5d6a', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '8b454e6edbcfc45c57d3d8baf7c14b7905921a6e', tabindex: "0" }), h("div", { key: 'e0fee78ec6d097bf0963190f748e5daad602e0f7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'ce66bca18fc3e982ad7d6660f27cb1a03fb8247b', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: 'a58b9523fe16f109dd6de0610717c5077fed964b', class: "picker-columns" }, h("div", { key: 'acd54c0314cff51e8513a08dd9755c4b847c0617', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { key: '604730bd87582d048d850c6e0a0f29ba33258918', class: "picker-below-highlight" }))), h("div", { key: '93baf5e6e57aec5f084d7d5b24af14e7d8126b5a', tabindex: "0" })));
|
|
188
192
|
}
|
|
189
193
|
static get is() { return "ion-picker"; }
|
|
190
194
|
static get encapsulation() { return "scoped"; }
|
|
@@ -693,7 +697,7 @@ export class Picker {
|
|
|
693
697
|
}, {
|
|
694
698
|
"name": "role",
|
|
695
699
|
"type": "string | undefined",
|
|
696
|
-
"docs": "The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"
|
|
700
|
+
"docs": "The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
697
701
|
}],
|
|
698
702
|
"references": {
|
|
699
703
|
"Promise": {
|
|
@@ -710,7 +714,7 @@ export class Picker {
|
|
|
710
714
|
"text": "data Any data to emit in the dismiss events."
|
|
711
715
|
}, {
|
|
712
716
|
"name": "param",
|
|
713
|
-
"text": "role The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"
|
|
717
|
+
"text": "role The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
714
718
|
}]
|
|
715
719
|
}
|
|
716
720
|
},
|
|
@@ -258,6 +258,13 @@
|
|
|
258
258
|
width: 20px;
|
|
259
259
|
height: 10px;
|
|
260
260
|
overflow: hidden;
|
|
261
|
+
/*
|
|
262
|
+
* Required for the arrow to render above the backdrop.
|
|
263
|
+
* Otherwise, the arrow will appear slightly transparent.
|
|
264
|
+
* The value is set to 11 since it's the minimum value that
|
|
265
|
+
* will allow the arrow to render above the backdrop.
|
|
266
|
+
*/
|
|
267
|
+
z-index: 11;
|
|
261
268
|
}
|
|
262
269
|
|
|
263
270
|
.popover-arrow::after {
|
|
@@ -280,6 +280,10 @@ export class Popover {
|
|
|
280
280
|
* @param role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'.
|
|
281
281
|
* @param dismissParentPopover If `true`, dismissing this popover will also dismiss
|
|
282
282
|
* a parent popover if this popover is nested. Defaults to `true`.
|
|
283
|
+
*
|
|
284
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
285
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
286
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
283
287
|
*/
|
|
284
288
|
async dismiss(data, role, dismissParentPopover = true) {
|
|
285
289
|
const unlock = await this.lockController.lock();
|
|
@@ -331,9 +335,9 @@ export class Popover {
|
|
|
331
335
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
|
|
332
336
|
const desktop = isPlatform('desktop');
|
|
333
337
|
const enableArrow = arrow && !parentPopover;
|
|
334
|
-
return (h(Host, Object.assign({ key: '
|
|
338
|
+
return (h(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
335
339
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
336
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '
|
|
340
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'ef0baa04c22444d4bc705220235a892308d67586', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '5cc5f5c353de614e484e9cfeacecfca9fbfde0e0', class: "popover-content", part: "content" }, h("slot", { key: '2d85c591cdc85efa98afbf40f676525f1402efcf' })))));
|
|
337
341
|
}
|
|
338
342
|
static get is() { return "ion-popover"; }
|
|
339
343
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1130,7 +1134,7 @@ export class Popover {
|
|
|
1130
1134
|
}, {
|
|
1131
1135
|
"name": "dismissParentPopover",
|
|
1132
1136
|
"type": "boolean",
|
|
1133
|
-
"docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true
|
|
1137
|
+
"docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
1134
1138
|
}],
|
|
1135
1139
|
"references": {
|
|
1136
1140
|
"Promise": {
|
|
@@ -1154,7 +1158,7 @@ export class Popover {
|
|
|
1154
1158
|
"text": "role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'."
|
|
1155
1159
|
}, {
|
|
1156
1160
|
"name": "param",
|
|
1157
|
-
"text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true
|
|
1161
|
+
"text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
1158
1162
|
}]
|
|
1159
1163
|
}
|
|
1160
1164
|
},
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h, forceUpdate } from "@stencil/core";
|
|
5
5
|
import { compareOptions, createLegacyFormController, createNotchController, isOptionSelected } from "../../utils/forms/index";
|
|
6
|
-
import { findItemLabel,
|
|
6
|
+
import { findItemLabel, focusVisibleElement, getAriaLabel, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
|
|
7
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
8
8
|
import { actionSheetController, alertController, popoverController } from "../../utils/overlays";
|
|
9
9
|
import { isRTL } from "../../utils/rtl/index";
|
|
@@ -158,7 +158,7 @@ export class Select {
|
|
|
158
158
|
if (indexOfSelected > -1) {
|
|
159
159
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
160
160
|
if (selectedItem) {
|
|
161
|
-
|
|
161
|
+
focusVisibleElement(selectedItem);
|
|
162
162
|
/**
|
|
163
163
|
* Browsers such as Firefox do not
|
|
164
164
|
* correctly delegate focus when manually
|
|
@@ -182,7 +182,7 @@ export class Select {
|
|
|
182
182
|
*/
|
|
183
183
|
const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
|
|
184
184
|
if (firstEnabledOption) {
|
|
185
|
-
|
|
185
|
+
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
186
186
|
/**
|
|
187
187
|
* Focus the option for the same reason as we do above.
|
|
188
188
|
*/
|
|
@@ -68,6 +68,16 @@ ion-label {
|
|
|
68
68
|
margin-bottom: 0;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* The main content inside of a popover has overflow: hidden
|
|
73
|
+
* so that a descendant ion-content can be scrolled.
|
|
74
|
+
* However, select-popover does not use ion-content so we need
|
|
75
|
+
* to explicitly make this container scrollable.
|
|
76
|
+
*/
|
|
77
|
+
:host {
|
|
78
|
+
overflow-y: auto;
|
|
79
|
+
}
|
|
80
|
+
|
|
71
81
|
/**
|
|
72
82
|
* Convert a font size to a dynamic font size.
|
|
73
83
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -68,6 +68,16 @@ ion-label {
|
|
|
68
68
|
margin-bottom: 0;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* The main content inside of a popover has overflow: hidden
|
|
73
|
+
* so that a descendant ion-content can be scrolled.
|
|
74
|
+
* However, select-popover does not use ion-content so we need
|
|
75
|
+
* to explicitly make this container scrollable.
|
|
76
|
+
*/
|
|
77
|
+
:host {
|
|
78
|
+
overflow-y: auto;
|
|
79
|
+
}
|
|
80
|
+
|
|
71
81
|
/**
|
|
72
82
|
* Convert a font size to a dynamic font size.
|
|
73
83
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -80,6 +80,18 @@ describe('toast: a11y smoke test', () => {
|
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
describe('toast: duration config', () => {
|
|
83
|
+
afterEach(() => {
|
|
84
|
+
/**
|
|
85
|
+
* Important: Reset the config
|
|
86
|
+
* after each test as it is not
|
|
87
|
+
* automatically reset.
|
|
88
|
+
* Otherwise, toasts in other tests
|
|
89
|
+
* will take on any toastDuration value
|
|
90
|
+
* set and timeouts will potentially run
|
|
91
|
+
* after tests are finished.
|
|
92
|
+
*/
|
|
93
|
+
config.reset({});
|
|
94
|
+
});
|
|
83
95
|
it('should have duration set to 0', async () => {
|
|
84
96
|
const page = await newSpecPage({
|
|
85
97
|
components: [Toast],
|
|
@@ -217,6 +217,10 @@ export class Toast {
|
|
|
217
217
|
* This can be useful in a button handler for determining which button was
|
|
218
218
|
* clicked to dismiss the toast.
|
|
219
219
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
220
|
+
*
|
|
221
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
222
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
223
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
220
224
|
*/
|
|
221
225
|
async dismiss(data, role) {
|
|
222
226
|
var _a, _b;
|
|
@@ -384,9 +388,9 @@ export class Toast {
|
|
|
384
388
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
385
389
|
printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
386
390
|
}
|
|
387
|
-
return (h(Host, Object.assign({ key: '
|
|
391
|
+
return (h(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
388
392
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
389
|
-
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '
|
|
393
|
+
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, h("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
390
394
|
}
|
|
391
395
|
static get is() { return "ion-toast"; }
|
|
392
396
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1032,7 +1036,7 @@ export class Toast {
|
|
|
1032
1036
|
}, {
|
|
1033
1037
|
"name": "role",
|
|
1034
1038
|
"type": "string | undefined",
|
|
1035
|
-
"docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"
|
|
1039
|
+
"docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
1036
1040
|
}],
|
|
1037
1041
|
"references": {
|
|
1038
1042
|
"Promise": {
|
|
@@ -1054,7 +1058,7 @@ export class Toast {
|
|
|
1054
1058
|
"text": "data Any data to emit in the dismiss events."
|
|
1055
1059
|
}, {
|
|
1056
1060
|
"name": "param",
|
|
1057
|
-
"text": "role The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"
|
|
1061
|
+
"text": "role The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
|
|
1058
1062
|
}]
|
|
1059
1063
|
}
|
|
1060
1064
|
},
|