@ionic/core 7.6.2-dev.11704998705.1e1f9850 → 7.6.2-dev.11705694334.11b34c62
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 +4 -4
- package/components/alert.js +2 -2
- package/components/animation.js +16 -1
- package/components/button-active.js +1 -1
- package/components/button.js +2 -2
- package/components/checkbox.js +2 -2
- package/components/ion-back-button.js +1 -1
- package/components/ion-badge.js +2 -2
- package/components/ion-content.js +3 -2
- package/components/ion-datetime-button.js +4 -4
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +2 -2
- package/components/ion-input.js +2 -2
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-sliding.js +128 -7
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-picker-legacy.js +2 -2
- package/components/ion-progress-bar.js +5 -2
- package/components/ion-range.js +2 -2
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-select.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +1 -1
- package/components/ion-textarea.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +2 -2
- package/components/item.js +2 -2
- package/components/label.js +1 -1
- package/components/picker-column2.js +1 -1
- package/components/radio.js +2 -2
- package/components/select-popover.js +1 -1
- package/css/core.css +34 -101
- package/css/core.css.map +1 -1
- package/css/global.bundle.css +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/typography.css +1 -1
- package/dist/cjs/{animation-9b401d39.js → animation-8a4f9df4.js} +16 -0
- package/dist/cjs/{button-active-5bf1cac0.js → button-active-466dfc8a.js} +1 -1
- package/dist/cjs/{index-3b012034.js → index-8023641e.js} +1 -1
- package/dist/cjs/{index-17ab7794.js → index-d8b5d5f9.js} +2 -2
- package/dist/cjs/index.cjs.js +5 -5
- package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -3
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +2 -2
- package/dist/cjs/ion-item-option_3.cjs.entry.js +130 -10
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +2 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-modal.cjs.entry.js +3 -3
- package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +2 -2
- package/dist/cjs/ion-progress-bar.cjs.entry.js +5 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
- 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 +2 -2
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-b5353f3e.js → ios.transition-34cad0cb.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-67157dd9.js → md.transition-5bcc289d.js} +2 -2
- package/dist/collection/components/action-sheet/action-sheet.ios.css +12 -5
- package/dist/collection/components/action-sheet/action-sheet.js +2 -2
- package/dist/collection/components/action-sheet/action-sheet.md.css +9 -2
- package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
- package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +19 -0
- package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +22 -0
- package/dist/collection/components/alert/alert.ios.css +28 -27
- package/dist/collection/components/alert/alert.md.css +6 -6
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
- package/dist/collection/components/back-button/back-button.ios.css +1 -1
- package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
- package/dist/collection/components/badge/badge.ios.css +1 -1
- package/dist/collection/components/badge/badge.md.css +1 -1
- package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -18
- package/dist/collection/components/button/button.ios.css +10 -10
- package/dist/collection/components/button/button.md.css +8 -8
- package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
- package/dist/collection/components/checkbox/checkbox.ios.css +5 -5
- package/dist/collection/components/checkbox/checkbox.md.css +2 -3
- package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
- package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +10 -0
- package/dist/collection/components/content/content.js +3 -2
- package/dist/collection/components/datetime/datetime.ios.css +3 -2
- package/dist/collection/components/datetime-button/datetime-button.ios.css +107 -0
- package/dist/collection/components/datetime-button/datetime-button.js +4 -4
- package/dist/collection/components/datetime-button/{datetime-button.css → datetime-button.md.css} +9 -6
- package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +12 -0
- package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
- package/dist/collection/components/fab-button/fab-button.md.css +4 -4
- package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
- package/dist/collection/components/input/input.ios.css +3 -3
- package/dist/collection/components/input/input.md.css +3 -3
- package/dist/collection/components/input/test/a11y/input.e2e.js +3 -41
- package/dist/collection/components/item/item.ios.css +3 -3
- package/dist/collection/components/item/item.md.css +4 -4
- package/dist/collection/components/item-option/item-option.ios.css +2 -2
- package/dist/collection/components/item-option/item-option.md.css +1 -1
- package/dist/collection/components/item-sliding/animations/item-sliding-options.js +59 -0
- package/dist/collection/components/item-sliding/item-sliding.css +8 -4
- package/dist/collection/components/item-sliding/item-sliding.js +89 -6
- package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
- package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +62 -25
- package/dist/collection/components/label/label.md.css +1 -1
- package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
- package/dist/collection/components/loading/loading.md.css +1 -1
- package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
- package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
- package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +1 -1
- package/dist/collection/components/picker-legacy/picker.md.css +1 -1
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +1 -1
- package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -11
- package/dist/collection/components/progress-bar/progress-bar.js +3 -0
- package/dist/collection/components/progress-bar/progress-bar.md.css +8 -10
- package/dist/collection/components/radio/radio.ios.css +2 -2
- package/dist/collection/components/radio/radio.md.css +2 -2
- package/dist/collection/components/radio/test/a11y/radio.e2e.js +68 -101
- package/dist/collection/components/range/range.ios.css +1 -1
- package/dist/collection/components/range/range.md.css +3 -3
- package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
- package/dist/collection/components/refresher/refresher.md.css +2 -2
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/router-link/router-link.css +1 -1
- package/dist/collection/components/searchbar/searchbar.ios.css +4 -4
- package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
- package/dist/collection/components/segment-button/segment-button.md.css +2 -2
- package/dist/collection/components/select/select.ios.css +3 -3
- package/dist/collection/components/select/select.md.css +3 -3
- package/dist/collection/components/select/test/a11y/select.e2e.js +4 -68
- package/dist/collection/components/select-popover/select-popover.md.css +4 -4
- package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
- package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
- package/dist/collection/components/tab-button/tab-button.ios.css +6 -1
- package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -41
- package/dist/collection/components/textarea/textarea.ios.css +3 -3
- package/dist/collection/components/textarea/textarea.md.css +3 -3
- package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -56
- package/dist/collection/components/toast/toast.ios.css +1 -1
- package/dist/collection/components/toast/toast.md.css +2 -2
- package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
- package/dist/collection/components/toggle/toggle.ios.css +8 -8
- package/dist/collection/components/toggle/toggle.md.css +2 -2
- package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
- package/dist/collection/utils/animation/animation.js +15 -0
- package/dist/collection/utils/gesture/button-active.js +1 -1
- package/dist/collection/utils/test/playwright/generator.js +0 -1
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/docs.json +34 -7
- package/dist/esm/{animation-dde8cc0d.js → animation-ccab0993.js} +16 -1
- package/dist/esm/{button-active-48379dd2.js → button-active-2758ff14.js} +1 -1
- package/dist/esm/{index-4743453d.js → index-9dbb78a4.js} +2 -2
- package/dist/esm/{index-1193f005.js → index-b7e9478d.js} +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/ion-action-sheet.entry.js +6 -6
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +4 -3
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +5 -5
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +2 -2
- package/dist/esm/ion-item-option_3.entry.js +130 -10
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +2 -2
- package/dist/esm/ion-menu_3.entry.js +3 -3
- package/dist/esm/ion-modal.entry.js +3 -3
- package/dist/esm/ion-nav_2.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +2 -2
- package/dist/esm/ion-progress-bar.entry.js +5 -2
- package/dist/esm/ion-radio_2.entry.js +2 -2
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-refresher_2.entry.js +3 -3
- package/dist/esm/ion-route_4.entry.js +1 -1
- package/dist/esm/ion-searchbar.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +3 -3
- package/dist/esm/ion-tab-bar_2.entry.js +3 -3
- 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 +2 -2
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-3376ccb2.js → ios.transition-01176d76.js} +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-f992779f.js → md.transition-558655c7.js} +2 -2
- package/dist/esm-es5/animation-ccab0993.js +4 -0
- package/dist/esm-es5/button-active-2758ff14.js +4 -0
- package/dist/esm-es5/{index-4743453d.js → index-9dbb78a4.js} +1 -1
- package/dist/esm-es5/{index-1193f005.js → index-b7e9478d.js} +1 -1
- 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-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.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-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-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-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-tab-bar_2.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-3376ccb2.js → ios.transition-01176d76.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-558655c7.js +4 -0
- package/dist/html.html-data.json +12 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-ec0a9b2c.system.entry.js → p-019e0d80.system.entry.js} +1 -1
- package/dist/ionic/p-02dc8c5b.entry.js +4 -0
- package/dist/ionic/{p-c6e9ef77.entry.js → p-0cc80201.entry.js} +1 -1
- package/dist/ionic/{p-662a9a47.system.entry.js → p-0dfa4ab4.system.entry.js} +1 -1
- package/dist/ionic/{p-590447a5.system.entry.js → p-0e908476.system.entry.js} +1 -1
- package/dist/ionic/{p-df6f50ef.entry.js → p-10339dcc.entry.js} +1 -1
- package/dist/ionic/{p-1d5b03e3.system.entry.js → p-11bf2ad0.system.entry.js} +1 -1
- package/dist/ionic/{p-3796194b.system.entry.js → p-19c379da.system.entry.js} +1 -1
- package/dist/ionic/p-19d9ceb8.system.js +1 -1
- package/dist/ionic/p-1a22895e.system.entry.js +4 -0
- package/dist/ionic/p-1c69a4ca.system.entry.js +4 -0
- package/dist/ionic/{p-92bfb607.entry.js → p-20a4ee02.entry.js} +1 -1
- package/dist/ionic/{p-530bb2af.system.entry.js → p-2316de85.system.entry.js} +1 -1
- package/dist/ionic/{p-5cbfce20.entry.js → p-26ff1180.entry.js} +1 -1
- package/dist/ionic/{p-aa8b021d.entry.js → p-289f354c.entry.js} +1 -1
- package/dist/ionic/p-2a3b87cd.entry.js +4 -0
- package/dist/ionic/p-2e01f1c5.system.entry.js +4 -0
- package/dist/ionic/{p-5f1b0512.entry.js → p-3b043115.entry.js} +1 -1
- package/dist/ionic/p-3b434dee.system.entry.js +4 -0
- package/dist/ionic/{p-d88ed181.system.entry.js → p-41208f54.system.entry.js} +1 -1
- package/dist/ionic/{p-f0dbd73e.system.entry.js → p-42925096.system.entry.js} +1 -1
- package/dist/ionic/p-44791cff.entry.js +4 -0
- package/dist/ionic/p-4981ea0a.system.entry.js +4 -0
- package/dist/ionic/{p-13d4dfe7.entry.js → p-5074a526.entry.js} +1 -1
- package/dist/ionic/{p-a41eaff2.system.entry.js → p-56b1a872.system.entry.js} +1 -1
- package/dist/ionic/p-57785713.system.entry.js +4 -0
- package/dist/ionic/p-57e9de81.system.js +4 -0
- package/dist/ionic/{p-c001b24f.entry.js → p-5dc16594.entry.js} +1 -1
- package/dist/ionic/{p-9f94e34a.system.entry.js → p-614e63a9.system.entry.js} +1 -1
- package/dist/ionic/{p-8b160fba.entry.js → p-67e52d31.entry.js} +1 -1
- package/dist/ionic/{p-aa975ff8.entry.js → p-6855f26a.entry.js} +1 -1
- package/dist/ionic/{p-7dade589.system.entry.js → p-69ce8bba.system.entry.js} +1 -1
- package/dist/ionic/p-6fb2b5e3.js +4 -0
- package/dist/ionic/{p-8e961825.entry.js → p-799da666.entry.js} +1 -1
- package/dist/ionic/{p-04377cfa.js → p-7b4649d7.js} +1 -1
- package/dist/ionic/{p-4abb1251.entry.js → p-7c7bc0cc.entry.js} +1 -1
- package/dist/ionic/{p-a29db3a0.entry.js → p-7dcf795f.entry.js} +1 -1
- package/dist/ionic/{p-a074be82.system.js → p-7de7a5fd.system.js} +1 -1
- package/dist/ionic/{p-f38c1f8d.entry.js → p-806a9810.entry.js} +1 -1
- package/dist/ionic/p-80ad9792.system.js +4 -0
- package/dist/ionic/{p-d08e0136.entry.js → p-84b567a6.entry.js} +1 -1
- package/dist/ionic/{p-a49931aa.system.js → p-9093afb1.system.js} +1 -1
- package/dist/ionic/p-922c234e.js +4 -0
- package/dist/ionic/p-97a9d526.system.entry.js +4 -0
- package/dist/ionic/p-99d448ba.system.entry.js +4 -0
- package/dist/ionic/p-9c5e3a2c.system.entry.js +4 -0
- package/dist/ionic/{p-1c453add.system.entry.js → p-a1bd098f.system.entry.js} +1 -1
- package/dist/ionic/p-a619ecad.entry.js +4 -0
- package/dist/ionic/{p-354682e8.system.entry.js → p-abd5d0d5.system.entry.js} +1 -1
- package/dist/ionic/{p-e9431a58.entry.js → p-ae4b7df8.entry.js} +1 -1
- package/dist/ionic/p-b20717fc.system.entry.js +4 -0
- package/dist/ionic/p-b61d7624.entry.js +4 -0
- package/dist/ionic/p-b660ba8a.system.js +4 -0
- package/dist/ionic/{p-2716d76c.entry.js → p-b68d435f.entry.js} +1 -1
- package/dist/ionic/p-ba2b1ef5.entry.js +4 -0
- package/dist/ionic/{p-bc01c384.entry.js → p-ba5d9e27.entry.js} +1 -1
- package/dist/ionic/{p-9c48f42f.entry.js → p-bb3fd397.entry.js} +1 -1
- package/dist/ionic/{p-44a56556.js → p-c75dc92f.js} +1 -1
- package/dist/ionic/{p-1ab2642a.system.js → p-c8f7e8c8.system.js} +1 -1
- package/dist/ionic/p-cd729946.js +4 -0
- package/dist/ionic/{p-385bb983.entry.js → p-cf53213c.entry.js} +1 -1
- package/dist/ionic/{p-e403ff07.entry.js → p-d1ab26de.entry.js} +1 -1
- package/dist/ionic/p-d2a73201.system.entry.js +4 -0
- package/dist/ionic/p-d3525765.js +4 -0
- package/dist/ionic/{p-d01449a3.system.entry.js → p-da666998.system.entry.js} +1 -1
- package/dist/ionic/{p-cc700688.system.entry.js → p-db05ecb6.system.entry.js} +1 -1
- package/dist/ionic/p-dc43a79e.entry.js +4 -0
- package/dist/ionic/{p-0aa78a8d.system.js → p-e755af39.system.js} +1 -1
- package/dist/ionic/p-ee71caaa.system.entry.js +4 -0
- package/dist/ionic/{p-5aec2208.entry.js → p-f0eafd38.entry.js} +1 -1
- package/dist/ionic/{p-25312768.system.entry.js → p-f25b4396.system.entry.js} +1 -1
- package/dist/ionic/{p-308b6cf2.system.entry.js → p-f65f4d3e.system.entry.js} +1 -1
- package/dist/ionic/p-fd98debb.entry.js +4 -0
- package/dist/ionic/p-fe458994.system.entry.js +4 -0
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +8 -0
- package/dist/types/components/item-sliding/animations/item-sliding-options.d.ts +10 -0
- package/dist/types/components/item-sliding/item-sliding.d.ts +19 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/types/utils/animation/animation-interface.d.ts +6 -0
- package/dist/types/utils/animation/animation.d.ts +2 -0
- package/hydrate/index.js +203 -66
- package/package.json +1 -1
- package/css/themes/dark.always.css +0 -122
- package/css/themes/dark.always.css.map +0 -1
- package/css/themes/dark.class.css +0 -122
- package/css/themes/dark.class.css.map +0 -1
- package/css/themes/dark.css +0 -3
- package/css/themes/dark.css.map +0 -1
- package/css/themes/dark.system.css +0 -124
- package/css/themes/dark.system.css.map +0 -1
- package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
- package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -25
- package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
- package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
- package/dist/collection/themes/test/colors/theme.e2e.js +0 -114
- package/dist/esm-es5/animation-dde8cc0d.js +0 -4
- package/dist/esm-es5/button-active-48379dd2.js +0 -4
- package/dist/esm-es5/md.transition-f992779f.js +0 -4
- package/dist/ionic/p-04d84d5d.entry.js +0 -4
- package/dist/ionic/p-068950da.entry.js +0 -4
- package/dist/ionic/p-0832dedf.entry.js +0 -4
- package/dist/ionic/p-11c55ac8.system.js +0 -4
- package/dist/ionic/p-1b60cc53.js +0 -4
- package/dist/ionic/p-24c3f2cd.system.entry.js +0 -4
- package/dist/ionic/p-2724403e.entry.js +0 -4
- package/dist/ionic/p-283bc1a1.system.entry.js +0 -4
- package/dist/ionic/p-29d03b3a.js +0 -4
- package/dist/ionic/p-38f2c6bb.system.js +0 -4
- package/dist/ionic/p-3af5faf8.system.entry.js +0 -4
- package/dist/ionic/p-713af1fe.entry.js +0 -4
- package/dist/ionic/p-8a25bf30.system.entry.js +0 -4
- package/dist/ionic/p-97aaf697.system.entry.js +0 -4
- package/dist/ionic/p-98f35d98.js +0 -4
- package/dist/ionic/p-9a68d8ef.system.js +0 -4
- package/dist/ionic/p-9a8bc8f3.system.entry.js +0 -4
- package/dist/ionic/p-a6e5f54e.system.entry.js +0 -4
- package/dist/ionic/p-b59fe3bd.system.entry.js +0 -4
- package/dist/ionic/p-b7e03ff0.system.entry.js +0 -4
- package/dist/ionic/p-bec6ae40.entry.js +0 -4
- package/dist/ionic/p-c16fbc5f.system.entry.js +0 -4
- package/dist/ionic/p-cb6a1fa0.system.entry.js +0 -4
- package/dist/ionic/p-cd3e1a06.entry.js +0 -4
- package/dist/ionic/p-cd574dfa.js +0 -4
- package/dist/ionic/p-d1ad57d5.system.entry.js +0 -4
- package/dist/ionic/p-d2634efe.system.entry.js +0 -4
- package/dist/ionic/p-fc17f198.entry.js +0 -4
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
|
+
import { supportsWebAnimations } from "../../utils/animation/animation";
|
|
5
6
|
import { findClosestIonContent, disableContentScrollY, resetContentScrollY } from "../../utils/content/index";
|
|
6
7
|
import { isEndSide } from "../../utils/helpers";
|
|
8
|
+
import { printIonWarning } from "../../utils/logging/index";
|
|
9
|
+
import { isRTL } from "../../utils/rtl/index";
|
|
7
10
|
import { watchForOptions } from "../../utils/watch-options";
|
|
8
11
|
import { getIonMode } from "../../global/ionic-global";
|
|
12
|
+
import { slidingItemAnimation } from "./animations/item-sliding-options";
|
|
9
13
|
const SWIPE_MARGIN = 30;
|
|
10
14
|
const ELASTIC_FACTOR = 0.55;
|
|
11
15
|
let openSlidingItem;
|
|
@@ -22,6 +26,7 @@ export class ItemSliding {
|
|
|
22
26
|
this.initialContentScrollY = true;
|
|
23
27
|
this.state = 2 /* SlidingState.Disabled */;
|
|
24
28
|
this.disabled = false;
|
|
29
|
+
this.animationType = 'legacy';
|
|
25
30
|
}
|
|
26
31
|
disabledChanged() {
|
|
27
32
|
if (this.gesture) {
|
|
@@ -70,6 +75,12 @@ export class ItemSliding {
|
|
|
70
75
|
this.mutationObserver = undefined;
|
|
71
76
|
}
|
|
72
77
|
}
|
|
78
|
+
componentWillLoad() {
|
|
79
|
+
if (!supportsWebAnimations && this.animationType === 'modern') {
|
|
80
|
+
printIonWarning('Animation type "modern" needs Web Animations API support. Falling back to "legacy".');
|
|
81
|
+
this.animationType = 'legacy';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
73
84
|
/**
|
|
74
85
|
* Get the amount the item is open in pixels.
|
|
75
86
|
*/
|
|
@@ -174,6 +185,20 @@ export class ItemSliding {
|
|
|
174
185
|
return this.rightOptions;
|
|
175
186
|
}
|
|
176
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Given a side, return the width of the options on that side.
|
|
190
|
+
*
|
|
191
|
+
* @param side The side of the options to get the width for.
|
|
192
|
+
*/
|
|
193
|
+
getOptionsWidth(side) {
|
|
194
|
+
if (side === 'start') {
|
|
195
|
+
return this.optsWidthLeftSide;
|
|
196
|
+
}
|
|
197
|
+
else if (side === 'end') {
|
|
198
|
+
return this.optsWidthRightSide;
|
|
199
|
+
}
|
|
200
|
+
return 0;
|
|
201
|
+
}
|
|
177
202
|
async updateOptions() {
|
|
178
203
|
const options = this.el.querySelectorAll('ion-item-options');
|
|
179
204
|
let sides = 0;
|
|
@@ -321,7 +346,8 @@ export class ItemSliding {
|
|
|
321
346
|
if (!this.item) {
|
|
322
347
|
return;
|
|
323
348
|
}
|
|
324
|
-
const { el } = this;
|
|
349
|
+
const { el, animationType } = this;
|
|
350
|
+
const rtl = isRTL(el);
|
|
325
351
|
const style = this.item.style;
|
|
326
352
|
this.openAmount = openAmount;
|
|
327
353
|
if (isFinal) {
|
|
@@ -365,14 +391,51 @@ export class ItemSliding {
|
|
|
365
391
|
}, 600);
|
|
366
392
|
openSlidingItem = undefined;
|
|
367
393
|
style.transform = '';
|
|
394
|
+
if (animationType === 'modern') {
|
|
395
|
+
this.animateSlidingItemOptions(0, rtl);
|
|
396
|
+
}
|
|
368
397
|
return;
|
|
369
398
|
}
|
|
370
399
|
style.transform = `translate3d(${-openAmount}px,0,0)`;
|
|
400
|
+
if (animationType === 'modern') {
|
|
401
|
+
this.animateSlidingItemOptions(openAmount, rtl);
|
|
402
|
+
}
|
|
371
403
|
this.ionDrag.emit({
|
|
372
404
|
amount: openAmount,
|
|
373
405
|
ratio: this.getSlidingRatioSync(),
|
|
374
406
|
});
|
|
375
407
|
}
|
|
408
|
+
animateSlidingItemOptions(openAmount, isRTL) {
|
|
409
|
+
var _a;
|
|
410
|
+
/**
|
|
411
|
+
* The total width of the 'processed' options.
|
|
412
|
+
* Used to calculate the offset to move each option off the
|
|
413
|
+
* screen, on top of each other.
|
|
414
|
+
*/
|
|
415
|
+
let optionWidthOffset = 0;
|
|
416
|
+
const side = this.state === 16 /* SlidingState.Start */ ? 'start' : 'end';
|
|
417
|
+
const options = Array.from(((_a = this.getOptions(side)) === null || _a === void 0 ? void 0 : _a.querySelectorAll('ion-item-option')) || []);
|
|
418
|
+
const optsWidth = this.getOptionsWidth(side);
|
|
419
|
+
const progress = Math.abs(openAmount / optsWidth);
|
|
420
|
+
options.forEach((option, index) => {
|
|
421
|
+
let isFinal = false;
|
|
422
|
+
let zIndex;
|
|
423
|
+
let viewportOffset = 0;
|
|
424
|
+
const isReset = openAmount === 0;
|
|
425
|
+
if (side === 'start') {
|
|
426
|
+
viewportOffset = isRTL ? -1 * (optsWidth - optionWidthOffset) : -1 * (option.clientWidth + optionWidthOffset);
|
|
427
|
+
isFinal = openAmount <= -optsWidth;
|
|
428
|
+
zIndex = isRTL ? undefined : options.length - index;
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
viewportOffset = isRTL ? optionWidthOffset + option.clientWidth : optsWidth - optionWidthOffset;
|
|
432
|
+
isFinal = openAmount >= optsWidth;
|
|
433
|
+
zIndex = isRTL ? options.length - index : undefined;
|
|
434
|
+
}
|
|
435
|
+
slidingItemAnimation(option, viewportOffset, progress, isFinal, isReset, zIndex);
|
|
436
|
+
optionWidthOffset += option.clientWidth;
|
|
437
|
+
});
|
|
438
|
+
}
|
|
376
439
|
getSlidingRatioSync() {
|
|
377
440
|
if (this.openAmount > 0) {
|
|
378
441
|
return this.openAmount / this.optsWidthRightSide;
|
|
@@ -386,13 +449,15 @@ export class ItemSliding {
|
|
|
386
449
|
}
|
|
387
450
|
render() {
|
|
388
451
|
const mode = getIonMode(this);
|
|
452
|
+
const { state, animationType } = this;
|
|
389
453
|
return (h(Host, { class: {
|
|
390
454
|
[mode]: true,
|
|
391
|
-
|
|
392
|
-
'item-sliding-active-
|
|
393
|
-
'item-sliding-active-options-
|
|
394
|
-
'item-sliding-active-
|
|
395
|
-
'item-sliding-active-swipe-
|
|
455
|
+
[`item-sliding-animation-${animationType}`]: true,
|
|
456
|
+
'item-sliding-active-slide': state !== 2 /* SlidingState.Disabled */,
|
|
457
|
+
'item-sliding-active-options-end': (state & 8 /* SlidingState.End */) !== 0,
|
|
458
|
+
'item-sliding-active-options-start': (state & 16 /* SlidingState.Start */) !== 0,
|
|
459
|
+
'item-sliding-active-swipe-end': (state & 32 /* SlidingState.SwipeEnd */) !== 0,
|
|
460
|
+
'item-sliding-active-swipe-start': (state & 64 /* SlidingState.SwipeStart */) !== 0,
|
|
396
461
|
} }));
|
|
397
462
|
}
|
|
398
463
|
static get is() { return "ion-item-sliding"; }
|
|
@@ -425,6 +490,24 @@ export class ItemSliding {
|
|
|
425
490
|
"attribute": "disabled",
|
|
426
491
|
"reflect": false,
|
|
427
492
|
"defaultValue": "false"
|
|
493
|
+
},
|
|
494
|
+
"animationType": {
|
|
495
|
+
"type": "string",
|
|
496
|
+
"mutable": false,
|
|
497
|
+
"complexType": {
|
|
498
|
+
"original": "'modern' | 'legacy'",
|
|
499
|
+
"resolved": "\"legacy\" | \"modern\"",
|
|
500
|
+
"references": {}
|
|
501
|
+
},
|
|
502
|
+
"required": false,
|
|
503
|
+
"optional": false,
|
|
504
|
+
"docs": {
|
|
505
|
+
"tags": [],
|
|
506
|
+
"text": "Specifies the animation behavior for sliding item options.\nYou can choose between two available options: \"modern\" and \"legacy\".\n\n- \"legacy\": The item will be swiped to reveal the option buttons beneath it.\n- \"modern\": As the item is swiped, all item options will smoothly and gradually reveal themselves.\n\nThe \"modern\" animation type requires the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API).\nCheck [Browser Support](https://caniuse.com/web-animation) for more information."
|
|
507
|
+
},
|
|
508
|
+
"attribute": "animation-type",
|
|
509
|
+
"reflect": false,
|
|
510
|
+
"defaultValue": "'legacy'"
|
|
428
511
|
}
|
|
429
512
|
};
|
|
430
513
|
}
|
|
@@ -1,36 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import AxeBuilder from "@axe-core/playwright";
|
|
5
|
-
import { expect } from "@playwright/test";
|
|
6
4
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
5
|
import { testSlidingItem } from "../test.utils";
|
|
8
|
-
configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
|
|
9
|
-
test.describe(title('item-sliding: a11y for ion-color()'), () => {
|
|
10
|
-
test('should not have accessibility violations', async ({ page }) => {
|
|
11
|
-
await page.setContent(`
|
|
12
|
-
<main>
|
|
13
|
-
<ion-item-sliding id="axe">
|
|
14
|
-
<ion-item>
|
|
15
|
-
<ion-label>Sliding Item with End Options</ion-label>
|
|
16
|
-
</ion-item>
|
|
17
|
-
|
|
18
|
-
<ion-item-options>
|
|
19
|
-
<ion-item-option>Favorite</ion-item-option>
|
|
20
|
-
<ion-item-option class="ion-activated">Activated</ion-item-option>
|
|
21
|
-
</ion-item-options>
|
|
22
|
-
</ion-item-sliding>
|
|
23
|
-
</main>
|
|
24
|
-
`, config);
|
|
25
|
-
await page.locator(`#axe`).evaluate(async (el) => {
|
|
26
|
-
await el.open('end');
|
|
27
|
-
});
|
|
28
|
-
await page.waitForChanges();
|
|
29
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
30
|
-
expect(results.violations).toEqual([]);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
6
|
/**
|
|
35
7
|
* This behavior does not vary across directions
|
|
36
8
|
*/
|
|
@@ -15,33 +15,70 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
15
15
|
test.beforeEach(async ({ page }) => {
|
|
16
16
|
await page.goto(`/src/components/item-sliding/test/basic`, config);
|
|
17
17
|
});
|
|
18
|
-
test.describe('
|
|
19
|
-
test('
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
test.describe('legacy animation', () => {
|
|
19
|
+
test.describe('start options', () => {
|
|
20
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
21
|
+
const item = page.locator('#item2');
|
|
22
|
+
/**
|
|
23
|
+
* Negative dragByX value to drag element from the right to the left
|
|
24
|
+
* to reveal the options on the right side.
|
|
25
|
+
* Positive dragByX value to drag element from the left to the right
|
|
26
|
+
* to reveal the options on the left side.
|
|
27
|
+
*/
|
|
28
|
+
const dragByX = config.direction === 'rtl' ? -150 : 150;
|
|
29
|
+
await dragElementBy(item, page, dragByX);
|
|
30
|
+
await page.waitForChanges();
|
|
31
|
+
await expect(item).toHaveScreenshot(screenshot('item-sliding-start'));
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
test.describe('end options', () => {
|
|
35
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
36
|
+
const item = page.locator('#item2');
|
|
37
|
+
/**
|
|
38
|
+
* Negative dragByX value to drag element from the right to the left
|
|
39
|
+
* to reveal the options on the right side.
|
|
40
|
+
* Positive dragByX value to drag element from the left to the right
|
|
41
|
+
* to reveal the options on the left side.
|
|
42
|
+
*/
|
|
43
|
+
const dragByX = config.direction === 'rtl' ? 150 : -150;
|
|
44
|
+
await dragElementBy(item, page, dragByX);
|
|
45
|
+
await expect(item).toHaveScreenshot(screenshot('item-sliding-end'));
|
|
46
|
+
});
|
|
31
47
|
});
|
|
32
48
|
});
|
|
33
|
-
test.describe('
|
|
34
|
-
test('
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
test.describe('modern animation', () => {
|
|
50
|
+
test.describe('start options', () => {
|
|
51
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
52
|
+
const useModernAnimationBtn = page.locator('#useModernAnimation');
|
|
53
|
+
await useModernAnimationBtn.click();
|
|
54
|
+
const item = page.locator('#item2');
|
|
55
|
+
/**
|
|
56
|
+
* Negative dragByX value to drag element from the right to the left
|
|
57
|
+
* to reveal the options on the right side.
|
|
58
|
+
* Positive dragByX value to drag element from the left to the right
|
|
59
|
+
* to reveal the options on the left side.
|
|
60
|
+
*/
|
|
61
|
+
const dragByX = config.direction === 'rtl' ? -150 : 150;
|
|
62
|
+
await dragElementBy(item, page, dragByX);
|
|
63
|
+
await page.waitForChanges();
|
|
64
|
+
await expect(item).toHaveScreenshot(screenshot('modern-item-sliding-start'));
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
test.describe('end options', () => {
|
|
68
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
69
|
+
const useModernAnimationBtn = page.locator('#useModernAnimation');
|
|
70
|
+
await useModernAnimationBtn.click();
|
|
71
|
+
const item = page.locator('#item2');
|
|
72
|
+
/**
|
|
73
|
+
* Negative dragByX value to drag element from the right to the left
|
|
74
|
+
* to reveal the options on the right side.
|
|
75
|
+
* Positive dragByX value to drag element from the left to the right
|
|
76
|
+
* to reveal the options on the left side.
|
|
77
|
+
*/
|
|
78
|
+
const dragByX = config.direction === 'rtl' ? 150 : -150;
|
|
79
|
+
await dragElementBy(item, page, dragByX);
|
|
80
|
+
await expect(item).toHaveScreenshot(screenshot('modern-item-sliding-end'));
|
|
81
|
+
});
|
|
45
82
|
});
|
|
46
83
|
});
|
|
47
84
|
});
|
|
@@ -348,7 +348,7 @@
|
|
|
348
348
|
:host-context(.ion-focused).label-floating:not(.ion-color),
|
|
349
349
|
:host-context(.item-has-focus).label-stacked:not(.ion-color),
|
|
350
350
|
:host-context(.item-has-focus).label-floating:not(.ion-color) {
|
|
351
|
-
color: var(--ion-color-primary, #
|
|
351
|
+
color: var(--ion-color-primary, #3880ff);
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
:host-context(.ion-focused.ion-color).label-stacked:not(.ion-color),
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import AxeBuilder from "@axe-core/playwright";
|
|
5
4
|
import { expect } from "@playwright/test";
|
|
6
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
6
|
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
@@ -65,25 +64,6 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
65
64
|
});
|
|
66
65
|
});
|
|
67
66
|
});
|
|
68
|
-
configs({ directions: ['ltr'], modes: ['md'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
|
|
69
|
-
test.describe(title('label: a11y for ion-color()'), () => {
|
|
70
|
-
test('should not have accessibility violations when focused', async ({ page }) => {
|
|
71
|
-
/**
|
|
72
|
-
* All page content should be contained by landmarks (main, nav, etc.)
|
|
73
|
-
* By containing the badge in a main element, we can avoid this violation.
|
|
74
|
-
*/
|
|
75
|
-
await page.setContent(`
|
|
76
|
-
<main>
|
|
77
|
-
<div class="ion-focused">
|
|
78
|
-
<ion-label position="stacked">Default Label</ion-label>
|
|
79
|
-
</div>
|
|
80
|
-
</main>
|
|
81
|
-
`, config);
|
|
82
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
83
|
-
expect(results.violations).toEqual([]);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
67
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
88
68
|
test.describe(title('label: text wrapping in item'), () => {
|
|
89
69
|
test('long text should not cause label to expand infinitely', async ({ page }) => {
|
|
@@ -173,7 +173,7 @@ ion-spinner {
|
|
|
173
173
|
--background: var(--ion-color-step-50, #f2f2f2);
|
|
174
174
|
--max-width: 280px;
|
|
175
175
|
--max-height: 90%;
|
|
176
|
-
--spinner-color: var(--ion-color-primary, #
|
|
176
|
+
--spinner-color: var(--ion-color-primary, #3880ff);
|
|
177
177
|
--backdrop-opacity: var(--ion-backdrop-opacity, 0.32);
|
|
178
178
|
color: var(--ion-color-step-850, #262626);
|
|
179
179
|
font-size: 0.875rem;
|
|
@@ -4,36 +4,20 @@
|
|
|
4
4
|
import AxeBuilder from "@axe-core/playwright";
|
|
5
5
|
import { expect } from "@playwright/test";
|
|
6
6
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
|
-
configs({ modes: ['ios'], directions: ['ltr']
|
|
7
|
+
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
8
8
|
test.describe(title('loading: a11y'), () => {
|
|
9
9
|
test('should set aria-labelledby with a message', async ({ page }) => {
|
|
10
|
-
await page.
|
|
11
|
-
<ion-loading></ion-loading>
|
|
12
|
-
|
|
13
|
-
<script>
|
|
14
|
-
const loading = document.querySelector('ion-loading');
|
|
15
|
-
loading.message = 'Loading';
|
|
16
|
-
</script>
|
|
17
|
-
`, config);
|
|
10
|
+
await page.goto('/src/components/loading/test/a11y', config);
|
|
18
11
|
const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
|
|
19
|
-
|
|
20
|
-
await loading.evaluate((el) => el.present());
|
|
12
|
+
await page.click('#open-message-loading');
|
|
21
13
|
await ionLoadingDidPresent.next();
|
|
22
14
|
const results = await new AxeBuilder({ page }).analyze();
|
|
23
15
|
expect(results.violations).toEqual([]);
|
|
24
16
|
});
|
|
25
17
|
test('should set aria-labelledby with a label', async ({ page }) => {
|
|
26
|
-
await page.
|
|
27
|
-
<ion-loading aria-label="Loading"></ion-loading>
|
|
28
|
-
|
|
29
|
-
<script>
|
|
30
|
-
const loading = document.querySelector('ion-loading');
|
|
31
|
-
loading.spinner = 'bubbles';
|
|
32
|
-
</script>
|
|
33
|
-
`, config);
|
|
18
|
+
await page.goto('/src/components/loading/test/a11y', config);
|
|
34
19
|
const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
|
|
35
|
-
|
|
36
|
-
await loading.evaluate((el) => el.present());
|
|
20
|
+
await page.click('#open-label-loading');
|
|
37
21
|
await ionLoadingDidPresent.next();
|
|
38
22
|
const results = await new AxeBuilder({ page }).analyze();
|
|
39
23
|
expect(results.violations).toEqual([]);
|
|
@@ -261,7 +261,7 @@ ion-icon {
|
|
|
261
261
|
--background-focused: currentColor;
|
|
262
262
|
--background-focused-opacity: .1;
|
|
263
263
|
--border-radius: 4px;
|
|
264
|
-
--color: var(--ion-color-primary, #
|
|
264
|
+
--color: var(--ion-color-primary, #3880ff);
|
|
265
265
|
--padding-start: 5px;
|
|
266
266
|
--padding-end: 5px;
|
|
267
267
|
min-height: 32px;
|
|
@@ -4,20 +4,6 @@
|
|
|
4
4
|
import AxeBuilder from "@axe-core/playwright";
|
|
5
5
|
import { expect } from "@playwright/test";
|
|
6
6
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
|
-
/**
|
|
8
|
-
* Only ios mode uses ion-color() for the menu button
|
|
9
|
-
*/
|
|
10
|
-
configs({ directions: ['ltr'], modes: ['ios'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
|
|
11
|
-
test.describe(title('menu-button: a11y for ion-color()'), () => {
|
|
12
|
-
test('should not have accessibility violations', async ({ page }) => {
|
|
13
|
-
await page.setContent(`
|
|
14
|
-
<ion-menu-button auto-hide="false"></ion-menu-button>
|
|
15
|
-
`, config);
|
|
16
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
17
|
-
expect(results.violations).toEqual([]);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
7
|
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
22
8
|
test.describe(title('menu-button: a11y'), () => {
|
|
23
9
|
test('should not have accessibility violations', async ({ page }) => {
|
|
@@ -10,7 +10,7 @@ import { setCardStatusBarDark, setCardStatusBarDefault } from "../utils";
|
|
|
10
10
|
import { calculateSpringStep, handleCanDismiss } from "./utils";
|
|
11
11
|
// Defaults for the card swipe animation
|
|
12
12
|
export const SwipeToCloseDefaults = {
|
|
13
|
-
MIN_PRESENTING_SCALE: 0.
|
|
13
|
+
MIN_PRESENTING_SCALE: 0.915,
|
|
14
14
|
};
|
|
15
15
|
export const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) => {
|
|
16
16
|
/**
|
|
@@ -57,11 +57,9 @@
|
|
|
57
57
|
/**
|
|
58
58
|
* @prop --background: Background of the progress track, or the buffer bar if `buffer` is set
|
|
59
59
|
* @prop --progress-background: Background of the progress bar representing the current value
|
|
60
|
-
* @prop --buffer-background: DEPRECATED, use `--background` instead
|
|
61
60
|
*/
|
|
62
|
-
--background: rgba(var(--ion-color-primary-rgb,
|
|
63
|
-
--progress-background: var(--ion-color-primary, #
|
|
64
|
-
--buffer-background: var(--background);
|
|
61
|
+
--background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
|
|
62
|
+
--progress-background: var(--ion-color-primary, #3880ff);
|
|
65
63
|
display: block;
|
|
66
64
|
position: relative;
|
|
67
65
|
width: 100%;
|
|
@@ -115,7 +113,7 @@
|
|
|
115
113
|
}
|
|
116
114
|
|
|
117
115
|
.progress-buffer-bar {
|
|
118
|
-
background: var(--
|
|
116
|
+
background: var(--background);
|
|
119
117
|
z-index: 1;
|
|
120
118
|
}
|
|
121
119
|
|
|
@@ -152,7 +150,7 @@
|
|
|
152
150
|
}
|
|
153
151
|
|
|
154
152
|
.buffer-circles {
|
|
155
|
-
background-image: radial-gradient(ellipse at center, var(--
|
|
153
|
+
background-image: radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);
|
|
156
154
|
/* stylelint-disable property-disallowed-list */
|
|
157
155
|
background-repeat: repeat-x;
|
|
158
156
|
background-position: 5px center;
|
|
@@ -172,10 +170,6 @@
|
|
|
172
170
|
animation-play-state: paused;
|
|
173
171
|
}
|
|
174
172
|
|
|
175
|
-
:host(.ion-color) .progress-buffer-bar {
|
|
176
|
-
background: rgba(var(--ion-color-base-rgb), 0.3);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
173
|
:host(.ion-color) .buffer-circles {
|
|
180
174
|
background-image: radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%);
|
|
181
175
|
}
|
|
@@ -257,5 +251,17 @@
|
|
|
257
251
|
}
|
|
258
252
|
}
|
|
259
253
|
:host {
|
|
260
|
-
|
|
254
|
+
border-radius: 9999px;
|
|
255
|
+
height: 4px;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
:host(.progress-bar-solid) {
|
|
259
|
+
/**
|
|
260
|
+
* On iOS the unfilled portion of the progress bar
|
|
261
|
+
* is always a consistent background color. We
|
|
262
|
+
* only apply this style when the progress bar is
|
|
263
|
+
* solid (with a buffer value of 1). This maintains
|
|
264
|
+
* the custom Ionic appearance for a buffered progress bar.
|
|
265
|
+
*/
|
|
266
|
+
--background: var(--ion-color-step-100, #e6e6e6);
|
|
261
267
|
}
|
|
@@ -26,11 +26,14 @@ export class ProgressBar {
|
|
|
26
26
|
const { color, type, reversed, value, buffer } = this;
|
|
27
27
|
const paused = config.getBoolean('_testing');
|
|
28
28
|
const mode = getIonMode(this);
|
|
29
|
+
// If the progress is displayed as a solid bar.
|
|
30
|
+
const progressSolid = buffer === 1;
|
|
29
31
|
return (h(Host, { role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
|
|
30
32
|
[mode]: true,
|
|
31
33
|
[`progress-bar-${type}`]: true,
|
|
32
34
|
'progress-paused': paused,
|
|
33
35
|
'progress-bar-reversed': document.dir === 'rtl' ? !reversed : reversed,
|
|
36
|
+
'progress-bar-solid': progressSolid,
|
|
34
37
|
}) }, type === 'indeterminate' ? renderIndeterminate() : renderProgress(value, buffer)));
|
|
35
38
|
}
|
|
36
39
|
static get is() { return "ion-progress-bar"; }
|
|
@@ -57,11 +57,9 @@
|
|
|
57
57
|
/**
|
|
58
58
|
* @prop --background: Background of the progress track, or the buffer bar if `buffer` is set
|
|
59
59
|
* @prop --progress-background: Background of the progress bar representing the current value
|
|
60
|
-
* @prop --buffer-background: DEPRECATED, use `--background` instead
|
|
61
60
|
*/
|
|
62
|
-
--background: rgba(var(--ion-color-primary-rgb,
|
|
63
|
-
--progress-background: var(--ion-color-primary, #
|
|
64
|
-
--buffer-background: var(--background);
|
|
61
|
+
--background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
|
|
62
|
+
--progress-background: var(--ion-color-primary, #3880ff);
|
|
65
63
|
display: block;
|
|
66
64
|
position: relative;
|
|
67
65
|
width: 100%;
|
|
@@ -115,7 +113,7 @@
|
|
|
115
113
|
}
|
|
116
114
|
|
|
117
115
|
.progress-buffer-bar {
|
|
118
|
-
background: var(--
|
|
116
|
+
background: var(--background);
|
|
119
117
|
z-index: 1;
|
|
120
118
|
}
|
|
121
119
|
|
|
@@ -152,7 +150,7 @@
|
|
|
152
150
|
}
|
|
153
151
|
|
|
154
152
|
.buffer-circles {
|
|
155
|
-
background-image: radial-gradient(ellipse at center, var(--
|
|
153
|
+
background-image: radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);
|
|
156
154
|
/* stylelint-disable property-disallowed-list */
|
|
157
155
|
background-repeat: repeat-x;
|
|
158
156
|
background-position: 5px center;
|
|
@@ -172,10 +170,6 @@
|
|
|
172
170
|
animation-play-state: paused;
|
|
173
171
|
}
|
|
174
172
|
|
|
175
|
-
:host(.ion-color) .progress-buffer-bar {
|
|
176
|
-
background: rgba(var(--ion-color-base-rgb), 0.3);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
173
|
:host(.ion-color) .buffer-circles {
|
|
180
174
|
background-image: radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%);
|
|
181
175
|
}
|
|
@@ -258,4 +252,8 @@
|
|
|
258
252
|
}
|
|
259
253
|
:host {
|
|
260
254
|
height: 4px;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
:host(.ion-color) .progress-buffer-bar {
|
|
258
|
+
background: rgba(var(--ion-color-base-rgb), 0.3);
|
|
261
259
|
}
|
|
@@ -462,7 +462,7 @@ input {
|
|
|
462
462
|
* }
|
|
463
463
|
*/
|
|
464
464
|
:host {
|
|
465
|
-
--color-checked: var(--ion-color-primary, #
|
|
465
|
+
--color-checked: var(--ion-color-primary, #3880ff);
|
|
466
466
|
}
|
|
467
467
|
|
|
468
468
|
:host(.legacy-radio) {
|
|
@@ -504,7 +504,7 @@ input {
|
|
|
504
504
|
position: absolute;
|
|
505
505
|
width: 36px;
|
|
506
506
|
height: 36px;
|
|
507
|
-
background: var(--ion-color-primary-tint, #
|
|
507
|
+
background: var(--ion-color-primary-tint, #4c8dff);
|
|
508
508
|
content: "";
|
|
509
509
|
opacity: 0.2;
|
|
510
510
|
}
|
|
@@ -463,7 +463,7 @@ input {
|
|
|
463
463
|
*/
|
|
464
464
|
:host {
|
|
465
465
|
--color: rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);
|
|
466
|
-
--color-checked: var(--ion-color-primary, #
|
|
466
|
+
--color-checked: var(--ion-color-primary, #3880ff);
|
|
467
467
|
--border-width: 0.125rem;
|
|
468
468
|
--border-style: solid;
|
|
469
469
|
--border-radius: 50%;
|
|
@@ -551,7 +551,7 @@ input {
|
|
|
551
551
|
position: absolute;
|
|
552
552
|
width: 36px;
|
|
553
553
|
height: 36px;
|
|
554
|
-
background: var(--ion-color-primary-tint, #
|
|
554
|
+
background: var(--ion-color-primary-tint, #4c8dff);
|
|
555
555
|
content: "";
|
|
556
556
|
opacity: 0.2;
|
|
557
557
|
}
|