voyager-ionic-core 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/components/checkbox.js +2 -2
- package/components/ion-searchbar.js +5 -5
- package/components/ion-segment.js +10 -9
- package/components/ion-select.js +20 -7
- package/components/ion-toggle.js +2 -2
- package/components/ionic-global.js +8 -1
- package/components/picker-column.js +25 -6
- package/components/radio.js +16 -5
- package/dist/cjs/{app-globals-66b7dc06.js → app-globals-1c261a7f.js} +1 -1
- package/dist/cjs/{button-active-9135c809.js → button-active-8da8d63e.js} +1 -1
- package/dist/cjs/{hardware-back-button-ed931127.js → hardware-back-button-93f7a8f0.js} +2 -2
- package/dist/cjs/{index-c54654c6.js → index-93b3a556.js} +2 -2
- package/dist/cjs/{index-8709af32.js → index-ceeb4ff8.js} +45 -20
- package/dist/cjs/{index-c0b7f8f4.js → index-fa3cf6ba.js} +4 -4
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
- package/dist/cjs/ion-alert.cjs.entry.js +5 -5
- package/dist/cjs/ion-app_8.cjs.entry.js +6 -6
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input-password-toggle.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 +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +4 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-modal.cjs.entry.js +5 -5
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column.cjs.entry.js +27 -8
- package/dist/cjs/ion-picker.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +5 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +18 -7
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +7 -7
- package/dist/cjs/ion-segment_2.cjs.entry.js +12 -11
- package/dist/cjs/ion-select_3.cjs.entry.js +24 -11
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +4 -4
- package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
- package/dist/cjs/{ionic-global-35b86a09.js → ionic-global-f401ca2e.js} +9 -2
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-5ddf92f1.js → ios.transition-ae54d131.js} +3 -3
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-047c18c5.js → md.transition-dbc2d3f3.js} +3 -3
- package/dist/cjs/{overlays-cb04d075.js → overlays-d4afb0bd.js} +2 -2
- package/dist/cjs/{status-tap-5b2775cd.js → status-tap-0a82a165.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +4 -3
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +3 -1
- package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +1 -1
- package/dist/collection/components/checkbox/checkbox.ios.css +1 -0
- package/dist/collection/components/checkbox/checkbox.md.css +1 -0
- package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
- package/dist/collection/components/item/test/inputs/item.e2e.js +46 -0
- package/dist/collection/components/item/test/slotted-inputs/item.e2e.js +135 -0
- package/dist/collection/components/loading/test/basic/loading.e2e.js +1 -1
- package/dist/collection/components/menu/test/basic/menu.e2e.js +1 -1
- package/dist/collection/components/modal/test/trigger/modal.e2e.js +1 -1
- package/dist/collection/components/nav/test/basic/nav.e2e.js +5 -5
- package/dist/collection/components/nav/test/nested/nav.e2e.js +6 -6
- package/dist/collection/components/nav/test/routing/nav.e2e.js +7 -7
- package/dist/collection/components/picker-column/picker-column.js +25 -6
- package/dist/collection/components/popover/test/trigger/popover.e2e.js +1 -1
- package/dist/collection/components/radio/radio.ios.css +1 -0
- package/dist/collection/components/radio/radio.js +14 -3
- package/dist/collection/components/radio/radio.md.css +1 -0
- package/dist/collection/components/searchbar/searchbar.js +5 -5
- package/dist/collection/components/segment/segment.js +10 -9
- package/dist/collection/components/select/select.ios.css +1 -0
- package/dist/collection/components/select/select.js +18 -5
- package/dist/collection/components/select/select.md.css +1 -0
- package/dist/collection/components/select/test/basic/select.e2e.js +1 -1
- package/dist/collection/components/select/test/disabled/select.e2e.js +1 -1
- package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +2 -2
- package/dist/collection/components/toast/test/basic/toast.e2e.js +1 -0
- package/dist/collection/components/toggle/toggle.ios.css +1 -0
- package/dist/collection/components/toggle/toggle.md.css +1 -0
- package/dist/collection/global/config.js +8 -1
- package/dist/collection/global/test/config-controller.spec.js +9 -1
- package/dist/docs.d.ts +34 -0
- package/dist/docs.json +3506 -482
- package/dist/esm/{app-globals-b99e6d29.js → app-globals-7c667c11.js} +1 -1
- package/dist/esm/{button-active-920addb8.js → button-active-7c57df95.js} +1 -1
- package/dist/esm/{hardware-back-button-2d9760b6.js → hardware-back-button-63852d15.js} +2 -2
- package/dist/esm/{index-7ae7186a.js → index-1e2f8425.js} +2 -2
- package/dist/esm/{index-9aab3bcf.js → index-8d8c14b0.js} +45 -20
- package/dist/esm/{index-8e6b6a24.js → index-91ed2172.js} +4 -4
- package/dist/esm/index.js +8 -8
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +5 -5
- package/dist/esm/ion-alert.entry.js +5 -5
- package/dist/esm/ion-app_8.entry.js +6 -6
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +4 -4
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +2 -2
- package/dist/esm/ion-datetime_3.entry.js +4 -4
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +2 -2
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +4 -4
- package/dist/esm/ion-menu_3.entry.js +5 -5
- package/dist/esm/ion-modal.entry.js +5 -5
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-picker-column.entry.js +27 -8
- package/dist/esm/ion-picker.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +5 -5
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +18 -7
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +7 -7
- package/dist/esm/ion-segment_2.entry.js +12 -11
- package/dist/esm/ion-select_3.entry.js +24 -11
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +1 -1
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +4 -4
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/{ionic-global-4528d288.js → ionic-global-8180d812.js} +9 -2
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-e35d0940.js → ios.transition-140cedc8.js} +3 -3
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-4b90a1f0.js → md.transition-4961bea4.js} +3 -3
- package/dist/esm/{overlays-df2c06b2.js → overlays-e8e5bd06.js} +2 -2
- package/dist/esm/{status-tap-12c27922.js → status-tap-0502d0fd.js} +1 -1
- package/dist/esm-es5/app-globals-7c667c11.js +4 -0
- package/dist/esm-es5/{button-active-920addb8.js → button-active-7c57df95.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-2d9760b6.js → hardware-back-button-63852d15.js} +1 -1
- package/dist/esm-es5/{index-7ae7186a.js → index-1e2f8425.js} +1 -1
- package/dist/esm-es5/index-8d8c14b0.js +5 -0
- package/dist/esm-es5/{index-8e6b6a24.js → index-91ed2172.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic-global-8180d812.js +4 -0
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-e35d0940.js → ios.transition-140cedc8.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-4961bea4.js +4 -0
- package/dist/esm-es5/{overlays-df2c06b2.js → overlays-e8e5bd06.js} +1 -1
- package/dist/esm-es5/{status-tap-12c27922.js → status-tap-0502d0fd.js} +1 -1
- package/dist/html.html-data.json +91 -91
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-e6e197f5.system.entry.js → p-00343522.system.entry.js} +1 -1
- package/dist/ionic/{p-fcecca8f.entry.js → p-00f85ca4.entry.js} +1 -1
- package/dist/ionic/p-0213e506.entry.js +4 -0
- package/dist/ionic/{p-d73a16e6.system.entry.js → p-036382b2.system.entry.js} +1 -1
- package/dist/ionic/{p-8a03fbee.entry.js → p-0617a85d.entry.js} +1 -1
- package/dist/ionic/{p-279f3bac.system.entry.js → p-06330374.system.entry.js} +2 -2
- package/dist/ionic/p-0973cae7.entry.js +4 -0
- package/dist/ionic/{p-08ea3402.system.entry.js → p-09bd8558.system.entry.js} +1 -1
- package/dist/ionic/{p-fb21fd1c.system.entry.js → p-0a9c8c36.system.entry.js} +1 -1
- package/dist/ionic/{p-712d54ae.js → p-0f89c47c.js} +1 -1
- package/dist/ionic/{p-b28d3ccb.system.entry.js → p-111b0e11.system.entry.js} +1 -1
- package/dist/ionic/{p-628967e3.system.entry.js → p-11feccde.system.entry.js} +1 -1
- package/dist/ionic/{p-130299c9.entry.js → p-13a736a9.entry.js} +1 -1
- package/dist/ionic/{p-d69b26d9.system.entry.js → p-18657fab.system.entry.js} +1 -1
- package/dist/ionic/{p-0536574e.entry.js → p-1ca3679b.entry.js} +1 -1
- package/dist/ionic/{p-8d14ee8c.system.entry.js → p-1dd59f8d.system.entry.js} +2 -2
- package/dist/ionic/{p-5dc9f99a.entry.js → p-1e5cabf8.entry.js} +1 -1
- package/dist/ionic/{p-9797f6eb.entry.js → p-24b0ece0.entry.js} +1 -1
- package/dist/ionic/{p-e81f22e3.system.js → p-27317f8f.system.js} +1 -1
- package/dist/ionic/{p-30baae57.system.js → p-30bbe61c.system.js} +1 -1
- package/dist/ionic/{p-55f99a39.system.entry.js → p-34827988.system.entry.js} +1 -1
- package/dist/ionic/p-370835b4.system.js +4 -0
- package/dist/ionic/p-39303199.system.js +4 -0
- package/dist/ionic/{p-0a6d801e.system.entry.js → p-3b0711a0.system.entry.js} +1 -1
- package/dist/ionic/{p-7349de07.entry.js → p-3d1951f5.entry.js} +1 -1
- package/dist/ionic/p-3fd68f4e.system.entry.js +4 -0
- package/dist/ionic/{p-bbbe869e.entry.js → p-443cbfcb.entry.js} +1 -1
- package/dist/ionic/{p-09538818.entry.js → p-4455daad.entry.js} +1 -1
- package/dist/ionic/{p-eb3023c9.system.js → p-45a51395.system.js} +1 -1
- package/dist/ionic/{p-1cc0b31f.js → p-4691dc8d.js} +1 -1
- package/dist/ionic/{p-52ce473d.entry.js → p-4713f5f0.entry.js} +1 -1
- package/dist/ionic/p-479e7655.system.js +5 -0
- package/dist/ionic/{p-c41435e6.system.entry.js → p-47ab6574.system.entry.js} +1 -1
- package/dist/ionic/{p-1eb63fa4.entry.js → p-4816d827.entry.js} +1 -1
- package/dist/ionic/{p-ba70039f.entry.js → p-4927bd6e.entry.js} +1 -1
- package/dist/ionic/{p-498eb648.system.entry.js → p-4fa57f1e.system.entry.js} +1 -1
- package/dist/ionic/{p-ed5aebaa.system.entry.js → p-54b04ed1.system.entry.js} +1 -1
- package/dist/ionic/{p-199f826f.system.entry.js → p-5cd86cdb.system.entry.js} +1 -1
- package/dist/ionic/{p-dc0d9ff5.system.entry.js → p-5e1094ae.system.entry.js} +1 -1
- package/dist/ionic/{p-5091f63c.entry.js → p-5f610767.entry.js} +1 -1
- package/dist/ionic/p-65a8336f.entry.js +4 -0
- package/dist/ionic/p-66de062f.system.entry.js +4 -0
- package/dist/ionic/{p-6c3666d5.entry.js → p-69cc64ab.entry.js} +1 -1
- package/dist/ionic/{p-6f008ad2.js → p-6c16d0e8.js} +1 -1
- package/dist/ionic/{p-7402fcdf.entry.js → p-6e76ed16.entry.js} +1 -1
- package/dist/ionic/p-7058dfda.entry.js +4 -0
- package/dist/ionic/{p-a39d3482.system.js → p-7171dbf4.system.js} +1 -1
- package/dist/ionic/{p-26bb6bb8.entry.js → p-7198726e.entry.js} +1 -1
- package/dist/ionic/{p-9848d7be.system.entry.js → p-71e2f283.system.entry.js} +1 -1
- package/dist/ionic/{p-9664a1a2.system.entry.js → p-71f25447.system.entry.js} +1 -1
- package/dist/ionic/{p-62e44e4a.system.entry.js → p-750e902d.system.entry.js} +1 -1
- package/dist/ionic/{p-0b007acc.system.entry.js → p-764eb419.system.entry.js} +1 -1
- package/dist/ionic/p-76637161.system.entry.js +4 -0
- package/dist/ionic/{p-83d748f8.system.entry.js → p-78bf8302.system.entry.js} +1 -1
- package/dist/ionic/{p-4824398b.entry.js → p-79f4cb29.entry.js} +1 -1
- package/dist/ionic/{p-80265a58.entry.js → p-7a416af9.entry.js} +1 -1
- package/dist/ionic/{p-29de09dd.entry.js → p-80aae5d7.entry.js} +1 -1
- package/dist/ionic/{p-9213681c.system.entry.js → p-8890e47f.system.entry.js} +1 -1
- package/dist/ionic/{p-4d8f408d.system.entry.js → p-8c7490bc.system.entry.js} +1 -1
- package/dist/ionic/{p-9da86308.js → p-8d0eb68d.js} +1 -1
- package/dist/ionic/{p-10feef7e.system.entry.js → p-935221f8.system.entry.js} +1 -1
- package/dist/ionic/{p-3f53a0b1.entry.js → p-941ecbba.entry.js} +1 -1
- package/dist/ionic/{p-e6e88ab9.entry.js → p-94b46442.entry.js} +1 -1
- package/dist/ionic/{p-cec8589b.system.js → p-967da5f2.system.js} +1 -1
- package/dist/ionic/{p-5734ac17.system.js → p-98125393.system.js} +1 -1
- package/dist/ionic/{p-aaaaaea1.entry.js → p-9b46f7e0.entry.js} +1 -1
- package/dist/ionic/{p-2c588aa2.entry.js → p-a00a5621.entry.js} +1 -1
- package/dist/ionic/{p-380efbfa.system.entry.js → p-a055fdcf.system.entry.js} +1 -1
- package/dist/ionic/{p-a50f23bf.system.entry.js → p-a0abe7ab.system.entry.js} +1 -1
- package/dist/ionic/{p-0395be73.entry.js → p-a4116282.entry.js} +1 -1
- package/dist/ionic/{p-33e10509.system.js → p-a4a45ad9.system.js} +1 -1
- package/dist/ionic/{p-1b435d20.entry.js → p-a5adb027.entry.js} +1 -1
- package/dist/ionic/p-a82d4913.system.js +4 -0
- package/dist/ionic/{p-f357707e.entry.js → p-a87b1500.entry.js} +1 -1
- package/dist/ionic/{p-57bc32e2.system.entry.js → p-a931cd3e.system.entry.js} +1 -1
- package/dist/ionic/{p-7d6fd45f.system.entry.js → p-ae3be67f.system.entry.js} +1 -1
- package/dist/ionic/{p-98f6116f.entry.js → p-aeb61b82.entry.js} +1 -1
- package/dist/ionic/{p-52f53904.entry.js → p-aeef6ac4.entry.js} +1 -1
- package/dist/ionic/{p-a488b7ab.system.js → p-aef1c744.system.js} +1 -1
- package/dist/ionic/{p-9c6dcf78.system.entry.js → p-b0ff8469.system.entry.js} +1 -1
- package/dist/ionic/{p-77731f19.system.entry.js → p-b7299e38.system.entry.js} +1 -1
- package/dist/ionic/{p-b02eda30.entry.js → p-b7eecfa6.entry.js} +1 -1
- package/dist/ionic/{p-9bfd7cda.system.entry.js → p-b84d9005.system.entry.js} +1 -1
- package/dist/ionic/{p-99ca9787.system.entry.js → p-bad2e0c8.system.entry.js} +1 -1
- package/dist/ionic/{p-90dfc454.system.entry.js → p-bd7ad51d.system.entry.js} +1 -1
- package/dist/ionic/{p-5cc6dcf5.js → p-bdc1b4e3.js} +1 -1
- package/dist/ionic/{p-509620b8.system.entry.js → p-c1d7a187.system.entry.js} +1 -1
- package/dist/ionic/{p-ecbdbf25.system.entry.js → p-c4493e98.system.entry.js} +1 -1
- package/dist/ionic/p-c44efdb8.entry.js +4 -0
- package/dist/ionic/p-c5543c41.system.entry.js +4 -0
- package/dist/ionic/{p-66ed603b.js → p-c5c65bbe.js} +1 -1
- package/dist/ionic/{p-a4ab7449.entry.js → p-c6143912.entry.js} +1 -1
- package/dist/ionic/{p-6ec88301.entry.js → p-c623f0d9.entry.js} +1 -1
- package/dist/ionic/{p-b62ae60a.system.entry.js → p-c6d9d978.system.entry.js} +1 -1
- package/dist/ionic/p-c7717147.js +4 -0
- package/dist/ionic/{p-f9baf25c.entry.js → p-c7a015e4.entry.js} +1 -1
- package/dist/ionic/{p-78405458.entry.js → p-c89af27e.entry.js} +1 -1
- package/dist/ionic/{p-5109a566.entry.js → p-cd681265.entry.js} +1 -1
- package/dist/ionic/{p-dc1e363a.entry.js → p-cf8ad0c3.entry.js} +1 -1
- package/dist/ionic/p-d6dbda17.js +5 -0
- package/dist/ionic/{p-f53bcebd.entry.js → p-d7e957e9.entry.js} +1 -1
- package/dist/ionic/p-d8a1f0e2.entry.js +4 -0
- package/dist/ionic/{p-5ec3bb70.system.entry.js → p-dba2da82.system.entry.js} +2 -2
- package/dist/ionic/{p-a953ef66.js → p-ddde112a.js} +1 -1
- package/dist/ionic/{p-700567ab.system.entry.js → p-e08d9edc.system.entry.js} +1 -1
- package/dist/ionic/{p-df517d1f.entry.js → p-eaab79f3.entry.js} +1 -1
- package/dist/ionic/{p-b07affd5.system.entry.js → p-ee8bf348.system.entry.js} +1 -1
- package/dist/ionic/{p-207e11dc.entry.js → p-eea44228.entry.js} +1 -1
- package/dist/ionic/{p-99884813.entry.js → p-eef82267.entry.js} +1 -1
- package/dist/ionic/{p-e0a8ffd0.system.entry.js → p-f149e6c3.system.entry.js} +1 -1
- package/dist/ionic/{p-6a2cf398.system.entry.js → p-f1c090c5.system.entry.js} +1 -1
- package/dist/ionic/{p-606f069c.entry.js → p-f5efe527.entry.js} +1 -1
- package/dist/ionic/p-f6a419d2.js +4 -0
- package/dist/ionic/p-f896c857.system.entry.js +4 -0
- package/dist/ionic/{p-8cb80f83.system.entry.js → p-f9046353.system.entry.js} +1 -1
- package/dist/ionic/{p-b9181033.system.entry.js → p-f9b3ffd6.system.entry.js} +1 -1
- package/dist/ionic/{p-b563b6ac.entry.js → p-fa7234ee.entry.js} +1 -1
- package/dist/ionic/{p-09b4e9ec.entry.js → p-fba8ea9e.entry.js} +1 -1
- package/dist/ionic/p-fc6f99be.js +4 -0
- package/dist/ionic/p-fcbd65bc.system.js +4 -0
- package/dist/types/components/radio/radio.d.ts +1 -0
- package/dist/types/components/segment/segment.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +2 -1
- package/dist/types/stencil-public-runtime.d.ts +1 -0
- package/hydrate/index.js +175 -143
- package/loader/cdn.js +1 -1
- package/loader/index.cjs.js +1 -1
- package/loader/index.es2017.js +1 -1
- package/loader/index.js +1 -1
- package/package.json +2 -2
- package/dist/esm-es5/app-globals-b99e6d29.js +0 -4
- package/dist/esm-es5/index-9aab3bcf.js +0 -5
- package/dist/esm-es5/ionic-global-4528d288.js +0 -4
- package/dist/esm-es5/md.transition-4b90a1f0.js +0 -4
- package/dist/ionic/p-01a27023.system.entry.js +0 -4
- package/dist/ionic/p-03b86a5e.js +0 -4
- package/dist/ionic/p-049d43bd.entry.js +0 -4
- package/dist/ionic/p-15d1ddba.js +0 -4
- package/dist/ionic/p-2ff0e0aa.system.js +0 -4
- package/dist/ionic/p-31d27232.system.js +0 -4
- package/dist/ionic/p-3c27be4a.entry.js +0 -4
- package/dist/ionic/p-3d015cdb.system.js +0 -5
- package/dist/ionic/p-433157a4.entry.js +0 -4
- package/dist/ionic/p-670c9f57.system.entry.js +0 -4
- package/dist/ionic/p-6df12af0.system.entry.js +0 -4
- package/dist/ionic/p-7eb47906.entry.js +0 -4
- package/dist/ionic/p-842c9fca.system.js +0 -4
- package/dist/ionic/p-92d7e99d.system.js +0 -4
- package/dist/ionic/p-9ec42be0.js +0 -4
- package/dist/ionic/p-a2e94ade.system.entry.js +0 -4
- package/dist/ionic/p-a76ab3ea.system.entry.js +0 -4
- package/dist/ionic/p-b04c27d8.entry.js +0 -4
- package/dist/ionic/p-dba5cb84.js +0 -5
- package/dist/ionic/p-fa8f2e62.entry.js +0 -4
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
const animation = require('./animation-b4fdf128.js');
|
|
7
|
-
const index = require('./index-
|
|
7
|
+
const index = require('./index-fa3cf6ba.js');
|
|
8
8
|
require('./index-c8d52405.js');
|
|
9
|
-
require('./ionic-global-
|
|
10
|
-
require('./index-
|
|
9
|
+
require('./ionic-global-f401ca2e.js');
|
|
10
|
+
require('./index-ceeb4ff8.js');
|
|
11
11
|
require('./index-5915f9b3.js');
|
|
12
12
|
require('./helpers-afaa9001.js');
|
|
13
13
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
const index = require('./index-c8d52405.js');
|
|
7
7
|
const helpers = require('./helpers-afaa9001.js');
|
|
8
|
-
const hardwareBackButton = require('./hardware-back-button-
|
|
9
|
-
const ionicGlobal = require('./ionic-global-
|
|
8
|
+
const hardwareBackButton = require('./hardware-back-button-93f7a8f0.js');
|
|
9
|
+
const ionicGlobal = require('./ionic-global-f401ca2e.js');
|
|
10
10
|
const frameworkDelegate = require('./framework-delegate-55f5683a.js');
|
|
11
11
|
const gestureController = require('./gesture-controller-9436f482.js');
|
|
12
12
|
const index$1 = require('./index-5915f9b3.js');
|
|
@@ -5,10 +5,11 @@ import { expect } from "@playwright/test";
|
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
6
|
configs().forEach(({ config, title }) => {
|
|
7
7
|
test.describe(title('accordion: a11y'), () => {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// TODO(ROU-8157): remove skip once the keyboard navigation is working again
|
|
9
|
+
test.skip('accordions should be keyboard navigable', async ({ page, skip, browserName }) => {
|
|
10
|
+
// TODO(ROU-5358): remove skip once issue is resolved
|
|
10
11
|
skip.browser('firefox', 'https://github.com/ionic-team/ionic-framework/issues/25070');
|
|
11
|
-
// TODO (
|
|
12
|
+
// TODO (ROU-5437)
|
|
12
13
|
skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
|
|
13
14
|
await page.goto(`/src/components/accordion/test/a11y`, config);
|
|
14
15
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
@@ -133,7 +133,9 @@ configs({ directions: ['ltr'] }).forEach(({ config, title }) => {
|
|
|
133
133
|
*/
|
|
134
134
|
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
135
135
|
test.describe(title('alert: font scaling'), () => {
|
|
136
|
-
test('should scale text on larger font sizes', async ({ page }) => {
|
|
136
|
+
test('should scale text on larger font sizes', async ({ page, skip }) => {
|
|
137
|
+
// TODO(ROU-8158): unskip this test when a solution is found
|
|
138
|
+
skip.browser('chromium', 'Rendering is flaky in Chrome.');
|
|
137
139
|
await page.setContent(`
|
|
138
140
|
<style>
|
|
139
141
|
html {
|
|
@@ -11,7 +11,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ config, screenshot, t
|
|
|
11
11
|
test.describe('adding a breadcrumb item', () => {
|
|
12
12
|
test('should update the active item', async ({ page }) => {
|
|
13
13
|
const breadcrumbItems = page.locator('ion-breadcrumb');
|
|
14
|
-
const addItemButton = page.locator('
|
|
14
|
+
const addItemButton = page.locator('#add-btn');
|
|
15
15
|
await expect(breadcrumbItems).toHaveCount(4);
|
|
16
16
|
await addItemButton.click();
|
|
17
17
|
await page.waitForChanges();
|
|
@@ -8,7 +8,7 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
8
8
|
test('should position the time picker relative to the click target', async ({ page }) => {
|
|
9
9
|
await page.goto('/src/components/datetime/test/position', config);
|
|
10
10
|
const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
|
|
11
|
-
const openDateTimeBtn = page.locator('
|
|
11
|
+
const openDateTimeBtn = page.locator('#open-datetime');
|
|
12
12
|
await openDateTimeBtn.click();
|
|
13
13
|
await ionPopoverDidPresent.next();
|
|
14
14
|
await page.locator('.datetime-ready').waitFor();
|
|
@@ -151,3 +151,49 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
151
151
|
});
|
|
152
152
|
});
|
|
153
153
|
});
|
|
154
|
+
/**
|
|
155
|
+
* This behavior does not vary across directions
|
|
156
|
+
*/
|
|
157
|
+
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
158
|
+
test.describe(title('item: inputs'), () => {
|
|
159
|
+
test('should not shrink the width of a div next to a checkbox, radio, select or toggle', async ({ page, }, testInfo) => {
|
|
160
|
+
testInfo.annotations.push({
|
|
161
|
+
type: 'issue',
|
|
162
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/29319',
|
|
163
|
+
});
|
|
164
|
+
await page.setContent(`
|
|
165
|
+
<style>
|
|
166
|
+
.box {
|
|
167
|
+
background: lightgreen;
|
|
168
|
+
|
|
169
|
+
width: 60px;
|
|
170
|
+
height: 60px;
|
|
171
|
+
}
|
|
172
|
+
</style>
|
|
173
|
+
|
|
174
|
+
<ion-list lines="none">
|
|
175
|
+
<ion-item>
|
|
176
|
+
<div class="box"></div>
|
|
177
|
+
<ion-checkbox>Checkbox</ion-checkbox>
|
|
178
|
+
</ion-item>
|
|
179
|
+
<ion-item>
|
|
180
|
+
<div class="box"></div>
|
|
181
|
+
<ion-radio>Radio</ion-radio>
|
|
182
|
+
</ion-item>
|
|
183
|
+
<ion-item>
|
|
184
|
+
<div class="box"></div>
|
|
185
|
+
<ion-select label="Select">
|
|
186
|
+
<ion-select-option>Option</ion-select-option>
|
|
187
|
+
</ion-select>
|
|
188
|
+
</ion-item>
|
|
189
|
+
<ion-item>
|
|
190
|
+
<div class="box"></div>
|
|
191
|
+
<ion-toggle>Toggle</ion-toggle>
|
|
192
|
+
</ion-item>
|
|
193
|
+
</ion-list>
|
|
194
|
+
`, config);
|
|
195
|
+
const list = page.locator('ion-list');
|
|
196
|
+
await expect(list).toHaveScreenshot(screenshot(`item-inputs-div-with-inputs`));
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
});
|
|
@@ -12,3 +12,138 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
12
12
|
});
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
|
+
/**
|
|
16
|
+
* This behavior does not vary across directions
|
|
17
|
+
*/
|
|
18
|
+
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
19
|
+
test.describe(title('item: slotted inputs'), () => {
|
|
20
|
+
test.describe('checkbox', () => {
|
|
21
|
+
test('should not expand the slotted checkbox width larger than its content', async ({ page }, testInfo) => {
|
|
22
|
+
testInfo.annotations.push({
|
|
23
|
+
type: 'issue',
|
|
24
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
|
|
25
|
+
});
|
|
26
|
+
await page.setContent(`
|
|
27
|
+
<ion-list>
|
|
28
|
+
<ion-item>
|
|
29
|
+
<ion-checkbox slot="start"></ion-checkbox>
|
|
30
|
+
<ion-label>Label</ion-label>
|
|
31
|
+
</ion-item>
|
|
32
|
+
<ion-item>
|
|
33
|
+
<ion-label>Label</ion-label>
|
|
34
|
+
<ion-checkbox slot="end"></ion-checkbox>
|
|
35
|
+
</ion-item>
|
|
36
|
+
<ion-item>
|
|
37
|
+
<ion-checkbox slot="start">Start</ion-checkbox>
|
|
38
|
+
<ion-label>Label</ion-label>
|
|
39
|
+
</ion-item>
|
|
40
|
+
<ion-item>
|
|
41
|
+
<ion-label>Label</ion-label>
|
|
42
|
+
<ion-checkbox slot="end">End</ion-checkbox>
|
|
43
|
+
</ion-item>
|
|
44
|
+
</ion-list>
|
|
45
|
+
`, config);
|
|
46
|
+
const list = page.locator('ion-list');
|
|
47
|
+
await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-checkbox`));
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
test.describe('radio', () => {
|
|
51
|
+
test('should not expand the slotted radio width larger than its content', async ({ page }, testInfo) => {
|
|
52
|
+
testInfo.annotations.push({
|
|
53
|
+
type: 'issue',
|
|
54
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
|
|
55
|
+
});
|
|
56
|
+
await page.setContent(`
|
|
57
|
+
<ion-list>
|
|
58
|
+
<ion-item>
|
|
59
|
+
<ion-radio slot="start"></ion-radio>
|
|
60
|
+
<ion-label>Label</ion-label>
|
|
61
|
+
</ion-item>
|
|
62
|
+
<ion-item>
|
|
63
|
+
<ion-label>Label</ion-label>
|
|
64
|
+
<ion-radio slot="end"></ion-radio>
|
|
65
|
+
</ion-item>
|
|
66
|
+
<ion-item>
|
|
67
|
+
<ion-radio slot="start">Start</ion-radio>
|
|
68
|
+
<ion-label>Label</ion-label>
|
|
69
|
+
</ion-item>
|
|
70
|
+
<ion-item>
|
|
71
|
+
<ion-label>Label</ion-label>
|
|
72
|
+
<ion-radio slot="end">End</ion-radio>
|
|
73
|
+
</ion-item>
|
|
74
|
+
</ion-list>
|
|
75
|
+
`, config);
|
|
76
|
+
const list = page.locator('ion-list');
|
|
77
|
+
await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-radio`));
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
test.describe('select', () => {
|
|
81
|
+
test('should not expand the slotted select width larger than its content', async ({ page }, testInfo) => {
|
|
82
|
+
testInfo.annotations.push({
|
|
83
|
+
type: 'issue',
|
|
84
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
|
|
85
|
+
});
|
|
86
|
+
await page.setContent(`
|
|
87
|
+
<ion-list>
|
|
88
|
+
<ion-item>
|
|
89
|
+
<ion-select slot="start">
|
|
90
|
+
<ion-select-option>Option</ion-select-option>
|
|
91
|
+
</ion-select>
|
|
92
|
+
<ion-label>Label</ion-label>
|
|
93
|
+
</ion-item>
|
|
94
|
+
<ion-item>
|
|
95
|
+
<ion-label>Label</ion-label>
|
|
96
|
+
<ion-select slot="end">
|
|
97
|
+
<ion-select-option>Option</ion-select-option>
|
|
98
|
+
</ion-select>
|
|
99
|
+
</ion-item>
|
|
100
|
+
<ion-item>
|
|
101
|
+
<ion-select slot="start" label="Start">
|
|
102
|
+
<ion-select-option>Option</ion-select-option>
|
|
103
|
+
</ion-select>
|
|
104
|
+
<ion-label>Label</ion-label>
|
|
105
|
+
</ion-item>
|
|
106
|
+
<ion-item>
|
|
107
|
+
<ion-label>Label</ion-label>
|
|
108
|
+
<ion-select slot="end" label="End">
|
|
109
|
+
<ion-select-option>Option</ion-select-option>
|
|
110
|
+
</ion-select>
|
|
111
|
+
</ion-item>
|
|
112
|
+
</ion-list>
|
|
113
|
+
`, config);
|
|
114
|
+
const list = page.locator('ion-list');
|
|
115
|
+
await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-select`));
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
test.describe('toggle', () => {
|
|
119
|
+
test('should not expand the slotted toggle width larger than its content', async ({ page }, testInfo) => {
|
|
120
|
+
testInfo.annotations.push({
|
|
121
|
+
type: 'issue',
|
|
122
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
|
|
123
|
+
});
|
|
124
|
+
await page.setContent(`
|
|
125
|
+
<ion-list>
|
|
126
|
+
<ion-item>
|
|
127
|
+
<ion-toggle slot="start"></ion-toggle>
|
|
128
|
+
<ion-label>Label</ion-label>
|
|
129
|
+
</ion-item>
|
|
130
|
+
<ion-item>
|
|
131
|
+
<ion-label>Label</ion-label>
|
|
132
|
+
<ion-toggle slot="end"></ion-toggle>
|
|
133
|
+
</ion-item>
|
|
134
|
+
<ion-item>
|
|
135
|
+
<ion-toggle slot="start">Start</ion-toggle>
|
|
136
|
+
<ion-label>Label</ion-label>
|
|
137
|
+
</ion-item>
|
|
138
|
+
<ion-item>
|
|
139
|
+
<ion-label>Label</ion-label>
|
|
140
|
+
<ion-toggle slot="end">End</ion-toggle>
|
|
141
|
+
</ion-item>
|
|
142
|
+
</ion-list>
|
|
143
|
+
`, config);
|
|
144
|
+
const list = page.locator('ion-list');
|
|
145
|
+
await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-toggle`));
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
@@ -60,7 +60,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
|
|
|
60
60
|
const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
|
|
61
61
|
await page.click('#html-content-loading');
|
|
62
62
|
await ionLoadingDidPresent.next();
|
|
63
|
-
const button = page.locator('ion-loading
|
|
63
|
+
const button = page.locator('ion-loading button');
|
|
64
64
|
if (browserName === 'webkit') {
|
|
65
65
|
await page.keyboard.down('Alt');
|
|
66
66
|
}
|
|
@@ -26,7 +26,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
26
26
|
});
|
|
27
27
|
test('should trap focus', async ({ page, skip, browserName }) => {
|
|
28
28
|
skip.browser('firefox', 'Firefox incorrectly allows keyboard focus to move to ion-content');
|
|
29
|
-
// TODO (
|
|
29
|
+
// TODO (ROU-5437)
|
|
30
30
|
skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
|
|
31
31
|
const ionDidOpen = await page.spyOnEvent('ionDidOpen');
|
|
32
32
|
await page.click('#open-start');
|
|
@@ -21,7 +21,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
21
21
|
await modal.evaluate((modal) => {
|
|
22
22
|
var _a;
|
|
23
23
|
modal.remove();
|
|
24
|
-
(_a = document.querySelector('
|
|
24
|
+
(_a = document.querySelector('button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', modal);
|
|
25
25
|
});
|
|
26
26
|
await page.waitForChanges();
|
|
27
27
|
await button.click();
|
|
@@ -17,7 +17,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
17
17
|
});
|
|
18
18
|
test.describe('pushing a new page', () => {
|
|
19
19
|
test('should render the pushed component', async ({ page }) => {
|
|
20
|
-
const pageTwoButton = page.locator('
|
|
20
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
21
21
|
const pageOne = page.locator('page-one');
|
|
22
22
|
const pageTwo = page.locator('page-two');
|
|
23
23
|
await pageTwoButton.click();
|
|
@@ -27,7 +27,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
27
27
|
await expect(pageOne).not.toBeVisible();
|
|
28
28
|
});
|
|
29
29
|
test('should render the back button', async ({ page }) => {
|
|
30
|
-
const pageTwoButton = page.locator('
|
|
30
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
31
31
|
const pageTwoBackButton = page.locator('page-two ion-back-button');
|
|
32
32
|
await pageTwoButton.click();
|
|
33
33
|
await page.waitForChanges();
|
|
@@ -37,7 +37,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
37
37
|
test('back button should pop to the previous page', async ({ page }) => {
|
|
38
38
|
const pageOne = page.locator('page-one');
|
|
39
39
|
const pageTwo = page.locator('page-two');
|
|
40
|
-
const pageTwoButton = page.locator('
|
|
40
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
41
41
|
const pageTwoBackButton = page.locator('page-two ion-back-button');
|
|
42
42
|
await pageTwoButton.click();
|
|
43
43
|
await page.waitForChanges();
|
|
@@ -52,8 +52,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
52
52
|
const pageOne = page.locator('page-one');
|
|
53
53
|
const pageTwo = page.locator('page-two');
|
|
54
54
|
const pageThree = page.locator('page-three');
|
|
55
|
-
const pageTwoButton = page.locator('
|
|
56
|
-
const pageThreeButton = page.locator('
|
|
55
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
56
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page Three")');
|
|
57
57
|
await pageTwoButton.click();
|
|
58
58
|
await page.waitForChanges();
|
|
59
59
|
await expect(pageOne).toHaveCount(1);
|
|
@@ -15,8 +15,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
15
15
|
test('should push pages with nested ion-nav', async ({ page }) => {
|
|
16
16
|
const pageOne = page.locator('page-one');
|
|
17
17
|
const pageTwo = page.locator('page-two');
|
|
18
|
-
const pageTwoButton = page.locator('
|
|
19
|
-
const pageTwoTwoButton = page.locator('
|
|
18
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page 2")');
|
|
19
|
+
const pageTwoTwoButton = page.locator('button:has-text("Go to Page 2.2")');
|
|
20
20
|
await pageTwoButton.click();
|
|
21
21
|
await page.waitForChanges();
|
|
22
22
|
const pageTwoOne = page.locator('page-two-one');
|
|
@@ -28,7 +28,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
28
28
|
await page.waitForChanges();
|
|
29
29
|
await expect(pageTwoOne).toHaveCount(1);
|
|
30
30
|
await expect(pageTwoTwo).toBeVisible();
|
|
31
|
-
const pageThreeButton = page.locator('
|
|
31
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page 3")');
|
|
32
32
|
await pageThreeButton.click();
|
|
33
33
|
await page.waitForChanges();
|
|
34
34
|
const pageThree = page.locator('page-three');
|
|
@@ -38,15 +38,15 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
38
38
|
});
|
|
39
39
|
test.describe('back button', () => {
|
|
40
40
|
test('should work with nested ion-nav', async ({ page }) => {
|
|
41
|
-
const pageTwoButton = page.locator('
|
|
42
|
-
const pageTwoTwoButton = page.locator('
|
|
41
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page 2")');
|
|
42
|
+
const pageTwoTwoButton = page.locator('button:has-text("Go to Page 2.2")');
|
|
43
43
|
await pageTwoButton.click();
|
|
44
44
|
await page.waitForChanges();
|
|
45
45
|
const pageTwoOne = page.locator('page-two-one');
|
|
46
46
|
const pageTwoTwo = page.locator('page-two-two');
|
|
47
47
|
await pageTwoTwoButton.click();
|
|
48
48
|
await page.waitForChanges();
|
|
49
|
-
const pageThreeButton = page.locator('
|
|
49
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page 3")');
|
|
50
50
|
const pageThreeBackButton = page.locator('page-three ion-back-button');
|
|
51
51
|
await pageThreeButton.click();
|
|
52
52
|
await page.waitForChanges();
|
|
@@ -21,8 +21,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
21
21
|
const pageRoot = page.locator('page-root');
|
|
22
22
|
const pageOne = page.locator('page-one');
|
|
23
23
|
const pageTwo = page.locator('page-two');
|
|
24
|
-
const pageOneButton = page.locator('
|
|
25
|
-
const pageTwoButton = page.locator('
|
|
24
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
25
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
26
26
|
await pageOneButton.click();
|
|
27
27
|
await page.waitForChanges();
|
|
28
28
|
await expect(pageOne).toBeVisible();
|
|
@@ -37,7 +37,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
37
37
|
await expect(pageOne).toHaveCount(1);
|
|
38
38
|
});
|
|
39
39
|
test('should render the back button', async ({ page }) => {
|
|
40
|
-
const pageOneButton = page.locator('
|
|
40
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
41
41
|
const pageOneBackButton = page.locator('page-one ion-back-button');
|
|
42
42
|
await pageOneButton.click();
|
|
43
43
|
await page.waitForChanges();
|
|
@@ -47,7 +47,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
47
47
|
test('back button should pop to the previous page', async ({ page }) => {
|
|
48
48
|
const pageRoot = page.locator('page-root');
|
|
49
49
|
const pageOne = page.locator('page-one');
|
|
50
|
-
const pageOneButton = page.locator('
|
|
50
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
51
51
|
const pageOneBackButton = page.locator('page-one ion-back-button');
|
|
52
52
|
await pageOneButton.click();
|
|
53
53
|
await page.waitForChanges();
|
|
@@ -63,9 +63,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
63
63
|
const pageOne = page.locator('page-one');
|
|
64
64
|
const pageTwo = page.locator('page-two');
|
|
65
65
|
const pageThree = page.locator('page-three');
|
|
66
|
-
const pageOneButton = page.locator('
|
|
67
|
-
const pageTwoButton = page.locator('
|
|
68
|
-
const pageThreeButton = page.locator('
|
|
66
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
67
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
68
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page Three")');
|
|
69
69
|
await pageOneButton.click();
|
|
70
70
|
await page.waitForChanges();
|
|
71
71
|
await expect(pageRoot).toHaveCount(1);
|
|
@@ -359,7 +359,7 @@ export class PickerColumn {
|
|
|
359
359
|
break;
|
|
360
360
|
}
|
|
361
361
|
if (newOption !== null) {
|
|
362
|
-
this.
|
|
362
|
+
this.setValue(newOption.value);
|
|
363
363
|
// This stops any default browser behavior such as scrolling
|
|
364
364
|
ev.preventDefault();
|
|
365
365
|
}
|
|
@@ -509,8 +509,8 @@ export class PickerColumn {
|
|
|
509
509
|
* Use this method instead of the global `pickerColumn.focus()`.
|
|
510
510
|
*/
|
|
511
511
|
async setFocus() {
|
|
512
|
-
if (this.
|
|
513
|
-
this.
|
|
512
|
+
if (this.assistiveFocusable) {
|
|
513
|
+
this.assistiveFocusable.focus();
|
|
514
514
|
}
|
|
515
515
|
}
|
|
516
516
|
connectedCallback() {
|
|
@@ -534,14 +534,33 @@ export class PickerColumn {
|
|
|
534
534
|
render() {
|
|
535
535
|
const { color, disabled, isActive, numericInput } = this;
|
|
536
536
|
const mode = getIonMode(this);
|
|
537
|
-
return (h(Host, { key: '
|
|
537
|
+
return (h(Host, { key: 'd60736ce74c0e8c774a163272b78fbad32993ec2', class: createColorClasses(color, {
|
|
538
538
|
[mode]: true,
|
|
539
539
|
['picker-column-active']: isActive,
|
|
540
540
|
['picker-column-numeric-input']: numericInput,
|
|
541
541
|
['picker-column-disabled']: disabled,
|
|
542
|
-
}) }, this.renderAssistiveFocusable(), h("slot", { key: '
|
|
542
|
+
}) }, this.renderAssistiveFocusable(), h("slot", { key: '74611112ef154b343ae29a773f8cd8a01cc1447d', name: "prefix" }), h("div", { key: 'af772d2b61b7eb41a567593d290b80a50b7caa72', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
|
|
543
543
|
this.scrollEl = el;
|
|
544
|
-
}
|
|
544
|
+
},
|
|
545
|
+
/**
|
|
546
|
+
* When an element has an overlay scroll style and
|
|
547
|
+
* a fixed height, Firefox will focus the scrollable
|
|
548
|
+
* container if the content exceeds the container's
|
|
549
|
+
* dimensions.
|
|
550
|
+
*
|
|
551
|
+
* This causes keyboard navigation to focus to this
|
|
552
|
+
* element instead of going to the next element in
|
|
553
|
+
* the tab order.
|
|
554
|
+
*
|
|
555
|
+
* The desired behavior is for the user to be able to
|
|
556
|
+
* focus the assistive focusable element and tab to
|
|
557
|
+
* the next element in the tab order. Instead of tabbing
|
|
558
|
+
* to this element.
|
|
559
|
+
*
|
|
560
|
+
* To prevent this, we set the tabIndex to -1. This
|
|
561
|
+
* will match the behavior of the other browsers.
|
|
562
|
+
*/
|
|
563
|
+
tabIndex: -1 }, h("div", { key: '4b646ee97bcf8ed541b9798c91dff189eec41dd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'a44d1a10d20a13aeb47f9871b09e291aa7f216bd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '6a481715bd68fa68dc2a76c2e867ce771ea680b0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '23236e731b1ad432c104761ebeec91697a6b7643' }), h("div", { key: '58a6c1f35a3ff0b26acaceebfd477d74b6dcfd6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'ea864872dec6dc363406d1bd9101b1bf21944db6', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '28cc4c570d0dd59f491eef2b15a5ed706d28b7bb', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: 'cff1cc0bea732a5ce22bb451c5ea404a84af1993', name: "suffix" })));
|
|
545
564
|
}
|
|
546
565
|
static get is() { return "ion-picker-column"; }
|
|
547
566
|
static get encapsulation() { return "shadow"; }
|
|
@@ -32,7 +32,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
32
32
|
await popover.evaluate((popover) => {
|
|
33
33
|
var _a;
|
|
34
34
|
popover.remove();
|
|
35
|
-
(_a = document.querySelector('
|
|
35
|
+
(_a = document.querySelector('button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', popover);
|
|
36
36
|
});
|
|
37
37
|
await page.waitForChanges();
|
|
38
38
|
await button.click();
|
|
@@ -70,6 +70,17 @@ export class Radio {
|
|
|
70
70
|
*/
|
|
71
71
|
this.updateState();
|
|
72
72
|
}
|
|
73
|
+
componentDidLoad() {
|
|
74
|
+
/**
|
|
75
|
+
* The value may be `undefined` if it
|
|
76
|
+
* gets set before the radio is
|
|
77
|
+
* rendered. This ensures that the radio
|
|
78
|
+
* is checked if the value matches. This
|
|
79
|
+
* happens most often when Angular is
|
|
80
|
+
* rendering the radio.
|
|
81
|
+
*/
|
|
82
|
+
this.updateState();
|
|
83
|
+
}
|
|
73
84
|
/** @internal */
|
|
74
85
|
async setFocus(ev) {
|
|
75
86
|
ev.stopPropagation();
|
|
@@ -107,7 +118,7 @@ export class Radio {
|
|
|
107
118
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
108
119
|
const mode = getIonMode(this);
|
|
109
120
|
const inItem = hostContext('ion-item', el);
|
|
110
|
-
return (h(Host, { key: '
|
|
121
|
+
return (h(Host, { key: '43c95effb6acb119733270e8a5e02fe18b47ee4b', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
|
|
111
122
|
[mode]: true,
|
|
112
123
|
'in-item': inItem,
|
|
113
124
|
'radio-checked': checked,
|
|
@@ -118,10 +129,10 @@ export class Radio {
|
|
|
118
129
|
// Focus and active styling should not apply when the radio is in an item
|
|
119
130
|
'ion-activatable': !inItem,
|
|
120
131
|
'ion-focusable': !inItem,
|
|
121
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '
|
|
132
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '168ea77c08fde9832077d617662b93dc9986b544', class: "radio-wrapper" }, h("div", { key: 'ce1e6eee63fbab1e5a66b18f767f4eecc2a227f1', class: {
|
|
122
133
|
'label-text-wrapper': true,
|
|
123
134
|
'label-text-wrapper-hidden': !hasLabel,
|
|
124
|
-
}, part: "label" }, h("slot", { key: '
|
|
135
|
+
}, part: "label" }, h("slot", { key: '7d849e43d4356b5c3978c2bba9a6fba5d21ca69d' })), h("div", { key: 'e741f7822364958b050a232bdfccdc413095c244', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
125
136
|
}
|
|
126
137
|
static get is() { return "ion-radio"; }
|
|
127
138
|
static get encapsulation() { return "shadow"; }
|
|
@@ -23,7 +23,7 @@ export class Searchbar {
|
|
|
23
23
|
this.onClearInput = async (shouldFocus) => {
|
|
24
24
|
this.ionClear.emit();
|
|
25
25
|
return new Promise((resolve) => {
|
|
26
|
-
// setTimeout() fixes https://github.com/ionic-team/ionic/issues/7527
|
|
26
|
+
// setTimeout() fixes https://github.com/ionic-team/ionic-framework/issues/7527
|
|
27
27
|
// wait for 4 frames
|
|
28
28
|
setTimeout(() => {
|
|
29
29
|
const value = this.getValue();
|
|
@@ -378,8 +378,8 @@ export class Searchbar {
|
|
|
378
378
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
379
379
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
380
380
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
381
|
-
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '
|
|
382
|
-
return (h(Host, { key: '
|
|
381
|
+
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '20b2d0f2e3425eede725dbe3323c7c29cdb66f4e', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '3a516c3fdd35256eb79639fd340afcdd92cfd7aa', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
382
|
+
return (h(Host, { key: '34878db21f63a9bdffca0446d8ad5619ff04cac3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
383
383
|
[mode]: true,
|
|
384
384
|
'searchbar-animated': animated,
|
|
385
385
|
'searchbar-disabled': this.disabled,
|
|
@@ -389,14 +389,14 @@ export class Searchbar {
|
|
|
389
389
|
'searchbar-has-focus': this.focused,
|
|
390
390
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
391
391
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
392
|
-
}) }, h("div", { key: '
|
|
392
|
+
}) }, h("div", { key: 'faa7b011206a8359b1963368c65988e506b260cb', class: "searchbar-input-container" }, h("input", Object.assign({ key: '732d3e5a2b258da6f136a14472ac872816a9853b', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '767dca971849f221dde220deae728b41bf764b98', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '9941b5de1ed9ebcf3e81de8e0731c09dea5a89d9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
393
393
|
/**
|
|
394
394
|
* This prevents mobile browsers from
|
|
395
395
|
* blurring the input when the clear
|
|
396
396
|
* button is activated.
|
|
397
397
|
*/
|
|
398
398
|
ev.preventDefault();
|
|
399
|
-
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '
|
|
399
|
+
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'cb2b543d286373a84e2c6c2a959f92b045bbd7dd', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
400
400
|
}
|
|
401
401
|
static get is() { return "ion-searchbar"; }
|
|
402
402
|
static get encapsulation() { return "scoped"; }
|