@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
|
@@ -71,10 +71,9 @@
|
|
|
71
71
|
* @prop --checkmark-color: Color of the checkbox checkmark when checked
|
|
72
72
|
* @prop --checkmark-width: Stroke width of the checkbox checkmark
|
|
73
73
|
*/
|
|
74
|
-
--checkbox-background-checked: var(--ion-color-primary, #
|
|
75
|
-
--border-color-checked: var(--ion-color-primary, #
|
|
74
|
+
--checkbox-background-checked: var(--ion-color-primary, #3880ff);
|
|
75
|
+
--border-color-checked: var(--ion-color-primary, #3880ff);
|
|
76
76
|
--checkmark-color: var(--ion-color-primary-contrast, #fff);
|
|
77
|
-
--checkmark-width: 1;
|
|
78
77
|
--transition: none;
|
|
79
78
|
display: inline-block;
|
|
80
79
|
position: relative;
|
|
@@ -4,19 +4,10 @@
|
|
|
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({
|
|
7
|
+
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
8
8
|
test.describe(title('checkbox: a11y'), () => {
|
|
9
9
|
test('should not have accessibility violations', async ({ page }) => {
|
|
10
|
-
await page.
|
|
11
|
-
<main>
|
|
12
|
-
<ion-checkbox>Label</ion-checkbox>
|
|
13
|
-
<ion-checkbox aria-label="my aria label"></ion-checkbox>
|
|
14
|
-
<ion-checkbox checked="true">Checked</ion-checkbox>
|
|
15
|
-
<ion-item>
|
|
16
|
-
<ion-checkbox>Checkbox in item</ion-checkbox>
|
|
17
|
-
</ion-item>
|
|
18
|
-
</main>
|
|
19
|
-
`, config);
|
|
10
|
+
await page.goto(`/src/components/checkbox/test/a11y`, config);
|
|
20
11
|
const results = await new AxeBuilder({ page }).analyze();
|
|
21
12
|
expect(results.violations).toEqual([]);
|
|
22
13
|
});
|
|
@@ -5,6 +5,16 @@ import { expect } from "@playwright/test";
|
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
6
|
configs().forEach(({ title, screenshot, config }) => {
|
|
7
7
|
test.describe(title('checkbox: basic visual tests'), () => {
|
|
8
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
9
|
+
await page.setContent(`
|
|
10
|
+
<div id="checkboxes">
|
|
11
|
+
<ion-checkbox>Unchecked</ion-checkbox>
|
|
12
|
+
<ion-checkbox checked>Checked</ion-checkbox>
|
|
13
|
+
</div>
|
|
14
|
+
`, config);
|
|
15
|
+
const checkboxes = page.locator('#checkboxes');
|
|
16
|
+
await expect(checkboxes).toHaveScreenshot(screenshot(`checkbox-basic`));
|
|
17
|
+
});
|
|
8
18
|
test('should render custom checkmark-width correctly', async ({ page }) => {
|
|
9
19
|
await page.setContent(`
|
|
10
20
|
<ion-checkbox checked style="--checkmark-width: 7">Checkmark Width</ion-checkbox>
|
|
@@ -334,8 +334,9 @@ export class Content {
|
|
|
334
334
|
const mode = getIonMode(this);
|
|
335
335
|
const forceOverscroll = this.shouldForceOverscroll();
|
|
336
336
|
const transitionShadow = mode === 'ios';
|
|
337
|
+
const TagType = isMainContent ? 'main' : 'div';
|
|
337
338
|
this.resize();
|
|
338
|
-
return (h(Host, {
|
|
339
|
+
return (h(Host, { class: createColorClasses(this.color, {
|
|
339
340
|
[mode]: true,
|
|
340
341
|
'content-sizing': hostContext('ion-popover', this.el),
|
|
341
342
|
overscroll: forceOverscroll,
|
|
@@ -343,7 +344,7 @@ export class Content {
|
|
|
343
344
|
}), style: {
|
|
344
345
|
'--offset-top': `${this.cTop}px`,
|
|
345
346
|
'--offset-bottom': `${this.cBottom}px`,
|
|
346
|
-
} }, h("div", { ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h(
|
|
347
|
+
} }, h("div", { ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h(TagType, { class: {
|
|
347
348
|
'inner-scroll': true,
|
|
348
349
|
'scroll-x': scrollX,
|
|
349
350
|
'scroll-y': scrollY,
|
|
@@ -613,8 +613,8 @@ ion-picker {
|
|
|
613
613
|
* }
|
|
614
614
|
*/
|
|
615
615
|
:host {
|
|
616
|
-
--background: var(--ion-color-light, #
|
|
617
|
-
--background-rgb: var(--ion-color-light-rgb
|
|
616
|
+
--background: var(--ion-color-light, #ffffff);
|
|
617
|
+
--background-rgb: var(--ion-color-light-rgb);
|
|
618
618
|
--title-color: var(--ion-color-step-600, #666666);
|
|
619
619
|
}
|
|
620
620
|
|
|
@@ -837,6 +837,7 @@ ion-picker {
|
|
|
837
837
|
|
|
838
838
|
.calendar-day.calendar-day-active {
|
|
839
839
|
background: rgba(var(--ion-color-base-rgb), 0.2);
|
|
840
|
+
font-size: min(1.375rem, 35.2px);
|
|
840
841
|
}
|
|
841
842
|
|
|
842
843
|
/**
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a font size to a dynamic font size.
|
|
3
|
+
* Fonts that participate in Dynamic Type should use
|
|
4
|
+
* dynamic font sizes.
|
|
5
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
6
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
7
|
+
* convert to a unit other than $baselineUnit.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Convert a font size to a dynamic font size but impose
|
|
11
|
+
* a maximum font size.
|
|
12
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
13
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
14
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
15
|
+
* convert to a unit other than $baselineUnit.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Convert a font size to a dynamic font size but impose
|
|
19
|
+
* a minimum font size.
|
|
20
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
21
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
22
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
23
|
+
* convert to a unit other than $baselineUnit.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Convert a font size to a dynamic font size but impose
|
|
27
|
+
* maximum and minimum font sizes.
|
|
28
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
29
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
30
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
31
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
32
|
+
* convert to a unit other than $baselineUnit.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* A heuristic that applies CSS to tablet
|
|
36
|
+
* viewports.
|
|
37
|
+
*
|
|
38
|
+
* Usage:
|
|
39
|
+
* @include tablet-viewport() {
|
|
40
|
+
* :host {
|
|
41
|
+
* background-color: green;
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* A heuristic that applies CSS to mobile
|
|
47
|
+
* viewports (i.e. phones, not tablets).
|
|
48
|
+
*
|
|
49
|
+
* Usage:
|
|
50
|
+
* @include mobile-viewport() {
|
|
51
|
+
* :host {
|
|
52
|
+
* background-color: blue;
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
*/
|
|
56
|
+
:host {
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-wrap: wrap;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:host button {
|
|
64
|
+
border-radius: 8px;
|
|
65
|
+
-webkit-margin-start: 2px;
|
|
66
|
+
margin-inline-start: 2px;
|
|
67
|
+
-webkit-margin-end: 2px;
|
|
68
|
+
margin-inline-end: 2px;
|
|
69
|
+
margin-top: 0px;
|
|
70
|
+
margin-bottom: 0px;
|
|
71
|
+
position: relative;
|
|
72
|
+
transition: 150ms color ease-in-out;
|
|
73
|
+
border: none;
|
|
74
|
+
background: var(--ion-color-step-300, #edeef0);
|
|
75
|
+
color: var(--ion-text-color, #000);
|
|
76
|
+
font-family: inherit;
|
|
77
|
+
font-size: 1rem;
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
overflow: hidden;
|
|
80
|
+
appearance: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:host(.time-active) #time-button,
|
|
84
|
+
:host(.date-active) #date-button {
|
|
85
|
+
color: var(--ion-color-base);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
:host(.datetime-button-disabled) {
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
:host(.datetime-button-disabled) button {
|
|
93
|
+
opacity: 0.4;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:host button {
|
|
97
|
+
-webkit-padding-start: 13px;
|
|
98
|
+
padding-inline-start: 13px;
|
|
99
|
+
-webkit-padding-end: 13px;
|
|
100
|
+
padding-inline-end: 13px;
|
|
101
|
+
padding-top: 7px;
|
|
102
|
+
padding-bottom: 7px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
:host button.ion-activated {
|
|
106
|
+
color: var(--ion-color-step-600, #666666);
|
|
107
|
+
}
|
|
@@ -346,14 +346,14 @@ export class DatetimeButton {
|
|
|
346
346
|
static get encapsulation() { return "shadow"; }
|
|
347
347
|
static get originalStyleUrls() {
|
|
348
348
|
return {
|
|
349
|
-
"ios": ["datetime-button.scss"],
|
|
350
|
-
"md": ["datetime-button.scss"]
|
|
349
|
+
"ios": ["datetime-button.ios.scss"],
|
|
350
|
+
"md": ["datetime-button.md.scss"]
|
|
351
351
|
};
|
|
352
352
|
}
|
|
353
353
|
static get styleUrls() {
|
|
354
354
|
return {
|
|
355
|
-
"ios": ["datetime-button.css"],
|
|
356
|
-
"md": ["datetime-button.css"]
|
|
355
|
+
"ios": ["datetime-button.ios.css"],
|
|
356
|
+
"md": ["datetime-button.md.css"]
|
|
357
357
|
};
|
|
358
358
|
}
|
|
359
359
|
static get properties() {
|
package/dist/collection/components/datetime-button/{datetime-button.css → datetime-button.md.css}
RENAMED
|
@@ -62,12 +62,6 @@
|
|
|
62
62
|
|
|
63
63
|
:host button {
|
|
64
64
|
border-radius: 8px;
|
|
65
|
-
-webkit-padding-start: 12px;
|
|
66
|
-
padding-inline-start: 12px;
|
|
67
|
-
-webkit-padding-end: 12px;
|
|
68
|
-
padding-inline-end: 12px;
|
|
69
|
-
padding-top: 6px;
|
|
70
|
-
padding-bottom: 6px;
|
|
71
65
|
-webkit-margin-start: 2px;
|
|
72
66
|
margin-inline-start: 2px;
|
|
73
67
|
-webkit-margin-end: 2px;
|
|
@@ -97,4 +91,13 @@
|
|
|
97
91
|
|
|
98
92
|
:host(.datetime-button-disabled) button {
|
|
99
93
|
opacity: 0.4;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:host button {
|
|
97
|
+
-webkit-padding-start: 12px;
|
|
98
|
+
padding-inline-start: 12px;
|
|
99
|
+
-webkit-padding-end: 12px;
|
|
100
|
+
padding-inline-end: 12px;
|
|
101
|
+
padding-top: 6px;
|
|
102
|
+
padding-bottom: 6px;
|
|
100
103
|
}
|
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from "@playwright/test";
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
+
configs().forEach(({ config, screenshot, title }) => {
|
|
7
|
+
test.describe(title('datetime-button: basic'), () => {
|
|
8
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
9
|
+
await page.setContent(`
|
|
10
|
+
<ion-datetime-button locale="en-US" datetime="datetime"></ion-datetime-button>
|
|
11
|
+
<ion-datetime id="datetime" value="2022-01-01T06:30:00" presentation="date-time"></ion-datetime>
|
|
12
|
+
`, config);
|
|
13
|
+
const datetimeButton = page.locator('ion-datetime-button');
|
|
14
|
+
await expect(datetimeButton).toHaveScreenshot(screenshot(`datetime-button-basic`));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
});
|
|
6
18
|
/**
|
|
7
19
|
* The tested behavior does not
|
|
8
20
|
* vary across modes/directions
|
|
@@ -334,10 +334,10 @@ ion-ripple-effect {
|
|
|
334
334
|
* }
|
|
335
335
|
*/
|
|
336
336
|
:host {
|
|
337
|
-
--background: var(--ion-color-primary, #
|
|
338
|
-
--background-activated: var(--ion-color-primary-shade, #
|
|
339
|
-
--background-focused: var(--ion-color-primary-shade, #
|
|
340
|
-
--background-hover: var(--ion-color-primary-tint, #
|
|
337
|
+
--background: var(--ion-color-primary, #3880ff);
|
|
338
|
+
--background-activated: var(--ion-color-primary-shade, #3171e0);
|
|
339
|
+
--background-focused: var(--ion-color-primary-shade, #3171e0);
|
|
340
|
+
--background-hover: var(--ion-color-primary-tint, #4c8dff);
|
|
341
341
|
--background-activated-opacity: 1;
|
|
342
342
|
--background-focused-opacity: 1;
|
|
343
343
|
--background-hover-opacity: 1;
|
|
@@ -358,10 +358,10 @@ ion-ripple-effect {
|
|
|
358
358
|
}
|
|
359
359
|
|
|
360
360
|
:host(.fab-button-in-list) {
|
|
361
|
-
--background: var(--ion-color-light, #
|
|
362
|
-
--background-activated: var(--ion-color-light-shade, #
|
|
361
|
+
--background: var(--ion-color-light, #f4f5f8);
|
|
362
|
+
--background-activated: var(--ion-color-light-shade, #d7d8da);
|
|
363
363
|
--background-focused: var(--background-activated);
|
|
364
|
-
--background-hover: var(--ion-color-light-tint, #
|
|
364
|
+
--background-hover: var(--ion-color-light-tint, #f5f6f9);
|
|
365
365
|
--color: var(--ion-color-light-contrast, #000);
|
|
366
366
|
--color-activated: var(--ion-color-light-contrast, #000);
|
|
367
367
|
--color-focused: var(--color-activated);
|
|
@@ -395,15 +395,15 @@ ion-ripple-effect {
|
|
|
395
395
|
}
|
|
396
396
|
@supports (backdrop-filter: blur(0)) {
|
|
397
397
|
:host(.fab-button-translucent) {
|
|
398
|
-
--background: rgba(var(--ion-color-primary-rgb,
|
|
399
|
-
--background-hover: rgba(var(--ion-color-primary-rgb,
|
|
400
|
-
--background-focused: rgba(var(--ion-color-primary-rgb,
|
|
398
|
+
--background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.9);
|
|
399
|
+
--background-hover: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.8);
|
|
400
|
+
--background-focused: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.82);
|
|
401
401
|
--backdrop-filter: saturate(180%) blur(20px);
|
|
402
402
|
}
|
|
403
403
|
:host(.fab-button-translucent-in-list) {
|
|
404
|
-
--background: rgba(var(--ion-color-light-rgb,
|
|
405
|
-
--background-hover: rgba(var(--ion-color-light-rgb,
|
|
406
|
-
--background-focused: rgba(var(--ion-color-light-rgb,
|
|
404
|
+
--background: rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.9);
|
|
405
|
+
--background-hover: rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.8);
|
|
406
|
+
--background-focused: rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.82);
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
@supports (backdrop-filter: blur(0)) {
|
|
@@ -334,7 +334,7 @@ ion-ripple-effect {
|
|
|
334
334
|
* }
|
|
335
335
|
*/
|
|
336
336
|
:host {
|
|
337
|
-
--background: var(--ion-color-primary, #
|
|
337
|
+
--background: var(--ion-color-primary, #3880ff);
|
|
338
338
|
--background-activated: transparent;
|
|
339
339
|
--background-focused: currentColor;
|
|
340
340
|
--background-hover: currentColor;
|
|
@@ -359,10 +359,10 @@ ion-ripple-effect {
|
|
|
359
359
|
--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);
|
|
360
360
|
--color-activated: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);
|
|
361
361
|
--color-focused: var(--color-activated);
|
|
362
|
-
--background: var(--ion-color-light, #
|
|
362
|
+
--background: var(--ion-color-light, #f4f5f8);
|
|
363
363
|
--background-activated: transparent;
|
|
364
|
-
--background-focused: var(--ion-color-light-shade, #
|
|
365
|
-
--background-hover: var(--ion-color-light-tint, #
|
|
364
|
+
--background-focused: var(--ion-color-light-shade, #d7d8da);
|
|
365
|
+
--background-hover: var(--ion-color-light-tint, #f5f6f9);
|
|
366
366
|
}
|
|
367
367
|
|
|
368
368
|
:host(.fab-button-in-list) ::slotted(ion-icon) {
|
|
@@ -1,58 +1,8 @@
|
|
|
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
|
-
configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
|
|
8
|
-
test.describe(title('fab-button: a11y'), () => {
|
|
9
|
-
test('should not have accessibility violations', async ({ page }) => {
|
|
10
|
-
await page.setContent(`
|
|
11
|
-
<ion-fab-button>FAB</ion-fab-button>
|
|
12
|
-
<ion-fab-button class="ion-activated">FAB</ion-fab-button>
|
|
13
|
-
`, config);
|
|
14
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
15
|
-
expect(results.violations).toEqual([]);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
test.describe(title('fab-list: contrast'), () => {
|
|
19
|
-
test('should not have accessibility violations', async ({ page }) => {
|
|
20
|
-
await page.setContent(`
|
|
21
|
-
<ion-fab activated="true">
|
|
22
|
-
<ion-fab-button>
|
|
23
|
-
Open
|
|
24
|
-
</ion-fab-button>
|
|
25
|
-
<ion-fab-list side="bottom">
|
|
26
|
-
<ion-fab-button>Down</ion-fab-button>
|
|
27
|
-
<ion-fab-button class="ion-activated">Down</ion-fab-button>
|
|
28
|
-
<ion-fab-button class="ion-focused">Down</ion-fab-button>
|
|
29
|
-
</ion-fab-list>
|
|
30
|
-
</ion-fab>
|
|
31
|
-
`, config);
|
|
32
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
33
|
-
expect(results.violations).toEqual([]);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
test.describe(title('fab: translucent contrast'), () => {
|
|
37
|
-
test('should not have accessibility violations', async ({ page }) => {
|
|
38
|
-
await page.setContent(`
|
|
39
|
-
<ion-fab-button translucent="true">FAB</ion-fab-button>
|
|
40
|
-
<ion-fab-button class="ion-focused" translucent="true">FAB</ion-fab-button>
|
|
41
|
-
<ion-fab activated="true">
|
|
42
|
-
<ion-fab-button>
|
|
43
|
-
Open
|
|
44
|
-
</ion-fab-button>
|
|
45
|
-
<ion-fab-list side="bottom">
|
|
46
|
-
<ion-fab-button translucent="true">Down</ion-fab-button>
|
|
47
|
-
<ion-fab-button class="ion-focused" translucent="true">Down</ion-fab-button>
|
|
48
|
-
</ion-fab-list>
|
|
49
|
-
</ion-fab>
|
|
50
|
-
`, config);
|
|
51
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
52
|
-
expect(results.violations).toEqual([]);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
6
|
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
57
7
|
test.describe(title('fab-button: aria attributes'), () => {
|
|
58
8
|
test('should inherit aria attributes to inner button', async ({ page }) => {
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
--background: transparent;
|
|
90
90
|
--color: initial;
|
|
91
91
|
--border-style: solid;
|
|
92
|
-
--highlight-color-focused: var(--ion-color-primary, #
|
|
93
|
-
--highlight-color-valid: var(--ion-color-success, #
|
|
94
|
-
--highlight-color-invalid: var(--ion-color-danger, #
|
|
92
|
+
--highlight-color-focused: var(--ion-color-primary, #3880ff);
|
|
93
|
+
--highlight-color-valid: var(--ion-color-success, #2dd36f);
|
|
94
|
+
--highlight-color-invalid: var(--ion-color-danger, #eb445a);
|
|
95
95
|
/**
|
|
96
96
|
* This is a private API that is used to switch
|
|
97
97
|
* out the highlight color based on the state
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
--background: transparent;
|
|
90
90
|
--color: initial;
|
|
91
91
|
--border-style: solid;
|
|
92
|
-
--highlight-color-focused: var(--ion-color-primary, #
|
|
93
|
-
--highlight-color-valid: var(--ion-color-success, #
|
|
94
|
-
--highlight-color-invalid: var(--ion-color-danger, #
|
|
92
|
+
--highlight-color-focused: var(--ion-color-primary, #3880ff);
|
|
93
|
+
--highlight-color-valid: var(--ion-color-success, #2dd36f);
|
|
94
|
+
--highlight-color-invalid: var(--ion-color-danger, #eb445a);
|
|
95
95
|
/**
|
|
96
96
|
* This is a private API that is used to switch
|
|
97
97
|
* out the highlight color based on the state
|
|
@@ -4,52 +4,14 @@
|
|
|
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({ directions: ['ltr']
|
|
7
|
+
configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
|
|
8
8
|
test.describe(title('input: a11y'), () => {
|
|
9
|
-
test('
|
|
10
|
-
await page.
|
|
11
|
-
<main>
|
|
12
|
-
<ion-input label="Label" placeholder="Placeholder"></ion-input>
|
|
13
|
-
<ion-input placeholder="Placeholder">
|
|
14
|
-
<div slot="label">Label"></div>
|
|
15
|
-
</ion-input>
|
|
16
|
-
<ion-input label="Label" value="My Text"></ion-input>
|
|
17
|
-
<ion-input aria-label="Label"></ion-input>
|
|
18
|
-
<ion-input label="Email" fill="solid" value="hi@ionic.io">
|
|
19
|
-
<ion-icon slot="start" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
20
|
-
<ion-button slot="end" aria-label="button">
|
|
21
|
-
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
22
|
-
</ion-button>
|
|
23
|
-
</ion-input>
|
|
24
|
-
</main>
|
|
25
|
-
`, config);
|
|
26
|
-
const results = await new AxeBuilder({ page }).analyze();
|
|
27
|
-
expect(results.violations).toEqual([]);
|
|
28
|
-
});
|
|
29
|
-
test('focused state should not have accessibility violations', async ({ page }) => {
|
|
30
|
-
/**
|
|
31
|
-
* The primary color against the focus background
|
|
32
|
-
* when using fill="solid" does not meet AA
|
|
33
|
-
* contrast guidelines so it excluded from the test.
|
|
34
|
-
* The contrast here is a significant improvement
|
|
35
|
-
* over what Ionic has had in the past, so the team
|
|
36
|
-
* has decided that this tradeoff is acceptable since
|
|
37
|
-
* the scope of the problem is limited to the focus
|
|
38
|
-
* state with the primary color when fill="solid".
|
|
39
|
-
*/
|
|
40
|
-
await page.setContent(`
|
|
41
|
-
<main>
|
|
42
|
-
<ion-input class="has-focus" label="Label" value="My Text"></ion-input>
|
|
43
|
-
<ion-input class="has-focus" label-placement="floating" label="Label" value="My Text"></ion-input>
|
|
44
|
-
<ion-input class="has-focus" fill="outline" label-placement="floating" label="Label" value="My Text"></ion-input>
|
|
45
|
-
</main>
|
|
46
|
-
`, config);
|
|
9
|
+
test('should not have accessibility violations', async ({ page }) => {
|
|
10
|
+
await page.goto(`/src/components/input/test/a11y`, config);
|
|
47
11
|
const results = await new AxeBuilder({ page }).analyze();
|
|
48
12
|
expect(results.violations).toEqual([]);
|
|
49
13
|
});
|
|
50
14
|
});
|
|
51
|
-
});
|
|
52
|
-
configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
|
|
53
15
|
test.describe(title('input: font scaling'), () => {
|
|
54
16
|
test('should scale text on larger font sizes', async ({ page }) => {
|
|
55
17
|
await page.setContent(`
|
|
@@ -700,9 +700,9 @@ ion-ripple-effect {
|
|
|
700
700
|
--border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
|
|
701
701
|
--color: var(--ion-item-color, var(--ion-text-color, #000));
|
|
702
702
|
--highlight-height: 0px;
|
|
703
|
-
--highlight-color-focused: var(--ion-color-primary, #
|
|
704
|
-
--highlight-color-valid: var(--ion-color-success, #
|
|
705
|
-
--highlight-color-invalid: var(--ion-color-danger, #
|
|
703
|
+
--highlight-color-focused: var(--ion-color-primary, #3880ff);
|
|
704
|
+
--highlight-color-valid: var(--ion-color-success, #2dd36f);
|
|
705
|
+
--highlight-color-invalid: var(--ion-color-danger, #eb445a);
|
|
706
706
|
--bottom-padding-start: 0px;
|
|
707
707
|
font-size: 1rem;
|
|
708
708
|
}
|
|
@@ -800,9 +800,9 @@ ion-ripple-effect {
|
|
|
800
800
|
--inner-padding-end: 16px;
|
|
801
801
|
--inner-border-width: 0 0 1px 0;
|
|
802
802
|
--highlight-height: 1px;
|
|
803
|
-
--highlight-color-focused: var(--ion-color-primary, #
|
|
804
|
-
--highlight-color-valid: var(--ion-color-success, #
|
|
805
|
-
--highlight-color-invalid: var(--ion-color-danger, #
|
|
803
|
+
--highlight-color-focused: var(--ion-color-primary, #3880ff);
|
|
804
|
+
--highlight-color-valid: var(--ion-color-success, #2dd36f);
|
|
805
|
+
--highlight-color-invalid: var(--ion-color-danger, #eb445a);
|
|
806
806
|
font-size: 1rem;
|
|
807
807
|
font-weight: normal;
|
|
808
808
|
text-transform: none;
|
|
@@ -1100,7 +1100,7 @@ ion-ripple-effect {
|
|
|
1100
1100
|
:host(.ion-focused:not(.ion-color)) ::slotted(.label-floating),
|
|
1101
1101
|
:host(.item-has-focus:not(.ion-color)) ::slotted(.label-stacked),
|
|
1102
1102
|
:host(.item-has-focus:not(.ion-color)) ::slotted(.label-floating) {
|
|
1103
|
-
color: var(--ion-color-primary, #
|
|
1103
|
+
color: var(--ion-color-primary, #3880ff);
|
|
1104
1104
|
}
|
|
1105
1105
|
|
|
1106
1106
|
:host(.ion-color) {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
* @prop --background: Background of the item option
|
|
59
59
|
* @prop --color: Color of the item option
|
|
60
60
|
*/
|
|
61
|
-
--background: var(--ion-color-primary, #
|
|
61
|
+
--background: var(--ion-color-primary, #3880ff);
|
|
62
62
|
--color: var(--ion-color-primary-contrast, #fff);
|
|
63
63
|
background: var(--background);
|
|
64
64
|
color: var(--color);
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
:host(.ion-activated) {
|
|
237
|
-
background: var(--ion-color-primary-shade, #
|
|
237
|
+
background: var(--ion-color-primary-shade, #3171e0);
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
:host(.ion-color.ion-activated) {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
* @prop --background: Background of the item option
|
|
59
59
|
* @prop --color: Color of the item option
|
|
60
60
|
*/
|
|
61
|
-
--background: var(--ion-color-primary, #
|
|
61
|
+
--background: var(--ion-color-primary, #3880ff);
|
|
62
62
|
--color: var(--ion-color-primary-contrast, #fff);
|
|
63
63
|
background: var(--background);
|
|
64
64
|
color: var(--color);
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
|
+
/**
|
|
6
|
+
* Animates the opening and closing of a sliding item option.
|
|
7
|
+
* @param el The element to animate.
|
|
8
|
+
* @param viewportOffset The offset of the element on the x-axis to locate it off-screen.
|
|
9
|
+
* @param progress The progress of the animation (0 - 1).
|
|
10
|
+
* @param isFinal Whether the animation is in its final state (collapsed or expanded).
|
|
11
|
+
* @param isReset Whether to reset the element to its initial state.
|
|
12
|
+
* @param zIndex _Optional_ The z-index to apply to the element.
|
|
13
|
+
*/
|
|
14
|
+
export const slidingItemAnimation = (el, viewportOffset, progress, isFinal, isReset, zIndex) => {
|
|
15
|
+
const styles = zIndex !== undefined ? { zIndex: `${zIndex}` } : {};
|
|
16
|
+
const swipeAnimation = createAnimation()
|
|
17
|
+
.addElement(el)
|
|
18
|
+
/**
|
|
19
|
+
* The specific value here does not actually
|
|
20
|
+
* matter. We just need this to be a positive
|
|
21
|
+
* value so the animation does not jump
|
|
22
|
+
* to the end when the user begins to drag.
|
|
23
|
+
*/
|
|
24
|
+
.duration(1)
|
|
25
|
+
.commitStyles()
|
|
26
|
+
.keyframes([
|
|
27
|
+
Object.assign({ offset: 0, transform: `translate3d(${viewportOffset}px,0,0)` }, styles),
|
|
28
|
+
Object.assign({ offset: 1, transform: `translate3d(0,0,0)` }, styles),
|
|
29
|
+
]);
|
|
30
|
+
if (isReset) {
|
|
31
|
+
swipeAnimation.destroy();
|
|
32
|
+
const leaveAnimation = createAnimation()
|
|
33
|
+
.addElement(el)
|
|
34
|
+
.duration(300)
|
|
35
|
+
.easing('ease-out')
|
|
36
|
+
.beforeStyles({
|
|
37
|
+
zIndex: zIndex,
|
|
38
|
+
})
|
|
39
|
+
.fromTo('transform', el.style.transform, `translate3d(${viewportOffset}px,0,0)`)
|
|
40
|
+
.afterClearStyles(['z-index', 'transform']);
|
|
41
|
+
leaveAnimation.play().then(() => leaveAnimation.destroy());
|
|
42
|
+
}
|
|
43
|
+
if (!isFinal) {
|
|
44
|
+
swipeAnimation.progressStart(true, progress);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
swipeAnimation.destroy();
|
|
48
|
+
const expandAnimation = createAnimation()
|
|
49
|
+
.addElement(el)
|
|
50
|
+
.duration(300)
|
|
51
|
+
.easing('ease-out')
|
|
52
|
+
.beforeStyles({
|
|
53
|
+
zIndex: zIndex,
|
|
54
|
+
})
|
|
55
|
+
.fromTo('transform', el.style.transform, `translate3d(0,0,0)`)
|
|
56
|
+
.afterClearStyles(['z-index', 'transform']);
|
|
57
|
+
expandAnimation.play();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
@@ -79,11 +79,7 @@ ion-item-sliding .item {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
.item-sliding-active-swipe-end .item-options-end .item-option-expandable {
|
|
82
|
-
/* stylelint-disable-next-line property-disallowed-list */
|
|
83
|
-
padding-left: 100%;
|
|
84
82
|
order: 1;
|
|
85
|
-
transition-duration: 0.6s;
|
|
86
|
-
transition-property: padding-left;
|
|
87
83
|
}
|
|
88
84
|
:host-context([dir=rtl]) .item-sliding-active-swipe-end .item-options-end .item-option-expandable {
|
|
89
85
|
order: -1;
|
|
@@ -99,6 +95,14 @@ ion-item-sliding .item {
|
|
|
99
95
|
}
|
|
100
96
|
}
|
|
101
97
|
|
|
98
|
+
.item-sliding-animation-legacy.item-sliding-active-swipe-end .item-options-end .item-option-expandable,
|
|
99
|
+
.item-sliding-animation-modern.item-sliding-active-swipe-end .item-options-end .item-option-expandable {
|
|
100
|
+
/* stylelint-disable-next-line property-disallowed-list */
|
|
101
|
+
padding-left: 100%;
|
|
102
|
+
transition-duration: 0.6s;
|
|
103
|
+
transition-property: padding-left;
|
|
104
|
+
}
|
|
105
|
+
|
|
102
106
|
.item-sliding-active-swipe-start .item-options-start .item-option-expandable {
|
|
103
107
|
/* stylelint-disable-next-line property-disallowed-list */
|
|
104
108
|
padding-right: 100%;
|