@ionic/core 8.0.0-beta.0 → 8.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/action-sheet.js +3 -3
- package/components/alert.js +2 -2
- package/components/backdrop.js +1 -1
- package/components/button.js +2 -2
- package/components/buttons.js +3 -3
- package/components/checkbox.js +3 -3
- package/components/data.js +23 -38
- package/components/hardware-back-button.js +3 -3
- package/components/helpers.js +1 -8
- package/components/input-shims.js +8 -1
- package/components/input.utils.js +12 -0
- package/components/ion-app.js +4 -4
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +2 -2
- package/components/ion-badge.js +2 -2
- package/components/ion-breadcrumb.js +2 -2
- package/components/ion-breadcrumbs.js +2 -2
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +2 -2
- package/components/ion-card-subtitle.js +2 -2
- package/components/ion-card-title.js +2 -2
- package/components/ion-card.js +1 -1
- package/components/ion-chip.js +2 -2
- package/components/ion-col.js +2 -2
- package/components/ion-content.js +3 -3
- package/components/ion-datetime-button.js +11 -10
- package/components/ion-datetime.js +69 -7
- package/components/ion-fab-button.js +2 -2
- package/components/ion-fab-list.js +2 -2
- package/components/ion-fab.js +2 -2
- package/components/ion-footer.js +2 -2
- package/components/ion-grid.js +2 -2
- package/components/ion-header.js +2 -2
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +2 -2
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input.js +6 -6
- package/components/ion-item-divider.js +3 -3
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +2 -2
- package/components/ion-menu-toggle.js +2 -2
- package/components/ion-menu.js +7 -28
- package/components/ion-modal.js +37 -5
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +43 -1
- package/components/ion-picker-legacy.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-range.js +129 -24
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-router-link.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +34 -5
- package/components/ion-segment-button.js +3 -3
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +23 -29
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-textarea.js +5 -5
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +3 -3
- package/components/ion-toolbar.js +2 -2
- package/components/item.js +30 -97
- package/components/label.js +5 -5
- package/components/list-header.js +2 -2
- package/components/list.js +1 -1
- package/components/overlays.js +140 -55
- package/components/picker-column-option.js +2 -2
- package/components/picker-column.js +20 -5
- package/components/picker-column2.js +2 -2
- package/components/picker.js +2 -2
- package/components/popover.js +4 -4
- package/components/radio-group.js +1 -1
- package/components/radio.js +3 -3
- package/components/ripple-effect.js +1 -1
- package/components/select-popover.js +13 -19
- package/components/spinner.js +1 -1
- package/dist/cjs/{animation-4ad55058.js → animation-3e7bb91e.js} +1 -1
- package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-e132c781.js} +1 -1
- package/dist/cjs/{button-active-8f6a8e77.js → button-active-60ecf64d.js} +1 -1
- package/dist/cjs/{data-e2bf21de.js → data-21dc0f81.js} +22 -39
- package/dist/cjs/{framework-delegate-53817ef1.js → framework-delegate-0499d444.js} +1 -1
- package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-1c67a5a2.js} +5 -5
- package/dist/cjs/{helpers-b71ca811.js → helpers-668b3d95.js} +1 -8
- package/dist/cjs/{index-7574e3d2.js → index-275cc12e.js} +1 -1
- package/dist/cjs/{index-0ffe376d.js → index-2d21d526.js} +443 -14
- package/dist/cjs/{index-16fc2c94.js → index-ba7ba0af.js} +4 -4
- package/dist/cjs/{index-347883f6.js → index-c49cb371.js} +1 -1
- package/dist/cjs/{index-88b3bd6f.js → index-e4b6c97e.js} +4 -4
- package/dist/cjs/index.cjs.js +11 -11
- package/dist/cjs/{input-shims-37843ce5.js → input-shims-b419f083.js} +10 -3
- package/dist/cjs/{input.utils-5175aea1.js → input.utils-32c0a14a.js} +13 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +11 -11
- package/dist/cjs/ion-alert.cjs.entry.js +10 -10
- package/dist/cjs/ion-app_8.cjs.entry.js +29 -29
- package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-back-button.cjs.entry.js +5 -5
- package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-button_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-card_5.cjs.entry.js +11 -11
- package/dist/cjs/ion-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/ion-chip.cjs.entry.js +4 -4
- package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
- package/dist/cjs/ion-datetime_3.cjs.entry.js +77 -18
- package/dist/cjs/ion-fab_3.cjs.entry.js +9 -9
- package/dist/cjs/ion-img.cjs.entry.js +4 -4
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-input.cjs.entry.js +10 -10
- package/dist/cjs/ion-item-option_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-item_8.cjs.entry.js +42 -97
- package/dist/cjs/ion-loading.cjs.entry.js +9 -9
- package/dist/cjs/ion-menu_3.cjs.entry.js +17 -38
- package/dist/cjs/ion-modal.cjs.entry.js +46 -14
- package/dist/cjs/ion-nav_2.cjs.entry.js +8 -8
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker-column.cjs.entry.js +23 -8
- package/dist/cjs/ion-picker.cjs.entry.js +4 -4
- package/dist/cjs/ion-popover.cjs.entry.js +11 -11
- package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
- package/dist/cjs/ion-radio_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-range.cjs.entry.js +133 -28
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
- package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
- package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
- package/dist/cjs/ion-segment_2.cjs.entry.js +8 -8
- package/dist/cjs/ion-select_3.cjs.entry.js +13 -13
- 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 +7 -7
- package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-text.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +9 -9
- package/dist/cjs/ion-toast.cjs.entry.js +9 -9
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -6
- package/dist/cjs/{ionic-global-59a10130.js → ionic-global-5762eca9.js} +1 -1
- package/dist/cjs/ionic.cjs.js +28 -5
- package/dist/cjs/{ios.transition-b102ee38.js → ios.transition-3e119901.js} +4 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-a5454240.js → md.transition-c1392f92.js} +4 -4
- package/dist/cjs/{notch-controller-8e0ae870.js → notch-controller-08a24f39.js} +1 -1
- package/dist/cjs/{overlays-6b7d156b.js → overlays-44b8d0e0.js} +142 -56
- package/dist/cjs/{status-tap-b60dcbd8.js → status-tap-32430b3e.js} +3 -3
- package/dist/cjs/{swipe-back-72c5c8b7.js → swipe-back-dc4dbb65.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/action-sheet/action-sheet.js +3 -3
- package/dist/collection/components/alert/alert.js +2 -2
- package/dist/collection/components/app/app.js +4 -4
- package/dist/collection/components/avatar/avatar.js +1 -1
- package/dist/collection/components/back-button/back-button.js +2 -2
- package/dist/collection/components/backdrop/backdrop.js +1 -1
- package/dist/collection/components/badge/badge.js +2 -2
- package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
- package/dist/collection/components/button/button.js +2 -2
- package/dist/collection/components/buttons/buttons.js +2 -2
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/card-content/card-content.js +1 -1
- package/dist/collection/components/card-header/card-header.js +2 -2
- package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
- package/dist/collection/components/card-title/card-title.js +2 -2
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
- package/dist/collection/components/chip/chip.js +2 -2
- package/dist/collection/components/col/col.js +2 -2
- package/dist/collection/components/content/content.js +3 -3
- package/dist/collection/components/datetime/datetime.js +50 -7
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +80 -1
- package/dist/collection/components/datetime/test/format.spec.js +65 -15
- package/dist/collection/components/datetime/utils/format.js +24 -37
- package/dist/collection/components/datetime/utils/validate.js +45 -0
- package/dist/collection/components/datetime-button/datetime-button.js +11 -10
- package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
- package/dist/collection/components/fab/fab.js +2 -2
- package/dist/collection/components/fab-button/fab-button.js +2 -2
- package/dist/collection/components/fab-list/fab-list.js +2 -2
- package/dist/collection/components/footer/footer.js +2 -2
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/img/img.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
- package/dist/collection/components/input/input.ios.css +2 -0
- package/dist/collection/components/input/input.js +3 -3
- package/dist/collection/components/input/input.md.css +4 -2
- package/dist/collection/components/input/test/highlight/input.e2e.js +144 -0
- package/dist/collection/components/input/test/item/input.e2e.js +21 -0
- package/dist/collection/components/item/item.ios.css +6 -198
- package/dist/collection/components/item/item.js +22 -170
- package/dist/collection/components/item/item.md.css +12 -375
- package/dist/collection/components/item/test/basic/item.e2e.js +0 -5
- package/dist/collection/components/item/test/item.spec.js +1 -1
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-divider/item-divider.md.css +4 -14
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.ios.css +0 -5
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/label/label.md.css +0 -75
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +16 -30
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/modal.js +37 -5
- package/dist/collection/components/modal/test/modal-attributes.spec.js +32 -0
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker/picker.js +2 -2
- package/dist/collection/components/picker-column/picker-column.js +20 -5
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/popover.js +5 -4
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/range/range.js +129 -24
- package/dist/collection/components/range/test/range-events.e2e.js +27 -0
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +84 -5
- package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +3 -3
- package/dist/collection/components/select/select.ios.css +5 -0
- package/dist/collection/components/select/select.js +2 -2
- package/dist/collection/components/select/select.md.css +4 -27
- package/dist/collection/components/select/test/highlight/select.e2e.js +88 -4
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/test/highlight/textarea.e2e.js +144 -0
- package/dist/collection/components/textarea/test/item/textarea.e2e.js +21 -0
- package/dist/collection/components/textarea/textarea.ios.css +2 -20
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/textarea/textarea.md.css +4 -15
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/utils/focus-trap.js +78 -0
- package/dist/collection/utils/forms/index.js +0 -1
- package/dist/collection/utils/hardware-back-button.js +2 -2
- package/dist/collection/utils/helpers.js +1 -8
- package/dist/collection/utils/input-shims/input-shims.js +8 -1
- package/dist/collection/utils/overlays.js +64 -53
- package/dist/collection/utils/slot-mutation-controller.js +12 -0
- package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
- package/dist/docs.json +158 -189
- package/dist/esm/{animation-a4acf150.js → animation-9a23ed8d.js} +1 -1
- package/dist/esm/{app-globals-5cf6195b.js → app-globals-80842d68.js} +1 -1
- package/dist/esm/{button-active-4407b98c.js → button-active-c6e18fac.js} +1 -1
- package/dist/esm/{data-691286f1.js → data-ae11fd43.js} +23 -38
- package/dist/esm/{framework-delegate-1eb3236c.js → framework-delegate-3fd96df8.js} +1 -1
- package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-fb295e3a.js} +5 -5
- package/dist/esm/{helpers-ae74b3c9.js → helpers-f51cf76f.js} +1 -8
- package/dist/esm/{index-1f563746.js → index-1262064c.js} +1 -1
- package/dist/esm/{index-4c30cddd.js → index-5d6a0317.js} +443 -15
- package/dist/esm/{index-1eff8599.js → index-6da05eef.js} +4 -4
- package/dist/esm/{index-66871a1d.js → index-86688780.js} +1 -1
- package/dist/esm/{index-8758824c.js → index-9d7e5d3e.js} +4 -4
- package/dist/esm/index.js +11 -11
- package/dist/esm/{input-shims-91e6634c.js → input-shims-2a4ad5a1.js} +10 -3
- package/dist/esm/{input.utils-482fc893.js → input.utils-d2dee48e.js} +13 -1
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +11 -11
- package/dist/esm/ion-alert.entry.js +10 -10
- package/dist/esm/ion-app_8.entry.js +29 -29
- package/dist/esm/ion-avatar_3.entry.js +6 -6
- package/dist/esm/ion-back-button.entry.js +5 -5
- package/dist/esm/ion-backdrop.entry.js +3 -3
- package/dist/esm/ion-breadcrumb_2.entry.js +7 -7
- package/dist/esm/ion-button_2.entry.js +5 -5
- package/dist/esm/ion-card_5.entry.js +11 -11
- package/dist/esm/ion-checkbox.entry.js +6 -6
- package/dist/esm/ion-chip.entry.js +4 -4
- package/dist/esm/ion-col_3.entry.js +7 -7
- package/dist/esm/ion-datetime-button.entry.js +14 -13
- package/dist/esm/ion-datetime_3.entry.js +77 -18
- package/dist/esm/ion-fab_3.entry.js +9 -9
- package/dist/esm/ion-img.entry.js +4 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +7 -7
- package/dist/esm/ion-input.entry.js +10 -10
- package/dist/esm/ion-item-option_3.entry.js +8 -8
- package/dist/esm/ion-item_8.entry.js +42 -97
- package/dist/esm/ion-loading.entry.js +9 -9
- package/dist/esm/ion-menu_3.entry.js +17 -38
- package/dist/esm/ion-modal.entry.js +46 -14
- package/dist/esm/ion-nav_2.entry.js +8 -8
- package/dist/esm/ion-picker-column-option.entry.js +5 -5
- package/dist/esm/ion-picker-column.entry.js +23 -8
- package/dist/esm/ion-picker.entry.js +4 -4
- package/dist/esm/ion-popover.entry.js +11 -11
- package/dist/esm/ion-progress-bar.entry.js +4 -4
- package/dist/esm/ion-radio_2.entry.js +7 -7
- package/dist/esm/ion-range.entry.js +133 -28
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +6 -6
- package/dist/esm/ion-ripple-effect.entry.js +3 -3
- package/dist/esm/ion-route_4.entry.js +5 -5
- package/dist/esm/ion-searchbar.entry.js +31 -7
- package/dist/esm/ion-segment_2.entry.js +8 -8
- package/dist/esm/ion-select_3.entry.js +13 -13
- 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 +7 -7
- package/dist/esm/ion-tab_2.entry.js +6 -6
- package/dist/esm/ion-text.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +9 -9
- package/dist/esm/ion-toast.entry.js +9 -9
- package/dist/esm/ion-toggle.entry.js +6 -6
- package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-a589c12c.js} +1 -1
- package/dist/esm/ionic.js +29 -6
- package/dist/esm/{ios.transition-189b73b7.js → ios.transition-fbde96b0.js} +4 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-c9761eef.js → md.transition-76e0020b.js} +4 -4
- package/dist/esm/{notch-controller-18bf9f76.js → notch-controller-00572cf8.js} +1 -1
- package/dist/esm/{overlays-c69d2a07.js → overlays-b1ac1c63.js} +142 -57
- package/dist/esm/{status-tap-1d638ee6.js → status-tap-84b41f36.js} +3 -3
- package/dist/esm/{swipe-back-348f1971.js → swipe-back-f2bec781.js} +1 -1
- package/dist/esm-es5/{animation-a4acf150.js → animation-9a23ed8d.js} +1 -1
- package/dist/esm-es5/app-globals-80842d68.js +4 -0
- package/dist/esm-es5/{button-active-4407b98c.js → button-active-c6e18fac.js} +1 -1
- package/dist/esm-es5/data-ae11fd43.js +4 -0
- package/dist/esm-es5/{framework-delegate-1eb3236c.js → framework-delegate-3fd96df8.js} +1 -1
- package/dist/esm-es5/hardware-back-button-fb295e3a.js +4 -0
- package/dist/esm-es5/helpers-f51cf76f.js +4 -0
- package/dist/esm-es5/index-1262064c.js +4 -0
- package/dist/esm-es5/index-5d6a0317.js +5 -0
- package/dist/esm-es5/{index-1eff8599.js → index-6da05eef.js} +1 -1
- package/dist/esm-es5/{index-66871a1d.js → index-86688780.js} +1 -1
- package/dist/esm-es5/{index-8758824c.js → index-9d7e5d3e.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{input-shims-91e6634c.js → input-shims-2a4ad5a1.js} +1 -1
- package/dist/esm-es5/input.utils-d2dee48e.js +4 -0
- 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-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-ad9a1810.js → ionic-global-a589c12c.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-189b73b7.js → ios.transition-fbde96b0.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{md.transition-c9761eef.js → md.transition-76e0020b.js} +1 -1
- package/dist/esm-es5/{notch-controller-18bf9f76.js → notch-controller-00572cf8.js} +1 -1
- package/dist/esm-es5/overlays-b1ac1c63.js +4 -0
- package/dist/esm-es5/{status-tap-1d638ee6.js → status-tap-84b41f36.js} +1 -1
- package/dist/esm-es5/{swipe-back-348f1971.js → swipe-back-f2bec781.js} +1 -1
- package/dist/html.html-data.json +24 -26
- 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-174856b4.system.js → p-01171ead.system.js} +1 -1
- package/dist/ionic/{p-5d7e32ce.js → p-031c5621.js} +1 -1
- package/dist/ionic/{p-993da5df.entry.js → p-03f3ebd2.entry.js} +1 -1
- package/dist/ionic/p-04f9ce05.system.js +4 -0
- package/dist/ionic/p-05f10e5f.entry.js +4 -0
- package/dist/ionic/{p-34d0f143.system.entry.js → p-063c093d.system.entry.js} +1 -1
- package/dist/ionic/p-06e951a9.entry.js +4 -0
- package/dist/ionic/{p-1d545773.entry.js → p-070cf7c3.entry.js} +1 -1
- package/dist/ionic/{p-3c47c5c8.system.entry.js → p-0afaf65b.system.entry.js} +1 -1
- package/dist/ionic/p-0da58e53.entry.js +4 -0
- package/dist/ionic/p-144ae947.js +4 -0
- package/dist/ionic/{p-c6dbc089.system.entry.js → p-15e2ff5f.system.entry.js} +1 -1
- package/dist/ionic/{p-9d795c4b.entry.js → p-19243ae6.entry.js} +1 -1
- package/dist/ionic/p-1acaf641.entry.js +4 -0
- package/dist/ionic/{p-892e2567.system.entry.js → p-1d1394da.system.entry.js} +1 -1
- package/dist/ionic/p-1e5c0c49.js +4 -0
- package/dist/ionic/{p-6e14d3ca.system.entry.js → p-2028668d.system.entry.js} +1 -1
- package/dist/ionic/{p-f7d802e1.entry.js → p-2070f8d8.entry.js} +1 -1
- package/dist/ionic/{p-3d77b300.system.entry.js → p-219c17cf.system.entry.js} +1 -1
- package/dist/ionic/p-21e88629.entry.js +4 -0
- package/dist/ionic/{p-cefbb7b7.entry.js → p-234dc736.entry.js} +1 -1
- package/dist/ionic/{p-5e70f800.system.entry.js → p-237b1791.system.entry.js} +1 -1
- package/dist/ionic/{p-ceceac26.js → p-239906f1.js} +1 -1
- package/dist/ionic/{p-1a4db355.system.entry.js → p-25648922.system.entry.js} +1 -1
- package/dist/ionic/{p-d84c9fc4.entry.js → p-29ecf879.entry.js} +1 -1
- package/dist/ionic/{p-c9e21694.system.entry.js → p-2e2635b4.system.entry.js} +1 -1
- package/dist/ionic/p-2f53f47a.entry.js +4 -0
- package/dist/ionic/{p-98e6b3b8.system.js → p-30dfa360.system.js} +1 -1
- package/dist/ionic/p-314ae72a.js +4 -0
- package/dist/ionic/{p-2d7624d4.system.js → p-33e39575.system.js} +1 -1
- package/dist/ionic/p-373e757d.entry.js +4 -0
- package/dist/ionic/{p-8a50f8d6.system.js → p-3944820a.system.js} +1 -1
- package/dist/ionic/p-39483fc9.js +4 -0
- package/dist/ionic/{p-e311af42.entry.js → p-39860681.entry.js} +1 -1
- package/dist/ionic/{p-e1819aee.js → p-3a572692.js} +1 -1
- package/dist/ionic/p-42d9f81e.entry.js +4 -0
- package/dist/ionic/{p-dd7c79ce.system.entry.js → p-45a2b1ee.system.entry.js} +1 -1
- package/dist/ionic/{p-15708968.js → p-46a4e4e8.js} +1 -1
- package/dist/ionic/{p-6dbea874.system.entry.js → p-47974116.system.entry.js} +1 -1
- package/dist/ionic/p-489eb5c6.js +4 -0
- package/dist/ionic/{p-2b3544ad.entry.js → p-48fef2f1.entry.js} +1 -1
- package/dist/ionic/p-493bce1f.entry.js +4 -0
- package/dist/ionic/p-4997d7dc.system.js +4 -0
- package/dist/ionic/{p-cb944b1a.system.js → p-49a205d0.system.js} +1 -1
- package/dist/ionic/{p-c880c809.js → p-4ba6d7d1.js} +1 -1
- package/dist/ionic/p-4d6ec139.entry.js +4 -0
- package/dist/ionic/{p-8d4d902b.js → p-4da2ae44.js} +1 -1
- package/dist/ionic/{p-5d64e680.entry.js → p-5054b3db.entry.js} +1 -1
- package/dist/ionic/{p-3c51cf97.system.entry.js → p-50d19fc7.system.entry.js} +1 -1
- package/dist/ionic/p-513abaf6.system.entry.js +4 -0
- package/dist/ionic/p-517b76cb.entry.js +4 -0
- package/dist/ionic/{p-a6cc38d4.js → p-51b1a6be.js} +1 -1
- package/dist/ionic/p-53c592ec.system.js +4 -0
- package/dist/ionic/{p-12b55b00.system.entry.js → p-566818dd.system.entry.js} +1 -1
- package/dist/ionic/p-59e86adb.js +4 -0
- package/dist/ionic/{p-1e07fdb2.system.entry.js → p-5f9abba8.system.entry.js} +2 -2
- package/dist/ionic/{p-d8643420.system.entry.js → p-6042920d.system.entry.js} +2 -2
- package/dist/ionic/{p-9f84474d.entry.js → p-65374504.entry.js} +1 -1
- package/dist/ionic/{p-df6a1571.entry.js → p-66596659.entry.js} +1 -1
- package/dist/ionic/p-667290b0.system.js +4 -0
- package/dist/ionic/{p-5d530ae5.entry.js → p-66e50777.entry.js} +1 -1
- package/dist/ionic/{p-4a8f173c.system.js → p-67dbcd3b.system.js} +1 -1
- package/dist/ionic/{p-916a4e14.entry.js → p-68fbfcd5.entry.js} +1 -1
- package/dist/ionic/{p-eb9803e9.system.js → p-696db6f4.system.js} +1 -1
- package/dist/ionic/p-69df28fd.entry.js +4 -0
- package/dist/ionic/p-6d0e7669.system.entry.js +4 -0
- package/dist/ionic/p-6d1f5de9.system.entry.js +4 -0
- package/dist/ionic/{p-4dfe0487.system.entry.js → p-6d75fbe8.system.entry.js} +1 -1
- package/dist/ionic/{p-174b0d50.system.entry.js → p-7162350a.system.entry.js} +1 -1
- package/dist/ionic/p-7200f2da.entry.js +4 -0
- package/dist/ionic/{p-b434ded7.system.entry.js → p-739f8b95.system.entry.js} +1 -1
- package/dist/ionic/{p-415ccddd.entry.js → p-75addf49.entry.js} +1 -1
- package/dist/ionic/{p-de55ec45.js → p-78b3da77.js} +1 -1
- package/dist/ionic/p-7c7e495d.system.js +4 -0
- package/dist/ionic/{p-8ab308e9.js → p-7d4f6f18.js} +1 -1
- package/dist/ionic/{p-5797981d.system.entry.js → p-824d44c5.system.entry.js} +1 -1
- package/dist/ionic/{p-d7dc29c5.entry.js → p-8c0b08db.entry.js} +1 -1
- package/dist/ionic/p-8dfe436d.system.js +4 -0
- package/dist/ionic/{p-0dca0eee.system.entry.js → p-91567c90.system.entry.js} +1 -1
- package/dist/ionic/{p-00a762c9.entry.js → p-95648db9.entry.js} +1 -1
- package/dist/ionic/{p-ef9736b9.entry.js → p-9c970454.entry.js} +1 -1
- package/dist/ionic/{p-e46adaf1.system.entry.js → p-9ddbed2f.system.entry.js} +1 -1
- package/dist/ionic/{p-6525a8cd.system.js → p-9e3177a5.system.js} +1 -1
- package/dist/ionic/p-a03c993e.entry.js +4 -0
- package/dist/ionic/{p-d7c78a97.system.entry.js → p-a37d4fe9.system.entry.js} +1 -1
- package/dist/ionic/{p-973c7550.system.entry.js → p-a43fbe0a.system.entry.js} +1 -1
- package/dist/ionic/{p-de0a7606.system.entry.js → p-a5c33d6b.system.entry.js} +1 -1
- package/dist/ionic/p-a7f788ec.entry.js +4 -0
- package/dist/ionic/{p-5133c4a3.system.entry.js → p-acd64713.system.entry.js} +1 -1
- package/dist/ionic/{p-89ca4c4b.system.js → p-af9256a0.system.js} +1 -1
- package/dist/ionic/p-afe27188.system.js +4 -0
- package/dist/ionic/{p-acf70e64.system.entry.js → p-b0850af6.system.entry.js} +1 -1
- package/dist/ionic/p-b0d35de4.system.js +4 -0
- package/dist/ionic/p-b996756b.entry.js +4 -0
- package/dist/ionic/p-ba9120fe.system.entry.js +4 -0
- package/dist/ionic/p-bb78b64e.entry.js +4 -0
- package/dist/ionic/{p-80704be1.entry.js → p-bbc4f653.entry.js} +1 -1
- package/dist/ionic/p-c34d1515.js +4 -0
- package/dist/ionic/{p-97248203.system.entry.js → p-c4390f10.system.entry.js} +1 -1
- package/dist/ionic/p-c629d22b.system.js +5 -0
- package/dist/ionic/p-c834c535.system.entry.js +4 -0
- package/dist/ionic/{p-2dcf2ec2.system.entry.js → p-c8675b7b.system.entry.js} +1 -1
- package/dist/ionic/p-c962e9ea.entry.js +4 -0
- package/dist/ionic/p-cbb753d4.entry.js +4 -0
- package/dist/ionic/p-cc19ecba.system.entry.js +4 -0
- package/dist/ionic/{p-1ea88de9.system.js → p-ce36d285.system.js} +1 -1
- package/dist/ionic/{p-f7c3d736.system.entry.js → p-d09c9468.system.entry.js} +1 -1
- package/dist/ionic/p-d10bbab7.entry.js +4 -0
- package/dist/ionic/p-d268f7e2.system.entry.js +4 -0
- package/dist/ionic/{p-1df25966.entry.js → p-d3c1c23f.entry.js} +1 -1
- package/dist/ionic/{p-0a8a78db.system.entry.js → p-d4be0d81.system.entry.js} +1 -1
- package/dist/ionic/p-d5ef3a0a.entry.js +4 -0
- package/dist/ionic/p-d60342e3.js +4 -0
- package/dist/ionic/{p-8fe3c4ef.entry.js → p-d85eebc3.entry.js} +1 -1
- package/dist/ionic/{p-0612cdcc.system.entry.js → p-d9dfdbb5.system.entry.js} +1 -1
- package/dist/ionic/{p-385f66bc.entry.js → p-da5bbd4f.entry.js} +1 -1
- package/dist/ionic/p-dad515dc.js +4 -0
- package/dist/ionic/{p-ab427719.entry.js → p-de39f314.entry.js} +1 -1
- package/dist/ionic/{p-5f9fbad0.entry.js → p-de4c700f.entry.js} +1 -1
- package/dist/ionic/{p-19f6ac6c.system.js → p-e01ebeba.system.js} +1 -1
- package/dist/ionic/{p-1f79e54a.entry.js → p-e222fdd1.entry.js} +1 -1
- package/dist/ionic/{p-ef636601.entry.js → p-e5e492d8.entry.js} +1 -1
- package/dist/ionic/{p-fd783a38.system.entry.js → p-e9412fe7.system.entry.js} +1 -1
- package/dist/ionic/{p-16e06393.system.js → p-ea5173f9.system.js} +1 -1
- package/dist/ionic/{p-717c4b72.entry.js → p-eb546888.entry.js} +1 -1
- package/dist/ionic/{p-f0a7e80b.js → p-eee87ebb.js} +1 -1
- package/dist/ionic/p-f012e8f2.system.entry.js +4 -0
- package/dist/ionic/{p-c8d61b6c.system.entry.js → p-f15b0bbc.system.entry.js} +1 -1
- package/dist/ionic/{p-ec77b7ad.system.entry.js → p-f15f8140.system.entry.js} +1 -1
- package/dist/ionic/{p-31e02742.system.js → p-f3e8c505.system.js} +1 -1
- package/dist/ionic/{p-760dbd5e.js → p-f5cb9689.js} +1 -1
- package/dist/ionic/p-f687573e.system.js +4 -0
- package/dist/ionic/{p-3807cd45.system.entry.js → p-f6db2e96.system.entry.js} +2 -2
- package/dist/ionic/p-f8502e85.js +5 -0
- package/dist/ionic/{p-4bbc949f.system.entry.js → p-f8dfae89.system.entry.js} +1 -1
- package/dist/ionic/p-fcec3b7a.system.entry.js +4 -0
- package/dist/ionic/{p-b2d58604.system.entry.js → p-ff740d68.system.entry.js} +1 -1
- package/dist/ionic/p-ffaeba0a.system.entry.js +4 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
- package/dist/types/components/datetime/datetime.d.ts +9 -1
- package/dist/types/components/datetime/utils/format.d.ts +7 -13
- package/dist/types/components/datetime/utils/validate.d.ts +8 -0
- package/dist/types/components/item/item.d.ts +0 -32
- package/dist/types/components/menu/menu-interface.d.ts +1 -0
- package/dist/types/components/menu/menu.d.ts +2 -4
- package/dist/types/components/range/range.d.ts +29 -0
- package/dist/types/components/searchbar/searchbar.d.ts +38 -0
- package/dist/types/components.d.ts +38 -46
- package/dist/types/utils/focus-trap.d.ts +35 -0
- package/dist/types/utils/forms/index.d.ts +0 -1
- package/dist/types/utils/hardware-back-button.d.ts +1 -1
- package/dist/types/utils/helpers.d.ts +0 -1
- package/dist/types/utils/overlays.d.ts +0 -6
- package/hydrate/index.js +707 -448
- package/package.json +1 -1
- package/components/note.js +0 -48
- package/dist/collection/components/item/test/legacy/disabled/item.e2e.js +0 -14
- package/dist/collection/components/modal/test/a11y/modal.spec.js +0 -22
- package/dist/collection/utils/forms/form-controller.js +0 -61
- package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
- package/dist/esm-es5/data-691286f1.js +0 -4
- package/dist/esm-es5/hardware-back-button-b410a047.js +0 -4
- package/dist/esm-es5/helpers-ae74b3c9.js +0 -4
- package/dist/esm-es5/index-1f563746.js +0 -4
- package/dist/esm-es5/index-4c30cddd.js +0 -5
- package/dist/esm-es5/input.utils-482fc893.js +0 -4
- package/dist/esm-es5/overlays-c69d2a07.js +0 -4
- package/dist/ionic/p-069388dd.system.js +0 -4
- package/dist/ionic/p-0b34d3a7.system.js +0 -4
- package/dist/ionic/p-0dfbbdbe.entry.js +0 -4
- package/dist/ionic/p-0f25a7bb.system.js +0 -4
- package/dist/ionic/p-0f81df5e.entry.js +0 -4
- package/dist/ionic/p-11bb459e.system.entry.js +0 -4
- package/dist/ionic/p-13e8ad2e.entry.js +0 -4
- package/dist/ionic/p-17082c91.system.js +0 -4
- package/dist/ionic/p-1deadb7f.system.js +0 -4
- package/dist/ionic/p-2c768965.entry.js +0 -4
- package/dist/ionic/p-3209217f.entry.js +0 -4
- package/dist/ionic/p-32fb7d95.entry.js +0 -4
- package/dist/ionic/p-446f3909.system.entry.js +0 -4
- package/dist/ionic/p-4b3a4938.entry.js +0 -4
- package/dist/ionic/p-4e7abe76.js +0 -4
- package/dist/ionic/p-5289aade.js +0 -4
- package/dist/ionic/p-5dbf7222.entry.js +0 -4
- package/dist/ionic/p-5eabaa80.js +0 -4
- package/dist/ionic/p-60a92a48.system.entry.js +0 -4
- package/dist/ionic/p-640fac4a.system.entry.js +0 -4
- package/dist/ionic/p-66e6860f.system.js +0 -4
- package/dist/ionic/p-6ad90d41.entry.js +0 -4
- package/dist/ionic/p-6aeb0272.entry.js +0 -4
- package/dist/ionic/p-6d659d62.entry.js +0 -4
- package/dist/ionic/p-7292add8.entry.js +0 -4
- package/dist/ionic/p-72fa96bf.system.js +0 -5
- package/dist/ionic/p-75861cd3.entry.js +0 -4
- package/dist/ionic/p-7e185a31.entry.js +0 -4
- package/dist/ionic/p-8b8b900d.entry.js +0 -4
- package/dist/ionic/p-90b3e3b0.system.entry.js +0 -4
- package/dist/ionic/p-93e79b55.js +0 -4
- package/dist/ionic/p-94f85e19.system.entry.js +0 -4
- package/dist/ionic/p-96107183.js +0 -4
- package/dist/ionic/p-986a47ee.system.entry.js +0 -4
- package/dist/ionic/p-9c93fdcd.js +0 -4
- package/dist/ionic/p-9d6f351e.js +0 -4
- package/dist/ionic/p-9e3b3f15.system.js +0 -4
- package/dist/ionic/p-9ecc1e42.entry.js +0 -4
- package/dist/ionic/p-bca27ea7.entry.js +0 -4
- package/dist/ionic/p-c68e75ea.system.js +0 -4
- package/dist/ionic/p-cd0ffc8c.entry.js +0 -4
- package/dist/ionic/p-d13689a6.entry.js +0 -4
- package/dist/ionic/p-d3f79a49.js +0 -4
- package/dist/ionic/p-d47a1a78.system.entry.js +0 -4
- package/dist/ionic/p-d9b6b588.entry.js +0 -4
- package/dist/ionic/p-df504a37.system.js +0 -4
- package/dist/ionic/p-e755046f.system.entry.js +0 -4
- package/dist/ionic/p-eb506d19.system.entry.js +0 -4
- package/dist/ionic/p-ed7a529f.js +0 -5
- package/dist/ionic/p-f2473724.js +0 -4
- package/dist/ionic/p-f7ccf8d9.entry.js +0 -4
- package/dist/types/utils/forms/form-controller.d.ts +0 -15
package/components/overlays.js
CHANGED
|
@@ -2,13 +2,88 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { d as doc } from './index5.js';
|
|
5
|
-
import {
|
|
5
|
+
import { f as focusVisibleElement, c as componentOnReady, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
|
|
6
|
+
import { OVERLAY_BACK_BUTTON_PRIORITY, shouldUseCloseWatcher } from './hardware-back-button.js';
|
|
6
7
|
import { b as getIonMode, c as config } from './ionic-global.js';
|
|
7
8
|
import { C as CoreDelegate } from './framework-delegate.js';
|
|
8
9
|
import { B as BACKDROP_NO_SCROLL } from './gesture-controller.js';
|
|
9
|
-
import { c as componentOnReady, f as focusVisibleElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
|
|
10
10
|
import { p as printIonWarning } from './index6.js';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* This query string selects elements that
|
|
14
|
+
* are eligible to receive focus. We select
|
|
15
|
+
* interactive elements that meet the following
|
|
16
|
+
* criteria:
|
|
17
|
+
* 1. Element does not have a negative tabindex
|
|
18
|
+
* 2. Element does not have `hidden`
|
|
19
|
+
* 3. Element does not have `disabled` for non-Ionic components.
|
|
20
|
+
* 4. Element does not have `disabled` or `disabled="true"` for Ionic components.
|
|
21
|
+
* Note: We need this distinction because `disabled="false"` is
|
|
22
|
+
* valid usage for the disabled property on ion-button.
|
|
23
|
+
*/
|
|
24
|
+
const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
25
|
+
/**
|
|
26
|
+
* Focuses the first descendant in a context
|
|
27
|
+
* that can receive focus. If none exists,
|
|
28
|
+
* a fallback element will be focused.
|
|
29
|
+
* This fallback is typically an ancestor
|
|
30
|
+
* container such as a menu or overlay so focus does not
|
|
31
|
+
* leave the container we are trying to trap focus in.
|
|
32
|
+
*
|
|
33
|
+
* If no fallback is specified then we focus the container itself.
|
|
34
|
+
*/
|
|
35
|
+
const focusFirstDescendant = (ref, fallbackElement) => {
|
|
36
|
+
const firstInput = ref.querySelector(focusableQueryString);
|
|
37
|
+
focusElementInContext(firstInput, fallbackElement !== null && fallbackElement !== void 0 ? fallbackElement : ref);
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Focuses the last descendant in a context
|
|
41
|
+
* that can receive focus. If none exists,
|
|
42
|
+
* a fallback element will be focused.
|
|
43
|
+
* This fallback is typically an ancestor
|
|
44
|
+
* container such as a menu or overlay so focus does not
|
|
45
|
+
* leave the container we are trying to trap focus in.
|
|
46
|
+
*
|
|
47
|
+
* If no fallback is specified then we focus the container itself.
|
|
48
|
+
*/
|
|
49
|
+
const focusLastDescendant = (ref, fallbackElement) => {
|
|
50
|
+
const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
|
|
51
|
+
const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
|
|
52
|
+
focusElementInContext(lastInput, fallbackElement !== null && fallbackElement !== void 0 ? fallbackElement : ref);
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Focuses a particular element in a context. If the element
|
|
56
|
+
* doesn't have anything focusable associated with it then
|
|
57
|
+
* a fallback element will be focused.
|
|
58
|
+
*
|
|
59
|
+
* This fallback is typically an ancestor
|
|
60
|
+
* container such as a menu or overlay so focus does not
|
|
61
|
+
* leave the container we are trying to trap focus in.
|
|
62
|
+
* This should be used instead of the focus() method
|
|
63
|
+
* on most elements because the focusable element
|
|
64
|
+
* may not be the host element.
|
|
65
|
+
*
|
|
66
|
+
* For example, if an ion-button should be focused
|
|
67
|
+
* then we should actually focus the native <button>
|
|
68
|
+
* element inside of ion-button's shadow root, not
|
|
69
|
+
* the host element itself.
|
|
70
|
+
*/
|
|
71
|
+
const focusElementInContext = (hostToFocus, fallbackElement) => {
|
|
72
|
+
let elementToFocus = hostToFocus;
|
|
73
|
+
const shadowRoot = hostToFocus === null || hostToFocus === void 0 ? void 0 : hostToFocus.shadowRoot;
|
|
74
|
+
if (shadowRoot) {
|
|
75
|
+
// If there are no inner focusable elements, just focus the host element.
|
|
76
|
+
elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
|
|
77
|
+
}
|
|
78
|
+
if (elementToFocus) {
|
|
79
|
+
focusVisibleElement(elementToFocus);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Focus fallback element instead of letting focus escape
|
|
83
|
+
fallbackElement.focus();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
12
87
|
let lastOverlayIndex = 0;
|
|
13
88
|
let lastId = 0;
|
|
14
89
|
const activeAnimations = new WeakMap();
|
|
@@ -89,39 +164,7 @@ const createOverlay = (tagName, opts) => {
|
|
|
89
164
|
}
|
|
90
165
|
return Promise.resolve();
|
|
91
166
|
};
|
|
92
|
-
/**
|
|
93
|
-
* This query string selects elements that
|
|
94
|
-
* are eligible to receive focus. We select
|
|
95
|
-
* interactive elements that meet the following
|
|
96
|
-
* criteria:
|
|
97
|
-
* 1. Element does not have a negative tabindex
|
|
98
|
-
* 2. Element does not have `hidden`
|
|
99
|
-
* 3. Element does not have `disabled` for non-Ionic components.
|
|
100
|
-
* 4. Element does not have `disabled` or `disabled="true"` for Ionic components.
|
|
101
|
-
* Note: We need this distinction because `disabled="false"` is
|
|
102
|
-
* valid usage for the disabled property on ion-button.
|
|
103
|
-
*/
|
|
104
|
-
const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
105
167
|
const isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden');
|
|
106
|
-
/**
|
|
107
|
-
* Focuses the first descendant in an overlay
|
|
108
|
-
* that can receive focus. If none exists,
|
|
109
|
-
* the entire overlay will be focused.
|
|
110
|
-
*/
|
|
111
|
-
const focusFirstDescendant = (ref, overlay) => {
|
|
112
|
-
const firstInput = ref.querySelector(focusableQueryString);
|
|
113
|
-
focusElementInOverlay(firstInput, overlay);
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Focuses the last descendant in an overlay
|
|
117
|
-
* that can receive focus. If none exists,
|
|
118
|
-
* the entire overlay will be focused.
|
|
119
|
-
*/
|
|
120
|
-
const focusLastDescendant = (ref, overlay) => {
|
|
121
|
-
const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
|
|
122
|
-
const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
|
|
123
|
-
focusElementInOverlay(lastInput, overlay);
|
|
124
|
-
};
|
|
125
168
|
/**
|
|
126
169
|
* Focuses a particular element in an overlay. If the element
|
|
127
170
|
* doesn't have anything focusable associated with it then
|
|
@@ -312,7 +355,7 @@ const trapKeyboardFocus = (ev, doc) => {
|
|
|
312
355
|
*/
|
|
313
356
|
const lastFocus = lastOverlay.lastFocus;
|
|
314
357
|
// Focus the first element in the overlay wrapper
|
|
315
|
-
focusFirstDescendant(lastOverlay
|
|
358
|
+
focusFirstDescendant(lastOverlay);
|
|
316
359
|
/**
|
|
317
360
|
* If the cached last focused element is the
|
|
318
361
|
* same as the active element, then we need
|
|
@@ -323,7 +366,7 @@ const trapKeyboardFocus = (ev, doc) => {
|
|
|
323
366
|
* last focus to equal the active element.
|
|
324
367
|
*/
|
|
325
368
|
if (lastFocus === doc.activeElement) {
|
|
326
|
-
focusLastDescendant(lastOverlay
|
|
369
|
+
focusLastDescendant(lastOverlay);
|
|
327
370
|
}
|
|
328
371
|
lastOverlay.lastFocus = doc.activeElement;
|
|
329
372
|
}
|
|
@@ -368,7 +411,7 @@ const connectListeners = (doc) => {
|
|
|
368
411
|
* this behavior will be handled via the ionBackButton
|
|
369
412
|
* event.
|
|
370
413
|
*/
|
|
371
|
-
if (!
|
|
414
|
+
if (!shouldUseCloseWatcher()) {
|
|
372
415
|
doc.addEventListener('keydown', (ev) => {
|
|
373
416
|
if (ev.key === 'Escape') {
|
|
374
417
|
const lastOverlay = getPresentedOverlay(doc);
|
|
@@ -459,15 +502,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
459
502
|
}
|
|
460
503
|
setRootAriaHidden(true);
|
|
461
504
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
462
|
-
|
|
463
|
-
* Hide all other overlays from screen readers so only this one
|
|
464
|
-
* can be read. Note that presenting an overlay always makes
|
|
465
|
-
* it the topmost one.
|
|
466
|
-
*/
|
|
467
|
-
if (doc !== undefined) {
|
|
468
|
-
const presentedOverlays = getPresentedOverlays(doc);
|
|
469
|
-
presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
|
|
470
|
-
}
|
|
505
|
+
hideOverlaysFromScreenReaders(overlay.el);
|
|
471
506
|
overlay.presented = true;
|
|
472
507
|
overlay.willPresent.emit();
|
|
473
508
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -560,7 +595,7 @@ const restoreElementFocus = async (overlayEl) => {
|
|
|
560
595
|
}
|
|
561
596
|
};
|
|
562
597
|
const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
|
|
563
|
-
var _a, _b
|
|
598
|
+
var _a, _b;
|
|
564
599
|
if (!overlay.presented) {
|
|
565
600
|
return false;
|
|
566
601
|
}
|
|
@@ -613,13 +648,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
613
648
|
console.error(err);
|
|
614
649
|
}
|
|
615
650
|
overlay.el.remove();
|
|
616
|
-
|
|
617
|
-
* If there are other overlays presented, unhide the new
|
|
618
|
-
* topmost one from screen readers.
|
|
619
|
-
*/
|
|
620
|
-
if (doc !== undefined) {
|
|
621
|
-
(_c = getPresentedOverlay(doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
|
|
622
|
-
}
|
|
651
|
+
revealOverlaysToScreenReaders();
|
|
623
652
|
return true;
|
|
624
653
|
};
|
|
625
654
|
const getAppRoot = (doc) => {
|
|
@@ -815,5 +844,61 @@ const createTriggerController = () => {
|
|
|
815
844
|
removeClickListener,
|
|
816
845
|
};
|
|
817
846
|
};
|
|
847
|
+
/**
|
|
848
|
+
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
849
|
+
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
|
850
|
+
* events here because those events do not fire when the screen readers moves to a non-focusable
|
|
851
|
+
* element such as text.
|
|
852
|
+
* Without this logic screen readers would be able to move focus outside of the top focus-trapped overlay.
|
|
853
|
+
*
|
|
854
|
+
* @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
|
|
855
|
+
* fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
|
|
856
|
+
*/
|
|
857
|
+
const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
|
|
858
|
+
var _a;
|
|
859
|
+
if (doc === undefined)
|
|
860
|
+
return;
|
|
861
|
+
const overlays = getPresentedOverlays(doc);
|
|
862
|
+
for (let i = overlays.length - 1; i >= 0; i--) {
|
|
863
|
+
const presentedOverlay = overlays[i];
|
|
864
|
+
const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
|
|
865
|
+
/**
|
|
866
|
+
* If next overlay has aria-hidden then all remaining overlays will have it too.
|
|
867
|
+
* Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
|
|
868
|
+
* should not have aria-hidden either so focus can remain in the current overlay.
|
|
869
|
+
*/
|
|
870
|
+
if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
|
|
871
|
+
presentedOverlay.setAttribute('aria-hidden', 'true');
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
};
|
|
875
|
+
/**
|
|
876
|
+
* When dismissing an overlay we need to reveal the new top-most overlay to screen readers.
|
|
877
|
+
* If the top-most overlay is a Toast we potentially need to reveal more overlays since
|
|
878
|
+
* focus is never automatically moved to the Toast.
|
|
879
|
+
*/
|
|
880
|
+
const revealOverlaysToScreenReaders = () => {
|
|
881
|
+
if (doc === undefined)
|
|
882
|
+
return;
|
|
883
|
+
const overlays = getPresentedOverlays(doc);
|
|
884
|
+
for (let i = overlays.length - 1; i >= 0; i--) {
|
|
885
|
+
const currentOverlay = overlays[i];
|
|
886
|
+
/**
|
|
887
|
+
* If the current we are looking at is a Toast then we can remove aria-hidden.
|
|
888
|
+
* However, we potentially need to keep looking at the overlay stack because there
|
|
889
|
+
* could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
|
|
890
|
+
* overlay too so focus can move there since focus is never automatically moved to the Toast.
|
|
891
|
+
*/
|
|
892
|
+
currentOverlay.removeAttribute('aria-hidden');
|
|
893
|
+
/**
|
|
894
|
+
* If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
|
|
895
|
+
* since this overlay should always receive focus. As a result, all underlying overlays should still
|
|
896
|
+
* be hidden from screen readers.
|
|
897
|
+
*/
|
|
898
|
+
if (currentOverlay.tagName !== 'ION-TOAST') {
|
|
899
|
+
break;
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
};
|
|
818
903
|
|
|
819
|
-
export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, safeCall as s, toastController as t };
|
|
904
|
+
export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, focusLastDescendant as q, safeCall as s, toastController as t };
|
|
@@ -86,10 +86,10 @@ const PickerColumnOption = /*@__PURE__*/ proxyCustomElement(class PickerColumnOp
|
|
|
86
86
|
render() {
|
|
87
87
|
const { color, disabled, ariaLabel } = this;
|
|
88
88
|
const mode = getIonMode(this);
|
|
89
|
-
return (h(Host, { key: '
|
|
89
|
+
return (h(Host, { key: '8307a2917395b704ca995c64b5e84b828a8f3946', class: createColorClasses(color, {
|
|
90
90
|
[mode]: true,
|
|
91
91
|
['option-disabled']: disabled,
|
|
92
|
-
}) }, h("button", { key: '
|
|
92
|
+
}) }, h("button", { key: '2112f812b169e1fa67ab08ccb1d63c8e14e30872', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '571b4724e055765891db30405488ae368f110dc1' }))));
|
|
93
93
|
}
|
|
94
94
|
get el() { return this; }
|
|
95
95
|
static get watchers() { return {
|
|
@@ -268,6 +268,13 @@ const PickerColumn = /*@__PURE__*/ proxyCustomElement(class PickerColumn extends
|
|
|
268
268
|
* height of 0px.
|
|
269
269
|
*/
|
|
270
270
|
componentWillLoad() {
|
|
271
|
+
/**
|
|
272
|
+
* We cache parentEl in a local variable
|
|
273
|
+
* so we don't need to keep accessing
|
|
274
|
+
* the class variable (which comes with
|
|
275
|
+
* a small performance hit)
|
|
276
|
+
*/
|
|
277
|
+
const parentEl = (this.parentEl = this.el.closest('ion-picker'));
|
|
271
278
|
const visibleCallback = (entries) => {
|
|
272
279
|
const ev = entries[0];
|
|
273
280
|
if (ev.isIntersecting) {
|
|
@@ -295,8 +302,16 @@ const PickerColumn = /*@__PURE__*/ proxyCustomElement(class PickerColumn extends
|
|
|
295
302
|
}
|
|
296
303
|
}
|
|
297
304
|
};
|
|
298
|
-
|
|
299
|
-
|
|
305
|
+
/**
|
|
306
|
+
* Set the root to be the parent picker element
|
|
307
|
+
* This causes the IO callback
|
|
308
|
+
* to be fired in WebKit as soon as the element
|
|
309
|
+
* is visible. If we used the default root value
|
|
310
|
+
* then WebKit would only fire the IO callback
|
|
311
|
+
* after any animations (such as a modal transition)
|
|
312
|
+
* finished, and there would potentially be a flicker.
|
|
313
|
+
*/
|
|
314
|
+
new IntersectionObserver(visibleCallback, { threshold: 0.001, root: this.parentEl }).observe(this.el);
|
|
300
315
|
if (parentEl !== null) {
|
|
301
316
|
// TODO(FW-2832): type
|
|
302
317
|
parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
|
|
@@ -365,14 +380,14 @@ const PickerColumn = /*@__PURE__*/ proxyCustomElement(class PickerColumn extends
|
|
|
365
380
|
render() {
|
|
366
381
|
const { color, disabled, isActive, numericInput } = this;
|
|
367
382
|
const mode = getIonMode(this);
|
|
368
|
-
return (h(Host, { key: '
|
|
383
|
+
return (h(Host, { key: '6658bfcf04d2e16e5a1acdb82c7b99fba27a6e36', class: createColorClasses(color, {
|
|
369
384
|
[mode]: true,
|
|
370
385
|
['picker-column-active']: isActive,
|
|
371
386
|
['picker-column-numeric-input']: numericInput,
|
|
372
387
|
['picker-column-disabled']: disabled,
|
|
373
|
-
}) }, h("slot", { key: '
|
|
388
|
+
}) }, h("slot", { key: 'a763810ee7cdb6757a6b769edc7b22d0e5d31300', name: "prefix" }), h("div", { key: 'b782e731803faa9afddbd7ecf117cf13b7fed392', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
|
|
374
389
|
this.scrollEl = el;
|
|
375
|
-
} }, h("div", { key: '
|
|
390
|
+
} }, h("div", { key: '1ad66da148e1b68654fb239e5b0378b6588952ec', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '40d9a15a9387fd6505cf2089dc0bd025c1d024ef', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '6594be21a3dea1668cc90488d0b9b611ca8f65a8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '3e848b150f81d6283e5a04876f9b7cd61ba8079e' }), h("div", { key: 'e1e4ccb1cd80e937aee528f99fa969cf45228db3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '1cc415a51d3f525777f2dfcc0ff0fea670307f9e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'aa247ca6aa986648a5b2822a8eb648d246de695c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: '712e32d320c95cf293eb71ec395988414a3aea11', name: "suffix" })));
|
|
376
391
|
}
|
|
377
392
|
get el() { return this; }
|
|
378
393
|
static get watchers() { return {
|
|
@@ -343,9 +343,9 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
|
|
|
343
343
|
render() {
|
|
344
344
|
const col = this.col;
|
|
345
345
|
const mode = getIonMode(this);
|
|
346
|
-
return (h(Host, { key: '
|
|
346
|
+
return (h(Host, { key: 'b7342219fdfcf106d905e3badefe021fd46ad12b', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
347
347
|
'max-width': this.col.columnWidth,
|
|
348
|
-
} }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '
|
|
348
|
+
} }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: 'c87f5f3f1efca050c20bcd697aae905f0f370afc', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
349
349
|
}
|
|
350
350
|
get el() { return this; }
|
|
351
351
|
static get watchers() { return {
|
package/components/picker.js
CHANGED
|
@@ -482,7 +482,7 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
|
|
|
482
482
|
this.emitInputModeChange();
|
|
483
483
|
}
|
|
484
484
|
render() {
|
|
485
|
-
return (h(Host, { key: '
|
|
485
|
+
return (h(Host, { key: '6d9d2f8427c722ac1e4ad401e3091f86b95af503', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: 'b885e06c95ad966d477d873154627766ecf5f5f9', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
|
|
486
486
|
var _a;
|
|
487
487
|
/**
|
|
488
488
|
* The "Enter" key represents
|
|
@@ -497,7 +497,7 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
|
|
|
497
497
|
if (ev.key === 'Enter') {
|
|
498
498
|
(_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
|
|
499
499
|
}
|
|
500
|
-
}, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '
|
|
500
|
+
}, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '91e060f4dd634ebaca072dbe7726a84f6f2c7040', class: "picker-before" }), h("div", { key: '2e06c9db12040c5a7af48c79ce3e1c32ce7a6ae4', class: "picker-after" }), h("div", { key: '791a934f6886ca89b370f71cd5c848ee6dac5b90', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: 'aed4fe303f87b804ce00f2633b0af4905600670a' })));
|
|
501
501
|
}
|
|
502
502
|
get el() { return this; }
|
|
503
503
|
static get style() { return {
|
package/components/popover.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
5
|
+
import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays.js';
|
|
5
6
|
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate.js';
|
|
6
7
|
import { r as raf, g as getElementRoot, a as addEventListener, j as hasLazyBuild } from './helpers.js';
|
|
7
8
|
import { c as createLockController } from './lock-controller.js';
|
|
8
9
|
import { p as printIonWarning } from './index6.js';
|
|
9
|
-
import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays.js';
|
|
10
10
|
import { b as getIonMode, a as isPlatform } from './ionic-global.js';
|
|
11
11
|
import { g as getClassMap } from './theme.js';
|
|
12
12
|
import { e as deepReady, w as waitForMount } from './index2.js';
|
|
@@ -1226,7 +1226,7 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
|
|
|
1226
1226
|
* descendant inside of the popover.
|
|
1227
1227
|
*/
|
|
1228
1228
|
if (this.focusDescendantOnPresent) {
|
|
1229
|
-
focusFirstDescendant(
|
|
1229
|
+
focusFirstDescendant(el);
|
|
1230
1230
|
}
|
|
1231
1231
|
unlock();
|
|
1232
1232
|
}
|
|
@@ -1292,9 +1292,9 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
|
|
|
1292
1292
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
|
|
1293
1293
|
const desktop = isPlatform('desktop');
|
|
1294
1294
|
const enableArrow = arrow && !parentPopover;
|
|
1295
|
-
return (h(Host, Object.assign({ key: '
|
|
1295
|
+
return (h(Host, Object.assign({ key: 'fb58b5b3124ea4b0ced6d73558844121245a0951', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1296
1296
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1297
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '
|
|
1297
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'a7b6a76eeeb840b806434cf5c9beaaf43a975867', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '9c59d1a567f66fb939aa194e452b46fd1dbef27c', class: "popover-content", part: "content" }, h("slot", { key: 'a8e260ace3d487c9e9c861725488a4bef7aeeb02' })))));
|
|
1298
1298
|
}
|
|
1299
1299
|
get el() { return this; }
|
|
1300
1300
|
static get watchers() { return {
|
|
@@ -158,7 +158,7 @@ const RadioGroup = /*@__PURE__*/ proxyCustomElement(class RadioGroup extends HTM
|
|
|
158
158
|
const { label, labelId, el, name, value } = this;
|
|
159
159
|
const mode = getIonMode(this);
|
|
160
160
|
renderHiddenInput(true, el, name, value, false);
|
|
161
|
-
return h(Host, { key: '
|
|
161
|
+
return h(Host, { key: 'db2e1c69be545dcb95fa7c7bd0c36a1fd3423294', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
|
|
162
162
|
}
|
|
163
163
|
get el() { return this; }
|
|
164
164
|
static get watchers() { return {
|
package/components/radio.js
CHANGED
|
@@ -146,7 +146,7 @@ const Radio = /*@__PURE__*/ proxyCustomElement(class Radio extends HTMLElement {
|
|
|
146
146
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
147
147
|
const mode = getIonMode(this);
|
|
148
148
|
const inItem = hostContext('ion-item', el);
|
|
149
|
-
return (h(Host, { key: '
|
|
149
|
+
return (h(Host, { key: 'dace1b39a24a928486fa73031277db04c0f437c0', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
|
|
150
150
|
[mode]: true,
|
|
151
151
|
'in-item': inItem,
|
|
152
152
|
'radio-checked': checked,
|
|
@@ -157,10 +157,10 @@ const Radio = /*@__PURE__*/ proxyCustomElement(class Radio extends HTMLElement {
|
|
|
157
157
|
// Focus and active styling should not apply when the radio is in an item
|
|
158
158
|
'ion-activatable': !inItem,
|
|
159
159
|
'ion-focusable': !inItem,
|
|
160
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '
|
|
160
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '4a9ab56b16003ea5fe2a737adf2bc1f4be02d2c7', class: "radio-wrapper" }, h("div", { key: '4545fc8a73dc428c20f521de02e0d65b4d365dc1', class: {
|
|
161
161
|
'label-text-wrapper': true,
|
|
162
162
|
'label-text-wrapper-hidden': !hasLabel,
|
|
163
|
-
}, part: "label" }, h("slot", { key: '
|
|
163
|
+
}, part: "label" }, h("slot", { key: '6c0ab29c0a724314c0591915a72ec004d66532e3' })), h("div", { key: '03ce5e87635fdbe5c0b3455e7dc2cbcb0ce189b6', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
164
164
|
}
|
|
165
165
|
get el() { return this; }
|
|
166
166
|
static get watchers() { return {
|
|
@@ -66,7 +66,7 @@ const RippleEffect = /*@__PURE__*/ proxyCustomElement(class RippleEffect extends
|
|
|
66
66
|
}
|
|
67
67
|
render() {
|
|
68
68
|
const mode = getIonMode(this);
|
|
69
|
-
return (h(Host, { key: '
|
|
69
|
+
return (h(Host, { key: '97bc96ca8dc4bf162302d0cf6980f45534495a3d', role: "presentation", class: {
|
|
70
70
|
[mode]: true,
|
|
71
71
|
unbounded: this.unbounded,
|
|
72
72
|
} }));
|
|
@@ -5,13 +5,12 @@ import { proxyCustomElement, HTMLElement, h, forceUpdate, Host } from '@stencil/
|
|
|
5
5
|
import { s as safeCall } from './overlays.js';
|
|
6
6
|
import { g as getClassMap } from './theme.js';
|
|
7
7
|
import { b as getIonMode } from './ionic-global.js';
|
|
8
|
-
import { d as defineCustomElement$
|
|
9
|
-
import { d as defineCustomElement$
|
|
10
|
-
import { d as defineCustomElement$
|
|
11
|
-
import { d as defineCustomElement$
|
|
12
|
-
import { d as defineCustomElement$
|
|
13
|
-
import { d as defineCustomElement$
|
|
14
|
-
import { d as defineCustomElement$4 } from './note.js';
|
|
8
|
+
import { d as defineCustomElement$9 } from './checkbox.js';
|
|
9
|
+
import { d as defineCustomElement$8 } from './icon.js';
|
|
10
|
+
import { d as defineCustomElement$7 } from './item.js';
|
|
11
|
+
import { d as defineCustomElement$6 } from './label.js';
|
|
12
|
+
import { d as defineCustomElement$5 } from './list.js';
|
|
13
|
+
import { d as defineCustomElement$4 } from './list-header.js';
|
|
15
14
|
import { d as defineCustomElement$3 } from './radio.js';
|
|
16
15
|
import { d as defineCustomElement$2 } from './radio-group.js';
|
|
17
16
|
import { d as defineCustomElement$1 } from './ripple-effect.js';
|
|
@@ -118,7 +117,7 @@ const SelectPopover = /*@__PURE__*/ proxyCustomElement(class SelectPopover exten
|
|
|
118
117
|
render() {
|
|
119
118
|
const { header, message, options, subHeader } = this;
|
|
120
119
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
121
|
-
return (h(Host, { key: '
|
|
120
|
+
return (h(Host, { key: '7b93c55895f66fc6431862b7b47eeb60eaa8c292', class: getIonMode(this) }, h("ion-list", { key: '3a74ec35ec9b627a192d8ad3a206f81df838342b' }, header !== undefined && h("ion-list-header", null, header), hasSubHeaderOrMessage && (h("ion-item", null, h("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && h("h3", null, subHeader), message !== undefined && h("p", null, message)))), this.renderOptions(options))));
|
|
122
121
|
}
|
|
123
122
|
get el() { return this; }
|
|
124
123
|
static get style() { return {
|
|
@@ -136,7 +135,7 @@ function defineCustomElement() {
|
|
|
136
135
|
if (typeof customElements === "undefined") {
|
|
137
136
|
return;
|
|
138
137
|
}
|
|
139
|
-
const components = ["ion-select-popover", "ion-checkbox", "ion-icon", "ion-item", "ion-label", "ion-list", "ion-list-header", "ion-
|
|
138
|
+
const components = ["ion-select-popover", "ion-checkbox", "ion-icon", "ion-item", "ion-label", "ion-list", "ion-list-header", "ion-radio", "ion-radio-group", "ion-ripple-effect"];
|
|
140
139
|
components.forEach(tagName => { switch (tagName) {
|
|
141
140
|
case "ion-select-popover":
|
|
142
141
|
if (!customElements.get(tagName)) {
|
|
@@ -144,36 +143,31 @@ function defineCustomElement() {
|
|
|
144
143
|
}
|
|
145
144
|
break;
|
|
146
145
|
case "ion-checkbox":
|
|
147
|
-
if (!customElements.get(tagName)) {
|
|
148
|
-
defineCustomElement$a();
|
|
149
|
-
}
|
|
150
|
-
break;
|
|
151
|
-
case "ion-icon":
|
|
152
146
|
if (!customElements.get(tagName)) {
|
|
153
147
|
defineCustomElement$9();
|
|
154
148
|
}
|
|
155
149
|
break;
|
|
156
|
-
case "ion-
|
|
150
|
+
case "ion-icon":
|
|
157
151
|
if (!customElements.get(tagName)) {
|
|
158
152
|
defineCustomElement$8();
|
|
159
153
|
}
|
|
160
154
|
break;
|
|
161
|
-
case "ion-
|
|
155
|
+
case "ion-item":
|
|
162
156
|
if (!customElements.get(tagName)) {
|
|
163
157
|
defineCustomElement$7();
|
|
164
158
|
}
|
|
165
159
|
break;
|
|
166
|
-
case "ion-
|
|
160
|
+
case "ion-label":
|
|
167
161
|
if (!customElements.get(tagName)) {
|
|
168
162
|
defineCustomElement$6();
|
|
169
163
|
}
|
|
170
164
|
break;
|
|
171
|
-
case "ion-list
|
|
165
|
+
case "ion-list":
|
|
172
166
|
if (!customElements.get(tagName)) {
|
|
173
167
|
defineCustomElement$5();
|
|
174
168
|
}
|
|
175
169
|
break;
|
|
176
|
-
case "ion-
|
|
170
|
+
case "ion-list-header":
|
|
177
171
|
if (!customElements.get(tagName)) {
|
|
178
172
|
defineCustomElement$4();
|
|
179
173
|
}
|
package/components/spinner.js
CHANGED
|
@@ -185,7 +185,7 @@ const Spinner = /*@__PURE__*/ proxyCustomElement(class Spinner extends HTMLEleme
|
|
|
185
185
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
return (h(Host, { key: '
|
|
188
|
+
return (h(Host, { key: 'd33d08486ee9d9069abbe37b17e58fc2c321a414', class: createColorClasses(self.color, {
|
|
189
189
|
[mode]: true,
|
|
190
190
|
[`spinner-${spinnerName}`]: true,
|
|
191
191
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|