voyager-ionic-core 7.6.1 → 7.6.5
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/icon.js +15 -3
- package/components/index7.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-input.js +2 -2
- package/components/ion-menu-button.js +1 -1
- package/components/ion-refresher-content.js +10 -3
- package/components/ion-refresher.js +4 -183
- package/components/ion-select.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-textarea.js +2 -2
- package/components/item.js +2 -2
- package/components/list.js +1 -1
- package/components/overlays.js +12 -3
- package/components/radio-group.js +9 -1
- package/components/refresher.utils.js +196 -0
- package/components/spinner.js +1 -1
- package/dist/cjs/{app-globals-7def22c8.js → app-globals-07127773.js} +1 -1
- package/dist/cjs/{button-active-962fe442.js → button-active-85665616.js} +1 -1
- package/dist/cjs/{index-17ab7794.js → index-6bb6b651.js} +3 -3
- package/dist/cjs/{index-50dcfe2f.js → index-71f41461.js} +25 -27
- package/dist/cjs/{index-3b012034.js → index-96a721a7.js} +1 -1
- package/dist/cjs/{index-09471526.js → index-f52c6d38.js} +1 -1
- package/dist/cjs/index.cjs.js +7 -7
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +17 -5
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
- 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 +5 -5
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- 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.cjs.entry.js +5 -5
- package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +6 -6
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +4 -4
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +11 -3
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-refresher_2.cjs.entry.js +30 -15
- package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
- 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 +3 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
- package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
- 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 +4 -4
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/{ionic-global-a4edbf03.js → ionic-global-c70c3fb5.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-b5353f3e.js → ios.transition-9624a175.js} +2 -2
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-67157dd9.js → md.transition-786baf9a.js} +2 -2
- package/dist/cjs/{overlays-e77cc023.js → overlays-4c97edb0.js} +13 -4
- package/dist/cjs/{status-tap-b5d77c08.js → status-tap-66296dcb.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/accordion-group/accordion-group.js +6 -4
- package/dist/collection/components/action-sheet/action-sheet.js +6 -10
- package/dist/collection/components/alert/alert.js +6 -10
- package/dist/collection/components/app/app.js +3 -2
- package/dist/collection/components/back-button/back-button.js +1 -1
- package/dist/collection/components/content/content.js +24 -40
- package/dist/collection/components/datetime/datetime.ios.css +3 -1
- package/dist/collection/components/datetime/datetime.js +10 -7
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +29 -0
- package/dist/collection/components/datetime/test/highlighted-dates/datetime.e2e.js +1 -1
- package/dist/collection/components/input/input.ios.css +24 -4
- package/dist/collection/components/input/input.js +1 -1
- package/dist/collection/components/input/input.md.css +25 -4
- package/dist/collection/components/input/test/slot/input.e2e.js +6 -2
- package/dist/collection/components/item/item.ios.css +6 -0
- package/dist/collection/components/item/item.md.css +6 -0
- package/dist/collection/components/item-sliding/item-sliding.js +3 -5
- package/dist/collection/components/label/test/a11y/label.e2e.js +25 -0
- package/dist/collection/components/list/list.md.css +1 -21
- package/dist/collection/components/loading/loading.js +6 -10
- package/dist/collection/components/menu/menu.js +15 -10
- package/dist/collection/components/menu-button/menu-button.js +1 -1
- package/dist/collection/components/modal/modal.js +10 -13
- package/dist/collection/components/nav/nav.js +114 -190
- package/dist/collection/components/picker/picker.js +9 -15
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +3 -2
- package/dist/collection/components/popover/popover.js +18 -21
- package/dist/collection/components/radio/radio.js +6 -4
- package/dist/collection/components/radio/test/a11y/radio.e2e.js +16 -3
- package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +15 -2
- package/dist/collection/components/radio-group/radio-group.js +9 -1
- package/dist/collection/components/range/range.js +1 -1
- package/dist/collection/components/refresher/refresher.js +3 -0
- package/dist/collection/components/refresher/refresher.utils.js +19 -11
- package/dist/collection/components/refresher-content/refresher-content.js +9 -3
- package/dist/collection/components/reorder-group/reorder-group.js +3 -5
- package/dist/collection/components/ripple-effect/ripple-effect.js +6 -10
- package/dist/collection/components/router/router.js +12 -14
- package/dist/collection/components/router-outlet/router-outlet.js +21 -14
- package/dist/collection/components/select/select.ios.css +20 -0
- package/dist/collection/components/select/select.js +3 -5
- package/dist/collection/components/select/select.md.css +21 -0
- package/dist/collection/components/select/test/slot/select.e2e.js +6 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.ios.css +9 -0
- package/dist/collection/components/split-pane/split-pane.md.css +9 -0
- package/dist/collection/components/tabs/tabs.js +9 -12
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +6 -2
- package/dist/collection/components/textarea/textarea.ios.css +20 -0
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/textarea/textarea.md.css +21 -0
- package/dist/collection/components/toast/toast.js +6 -10
- package/dist/collection/utils/overlays.js +12 -3
- package/dist/docs.d.ts +1 -21
- package/dist/docs.json +739 -540
- package/dist/esm/{app-globals-8c62bec2.js → app-globals-52c78291.js} +1 -1
- package/dist/esm/{button-active-308d3edd.js → button-active-b62776db.js} +1 -1
- package/dist/esm/{index-1193f005.js → index-01cb9192.js} +1 -1
- package/dist/esm/{index-b7d870cf.js → index-27668d5b.js} +25 -27
- package/dist/esm/{index-4743453d.js → index-a97c95a7.js} +3 -3
- package/dist/esm/{index-c132c5f1.js → index-f7dc70ba.js} +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +4 -4
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +4 -4
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +17 -5
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -2
- 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 +5 -5
- package/dist/esm/ion-fab_3.entry.js +3 -3
- 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.entry.js +5 -5
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +6 -6
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +6 -6
- package/dist/esm/ion-modal.entry.js +4 -4
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-internal.entry.js +2 -2
- package/dist/esm/ion-picker-internal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +4 -4
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +11 -3
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-refresher_2.entry.js +30 -15
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- 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 +3 -3
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +6 -6
- package/dist/esm/ion-spinner.entry.js +3 -3
- package/dist/esm/ion-split-pane.entry.js +4 -4
- 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 +4 -4
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/{ionic-global-1f99b929.js → ionic-global-8fa0f940.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-3376ccb2.js → ios.transition-62fd50ab.js} +2 -2
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-f992779f.js → md.transition-7e56966a.js} +2 -2
- package/dist/esm/{overlays-b33f6bca.js → overlays-8414359b.js} +13 -4
- package/dist/esm/{status-tap-16fd8f3d.js → status-tap-129c01cf.js} +1 -1
- package/dist/esm-es5/app-globals-52c78291.js +4 -0
- package/dist/esm-es5/{button-active-308d3edd.js → button-active-b62776db.js} +1 -1
- package/dist/esm-es5/{index-1193f005.js → index-01cb9192.js} +1 -1
- package/dist/esm-es5/index-27668d5b.js +5 -0
- package/dist/esm-es5/{index-4743453d.js → index-a97c95a7.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.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
- package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/{ionic-global-1f99b929.js → ionic-global-8fa0f940.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-3376ccb2.js → ios.transition-62fd50ab.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-7e56966a.js +4 -0
- package/dist/esm-es5/{overlays-b33f6bca.js → overlays-8414359b.js} +1 -1
- package/dist/esm-es5/{status-tap-16fd8f3d.js → status-tap-129c01cf.js} +1 -1
- package/dist/html.html-data.json +13 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/p-005e0ad0.js +4 -0
- package/dist/ionic/{p-928ee57a.entry.js → p-01438d78.entry.js} +1 -1
- package/dist/ionic/{p-9a68d8ef.system.js → p-02e530f5.system.js} +1 -1
- package/dist/ionic/{p-04377cfa.js → p-03e00f90.js} +1 -1
- package/dist/ionic/{p-47bb15a1.entry.js → p-0abedd22.entry.js} +1 -1
- package/dist/ionic/{p-26c4bf85.entry.js → p-0d2b6901.entry.js} +1 -1
- package/dist/ionic/{p-2a583966.entry.js → p-1052ef2b.entry.js} +1 -1
- package/dist/ionic/{p-803efb5d.entry.js → p-127ff448.entry.js} +1 -1
- package/dist/ionic/{p-e33d1ebc.entry.js → p-13387c28.entry.js} +1 -1
- package/dist/ionic/{p-abd5d0d5.system.entry.js → p-1a0bf247.system.entry.js} +1 -1
- package/dist/ionic/{p-19d9ceb8.system.js → p-1a5f0313.system.js} +1 -1
- package/dist/ionic/{p-806a9810.entry.js → p-1f7fc88d.entry.js} +1 -1
- package/dist/ionic/{p-158efe8d.system.entry.js → p-1ffb40d0.system.entry.js} +1 -1
- package/dist/ionic/{p-0509fd34.js → p-23ce95e8.js} +1 -1
- package/dist/ionic/{p-cf53213c.entry.js → p-249633a4.entry.js} +1 -1
- package/dist/ionic/{p-44a56556.js → p-25221a73.js} +1 -1
- package/dist/ionic/{p-507ddbfe.system.entry.js → p-25553eba.system.entry.js} +1 -1
- package/dist/ionic/{p-6ab03751.js → p-2a496995.js} +1 -1
- package/dist/ionic/{p-7dc892f8.entry.js → p-3197dbf7.entry.js} +1 -1
- package/dist/ionic/{p-a074be82.system.js → p-32b8e50d.system.js} +1 -1
- package/dist/ionic/p-35e1a80f.system.entry.js +4 -0
- package/dist/ionic/{p-0dfa4ab4.system.entry.js → p-3b83e483.system.entry.js} +2 -2
- package/dist/ionic/{p-9fda6824.system.entry.js → p-3bcbbf43.system.entry.js} +1 -1
- package/dist/ionic/{p-9f94c72e.system.js → p-3c33dc30.system.js} +1 -1
- package/dist/ionic/{p-ebe8bd8a.entry.js → p-3f0afc6f.entry.js} +1 -1
- package/dist/ionic/{p-4685218a.system.entry.js → p-41040a92.system.entry.js} +1 -1
- package/dist/ionic/{p-84b567a6.entry.js → p-41aa2662.entry.js} +1 -1
- package/dist/ionic/p-436bd99a.entry.js +4 -0
- package/dist/ionic/{p-afa9f205.system.js → p-43afd001.system.js} +1 -1
- package/dist/ionic/{p-6c277fa2.system.entry.js → p-48f7e8cc.system.entry.js} +1 -1
- package/dist/ionic/{p-5ad1fe3b.system.js → p-4a4bbcc5.system.js} +2 -2
- package/dist/ionic/{p-f0504446.system.entry.js → p-4cd6a04c.system.entry.js} +1 -1
- package/dist/ionic/{p-745e3339.system.entry.js → p-525b6ac4.system.entry.js} +1 -1
- package/dist/ionic/p-54c92c77.entry.js +4 -0
- package/dist/ionic/{p-44dc52e5.entry.js → p-5a85d71d.entry.js} +1 -1
- package/dist/ionic/{p-dc71e4ef.system.entry.js → p-5aecd304.system.entry.js} +1 -1
- package/dist/ionic/{p-19c379da.system.entry.js → p-5c2da581.system.entry.js} +1 -1
- package/dist/ionic/p-619fafe3.system.entry.js +4 -0
- package/dist/ionic/{p-8f301ac5.system.entry.js → p-61bf9f6f.system.entry.js} +1 -1
- package/dist/ionic/p-677cb2f7.js +4 -0
- package/dist/ionic/p-67c3a2a8.system.js +5 -0
- package/dist/ionic/{p-ae4b7df8.entry.js → p-688a36c7.entry.js} +1 -1
- package/dist/ionic/{p-c1701827.entry.js → p-6a257379.entry.js} +1 -1
- package/dist/ionic/p-6b9eee40.system.entry.js +4 -0
- package/dist/ionic/{p-cb8dff22.system.entry.js → p-6ba863b1.system.entry.js} +1 -1
- package/dist/ionic/p-6e165986.system.entry.js +4 -0
- package/dist/ionic/{p-11786dc7.entry.js → p-7510e462.entry.js} +1 -1
- package/dist/ionic/{p-2df97906.system.entry.js → p-76b6b42e.system.entry.js} +1 -1
- package/dist/ionic/{p-a49931aa.system.js → p-770f5b43.system.js} +1 -1
- package/dist/ionic/{p-0ebc87b7.system.entry.js → p-7751def0.system.entry.js} +1 -1
- package/dist/ionic/{p-648ad047.system.entry.js → p-788942c8.system.entry.js} +1 -1
- package/dist/ionic/{p-b964aba3.entry.js → p-7bae84aa.entry.js} +1 -1
- package/dist/ionic/{p-cf235986.entry.js → p-7de774dd.entry.js} +1 -1
- package/dist/ionic/{p-1c249831.entry.js → p-803ad1e3.entry.js} +1 -1
- package/dist/ionic/{p-6855f26a.entry.js → p-8084e9cb.entry.js} +1 -1
- package/dist/ionic/p-80ddd0c1.entry.js +4 -0
- package/dist/ionic/{p-0550f802.entry.js → p-85e04029.entry.js} +1 -1
- package/dist/ionic/{p-a42ef163.system.entry.js → p-87e10168.system.entry.js} +1 -1
- package/dist/ionic/{p-69641343.system.entry.js → p-88d99112.system.entry.js} +1 -1
- package/dist/ionic/{p-4981ea0a.system.entry.js → p-89c28901.system.entry.js} +1 -1
- package/dist/ionic/p-928e945d.system.entry.js +4 -0
- package/dist/ionic/{p-ddd48faf.system.entry.js → p-978c6799.system.entry.js} +1 -1
- package/dist/ionic/{p-93390f78.entry.js → p-9a0b9b64.entry.js} +1 -1
- package/dist/ionic/{p-85f48531.entry.js → p-a2d75455.entry.js} +1 -1
- package/dist/ionic/{p-beeed22c.system.entry.js → p-a706cf11.system.entry.js} +1 -1
- package/dist/ionic/{p-aee39e06.entry.js → p-a78d17e2.entry.js} +1 -1
- package/dist/ionic/{p-a3013394.entry.js → p-aca77953.entry.js} +1 -1
- package/dist/ionic/{p-0aa78a8d.system.js → p-ae638cb5.system.js} +1 -1
- package/dist/ionic/{p-2894d5f6.entry.js → p-b09c8228.entry.js} +1 -1
- package/dist/ionic/p-b2205a7c.system.entry.js +4 -0
- package/dist/ionic/{p-61e4d3ec.entry.js → p-b43cf55f.entry.js} +1 -1
- package/dist/ionic/{p-767f1a92.entry.js → p-b6f6f00e.entry.js} +1 -1
- package/dist/ionic/{p-d93eed83.system.entry.js → p-bb41c476.system.entry.js} +1 -1
- package/dist/ionic/{p-b7058a0e.system.entry.js → p-bc59962f.system.entry.js} +1 -1
- package/dist/ionic/{p-17d283b9.system.entry.js → p-be04fcd8.system.entry.js} +1 -1
- package/dist/ionic/{p-b8a9e195.system.entry.js → p-bf595ef8.system.entry.js} +1 -1
- package/dist/ionic/{p-1b27ac67.entry.js → p-bf80f9d1.entry.js} +1 -1
- package/dist/ionic/{p-3671f1b9.system.js → p-c0f62b42.system.js} +1 -1
- package/dist/ionic/{p-e2903cdc.system.entry.js → p-c16d9f2c.system.entry.js} +1 -1
- package/dist/ionic/{p-41208f54.system.entry.js → p-c1c57873.system.entry.js} +1 -1
- package/dist/ionic/{p-6fba0ce1.system.entry.js → p-c48a9ef3.system.entry.js} +1 -1
- package/dist/ionic/{p-60959b71.entry.js → p-c9219299.entry.js} +1 -1
- package/dist/ionic/{p-2ba9a9bd.system.entry.js → p-cae77add.system.entry.js} +1 -1
- package/dist/ionic/{p-4489dd20.system.entry.js → p-cd6bb7f5.system.entry.js} +1 -1
- package/dist/ionic/{p-043aa6cc.system.entry.js → p-cdce5ba3.system.entry.js} +1 -1
- package/dist/ionic/{p-f6e9c227.system.js → p-d2707f9d.system.js} +1 -1
- package/dist/ionic/{p-f894e0ad.entry.js → p-d5216086.entry.js} +1 -1
- package/dist/ionic/p-d6129c6e.js +5 -0
- package/dist/ionic/p-d6beb1c9.system.entry.js +4 -0
- package/dist/ionic/{p-10ec9af7.system.entry.js → p-db798370.system.entry.js} +1 -1
- package/dist/ionic/{p-a821750c.system.entry.js → p-dc1d883c.system.entry.js} +1 -1
- package/dist/ionic/{p-3e8d5e53.entry.js → p-dd9dff11.entry.js} +1 -1
- package/dist/ionic/{p-11a3973f.entry.js → p-df62accd.entry.js} +1 -1
- package/dist/ionic/{p-b7a2ffc9.system.entry.js → p-e1e05489.system.entry.js} +1 -1
- package/dist/ionic/{p-06abe918.system.entry.js → p-e3ff3cde.system.entry.js} +1 -1
- package/dist/ionic/p-e814f9c0.entry.js +4 -0
- package/dist/ionic/p-e8294cc1.entry.js +4 -0
- package/dist/ionic/{p-c08fe2c0.entry.js → p-e87564bc.entry.js} +1 -1
- package/dist/ionic/{p-cd1b920b.entry.js → p-ea7f77e7.entry.js} +1 -1
- package/dist/ionic/{p-6e0539ea.system.entry.js → p-eb210b21.system.entry.js} +1 -1
- package/dist/ionic/{p-da5e2652.entry.js → p-eb80ca40.entry.js} +1 -1
- package/dist/ionic/{p-332ea4d3.system.entry.js → p-eba17ff5.system.entry.js} +1 -1
- package/dist/ionic/{p-ade3cf46.entry.js → p-ed60d571.entry.js} +1 -1
- package/dist/ionic/{p-1501b945.system.js → p-ef3a6b51.system.js} +1 -1
- package/dist/ionic/{p-3313c481.entry.js → p-efcc4b66.entry.js} +1 -1
- package/dist/ionic/p-f08d8865.js +4 -0
- package/dist/ionic/{p-20e0e75d.system.entry.js → p-f3478ed6.system.entry.js} +1 -1
- package/dist/ionic/{p-9fb45814.entry.js → p-f4bf2448.entry.js} +1 -1
- package/dist/ionic/{p-3dfc522b.entry.js → p-f4e37ba7.entry.js} +1 -1
- package/dist/ionic/p-f56d53bd.entry.js +4 -0
- package/dist/ionic/p-f8564a9b.system.entry.js +4 -0
- package/dist/ionic/{p-529b24fb.entry.js → p-f865bc9a.entry.js} +1 -1
- package/dist/ionic/p-fd1a0431.js +4 -0
- package/dist/ionic/{p-7fae5c36.js → p-fd41bd8a.js} +1 -1
- package/dist/types/components/datetime/datetime.d.ts +3 -0
- package/dist/types/components/input/input.d.ts +3 -0
- package/dist/types/components/modal/modal.d.ts +3 -0
- package/dist/types/components/range/range.d.ts +3 -0
- package/dist/types/components/refresher/refresher.d.ts +3 -0
- package/dist/types/components/refresher/refresher.utils.d.ts +16 -0
- package/dist/types/components/spinner/spinner-interface.d.ts +3 -1
- package/dist/types/components/split-pane/split-pane.d.ts +1 -1
- package/dist/types/components/textarea/textarea.d.ts +3 -0
- package/dist/types/components.d.ts +18 -10
- package/dist/types/utils/helpers.d.ts +1 -1
- package/hydrate/index.d.ts +2 -2
- package/hydrate/index.js +1842 -116
- package/package.json +7 -7
- package/dist/esm-es5/app-globals-8c62bec2.js +0 -4
- package/dist/esm-es5/index-b7d870cf.js +0 -5
- package/dist/esm-es5/md.transition-f992779f.js +0 -4
- package/dist/ionic/p-0235067a.js +0 -4
- package/dist/ionic/p-164aa69c.entry.js +0 -4
- package/dist/ionic/p-22827063.system.entry.js +0 -4
- package/dist/ionic/p-290d3fe9.js +0 -5
- package/dist/ionic/p-2cf21a15.system.entry.js +0 -4
- package/dist/ionic/p-38531958.system.entry.js +0 -4
- package/dist/ionic/p-469dd571.system.entry.js +0 -4
- package/dist/ionic/p-52cfafe9.system.js +0 -5
- package/dist/ionic/p-932f2259.system.entry.js +0 -4
- package/dist/ionic/p-950c05ad.entry.js +0 -4
- package/dist/ionic/p-96d4814f.system.entry.js +0 -4
- package/dist/ionic/p-97174c1e.js +0 -4
- package/dist/ionic/p-98f35d98.js +0 -4
- package/dist/ionic/p-9ba72fdb.system.entry.js +0 -4
- package/dist/ionic/p-a06501e3.entry.js +0 -4
- package/dist/ionic/p-b78e6a44.entry.js +0 -4
- package/dist/ionic/p-c5acfeb1.entry.js +0 -4
- package/dist/ionic/p-cd574dfa.js +0 -4
- package/dist/ionic/p-dc6d8647.entry.js +0 -4
- package/dist/ionic/p-f434bcf3.system.entry.js +0 -4
- /package/dist/esm-es5/{index-c132c5f1.js → index-f7dc70ba.js} +0 -0
- /package/dist/ionic/{p-ea96fa73.js → p-831269de.js} +0 -0
- /package/dist/ionic/{p-8050b9b9.system.js → p-dfb6de03.system.js} +0 -0
|
@@ -8,9 +8,22 @@ import { configs, test } from "../../../../../utils/test/playwright/index";
|
|
|
8
8
|
*/
|
|
9
9
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
10
10
|
test.describe(title('radio: a11y'), () => {
|
|
11
|
-
test.beforeEach(async ({ page,
|
|
12
|
-
skip.browser('webkit', 'Tabbing is flaky in Safari');
|
|
11
|
+
test.beforeEach(async ({ page, browserName }) => {
|
|
13
12
|
await page.goto(`/src/components/radio/test/legacy/a11y`, config);
|
|
13
|
+
if (browserName === 'webkit') {
|
|
14
|
+
const radio = page.locator('#first-group ion-radio').first();
|
|
15
|
+
/**
|
|
16
|
+
* Sometimes Safari does not focus the first radio.
|
|
17
|
+
* This is a workaround to ensure the first radio is focused.
|
|
18
|
+
*
|
|
19
|
+
* Wait for the first radio to be rendered before tabbing.
|
|
20
|
+
* This is necessary because the first radio may not be rendered
|
|
21
|
+
* when the page first loads.
|
|
22
|
+
*
|
|
23
|
+
* This would cause the first radio to be skipped when tabbing.
|
|
24
|
+
*/
|
|
25
|
+
await radio.waitFor();
|
|
26
|
+
}
|
|
14
27
|
});
|
|
15
28
|
test('tabbing should switch between radio groups', async ({ page, pageUtils }) => {
|
|
16
29
|
const firstGroupRadios = page.locator('#first-group ion-radio');
|
|
@@ -33,7 +33,15 @@ export class RadioGroup {
|
|
|
33
33
|
* using the `name` attribute.
|
|
34
34
|
*/
|
|
35
35
|
const selectedRadio = ev.target && ev.target.closest('ion-radio');
|
|
36
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Our current disabled prop definition causes Stencil to mark it
|
|
38
|
+
* as optional. While this is not desired, fixing this behavior
|
|
39
|
+
* in Stencil is a significant breaking change, so this effort is
|
|
40
|
+
* being de-risked in STENCIL-917. Until then, we compromise
|
|
41
|
+
* here by checking for falsy `disabled` values instead of strictly
|
|
42
|
+
* checking `disabled === false`.
|
|
43
|
+
*/
|
|
44
|
+
if (selectedRadio && !selectedRadio.disabled) {
|
|
37
45
|
const currentValue = this.value;
|
|
38
46
|
const newValue = selectedRadio.value;
|
|
39
47
|
if (newValue !== currentValue) {
|
|
@@ -718,7 +718,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
|
|
|
718
718
|
"optional": false,
|
|
719
719
|
"docs": {
|
|
720
720
|
"tags": [],
|
|
721
|
-
"text": "A callback used to format the pin text.\nBy default the pin text is set to `Math.round(value)
|
|
721
|
+
"text": "A callback used to format the pin text.\nBy default the pin text is set to `Math.round(value)`.\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback."
|
|
722
722
|
},
|
|
723
723
|
"defaultValue": "(value: number): number => Math.round(value)"
|
|
724
724
|
},
|
|
@@ -8,6 +8,9 @@ import { clamp, componentOnReady, getElementRoot, raf, transitionEndAsync } from
|
|
|
8
8
|
import { ImpactStyle, hapticImpact } from "../../utils/native/haptic";
|
|
9
9
|
import { getIonMode } from "../../global/ionic-global";
|
|
10
10
|
import { createPullingAnimation, createSnapBackAnimation, getRefresherAnimationType, handleScrollWhilePulling, handleScrollWhileRefreshing, setSpinnerOpacity, shouldUseNativeRefresher, translateElement, } from "./refresher.utils";
|
|
11
|
+
/**
|
|
12
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
13
|
+
*/
|
|
11
14
|
export class Refresher {
|
|
12
15
|
constructor() {
|
|
13
16
|
this.appliedStyles = false;
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { writeTask } from "@stencil/core";
|
|
5
5
|
import { createAnimation } from "../../utils/animation/animation";
|
|
6
6
|
import { clamp, componentOnReady, transitionEndAsync } from "../../utils/helpers";
|
|
7
|
-
import { isPlatform } from "../../utils/platform";
|
|
8
7
|
export const getRefresherAnimationType = (contentEl) => {
|
|
9
8
|
const previousSibling = contentEl.previousElementSibling;
|
|
10
9
|
const hasHeader = previousSibling !== null && previousSibling.tagName === 'ION-HEADER';
|
|
@@ -162,6 +161,24 @@ export const translateElement = (el, value, duration = 200) => {
|
|
|
162
161
|
};
|
|
163
162
|
// Utils
|
|
164
163
|
// -----------------------------
|
|
164
|
+
/**
|
|
165
|
+
* In order to use the native iOS refresher the device must support rubber band scrolling.
|
|
166
|
+
* As part of this, we need to exclude Desktop Safari because it has a slightly different rubber band effect that is not compatible with the native refresher in Ionic.
|
|
167
|
+
*
|
|
168
|
+
* We also need to be careful not to include devices that spoof their user agent.
|
|
169
|
+
* For example, when using iOS emulation in Chrome the user agent will be spoofed such that
|
|
170
|
+
* navigator.maxTouchPointer > 0. To work around this,
|
|
171
|
+
* we check to see if the apple-pay-logo is supported as a named image which is only
|
|
172
|
+
* true on Apple devices.
|
|
173
|
+
*
|
|
174
|
+
* We previously checked referencEl.style.webkitOverflowScrolling to explicitly check
|
|
175
|
+
* for rubber band support. However, this property was removed on iPadOS and it's possible
|
|
176
|
+
* that this will be removed on iOS in the future too.
|
|
177
|
+
*
|
|
178
|
+
*/
|
|
179
|
+
export const supportsRubberBandScrolling = () => {
|
|
180
|
+
return navigator.maxTouchPoints > 0 && CSS.supports('background: -webkit-named-image(apple-pay-logo-black)');
|
|
181
|
+
};
|
|
165
182
|
export const shouldUseNativeRefresher = async (referenceEl, mode) => {
|
|
166
183
|
const refresherContent = referenceEl.querySelector('ion-refresher-content');
|
|
167
184
|
if (!refresherContent) {
|
|
@@ -172,14 +189,5 @@ export const shouldUseNativeRefresher = async (referenceEl, mode) => {
|
|
|
172
189
|
const refreshingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');
|
|
173
190
|
return (pullingSpinner !== null &&
|
|
174
191
|
refreshingSpinner !== null &&
|
|
175
|
-
|
|
176
|
-
* We use webkitOverflowScrolling for feature detection with rubber band scrolling
|
|
177
|
-
* on iOS. When doing referenceEl.style, webkitOverflowScrolling is undefined on non-iOS platforms.
|
|
178
|
-
* However, it will be the empty string on iOS.
|
|
179
|
-
* Note that we do not use getPropertyValue (and thus need to cast as any) because calling
|
|
180
|
-
* getPropertyValue('-webkit-overflow-scrolling') will return the empty string if it is not
|
|
181
|
-
* set on the element, even if the platform does not support that.
|
|
182
|
-
*/
|
|
183
|
-
((mode === 'ios' && isPlatform('mobile') && referenceEl.style.webkitOverflowScrolling !== undefined) ||
|
|
184
|
-
mode === 'md'));
|
|
192
|
+
((mode === 'ios' && supportsRubberBandScrolling()) || mode === 'md'));
|
|
185
193
|
};
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
5
|
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
6
|
-
import { isPlatform } from "../../utils/platform";
|
|
7
6
|
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
8
7
|
import { arrowDown, caretBackSharp } from "ionicons/icons";
|
|
9
8
|
import { config } from "../../global/config";
|
|
10
9
|
import { getIonMode } from "../../global/ionic-global";
|
|
10
|
+
import { supportsRubberBandScrolling } from "../refresher/refresher.utils";
|
|
11
11
|
import { SPINNERS } from "../spinner/spinner-configs";
|
|
12
12
|
export class RefresherContent {
|
|
13
13
|
constructor() {
|
|
@@ -19,9 +19,15 @@ export class RefresherContent {
|
|
|
19
19
|
}
|
|
20
20
|
componentWillLoad() {
|
|
21
21
|
if (this.pullingIcon === undefined) {
|
|
22
|
+
/**
|
|
23
|
+
* The native iOS refresher uses a spinner instead of
|
|
24
|
+
* an icon, so we need to see if this device supports
|
|
25
|
+
* the native iOS refresher.
|
|
26
|
+
*/
|
|
27
|
+
const hasRubberBandScrolling = supportsRubberBandScrolling();
|
|
22
28
|
const mode = getIonMode(this);
|
|
23
|
-
const overflowRefresher =
|
|
24
|
-
this.pullingIcon = config.get('refreshingIcon', mode === 'ios' &&
|
|
29
|
+
const overflowRefresher = hasRubberBandScrolling ? 'lines' : arrowDown;
|
|
30
|
+
this.pullingIcon = config.get('refreshingIcon', mode === 'ios' && hasRubberBandScrolling ? config.get('spinner', overflowRefresher) : 'circular');
|
|
25
31
|
}
|
|
26
32
|
if (this.refreshingSpinner === undefined) {
|
|
27
33
|
const mode = getIonMode(this);
|
|
@@ -312,11 +312,9 @@ export class ReorderGroup {
|
|
|
312
312
|
"complexType": {
|
|
313
313
|
"signature": "(listOrReorder?: boolean | any[]) => Promise<any>",
|
|
314
314
|
"parameters": [{
|
|
315
|
-
"
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
}],
|
|
319
|
-
"text": "A list of items to be sorted and returned in the new order or a\nboolean of whether or not the reorder should reposition the item."
|
|
315
|
+
"name": "listOrReorder",
|
|
316
|
+
"type": "boolean | any[] | undefined",
|
|
317
|
+
"docs": "A list of items to be sorted and returned in the new order or a\nboolean of whether or not the reorder should reposition the item."
|
|
320
318
|
}],
|
|
321
319
|
"references": {
|
|
322
320
|
"Promise": {
|
|
@@ -104,17 +104,13 @@ export class RippleEffect {
|
|
|
104
104
|
"complexType": {
|
|
105
105
|
"signature": "(x: number, y: number) => Promise<() => void>",
|
|
106
106
|
"parameters": [{
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}],
|
|
111
|
-
"text": "The horizontal coordinate of where the ripple should start."
|
|
107
|
+
"name": "x",
|
|
108
|
+
"type": "number",
|
|
109
|
+
"docs": "The horizontal coordinate of where the ripple should start."
|
|
112
110
|
}, {
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}],
|
|
117
|
-
"text": "The vertical coordinate of where the ripple should start."
|
|
111
|
+
"name": "y",
|
|
112
|
+
"type": "number",
|
|
113
|
+
"docs": "The vertical coordinate of where the ripple should start."
|
|
118
114
|
}],
|
|
119
115
|
"references": {
|
|
120
116
|
"Promise": {
|
|
@@ -378,20 +378,17 @@ export class Router {
|
|
|
378
378
|
"complexType": {
|
|
379
379
|
"signature": "(path: string, direction?: RouterDirection, animation?: AnimationBuilder) => Promise<boolean>",
|
|
380
380
|
"parameters": [{
|
|
381
|
-
"
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}],
|
|
385
|
-
"text": "The path to navigate to."
|
|
381
|
+
"name": "path",
|
|
382
|
+
"type": "string",
|
|
383
|
+
"docs": "The path to navigate to."
|
|
386
384
|
}, {
|
|
387
|
-
"
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
}],
|
|
391
|
-
"text": "The direction of the animation. Defaults to `\"forward\"`."
|
|
385
|
+
"name": "direction",
|
|
386
|
+
"type": "\"root\" | \"back\" | \"forward\"",
|
|
387
|
+
"docs": "The direction of the animation. Defaults to `\"forward\"`."
|
|
392
388
|
}, {
|
|
393
|
-
"
|
|
394
|
-
"
|
|
389
|
+
"name": "animation",
|
|
390
|
+
"type": "AnimationBuilder | undefined",
|
|
391
|
+
"docs": ""
|
|
395
392
|
}],
|
|
396
393
|
"references": {
|
|
397
394
|
"Promise": {
|
|
@@ -463,8 +460,9 @@ export class Router {
|
|
|
463
460
|
"complexType": {
|
|
464
461
|
"signature": "(direction: RouterDirection) => Promise<boolean>",
|
|
465
462
|
"parameters": [{
|
|
466
|
-
"
|
|
467
|
-
"
|
|
463
|
+
"name": "direction",
|
|
464
|
+
"type": "\"root\" | \"back\" | \"forward\"",
|
|
465
|
+
"docs": ""
|
|
468
466
|
}],
|
|
469
467
|
"references": {
|
|
470
468
|
"Promise": {
|
|
@@ -369,14 +369,17 @@ export class RouterOutlet {
|
|
|
369
369
|
"complexType": {
|
|
370
370
|
"signature": "(enteringEl: HTMLElement, leavingEl: HTMLElement | undefined, opts?: RouterOutletOptions) => Promise<boolean>",
|
|
371
371
|
"parameters": [{
|
|
372
|
-
"
|
|
373
|
-
"
|
|
372
|
+
"name": "enteringEl",
|
|
373
|
+
"type": "HTMLElement",
|
|
374
|
+
"docs": ""
|
|
374
375
|
}, {
|
|
375
|
-
"
|
|
376
|
-
"
|
|
376
|
+
"name": "leavingEl",
|
|
377
|
+
"type": "HTMLElement | undefined",
|
|
378
|
+
"docs": ""
|
|
377
379
|
}, {
|
|
378
|
-
"
|
|
379
|
-
"
|
|
380
|
+
"name": "opts",
|
|
381
|
+
"type": "RouterOutletOptions | undefined",
|
|
382
|
+
"docs": ""
|
|
380
383
|
}],
|
|
381
384
|
"references": {
|
|
382
385
|
"Promise": {
|
|
@@ -407,17 +410,21 @@ export class RouterOutlet {
|
|
|
407
410
|
"complexType": {
|
|
408
411
|
"signature": "(id: string, params: ComponentProps | undefined, direction: RouterDirection, animation?: AnimationBuilder) => Promise<RouteWrite>",
|
|
409
412
|
"parameters": [{
|
|
410
|
-
"
|
|
411
|
-
"
|
|
413
|
+
"name": "id",
|
|
414
|
+
"type": "string",
|
|
415
|
+
"docs": ""
|
|
412
416
|
}, {
|
|
413
|
-
"
|
|
414
|
-
"
|
|
417
|
+
"name": "params",
|
|
418
|
+
"type": "ComponentProps | undefined",
|
|
419
|
+
"docs": ""
|
|
415
420
|
}, {
|
|
416
|
-
"
|
|
417
|
-
"
|
|
421
|
+
"name": "direction",
|
|
422
|
+
"type": "\"root\" | \"back\" | \"forward\"",
|
|
423
|
+
"docs": ""
|
|
418
424
|
}, {
|
|
419
|
-
"
|
|
420
|
-
"
|
|
425
|
+
"name": "animation",
|
|
426
|
+
"type": "AnimationBuilder | undefined",
|
|
427
|
+
"docs": ""
|
|
421
428
|
}],
|
|
422
429
|
"references": {
|
|
423
430
|
"Promise": {
|
|
@@ -628,10 +628,12 @@ button {
|
|
|
628
628
|
|
|
629
629
|
::slotted([slot=start]) {
|
|
630
630
|
margin-inline-end: 16px;
|
|
631
|
+
margin-inline-start: 0;
|
|
631
632
|
}
|
|
632
633
|
|
|
633
634
|
::slotted([slot=end]) {
|
|
634
635
|
margin-inline-start: 16px;
|
|
636
|
+
margin-inline-end: 0;
|
|
635
637
|
}
|
|
636
638
|
|
|
637
639
|
/**
|
|
@@ -764,4 +766,22 @@ button {
|
|
|
764
766
|
|
|
765
767
|
:host(.select-disabled) {
|
|
766
768
|
opacity: 0.3;
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* Slotted buttons have a lot of default padding that can
|
|
773
|
+
* cause them to look misaligned from other pieces such
|
|
774
|
+
* as the control's label, especially when using a clear
|
|
775
|
+
* fill. We also make them circular to ensure that non-
|
|
776
|
+
* clear buttons and the focus/hover state on clear ones
|
|
777
|
+
* don't look too crowded.
|
|
778
|
+
*/
|
|
779
|
+
::slotted(ion-button[slot=start].button-has-icon-only),
|
|
780
|
+
::slotted(ion-button[slot=end].button-has-icon-only) {
|
|
781
|
+
--border-radius: 50%;
|
|
782
|
+
--padding-start: 0;
|
|
783
|
+
--padding-end: 0;
|
|
784
|
+
--padding-top: 0;
|
|
785
|
+
--padding-bottom: 0;
|
|
786
|
+
aspect-ratio: 1;
|
|
767
787
|
}
|
|
@@ -1205,11 +1205,9 @@ Developers can use the "legacy" property to continue using the legacy form marku
|
|
|
1205
1205
|
"complexType": {
|
|
1206
1206
|
"signature": "(event?: UIEvent) => Promise<any>",
|
|
1207
1207
|
"parameters": [{
|
|
1208
|
-
"
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
}],
|
|
1212
|
-
"text": "The user interface event that called the open."
|
|
1208
|
+
"name": "event",
|
|
1209
|
+
"type": "UIEvent | undefined",
|
|
1210
|
+
"docs": "The user interface event that called the open."
|
|
1213
1211
|
}],
|
|
1214
1212
|
"references": {
|
|
1215
1213
|
"Promise": {
|
|
@@ -628,10 +628,12 @@ button {
|
|
|
628
628
|
|
|
629
629
|
::slotted([slot=start]) {
|
|
630
630
|
margin-inline-end: 16px;
|
|
631
|
+
margin-inline-start: 0;
|
|
631
632
|
}
|
|
632
633
|
|
|
633
634
|
::slotted([slot=end]) {
|
|
634
635
|
margin-inline-start: 16px;
|
|
636
|
+
margin-inline-end: 0;
|
|
635
637
|
}
|
|
636
638
|
|
|
637
639
|
/**
|
|
@@ -1350,4 +1352,23 @@ button {
|
|
|
1350
1352
|
|
|
1351
1353
|
:host(.select-disabled) {
|
|
1352
1354
|
opacity: 0.38;
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
/**
|
|
1358
|
+
* Slotted buttons have a lot of default padding that can
|
|
1359
|
+
* cause them to look misaligned from other pieces such
|
|
1360
|
+
* as the control's label, especially when using a clear
|
|
1361
|
+
* fill. We also make them circular to ensure that non-
|
|
1362
|
+
* clear buttons and the focus/hover state on clear ones
|
|
1363
|
+
* don't look too crowded.
|
|
1364
|
+
*/
|
|
1365
|
+
::slotted(ion-button[slot=start].button-has-icon-only),
|
|
1366
|
+
::slotted(ion-button[slot=end].button-has-icon-only) {
|
|
1367
|
+
--border-radius: 50%;
|
|
1368
|
+
--padding-start: 8px;
|
|
1369
|
+
--padding-end: 8px;
|
|
1370
|
+
--padding-top: 8px;
|
|
1371
|
+
--padding-bottom: 8px;
|
|
1372
|
+
aspect-ratio: 1;
|
|
1373
|
+
min-height: 40px;
|
|
1353
1374
|
}
|
|
@@ -9,7 +9,9 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
9
9
|
await page.setContent(`
|
|
10
10
|
<ion-select label-placement="start" fill="solid" placeholder="Select weight" label="Weight">
|
|
11
11
|
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
12
|
-
<ion-
|
|
12
|
+
<ion-button slot="end" aria-label="Show/hide password">
|
|
13
|
+
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
14
|
+
</ion-button>
|
|
13
15
|
</ion-select>
|
|
14
16
|
`, config);
|
|
15
17
|
const select = page.locator('ion-select');
|
|
@@ -19,7 +21,9 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
19
21
|
await page.setContent(`
|
|
20
22
|
<ion-select label-placement="floating" fill="solid" placeholder="Select weight" label="Weight">
|
|
21
23
|
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
22
|
-
<ion-
|
|
24
|
+
<ion-button slot="end" aria-label="Show/hide password">
|
|
25
|
+
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
26
|
+
</ion-button>
|
|
23
27
|
</ion-select>
|
|
24
28
|
`, config);
|
|
25
29
|
const select = page.locator('ion-select');
|
|
@@ -28,7 +28,7 @@ export class Spinner {
|
|
|
28
28
|
const spinnerName = self.getName();
|
|
29
29
|
const spinner = (_a = SPINNERS[spinnerName]) !== null && _a !== void 0 ? _a : SPINNERS['lines'];
|
|
30
30
|
const duration = typeof self.duration === 'number' && self.duration > 10 ? self.duration : spinner.dur;
|
|
31
|
-
const svgs = [];
|
|
31
|
+
const svgs = [];
|
|
32
32
|
if (spinner.circles !== undefined) {
|
|
33
33
|
for (let i = 0; i < spinner.circles; i++) {
|
|
34
34
|
svgs.push(buildCircle(spinner, duration, i, spinner.circles));
|
|
@@ -152,6 +152,15 @@
|
|
|
152
152
|
|
|
153
153
|
:host(.split-pane-visible) ::slotted(.split-pane-main) {
|
|
154
154
|
flex: 1;
|
|
155
|
+
/**
|
|
156
|
+
* Content can overflow outside of a router outlet
|
|
157
|
+
* or a nav container to allow for the translucent
|
|
158
|
+
* tab bar effect to work. However, this can cause
|
|
159
|
+
* iOS page transitions to flow outside of the container
|
|
160
|
+
* and overlap the menu on larger viewports. As a result,
|
|
161
|
+
* we disable the overflow when that is the case.
|
|
162
|
+
*/
|
|
163
|
+
overflow: hidden;
|
|
155
164
|
}
|
|
156
165
|
|
|
157
166
|
:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),
|
|
@@ -152,6 +152,15 @@
|
|
|
152
152
|
|
|
153
153
|
:host(.split-pane-visible) ::slotted(.split-pane-main) {
|
|
154
154
|
flex: 1;
|
|
155
|
+
/**
|
|
156
|
+
* Content can overflow outside of a router outlet
|
|
157
|
+
* or a nav container to allow for the translucent
|
|
158
|
+
* tab bar effect to work. However, this can cause
|
|
159
|
+
* iOS page transitions to flow outside of the container
|
|
160
|
+
* and overlap the menu on larger viewports. As a result,
|
|
161
|
+
* we disable the overflow when that is the case.
|
|
162
|
+
*/
|
|
163
|
+
overflow: hidden;
|
|
155
164
|
}
|
|
156
165
|
|
|
157
166
|
:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),
|
|
@@ -236,11 +236,9 @@ export class Tabs {
|
|
|
236
236
|
"complexType": {
|
|
237
237
|
"signature": "(tab: string | HTMLIonTabElement) => Promise<boolean>",
|
|
238
238
|
"parameters": [{
|
|
239
|
-
"
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
}],
|
|
243
|
-
"text": "The tab instance to select. If passed a string, it should be the value of the tab's `tab` property."
|
|
239
|
+
"name": "tab",
|
|
240
|
+
"type": "string | HTMLIonTabElement",
|
|
241
|
+
"docs": "The tab instance to select. If passed a string, it should be the value of the tab's `tab` property."
|
|
244
242
|
}],
|
|
245
243
|
"references": {
|
|
246
244
|
"Promise": {
|
|
@@ -266,11 +264,9 @@ export class Tabs {
|
|
|
266
264
|
"complexType": {
|
|
267
265
|
"signature": "(tab: string | HTMLIonTabElement) => Promise<HTMLIonTabElement | undefined>",
|
|
268
266
|
"parameters": [{
|
|
269
|
-
"
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}],
|
|
273
|
-
"text": "The tab instance to select. If passed a string, it should be the value of the tab's `tab` property."
|
|
267
|
+
"name": "tab",
|
|
268
|
+
"type": "string | HTMLIonTabElement",
|
|
269
|
+
"docs": "The tab instance to select. If passed a string, it should be the value of the tab's `tab` property."
|
|
274
270
|
}],
|
|
275
271
|
"references": {
|
|
276
272
|
"Promise": {
|
|
@@ -313,8 +309,9 @@ export class Tabs {
|
|
|
313
309
|
"complexType": {
|
|
314
310
|
"signature": "(id: string) => Promise<RouteWrite>",
|
|
315
311
|
"parameters": [{
|
|
316
|
-
"
|
|
317
|
-
"
|
|
312
|
+
"name": "id",
|
|
313
|
+
"type": "string",
|
|
314
|
+
"docs": ""
|
|
318
315
|
}],
|
|
319
316
|
"references": {
|
|
320
317
|
"Promise": {
|
|
@@ -9,7 +9,9 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
9
9
|
await page.setContent(`
|
|
10
10
|
<ion-textarea label-placement="start" fill="solid" value="100" label="Weight">
|
|
11
11
|
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
12
|
-
<ion-
|
|
12
|
+
<ion-button slot="end" aria-label="Show/hide password">
|
|
13
|
+
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
14
|
+
</ion-button>
|
|
13
15
|
</ion-textarea>
|
|
14
16
|
`, config);
|
|
15
17
|
const textarea = page.locator('ion-textarea');
|
|
@@ -19,7 +21,9 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
19
21
|
await page.setContent(`
|
|
20
22
|
<ion-textarea label-placement="floating" fill="solid" value="100" label="Weight">
|
|
21
23
|
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
22
|
-
<ion-
|
|
24
|
+
<ion-button slot="end" aria-label="Show/hide password">
|
|
25
|
+
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
26
|
+
</ion-button>
|
|
23
27
|
</ion-textarea>
|
|
24
28
|
`, config);
|
|
25
29
|
const textarea = page.locator('ion-textarea');
|
|
@@ -766,10 +766,12 @@
|
|
|
766
766
|
|
|
767
767
|
::slotted([slot=start]) {
|
|
768
768
|
margin-inline-end: 16px;
|
|
769
|
+
margin-inline-start: 0;
|
|
769
770
|
}
|
|
770
771
|
|
|
771
772
|
::slotted([slot=end]) {
|
|
772
773
|
margin-inline-start: 16px;
|
|
774
|
+
margin-inline-end: 0;
|
|
773
775
|
}
|
|
774
776
|
|
|
775
777
|
/**
|
|
@@ -964,4 +966,22 @@
|
|
|
964
966
|
:host(.legacy-textarea) .native-textarea[disabled],
|
|
965
967
|
:host(.textarea-disabled) {
|
|
966
968
|
opacity: 0.3;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
/**
|
|
972
|
+
* Slotted buttons have a lot of default padding that can
|
|
973
|
+
* cause them to look misaligned from other pieces such
|
|
974
|
+
* as the control's label, especially when using a clear
|
|
975
|
+
* fill. We also make them circular to ensure that non-
|
|
976
|
+
* clear buttons and the focus/hover state on clear ones
|
|
977
|
+
* don't look too crowded.
|
|
978
|
+
*/
|
|
979
|
+
::slotted(ion-button[slot=start].button-has-icon-only),
|
|
980
|
+
::slotted(ion-button[slot=end].button-has-icon-only) {
|
|
981
|
+
--border-radius: 50%;
|
|
982
|
+
--padding-start: 0;
|
|
983
|
+
--padding-end: 0;
|
|
984
|
+
--padding-top: 0;
|
|
985
|
+
--padding-bottom: 0;
|
|
986
|
+
aspect-ratio: 1;
|
|
967
987
|
}
|
|
@@ -848,7 +848,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
|
|
|
848
848
|
"optional": true,
|
|
849
849
|
"docs": {
|
|
850
850
|
"tags": [],
|
|
851
|
-
"text": "A callback used to format the counter text.\nBy default the counter text is set to \"itemLength / maxLength\"."
|
|
851
|
+
"text": "A callback used to format the counter text.\nBy default the counter text is set to \"itemLength / maxLength\".\n\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\nif you need to access `this` from within the callback."
|
|
852
852
|
}
|
|
853
853
|
},
|
|
854
854
|
"errorText": {
|
|
@@ -766,10 +766,12 @@
|
|
|
766
766
|
|
|
767
767
|
::slotted([slot=start]) {
|
|
768
768
|
margin-inline-end: 16px;
|
|
769
|
+
margin-inline-start: 0;
|
|
769
770
|
}
|
|
770
771
|
|
|
771
772
|
::slotted([slot=end]) {
|
|
772
773
|
margin-inline-start: 16px;
|
|
774
|
+
margin-inline-end: 0;
|
|
773
775
|
}
|
|
774
776
|
|
|
775
777
|
/**
|
|
@@ -1529,4 +1531,23 @@
|
|
|
1529
1531
|
|
|
1530
1532
|
:host(.textarea-shape-round) {
|
|
1531
1533
|
--border-radius: 16px;
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
/**
|
|
1537
|
+
* Slotted buttons have a lot of default padding that can
|
|
1538
|
+
* cause them to look misaligned from other pieces such
|
|
1539
|
+
* as the control's label, especially when using a clear
|
|
1540
|
+
* fill. We also make them circular to ensure that non-
|
|
1541
|
+
* clear buttons and the focus/hover state on clear ones
|
|
1542
|
+
* don't look too crowded.
|
|
1543
|
+
*/
|
|
1544
|
+
::slotted(ion-button[slot=start].button-has-icon-only),
|
|
1545
|
+
::slotted(ion-button[slot=end].button-has-icon-only) {
|
|
1546
|
+
--border-radius: 50%;
|
|
1547
|
+
--padding-start: 8px;
|
|
1548
|
+
--padding-end: 8px;
|
|
1549
|
+
--padding-top: 8px;
|
|
1550
|
+
--padding-bottom: 8px;
|
|
1551
|
+
aspect-ratio: 1;
|
|
1552
|
+
min-height: 40px;
|
|
1532
1553
|
}
|
|
@@ -1026,17 +1026,13 @@ export class Toast {
|
|
|
1026
1026
|
"complexType": {
|
|
1027
1027
|
"signature": "(data?: any, role?: string) => Promise<boolean>",
|
|
1028
1028
|
"parameters": [{
|
|
1029
|
-
"
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
}],
|
|
1033
|
-
"text": "Any data to emit in the dismiss events."
|
|
1029
|
+
"name": "data",
|
|
1030
|
+
"type": "any",
|
|
1031
|
+
"docs": "Any data to emit in the dismiss events."
|
|
1034
1032
|
}, {
|
|
1035
|
-
"
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
}],
|
|
1039
|
-
"text": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
|
|
1033
|
+
"name": "role",
|
|
1034
|
+
"type": "string | undefined",
|
|
1035
|
+
"docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
|
|
1040
1036
|
}],
|
|
1041
1037
|
"references": {
|
|
1042
1038
|
"Promise": {
|