@ionic/core 8.8.14-dev.11783984044.10eaba06 → 8.8.14-dev.11784037956.17449639
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/index.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-picker-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +4 -0
- package/components/ion-picker-legacy.d.ts +11 -0
- package/components/ion-picker-legacy.js +4 -0
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- 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-ripple-effect.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/components/{p-DpV-p5Xs.js → p-5bE_Wz4Y.js} +1 -1
- package/components/p-B1BWKArA.js +4 -0
- package/components/p-B4PlLGHT.js +4 -0
- package/components/{p-r0aq7dpt.js → p-B60hm8Qv.js} +1 -1
- package/components/p-BFsEcwW9.js +4 -0
- package/components/{p-Buf_7zcy.js → p-BHrrc-3d.js} +1 -1
- package/components/{p-XJWMAP8m.js → p-BLmJ0zRm.js} +1 -1
- package/components/{p-DhkITZ-y.js → p-BSEgsdFI.js} +1 -1
- package/components/p-CFRyvUvJ.js +4 -0
- package/components/p-CU5rbWAW.js +4 -0
- package/components/{p-Dz74mwlk.js → p-Cfx4M1Bn.js} +1 -1
- package/components/p-CgLiHbz0.js +4 -0
- package/components/p-MLyEeL3Q.js +4 -0
- package/components/p-PgMVWD8U.js +4 -0
- package/components/p-k_E4tX5Z.js +4 -0
- package/components/{p-wk2QqrAo.js → p-rCa2eL0j.js} +1 -1
- package/dist/cjs/config-xninhj0J.js +201 -0
- package/dist/cjs/index.cjs.js +6 -6
- package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -27
- package/dist/cjs/ion-alert.cjs.entry.js +25 -64
- package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
- package/dist/cjs/ion-img.cjs.entry.js +1 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -3
- package/dist/cjs/ion-input.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +5 -10
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +33 -23
- package/dist/cjs/ion-popover.cjs.entry.js +5 -9
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +30 -84
- package/dist/cjs/ion-select_3.cjs.entry.js +49 -407
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +5 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-DSmSrd_4.js → overlays-B9UiYZ4R.js} +30 -27
- package/dist/collection/collection-manifest.json +10 -6
- package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -229
- package/dist/collection/components/action-sheet/action-sheet.js +5 -24
- package/dist/collection/components/action-sheet/action-sheet.md.css +2 -175
- package/dist/collection/components/alert/alert.ios.css +10 -280
- package/dist/collection/components/alert/alert.js +21 -59
- package/dist/collection/components/alert/alert.md.css +20 -269
- package/dist/collection/components/img/img.js +1 -6
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +3 -7
- package/dist/collection/components/modal/gestures/sheet.js +8 -0
- package/dist/collection/components/modal/gestures/swipe-to-close.js +8 -0
- package/dist/collection/components/modal/modal.ios.css +8 -0
- package/dist/collection/components/modal/modal.js +17 -23
- package/dist/collection/components/modal/modal.md.css +8 -0
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
- package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
- package/dist/collection/components/picker-legacy/picker.js +890 -0
- package/dist/collection/components/picker-legacy/picker.md.css +287 -0
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
- package/dist/collection/components/popover/popover.ios.css +0 -15
- package/dist/collection/components/popover/popover.js +3 -7
- package/dist/collection/components/popover/popover.md.css +0 -15
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +4 -4
- package/dist/collection/components/range/range.js +3 -3
- 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 +5 -38
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +9 -9
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +2 -2
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.ios.css +0 -33
- package/dist/collection/components/select/select.js +16 -323
- package/dist/collection/components/select/select.md.css +0 -33
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -219
- package/dist/collection/components/select-modal/select-modal.js +26 -79
- package/dist/collection/components/select-modal/select-modal.md.css +0 -165
- package/dist/collection/components/select-option/select-option.js +3 -67
- package/dist/collection/components/select-popover/select-popover.ios.css +0 -219
- package/dist/collection/components/select-popover/select-popover.js +26 -78
- package/dist/collection/components/select-popover/select-popover.md.css +0 -165
- 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/textarea.js +2 -2
- 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/index.js +1 -1
- package/dist/collection/utils/overlays.js +29 -26
- package/dist/collection/utils/sanitization/index.js +18 -274
- package/dist/docs.json +1177 -485
- package/dist/esm/config-DQCONYYp.js +195 -0
- package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
- package/dist/esm/index.js +2 -3
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +7 -27
- package/dist/esm/ion-alert.entry.js +24 -63
- package/dist/esm/ion-app_8.entry.js +9 -23
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +641 -5
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +2 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +1 -2
- package/dist/esm/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +5 -5
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +4 -9
- package/dist/esm/ion-menu_3.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +33 -23
- package/dist/esm/ion-popover.entry.js +5 -9
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +3 -3
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +4 -5
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +6 -6
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +30 -84
- package/dist/esm/ion-select_3.entry.js +52 -410
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +4 -5
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-DLNOHWNc.js → overlays-Bmfhux69.js} +31 -28
- package/dist/html.html-data.json +79 -51
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01f81ea5.entry.js +4 -0
- package/dist/ionic/p-02473803.entry.js +4 -0
- package/dist/ionic/{p-fe4aa1db.entry.js → p-0fa9c382.entry.js} +1 -1
- package/dist/ionic/p-20b1a044.entry.js +4 -0
- package/dist/ionic/p-21eb76d5.entry.js +4 -0
- package/dist/ionic/p-27d30585.entry.js +4 -0
- package/dist/ionic/p-2bb2cb18.entry.js +4 -0
- package/dist/ionic/p-2f529a55.entry.js +4 -0
- package/dist/ionic/{p-80b44b3c.entry.js → p-3353c229.entry.js} +1 -1
- package/dist/ionic/{p-a7628bc7.entry.js → p-37e720da.entry.js} +1 -1
- package/dist/ionic/{p-9177f4ac.entry.js → p-390ca786.entry.js} +1 -1
- package/dist/ionic/{p-259d0d98.entry.js → p-3a126bca.entry.js} +1 -1
- package/dist/ionic/{p-4502a274.entry.js → p-3a7d1e91.entry.js} +1 -1
- package/dist/ionic/{p-627fabd9.entry.js → p-3ae5f277.entry.js} +1 -1
- package/dist/ionic/{p-a5213260.entry.js → p-4858af1f.entry.js} +1 -1
- package/dist/ionic/p-485fda23.entry.js +4 -0
- package/dist/ionic/p-48fa7fb1.entry.js +4 -0
- package/dist/ionic/p-4baa5b82.entry.js +4 -0
- package/dist/ionic/p-4d9181c7.entry.js +4 -0
- package/dist/ionic/p-50e1194a.entry.js +4 -0
- package/dist/ionic/p-532eb373.entry.js +4 -0
- package/dist/ionic/{p-76e92a84.entry.js → p-5d1da0a2.entry.js} +1 -1
- package/dist/ionic/{p-d2c7f046.entry.js → p-75dc25ba.entry.js} +1 -1
- package/dist/ionic/{p-b9ac1fe0.entry.js → p-84d5ce05.entry.js} +1 -1
- package/dist/ionic/{p-51cd1643.entry.js → p-874b4bd8.entry.js} +1 -1
- package/dist/ionic/{p-ef93ca92.entry.js → p-8eb8ee76.entry.js} +1 -1
- package/dist/ionic/{p-14095ba5.entry.js → p-8fce95d5.entry.js} +1 -1
- package/dist/ionic/{p-db1b6738.entry.js → p-9a65ac7f.entry.js} +1 -1
- package/dist/ionic/{p-7a37b3ce.entry.js → p-9f1103ce.entry.js} +1 -1
- package/dist/ionic/p-B0zdMdR0.js +4 -0
- package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
- package/dist/ionic/p-DzWaWHGc.js +4 -0
- package/dist/ionic/p-a21add2f.entry.js +4 -0
- package/dist/ionic/p-ab60b48a.entry.js +4 -0
- package/dist/ionic/{p-d8387b99.entry.js → p-c4d8641b.entry.js} +1 -1
- package/dist/ionic/{p-c93553d2.entry.js → p-cf91e738.entry.js} +1 -1
- package/dist/ionic/{p-629e4703.entry.js → p-e0be05c5.entry.js} +1 -1
- package/dist/ionic/p-ec090e0a.entry.js +4 -0
- package/dist/ionic/{p-b1599fca.entry.js → p-ef4c3bee.entry.js} +1 -1
- package/dist/ionic/p-f994dc44.entry.js +4 -0
- package/dist/ionic/{p-341032b3.entry.js → p-fabcce6c.entry.js} +1 -1
- package/dist/ionic/p-fd76f647.entry.js +4 -0
- package/dist/ionic/p-fda60562.entry.js +4 -0
- package/dist/types/components/img/img.d.ts +0 -2
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +4 -11
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
- package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
- package/dist/types/components/picker-legacy/picker.d.ts +158 -0
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +0 -31
- package/dist/types/components/select/select.d.ts +0 -18
- package/dist/types/components/select-option/select-option.d.ts +1 -42
- package/dist/types/components.d.ts +288 -72
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/config.d.ts +8 -0
- package/dist/types/utils/overlays.d.ts +9 -11
- package/dist/types/utils/sanitization/index.d.ts +2 -58
- package/hydrate/index.js +1188 -1407
- package/hydrate/index.mjs +1188 -1407
- package/package.json +5 -37
- package/components/p-279dFMvg.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BwKpO3Is.js +0 -4
- package/components/p-C-Rx1zny.js +0 -4
- package/components/p-CHzfYZbv.js +0 -4
- package/components/p-D4h1H_hh.js +0 -4
- package/components/p-LMGfIvTf.js +0 -4
- package/components/p-_lHSumhG.js +0 -4
- package/components/p-j9Da6cYO.js +0 -4
- package/components/p-jOtMJMv8.js +0 -4
- package/components/p-uTR_dEqg.js +0 -4
- package/dist/cjs/config-DWdFbSNK.js +0 -35
- package/dist/cjs/index-Cueg3U4w.js +0 -429
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
- package/dist/cjs/select-option-render-DTF50t5r.js +0 -124
- package/dist/collection/utils/overlay-control-label.js +0 -45
- package/dist/collection/utils/select-option-render.js +0 -119
- package/dist/esm/config-BwKpO3Is.js +0 -31
- package/dist/esm/index-DQSkZyOJ.js +0 -424
- package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
- package/dist/esm/select-option-render-B8nWZRnd.js +0 -122
- package/dist/ionic/p-038eb991.entry.js +0 -4
- package/dist/ionic/p-4621c387.entry.js +0 -4
- package/dist/ionic/p-4ace7762.entry.js +0 -4
- package/dist/ionic/p-4bb3eb60.entry.js +0 -4
- package/dist/ionic/p-4e9ec5c5.entry.js +0 -4
- package/dist/ionic/p-5c3ec490.entry.js +0 -4
- package/dist/ionic/p-5d1ac2c7.entry.js +0 -4
- package/dist/ionic/p-700795f6.entry.js +0 -4
- package/dist/ionic/p-79a36078.entry.js +0 -4
- package/dist/ionic/p-913b218a.entry.js +0 -4
- package/dist/ionic/p-BDtODLZ4.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BwKpO3Is.js +0 -4
- package/dist/ionic/p-Cg5-OQYy.js +0 -4
- package/dist/ionic/p-DCOvXkOm.js +0 -4
- package/dist/ionic/p-a9a33367.entry.js +0 -4
- package/dist/ionic/p-ad728198.entry.js +0 -4
- package/dist/ionic/p-bfc8c629.entry.js +0 -4
- package/dist/ionic/p-c08e666a.entry.js +0 -4
- package/dist/ionic/p-ce7992c4.entry.js +0 -4
- package/dist/ionic/p-ed797c72.entry.js +0 -4
- package/dist/ionic/p-f09f9642.entry.js +0 -4
- package/dist/ionic/p-f1c06f82.entry.js +0 -4
- package/dist/ionic/p-f718fccb.entry.js +0 -4
- package/dist/types/utils/overlay-control-label.d.ts +0 -32
- package/dist/types/utils/select-option-render.d.ts +0 -53
|
@@ -7,10 +7,8 @@ import { createButtonActiveGesture } from "../../utils/gesture/button-active";
|
|
|
7
7
|
import { raf } from "../../utils/helpers";
|
|
8
8
|
import { createLockController } from "../../utils/lock-controller";
|
|
9
9
|
import { printIonWarning } from "../../utils/logging/index";
|
|
10
|
-
import {
|
|
11
|
-
import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
|
|
10
|
+
import { createDelegateController, createTriggerController, BACKDROP, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
|
|
12
11
|
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
13
|
-
import { renderOptionLabel } from "../../utils/select-option-render";
|
|
14
12
|
import { getClassMap } from "../../utils/theme";
|
|
15
13
|
import { config } from "../../global/config";
|
|
16
14
|
import { getIonMode } from "../../global/ionic-global";
|
|
@@ -181,7 +179,22 @@ export class Alert {
|
|
|
181
179
|
this.inputType = inputTypes.values().next().value;
|
|
182
180
|
this.processedInputs = inputs.map((i, index) => {
|
|
183
181
|
var _a;
|
|
184
|
-
return
|
|
182
|
+
return ({
|
|
183
|
+
type: i.type || 'text',
|
|
184
|
+
name: i.name || `${index}`,
|
|
185
|
+
placeholder: i.placeholder || '',
|
|
186
|
+
value: i.value,
|
|
187
|
+
label: i.label,
|
|
188
|
+
checked: !!i.checked,
|
|
189
|
+
disabled: !!i.disabled,
|
|
190
|
+
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
191
|
+
handler: i.handler,
|
|
192
|
+
min: i.min,
|
|
193
|
+
max: i.max,
|
|
194
|
+
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
195
|
+
attributes: i.attributes || {},
|
|
196
|
+
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
197
|
+
});
|
|
185
198
|
});
|
|
186
199
|
}
|
|
187
200
|
connectedCallback() {
|
|
@@ -209,10 +222,6 @@ export class Alert {
|
|
|
209
222
|
this.gesture.destroy();
|
|
210
223
|
this.gesture = undefined;
|
|
211
224
|
}
|
|
212
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
213
|
-
if (this.presented) {
|
|
214
|
-
cleanupRootFocusTrapAccessibility();
|
|
215
|
-
}
|
|
216
225
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
217
226
|
this.buttonGroupResizeObserver = undefined;
|
|
218
227
|
}
|
|
@@ -383,61 +392,14 @@ export class Alert {
|
|
|
383
392
|
if (inputs.length === 0) {
|
|
384
393
|
return null;
|
|
385
394
|
}
|
|
386
|
-
return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
387
|
-
var _a, _b;
|
|
388
|
-
/**
|
|
389
|
-
* Cast to `SelectAlertInput` to access rich content
|
|
390
|
-
* fields (`startContent`, `endContent`, `description`)
|
|
391
|
-
* that are passed through from `ion-select` but not
|
|
392
|
-
* part of the public `AlertInput` interface.
|
|
393
|
-
*/
|
|
394
|
-
const richInput = i;
|
|
395
|
-
const optionLabelOptions = {
|
|
396
|
-
id: richInput.id,
|
|
397
|
-
label: richInput.label,
|
|
398
|
-
startContent: richInput.startContent,
|
|
399
|
-
endContent: richInput.endContent,
|
|
400
|
-
description: richInput.description,
|
|
401
|
-
};
|
|
402
|
-
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
403
|
-
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
404
|
-
return (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: {
|
|
405
|
-
'alert-button-inner': true,
|
|
406
|
-
[`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
407
|
-
[`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
408
|
-
} }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && h("ion-ripple-effect", null)));
|
|
409
|
-
})));
|
|
395
|
+
return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), h("div", { class: "alert-checkbox-label" }, i.label)), mode === 'md' && h("ion-ripple-effect", null))))));
|
|
410
396
|
}
|
|
411
397
|
renderRadio() {
|
|
412
398
|
const inputs = this.processedInputs;
|
|
413
|
-
const mode = getIonMode(this);
|
|
414
399
|
if (inputs.length === 0) {
|
|
415
400
|
return null;
|
|
416
401
|
}
|
|
417
|
-
return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
418
|
-
var _a, _b;
|
|
419
|
-
/**
|
|
420
|
-
* Cast to `SelectAlertInput` to access rich content
|
|
421
|
-
* fields (`startContent`, `endContent`, `description`)
|
|
422
|
-
* that are passed through from `ion-select` but not
|
|
423
|
-
* part of the public `AlertInput` interface.
|
|
424
|
-
*/
|
|
425
|
-
const richInput = i;
|
|
426
|
-
const optionLabelOptions = {
|
|
427
|
-
id: richInput.id,
|
|
428
|
-
label: richInput.label,
|
|
429
|
-
startContent: richInput.startContent,
|
|
430
|
-
endContent: richInput.endContent,
|
|
431
|
-
description: richInput.description,
|
|
432
|
-
};
|
|
433
|
-
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
|
|
434
|
-
const defaultJustify = getOverlayLabelJustify(mode, 'radio');
|
|
435
|
-
return (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: {
|
|
436
|
-
'alert-button-inner': true,
|
|
437
|
-
[`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
438
|
-
[`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
439
|
-
} }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
440
|
-
})));
|
|
402
|
+
return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), h("div", { class: "alert-radio-label" }, i.label)))))));
|
|
441
403
|
}
|
|
442
404
|
renderInput() {
|
|
443
405
|
const inputs = this.processedInputs;
|
|
@@ -540,9 +502,9 @@ export class Alert {
|
|
|
540
502
|
* If neither are defined, do not set aria-labelledby.
|
|
541
503
|
*/
|
|
542
504
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
543
|
-
return (h(Host, { key: '
|
|
505
|
+
return (h(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
|
|
544
506
|
zIndex: `${20000 + overlayIndex}`,
|
|
545
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '
|
|
507
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), h("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (h("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
|
|
546
508
|
}
|
|
547
509
|
static get is() { return "ion-alert"; }
|
|
548
510
|
static get encapsulation() { return "scoped"; }
|
|
@@ -1,168 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A heuristic that applies CSS to tablet
|
|
3
|
-
* viewports.
|
|
4
|
-
*
|
|
5
|
-
* Usage:
|
|
6
|
-
* @include tablet-viewport() {
|
|
7
|
-
* :host {
|
|
8
|
-
* background-color: green;
|
|
9
|
-
* }
|
|
10
|
-
* }
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* A heuristic that applies CSS to mobile
|
|
14
|
-
* viewports (i.e. phones, not tablets).
|
|
15
|
-
*
|
|
16
|
-
* Usage:
|
|
17
|
-
* @include mobile-viewport() {
|
|
18
|
-
* :host {
|
|
19
|
-
* background-color: blue;
|
|
20
|
-
* }
|
|
21
|
-
* }
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* Convert a font size to a dynamic font size.
|
|
25
|
-
* Fonts that participate in Dynamic Type should use
|
|
26
|
-
* dynamic font sizes.
|
|
27
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
28
|
-
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
29
|
-
* convert to a unit other than $baselineUnit.
|
|
30
|
-
*/
|
|
31
|
-
/**
|
|
32
|
-
* Convert a font size to a dynamic font size but impose
|
|
33
|
-
* a maximum font size.
|
|
34
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
35
|
-
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
36
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
37
|
-
* convert to a unit other than $baselineUnit.
|
|
38
|
-
*/
|
|
39
|
-
/**
|
|
40
|
-
* Convert a font size to a dynamic font size but impose
|
|
41
|
-
* a minimum font size.
|
|
42
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
43
|
-
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
44
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
45
|
-
* convert to a unit other than $baselineUnit.
|
|
46
|
-
*/
|
|
47
|
-
/**
|
|
48
|
-
* Convert a font size to a dynamic font size but impose
|
|
49
|
-
* maximum and minimum font sizes.
|
|
50
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
51
|
-
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
52
|
-
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
53
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
54
|
-
* convert to a unit other than $baselineUnit.
|
|
55
|
-
*/
|
|
56
|
-
.action-sheet-button-label-has-rich-content,
|
|
57
|
-
.alert-radio-label-has-rich-content,
|
|
58
|
-
.alert-checkbox-label-has-rich-content,
|
|
59
|
-
.select-option-label-has-rich-content {
|
|
60
|
-
display: flex;
|
|
61
|
-
align-items: center;
|
|
62
|
-
gap: 16px;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Outer label container has rich content
|
|
67
|
-
* (start, content, description, end) that needs the
|
|
68
|
-
* label to span the available row width.
|
|
69
|
-
*/
|
|
70
|
-
.action-sheet-button-label-has-rich-content,
|
|
71
|
-
.alert-radio-label-has-rich-content,
|
|
72
|
-
.alert-checkbox-label-has-rich-content,
|
|
73
|
-
.select-option-content {
|
|
74
|
-
flex: 1;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.action-sheet-button-label-text,
|
|
78
|
-
.alert-checkbox-label-text,
|
|
79
|
-
.alert-radio-label-text,
|
|
80
|
-
.select-option-label-text {
|
|
81
|
-
display: flex;
|
|
82
|
-
align-items: center;
|
|
83
|
-
gap: 12px;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.select-option-start,
|
|
87
|
-
.select-option-end {
|
|
88
|
-
display: flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
gap: 8px;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.select-option-description {
|
|
94
|
-
padding-left: 0;
|
|
95
|
-
padding-right: 0;
|
|
96
|
-
padding-top: 5px;
|
|
97
|
-
padding-bottom: 0;
|
|
98
|
-
display: block;
|
|
99
|
-
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
100
|
-
font-size: 0.75rem;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Non-rich labels are plain text and should ellipsize when they
|
|
105
|
-
* overflow the row. Rich-content labels switch to flex so the
|
|
106
|
-
* start / content / end pieces can lay out side-by-side and wrap.
|
|
107
|
-
*/
|
|
108
|
-
.select-option-label:not(.select-option-label-has-rich-content) {
|
|
109
|
-
text-overflow: ellipsis;
|
|
110
|
-
white-space: nowrap;
|
|
111
|
-
overflow: hidden;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.select-option-label-has-rich-content {
|
|
115
|
-
display: flex;
|
|
116
|
-
align-items: center;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
ion-radio.select-option-has-rich-content::part(label),
|
|
120
|
-
ion-checkbox.select-option-has-rich-content::part(label),
|
|
121
|
-
.select-option-content {
|
|
122
|
-
flex: 1;
|
|
123
|
-
/**
|
|
124
|
-
* Let rich content wrap instead of inheriting the label part's
|
|
125
|
-
* single-line truncation, so arbitrary slotted elements render
|
|
126
|
-
* without clipping.
|
|
127
|
-
*/
|
|
128
|
-
white-space: normal;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Cap slotted children so they can't stretch the option
|
|
133
|
-
* row out of proportion, keeping rows visually uniform
|
|
134
|
-
* regardless of the content.
|
|
135
|
-
*/
|
|
136
|
-
.select-option-start > ion-avatar,
|
|
137
|
-
.select-option-end > ion-avatar {
|
|
138
|
-
width: 40px;
|
|
139
|
-
height: 40px;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.select-option-start > ion-icon,
|
|
143
|
-
.select-option-end > ion-icon {
|
|
144
|
-
width: 24px;
|
|
145
|
-
height: 24px;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
.select-option-start > ion-img,
|
|
149
|
-
.select-option-start > img,
|
|
150
|
-
.select-option-start > svg,
|
|
151
|
-
.select-option-start > ion-thumbnail,
|
|
152
|
-
.select-option-end > ion-img,
|
|
153
|
-
.select-option-end > img,
|
|
154
|
-
.select-option-end > svg,
|
|
155
|
-
.select-option-end > ion-thumbnail {
|
|
156
|
-
width: 56px;
|
|
157
|
-
height: 56px;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
.select-option-start > video,
|
|
161
|
-
.select-option-end > video {
|
|
162
|
-
width: 114px;
|
|
163
|
-
height: 56px;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
1
|
/**
|
|
167
2
|
* Convert a font size to a dynamic font size.
|
|
168
3
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -407,39 +242,6 @@ ion-checkbox.select-option-has-rich-content::part(label),
|
|
|
407
242
|
min-height: inherit;
|
|
408
243
|
}
|
|
409
244
|
|
|
410
|
-
/**
|
|
411
|
-
* Label is on the right of the radio in LTR and
|
|
412
|
-
* on the left in RTL.
|
|
413
|
-
*/
|
|
414
|
-
.radio-label-placement-start,
|
|
415
|
-
.checkbox-label-placement-start {
|
|
416
|
-
flex-direction: row-reverse;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
/**
|
|
420
|
-
* Label is on the left of the radio in LTR and
|
|
421
|
-
* on the right in RTL.
|
|
422
|
-
*/
|
|
423
|
-
.radio-label-placement-end,
|
|
424
|
-
.checkbox-label-placement-end {
|
|
425
|
-
flex-direction: row;
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
.radio-justify-start,
|
|
429
|
-
.checkbox-justify-start {
|
|
430
|
-
justify-content: start;
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
.radio-justify-end,
|
|
434
|
-
.checkbox-justify-end {
|
|
435
|
-
justify-content: end;
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
.radio-justify-space-between,
|
|
439
|
-
.checkbox-justify-space-between {
|
|
440
|
-
justify-content: space-between;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
245
|
.alert-input-disabled,
|
|
444
246
|
.alert-checkbox-button-disabled .alert-button-inner,
|
|
445
247
|
.alert-radio-button-disabled .alert-button-inner {
|
|
@@ -617,10 +419,10 @@ textarea.alert-input {
|
|
|
617
419
|
}
|
|
618
420
|
|
|
619
421
|
.alert-head {
|
|
620
|
-
-webkit-padding-start:
|
|
621
|
-
padding-inline-start:
|
|
622
|
-
-webkit-padding-end:
|
|
623
|
-
padding-inline-end:
|
|
422
|
+
-webkit-padding-start: 23px;
|
|
423
|
+
padding-inline-start: 23px;
|
|
424
|
+
-webkit-padding-end: 23px;
|
|
425
|
+
padding-inline-end: 23px;
|
|
624
426
|
padding-top: 20px;
|
|
625
427
|
padding-bottom: 15px;
|
|
626
428
|
text-align: start;
|
|
@@ -720,56 +522,30 @@ textarea.alert-input {
|
|
|
720
522
|
}
|
|
721
523
|
|
|
722
524
|
.alert-radio-label {
|
|
525
|
+
-webkit-padding-start: 52px;
|
|
526
|
+
padding-inline-start: 52px;
|
|
527
|
+
-webkit-padding-end: 26px;
|
|
528
|
+
padding-inline-end: 26px;
|
|
723
529
|
padding-top: 13px;
|
|
724
530
|
padding-bottom: 13px;
|
|
725
|
-
|
|
531
|
+
flex: 1;
|
|
726
532
|
color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
|
|
727
533
|
font-size: 1rem;
|
|
728
534
|
}
|
|
729
535
|
|
|
730
|
-
.radio-label-placement-end .alert-radio-label {
|
|
731
|
-
/**
|
|
732
|
-
* The label's inline padding clears space for the icon on the icon's side.
|
|
733
|
-
* When the label is placed at the end, the icon is at the start, so the
|
|
734
|
-
* larger padding clears it on the start side.
|
|
735
|
-
*/
|
|
736
|
-
-webkit-padding-start: 56px;
|
|
737
|
-
padding-inline-start: 56px;
|
|
738
|
-
-webkit-padding-end: 24px;
|
|
739
|
-
padding-inline-end: 24px;
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
.radio-label-placement-start .alert-radio-label {
|
|
743
|
-
/**
|
|
744
|
-
* The label's inline padding clears space for the icon on the icon's side.
|
|
745
|
-
* When the label is placed at the start, the icon is at the end, so the
|
|
746
|
-
* larger padding clears it on the end side.
|
|
747
|
-
*/
|
|
748
|
-
-webkit-padding-start: 24px;
|
|
749
|
-
padding-inline-start: 24px;
|
|
750
|
-
-webkit-padding-end: 56px;
|
|
751
|
-
padding-inline-end: 56px;
|
|
752
|
-
}
|
|
753
|
-
|
|
754
536
|
.alert-radio-icon {
|
|
755
537
|
top: 0;
|
|
756
538
|
border-radius: 50%;
|
|
757
539
|
display: block;
|
|
758
540
|
position: relative;
|
|
759
|
-
flex-shrink: 0;
|
|
760
541
|
width: 20px;
|
|
761
542
|
height: 20px;
|
|
762
543
|
border-width: 2px;
|
|
763
544
|
border-style: solid;
|
|
764
545
|
border-color: var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));
|
|
765
546
|
}
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
inset-inline-start: 24px;
|
|
769
|
-
}
|
|
770
|
-
|
|
771
|
-
.radio-label-placement-start .alert-radio-icon {
|
|
772
|
-
inset-inline-end: 24px;
|
|
547
|
+
.alert-radio-icon {
|
|
548
|
+
inset-inline-start: 26px;
|
|
773
549
|
}
|
|
774
550
|
|
|
775
551
|
.alert-radio-inner {
|
|
@@ -799,42 +575,22 @@ textarea.alert-input {
|
|
|
799
575
|
}
|
|
800
576
|
|
|
801
577
|
.alert-checkbox-label {
|
|
578
|
+
-webkit-padding-start: 53px;
|
|
579
|
+
padding-inline-start: 53px;
|
|
580
|
+
-webkit-padding-end: 26px;
|
|
581
|
+
padding-inline-end: 26px;
|
|
802
582
|
padding-top: 13px;
|
|
803
583
|
padding-bottom: 13px;
|
|
804
|
-
|
|
584
|
+
flex: 1;
|
|
585
|
+
width: calc(100% - 53px);
|
|
805
586
|
color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
|
|
806
587
|
font-size: 1rem;
|
|
807
588
|
}
|
|
808
589
|
|
|
809
|
-
.checkbox-label-placement-end .alert-checkbox-label {
|
|
810
|
-
/**
|
|
811
|
-
* The label's inline padding clears space for the icon on the icon's side.
|
|
812
|
-
* When the label is placed at the end, the icon is at the start, so the
|
|
813
|
-
* larger padding clears it on the start side.
|
|
814
|
-
*/
|
|
815
|
-
-webkit-padding-start: 56px;
|
|
816
|
-
padding-inline-start: 56px;
|
|
817
|
-
-webkit-padding-end: 24px;
|
|
818
|
-
padding-inline-end: 24px;
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
.checkbox-label-placement-start .alert-checkbox-label {
|
|
822
|
-
/**
|
|
823
|
-
* The label's inline padding clears space for the icon on the icon's side.
|
|
824
|
-
* When the label is placed at the start, the icon is at the end, so the
|
|
825
|
-
* larger padding clears it on the end side.
|
|
826
|
-
*/
|
|
827
|
-
-webkit-padding-start: 24px;
|
|
828
|
-
padding-inline-start: 24px;
|
|
829
|
-
-webkit-padding-end: 56px;
|
|
830
|
-
padding-inline-end: 56px;
|
|
831
|
-
}
|
|
832
|
-
|
|
833
590
|
.alert-checkbox-icon {
|
|
834
591
|
top: 0;
|
|
835
592
|
border-radius: 2px;
|
|
836
593
|
position: relative;
|
|
837
|
-
flex-shrink: 0;
|
|
838
594
|
width: 16px;
|
|
839
595
|
height: 16px;
|
|
840
596
|
border-width: 2px;
|
|
@@ -842,13 +598,8 @@ textarea.alert-input {
|
|
|
842
598
|
border-color: var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));
|
|
843
599
|
contain: strict;
|
|
844
600
|
}
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
inset-inline-start: 24px;
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
.checkbox-label-placement-start .alert-checkbox-icon {
|
|
851
|
-
inset-inline-end: 24px;
|
|
601
|
+
.alert-checkbox-icon {
|
|
602
|
+
inset-inline-start: 26px;
|
|
852
603
|
}
|
|
853
604
|
|
|
854
605
|
[aria-checked=true] .alert-checkbox-icon {
|
|
@@ -907,7 +658,7 @@ textarea.alert-input {
|
|
|
907
658
|
overflow: hidden;
|
|
908
659
|
}
|
|
909
660
|
|
|
910
|
-
.alert-button-
|
|
661
|
+
.alert-button-inner {
|
|
911
662
|
justify-content: flex-end;
|
|
912
663
|
}
|
|
913
664
|
|
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
5
|
import { inheritAttributes } from "../../utils/helpers";
|
|
6
|
-
import { printIonWarning } from "../../utils/logging/index";
|
|
7
6
|
import { getIonMode } from "../../global/ionic-global";
|
|
8
7
|
/**
|
|
9
|
-
* @deprecated
|
|
10
|
-
*
|
|
11
8
|
* @part image - The inner `img` element.
|
|
12
9
|
*/
|
|
13
10
|
export class Img {
|
|
@@ -27,8 +24,6 @@ export class Img {
|
|
|
27
24
|
this.inheritedAttributes = inheritAttributes(this.el, ['draggable']);
|
|
28
25
|
}
|
|
29
26
|
componentDidLoad() {
|
|
30
|
-
printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
|
|
31
|
-
'Use a native <img> with the loading="lazy" attribute instead.', this.el);
|
|
32
27
|
this.addIO();
|
|
33
28
|
}
|
|
34
29
|
disconnectedCallback() {
|
|
@@ -81,7 +76,7 @@ export class Img {
|
|
|
81
76
|
render() {
|
|
82
77
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
83
78
|
const { draggable } = inheritedAttributes;
|
|
84
|
-
return (h(Host, { key: '
|
|
79
|
+
return (h(Host, { key: '9bfaa659b0680189fd29f3acb2fdce7f70be6060', class: getIonMode(this) }, h("img", { key: 'd484beae0d5cbe0406958bfad40cdd6c05625340', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
85
80
|
}
|
|
86
81
|
static get is() { return "ion-img"; }
|
|
87
82
|
static get encapsulation() { return "shadow"; }
|
|
@@ -56,7 +56,7 @@ export class Input {
|
|
|
56
56
|
/**
|
|
57
57
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
58
58
|
*/
|
|
59
|
-
this.autocorrect =
|
|
59
|
+
this.autocorrect = 'off';
|
|
60
60
|
/**
|
|
61
61
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
62
62
|
*
|
|
@@ -540,7 +540,7 @@ export class Input {
|
|
|
540
540
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
541
541
|
*/
|
|
542
542
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
543
|
-
return (h(Host, { key: '
|
|
543
|
+
return (h(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses(this.color, {
|
|
544
544
|
[mode]: true,
|
|
545
545
|
'has-value': hasValue,
|
|
546
546
|
'has-focus': hasFocus,
|
|
@@ -551,14 +551,14 @@ export class Input {
|
|
|
551
551
|
'in-item': inItem,
|
|
552
552
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
553
553
|
'input-disabled': disabled,
|
|
554
|
-
}) }, h("label", { key: '
|
|
554
|
+
}) }, h("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, h("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), h("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { key: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
555
555
|
/**
|
|
556
556
|
* This prevents mobile browsers from
|
|
557
557
|
* blurring the input when the clear
|
|
558
558
|
* button is activated.
|
|
559
559
|
*/
|
|
560
560
|
ev.preventDefault();
|
|
561
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
561
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), h("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && h("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
|
|
562
562
|
}
|
|
563
563
|
static get is() { return "ion-input"; }
|
|
564
564
|
static get encapsulation() { return "scoped"; }
|
|
@@ -650,11 +650,11 @@ export class Input {
|
|
|
650
650
|
"defaultValue": "'off'"
|
|
651
651
|
},
|
|
652
652
|
"autocorrect": {
|
|
653
|
-
"type": "
|
|
653
|
+
"type": "string",
|
|
654
654
|
"mutable": false,
|
|
655
655
|
"complexType": {
|
|
656
|
-
"original": "
|
|
657
|
-
"resolved": "
|
|
656
|
+
"original": "'on' | 'off'",
|
|
657
|
+
"resolved": "\"off\" | \"on\"",
|
|
658
658
|
"references": {}
|
|
659
659
|
},
|
|
660
660
|
"required": false,
|
|
@@ -667,7 +667,7 @@ export class Input {
|
|
|
667
667
|
"setter": false,
|
|
668
668
|
"reflect": false,
|
|
669
669
|
"attribute": "autocorrect",
|
|
670
|
-
"defaultValue": "
|
|
670
|
+
"defaultValue": "'off'"
|
|
671
671
|
},
|
|
672
672
|
"autofocus": {
|
|
673
673
|
"type": "boolean",
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
6
6
|
import { raf } from "../../utils/helpers";
|
|
7
7
|
import { createLockController } from "../../utils/lock-controller";
|
|
8
|
-
import { BACKDROP,
|
|
8
|
+
import { BACKDROP, dismiss, eventMethod, prepareOverlay, present, createDelegateController, createTriggerController, setOverlayId, } from "../../utils/overlays";
|
|
9
9
|
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
10
10
|
import { getClassMap } from "../../utils/theme";
|
|
11
11
|
import { config } from "../../global/config";
|
|
@@ -114,10 +114,6 @@ export class Loading {
|
|
|
114
114
|
}
|
|
115
115
|
disconnectedCallback() {
|
|
116
116
|
this.triggerController.removeClickListener();
|
|
117
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
118
|
-
if (this.presented) {
|
|
119
|
-
cleanupRootFocusTrapAccessibility();
|
|
120
|
-
}
|
|
121
117
|
}
|
|
122
118
|
/**
|
|
123
119
|
* Present the loading overlay after it has been created.
|
|
@@ -183,9 +179,9 @@ export class Loading {
|
|
|
183
179
|
* Otherwise, don't set aria-labelledby.
|
|
184
180
|
*/
|
|
185
181
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
186
|
-
return (h(Host, Object.assign({ key: '
|
|
182
|
+
return (h(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
187
183
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
188
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
184
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, h("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
|
|
189
185
|
}
|
|
190
186
|
static get is() { return "ion-loading"; }
|
|
191
187
|
static get encapsulation() { return "scoped"; }
|
|
@@ -223,7 +223,14 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
223
223
|
}
|
|
224
224
|
return true;
|
|
225
225
|
};
|
|
226
|
+
/**
|
|
227
|
+
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
228
|
+
* start a native drag that swallows the gesture's pointer events.
|
|
229
|
+
* Cancel native drag while the gesture is active.
|
|
230
|
+
*/
|
|
231
|
+
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
226
232
|
const onStart = (detail) => {
|
|
233
|
+
baseEl.addEventListener('dragstart', preventNativeDragStart);
|
|
227
234
|
/**
|
|
228
235
|
* If canDismiss is anything other than `true`
|
|
229
236
|
* then users should be able to swipe down
|
|
@@ -350,6 +357,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
350
357
|
onDragMove(eventDetail);
|
|
351
358
|
};
|
|
352
359
|
const onEnd = (detail) => {
|
|
360
|
+
baseEl.removeEventListener('dragstart', preventNativeDragStart);
|
|
353
361
|
const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
|
|
354
362
|
const eventDetail = {
|
|
355
363
|
currentY: detail.currentY,
|
|
@@ -95,8 +95,15 @@ export const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismi
|
|
|
95
95
|
}
|
|
96
96
|
return false;
|
|
97
97
|
};
|
|
98
|
+
/**
|
|
99
|
+
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
100
|
+
* start a native drag that swallows the gesture's pointer events.
|
|
101
|
+
* Cancel native drag while the gesture is active.
|
|
102
|
+
*/
|
|
103
|
+
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
98
104
|
const onStart = (detail) => {
|
|
99
105
|
const { deltaY } = detail;
|
|
106
|
+
el.addEventListener('dragstart', preventNativeDragStart);
|
|
100
107
|
/**
|
|
101
108
|
* Get the initial scrollY value so
|
|
102
109
|
* that we can correctly reset the scrollY
|
|
@@ -199,6 +206,7 @@ export const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismi
|
|
|
199
206
|
onDragMove(eventDetail);
|
|
200
207
|
};
|
|
201
208
|
const onEnd = (detail) => {
|
|
209
|
+
el.removeEventListener('dragstart', preventNativeDragStart);
|
|
202
210
|
const velocity = detail.velocityY;
|
|
203
211
|
const step = detail.deltaY / height;
|
|
204
212
|
const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;
|