@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
|
@@ -126,6 +126,14 @@ ion-backdrop {
|
|
|
126
126
|
z-index: 10;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
+
/**
|
|
130
|
+
* The wrapper receives programmatic focus for screen readers but should not
|
|
131
|
+
* show a visible focus ring, which is meant only for keyboard navigation.
|
|
132
|
+
*/
|
|
133
|
+
.modal-wrapper {
|
|
134
|
+
outline: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
129
137
|
.modal-shadow {
|
|
130
138
|
position: absolute;
|
|
131
139
|
background: transparent;
|
|
@@ -8,7 +8,7 @@ import { raf, inheritAttributes, hasLazyBuild, getElementRoot } from "../../util
|
|
|
8
8
|
import { createLockController } from "../../utils/lock-controller";
|
|
9
9
|
import { printIonWarning } from "../../utils/logging/index";
|
|
10
10
|
import { Style as StatusBarStyle, StatusBar } from "../../utils/native/status-bar";
|
|
11
|
-
import {
|
|
11
|
+
import { GESTURE, BACKDROP, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, FOCUS_TRAP_DISABLE_CLASS, } from "../../utils/overlays";
|
|
12
12
|
import { getClassMap } from "../../utils/theme";
|
|
13
13
|
import { deepReady, waitForMount } from "../../utils/transition/index";
|
|
14
14
|
import { config } from "../../global/config";
|
|
@@ -77,20 +77,13 @@ export class Modal {
|
|
|
77
77
|
/**
|
|
78
78
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
79
79
|
*
|
|
80
|
-
*
|
|
81
|
-
* `
|
|
82
|
-
* fullscreen or card modal).
|
|
80
|
+
* Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
|
|
81
|
+
* Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
|
|
83
82
|
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* operable with assistive technology.
|
|
87
|
-
*
|
|
88
|
-
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
89
|
-
* removed from the tab order.
|
|
90
|
-
*
|
|
91
|
-
* Defaults to `"cycle"`.
|
|
83
|
+
* Handle behavior is unavailable when the `handle` property is set to `false` or
|
|
84
|
+
* when the `breakpoints` property is not set (using a fullscreen or card modal).
|
|
92
85
|
*/
|
|
93
|
-
this.handleBehavior = '
|
|
86
|
+
this.handleBehavior = 'none';
|
|
94
87
|
/**
|
|
95
88
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
96
89
|
*/
|
|
@@ -282,10 +275,6 @@ export class Modal {
|
|
|
282
275
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
283
276
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
284
277
|
this.cleanupSafeAreaOverrides();
|
|
285
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
286
|
-
if (this.presented) {
|
|
287
|
-
cleanupRootFocusTrapAccessibility();
|
|
288
|
-
}
|
|
289
278
|
}
|
|
290
279
|
componentWillLoad() {
|
|
291
280
|
var _a;
|
|
@@ -1173,20 +1162,25 @@ export class Modal {
|
|
|
1173
1162
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1174
1163
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1175
1164
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
1176
|
-
return (h(Host, Object.assign({ key: '
|
|
1165
|
+
return (h(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
|
|
1177
1166
|
// Allow the modal to be navigable when the handle is focusable
|
|
1178
1167
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
1179
1168
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1180
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: '
|
|
1169
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), h("div", Object.assign({ key: '871a7ba7389f477acb011fc3b1c0a27760d0bfa7',
|
|
1181
1170
|
/*
|
|
1182
1171
|
role and aria-modal must be used on the
|
|
1183
1172
|
same element. They must also be set inside the
|
|
1184
1173
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1185
1174
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1175
|
+
|
|
1176
|
+
tabIndex={-1} is required so present() can move focus to this
|
|
1177
|
+
element (which carries the dialog role) instead of the role-less
|
|
1178
|
+
host. role="dialog" alone does not make an element focusable, so
|
|
1179
|
+
without the tabindex focus() would be a no-op.
|
|
1186
1180
|
*/
|
|
1187
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
1181
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '44017261773bc2593d451d2dc805ae83923e679c', class: "modal-handle",
|
|
1188
1182
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1189
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '
|
|
1183
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '006de71db3e69911ce6f4b10550ddb8aa0353997', onSlotchange: this.onSlotChange }))));
|
|
1190
1184
|
}
|
|
1191
1185
|
static get is() { return "ion-modal"; }
|
|
1192
1186
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1458,13 +1452,13 @@ export class Modal {
|
|
|
1458
1452
|
"optional": true,
|
|
1459
1453
|
"docs": {
|
|
1460
1454
|
"tags": [],
|
|
1461
|
-
"text": "The interaction behavior for the sheet modal when the handle is pressed.\n\
|
|
1455
|
+
"text": "The interaction behavior for the sheet modal when the handle is pressed.\n\nDefaults to `\"none\"`, which means the modal will not change size or position when the handle is pressed.\nSet to `\"cycle\"` to let the modal cycle between available breakpoints when pressed.\n\nHandle behavior is unavailable when the `handle` property is set to `false` or\nwhen the `breakpoints` property is not set (using a fullscreen or card modal)."
|
|
1462
1456
|
},
|
|
1463
1457
|
"getter": false,
|
|
1464
1458
|
"setter": false,
|
|
1465
1459
|
"reflect": false,
|
|
1466
1460
|
"attribute": "handle-behavior",
|
|
1467
|
-
"defaultValue": "'
|
|
1461
|
+
"defaultValue": "'none'"
|
|
1468
1462
|
},
|
|
1469
1463
|
"component": {
|
|
1470
1464
|
"type": "string",
|
|
@@ -126,6 +126,14 @@ ion-backdrop {
|
|
|
126
126
|
z-index: 10;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
+
/**
|
|
130
|
+
* The wrapper receives programmatic focus for screen readers but should not
|
|
131
|
+
* show a visible focus ring, which is meant only for keyboard navigation.
|
|
132
|
+
*/
|
|
133
|
+
.modal-wrapper {
|
|
134
|
+
outline: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
129
137
|
.modal-shadow {
|
|
130
138
|
position: absolute;
|
|
131
139
|
background: transparent;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
|
+
/**
|
|
6
|
+
* iOS Picker Enter Animation
|
|
7
|
+
*/
|
|
8
|
+
export const iosEnterAnimation = (baseEl) => {
|
|
9
|
+
const baseAnimation = createAnimation();
|
|
10
|
+
const backdropAnimation = createAnimation();
|
|
11
|
+
const wrapperAnimation = createAnimation();
|
|
12
|
+
backdropAnimation
|
|
13
|
+
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
14
|
+
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
15
|
+
.beforeStyles({
|
|
16
|
+
'pointer-events': 'none',
|
|
17
|
+
})
|
|
18
|
+
.afterClearStyles(['pointer-events']);
|
|
19
|
+
wrapperAnimation
|
|
20
|
+
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
21
|
+
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
22
|
+
return baseAnimation
|
|
23
|
+
.addElement(baseEl)
|
|
24
|
+
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
25
|
+
.duration(400)
|
|
26
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
27
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
|
+
/**
|
|
6
|
+
* iOS Picker Leave Animation
|
|
7
|
+
*/
|
|
8
|
+
export const iosLeaveAnimation = (baseEl) => {
|
|
9
|
+
const baseAnimation = createAnimation();
|
|
10
|
+
const backdropAnimation = createAnimation();
|
|
11
|
+
const wrapperAnimation = createAnimation();
|
|
12
|
+
backdropAnimation
|
|
13
|
+
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
14
|
+
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
15
|
+
wrapperAnimation
|
|
16
|
+
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
17
|
+
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
18
|
+
return baseAnimation
|
|
19
|
+
.addElement(baseEl)
|
|
20
|
+
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
21
|
+
.duration(400)
|
|
22
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
23
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a font size to a dynamic font size.
|
|
3
|
+
* Fonts that participate in Dynamic Type should use
|
|
4
|
+
* dynamic font sizes.
|
|
5
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
6
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
7
|
+
* convert to a unit other than $baselineUnit.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Convert a font size to a dynamic font size but impose
|
|
11
|
+
* a maximum font size.
|
|
12
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
13
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
14
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
15
|
+
* convert to a unit other than $baselineUnit.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Convert a font size to a dynamic font size but impose
|
|
19
|
+
* a minimum font size.
|
|
20
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
21
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
22
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
23
|
+
* convert to a unit other than $baselineUnit.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Convert a font size to a dynamic font size but impose
|
|
27
|
+
* maximum and minimum font sizes.
|
|
28
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
29
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
30
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
31
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
32
|
+
* convert to a unit other than $baselineUnit.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* A heuristic that applies CSS to tablet
|
|
36
|
+
* viewports.
|
|
37
|
+
*
|
|
38
|
+
* Usage:
|
|
39
|
+
* @include tablet-viewport() {
|
|
40
|
+
* :host {
|
|
41
|
+
* background-color: green;
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* A heuristic that applies CSS to mobile
|
|
47
|
+
* viewports (i.e. phones, not tablets).
|
|
48
|
+
*
|
|
49
|
+
* Usage:
|
|
50
|
+
* @include mobile-viewport() {
|
|
51
|
+
* :host {
|
|
52
|
+
* background-color: blue;
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
*/
|
|
56
|
+
:host {
|
|
57
|
+
/**
|
|
58
|
+
* @prop --background: Background of the picker
|
|
59
|
+
* @prop --background-rgb: Background of the picker in rgb format
|
|
60
|
+
*
|
|
61
|
+
* @prop --border-radius: Border radius of the picker
|
|
62
|
+
* @prop --border-color: Border color of the picker
|
|
63
|
+
* @prop --border-width: Border width of the picker
|
|
64
|
+
* @prop --border-style: Border style of the picker
|
|
65
|
+
*
|
|
66
|
+
* @prop --min-width: Minimum width of the picker
|
|
67
|
+
* @prop --width: Width of the picker
|
|
68
|
+
* @prop --max-width: Maximum width of the picker
|
|
69
|
+
*
|
|
70
|
+
* @prop --min-height: Minimum height of the picker
|
|
71
|
+
* @prop --height: Height of the picker
|
|
72
|
+
* @prop --max-height: Maximum height of the picker
|
|
73
|
+
*
|
|
74
|
+
* @prop --backdrop-opacity: Opacity of the backdrop
|
|
75
|
+
*/
|
|
76
|
+
--border-radius: 0;
|
|
77
|
+
--border-style: solid;
|
|
78
|
+
--min-width: auto;
|
|
79
|
+
--width: 100%;
|
|
80
|
+
--max-width: 500px;
|
|
81
|
+
--min-height: auto;
|
|
82
|
+
--max-height: auto;
|
|
83
|
+
-moz-osx-font-smoothing: grayscale;
|
|
84
|
+
-webkit-font-smoothing: antialiased;
|
|
85
|
+
top: 0;
|
|
86
|
+
display: block;
|
|
87
|
+
position: absolute;
|
|
88
|
+
width: 100%;
|
|
89
|
+
height: 100%;
|
|
90
|
+
outline: none;
|
|
91
|
+
font-family: var(--ion-font-family, inherit);
|
|
92
|
+
contain: strict;
|
|
93
|
+
user-select: none;
|
|
94
|
+
z-index: 1001;
|
|
95
|
+
}
|
|
96
|
+
:host {
|
|
97
|
+
inset-inline-start: 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
:host(.overlay-hidden) {
|
|
101
|
+
display: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.picker-wrapper {
|
|
105
|
+
border-radius: var(--border-radius);
|
|
106
|
+
left: 0;
|
|
107
|
+
right: 0;
|
|
108
|
+
bottom: 0;
|
|
109
|
+
-webkit-margin-start: auto;
|
|
110
|
+
margin-inline-start: auto;
|
|
111
|
+
-webkit-margin-end: auto;
|
|
112
|
+
margin-inline-end: auto;
|
|
113
|
+
margin-top: auto;
|
|
114
|
+
margin-bottom: auto;
|
|
115
|
+
transform: translate3d(0, 100%, 0);
|
|
116
|
+
display: flex;
|
|
117
|
+
position: absolute;
|
|
118
|
+
flex-direction: column;
|
|
119
|
+
width: var(--width);
|
|
120
|
+
min-width: var(--min-width);
|
|
121
|
+
max-width: var(--max-width);
|
|
122
|
+
height: var(--height);
|
|
123
|
+
min-height: var(--min-height);
|
|
124
|
+
max-height: var(--max-height);
|
|
125
|
+
border-width: var(--border-width);
|
|
126
|
+
border-style: var(--border-style);
|
|
127
|
+
border-color: var(--border-color);
|
|
128
|
+
background: var(--background);
|
|
129
|
+
contain: strict;
|
|
130
|
+
overflow: hidden;
|
|
131
|
+
z-index: 10;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.picker-toolbar {
|
|
135
|
+
width: 100%;
|
|
136
|
+
background: transparent;
|
|
137
|
+
contain: strict;
|
|
138
|
+
z-index: 1;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.picker-button {
|
|
142
|
+
border: 0;
|
|
143
|
+
font-family: inherit;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.picker-button:active, .picker-button:focus {
|
|
147
|
+
outline: none;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.picker-columns {
|
|
151
|
+
display: flex;
|
|
152
|
+
position: relative;
|
|
153
|
+
justify-content: center;
|
|
154
|
+
margin-bottom: var(--ion-safe-area-bottom, 0);
|
|
155
|
+
contain: strict;
|
|
156
|
+
overflow: hidden;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.picker-above-highlight,
|
|
160
|
+
.picker-below-highlight {
|
|
161
|
+
display: none;
|
|
162
|
+
pointer-events: none;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Convert a font size to a dynamic font size.
|
|
167
|
+
* Fonts that participate in Dynamic Type should use
|
|
168
|
+
* dynamic font sizes.
|
|
169
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
170
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
171
|
+
* convert to a unit other than $baselineUnit.
|
|
172
|
+
*/
|
|
173
|
+
/**
|
|
174
|
+
* Convert a font size to a dynamic font size but impose
|
|
175
|
+
* a maximum font size.
|
|
176
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
177
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
178
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
179
|
+
* convert to a unit other than $baselineUnit.
|
|
180
|
+
*/
|
|
181
|
+
/**
|
|
182
|
+
* Convert a font size to a dynamic font size but impose
|
|
183
|
+
* a minimum font size.
|
|
184
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
185
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
186
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
187
|
+
* convert to a unit other than $baselineUnit.
|
|
188
|
+
*/
|
|
189
|
+
/**
|
|
190
|
+
* Convert a font size to a dynamic font size but impose
|
|
191
|
+
* maximum and minimum font sizes.
|
|
192
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
193
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
194
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
195
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
196
|
+
* convert to a unit other than $baselineUnit.
|
|
197
|
+
*/
|
|
198
|
+
/**
|
|
199
|
+
* A heuristic that applies CSS to tablet
|
|
200
|
+
* viewports.
|
|
201
|
+
*
|
|
202
|
+
* Usage:
|
|
203
|
+
* @include tablet-viewport() {
|
|
204
|
+
* :host {
|
|
205
|
+
* background-color: green;
|
|
206
|
+
* }
|
|
207
|
+
* }
|
|
208
|
+
*/
|
|
209
|
+
/**
|
|
210
|
+
* A heuristic that applies CSS to mobile
|
|
211
|
+
* viewports (i.e. phones, not tablets).
|
|
212
|
+
*
|
|
213
|
+
* Usage:
|
|
214
|
+
* @include mobile-viewport() {
|
|
215
|
+
* :host {
|
|
216
|
+
* background-color: blue;
|
|
217
|
+
* }
|
|
218
|
+
* }
|
|
219
|
+
*/
|
|
220
|
+
:host {
|
|
221
|
+
--background: var(--ion-background-color, #fff);
|
|
222
|
+
--border-width: 1px 0 0;
|
|
223
|
+
--border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));
|
|
224
|
+
--height: 260px;
|
|
225
|
+
--backdrop-opacity: var(--ion-backdrop-opacity, 0.26);
|
|
226
|
+
color: var(--ion-item-color, var(--ion-text-color, #000));
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.picker-toolbar {
|
|
230
|
+
display: flex;
|
|
231
|
+
height: 44px;
|
|
232
|
+
border-bottom: 0.55px solid var(--border-color);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.picker-toolbar-button {
|
|
236
|
+
flex: 1;
|
|
237
|
+
text-align: end;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.picker-toolbar-button:last-child .picker-button {
|
|
241
|
+
font-weight: 600;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.picker-toolbar-button:first-child {
|
|
245
|
+
font-weight: normal;
|
|
246
|
+
text-align: start;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.picker-button,
|
|
250
|
+
.picker-button.ion-activated {
|
|
251
|
+
margin-left: 0;
|
|
252
|
+
margin-right: 0;
|
|
253
|
+
margin-top: 0;
|
|
254
|
+
margin-bottom: 0;
|
|
255
|
+
-webkit-padding-start: 1em;
|
|
256
|
+
padding-inline-start: 1em;
|
|
257
|
+
-webkit-padding-end: 1em;
|
|
258
|
+
padding-inline-end: 1em;
|
|
259
|
+
padding-top: 0;
|
|
260
|
+
padding-bottom: 0;
|
|
261
|
+
height: 44px;
|
|
262
|
+
background: transparent;
|
|
263
|
+
color: var(--ion-color-primary, #0054e9);
|
|
264
|
+
font-size: 16px;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.picker-columns {
|
|
268
|
+
height: 215px;
|
|
269
|
+
perspective: 1000px;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.picker-above-highlight {
|
|
273
|
+
top: 0;
|
|
274
|
+
transform: translate3d(0, 0, 90px);
|
|
275
|
+
display: block;
|
|
276
|
+
position: absolute;
|
|
277
|
+
width: 100%;
|
|
278
|
+
height: 81px;
|
|
279
|
+
border-bottom: 1px solid var(--border-color);
|
|
280
|
+
background: linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);
|
|
281
|
+
z-index: 10;
|
|
282
|
+
}
|
|
283
|
+
.picker-above-highlight {
|
|
284
|
+
inset-inline-start: 0;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.picker-below-highlight {
|
|
288
|
+
top: 115px;
|
|
289
|
+
transform: translate3d(0, 0, 90px);
|
|
290
|
+
display: block;
|
|
291
|
+
position: absolute;
|
|
292
|
+
width: 100%;
|
|
293
|
+
height: 119px;
|
|
294
|
+
border-top: 1px solid var(--border-color);
|
|
295
|
+
background: linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);
|
|
296
|
+
z-index: 11;
|
|
297
|
+
}
|
|
298
|
+
.picker-below-highlight {
|
|
299
|
+
inset-inline-start: 0;
|
|
300
|
+
}
|