@ionic/core 8.8.14-dev.11784037956.17449639 → 8.8.14-dev.11784216165.1ecbf364
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-nav.js +1 -1
- 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-router.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-279dFMvg.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/{p-BHrrc-3d.js → p-Buf_7zcy.js} +1 -1
- package/components/p-BwKpO3Is.js +4 -0
- package/components/p-C-Rx1zny.js +4 -0
- package/components/p-CHzfYZbv.js +4 -0
- package/components/p-D4h1H_hh.js +4 -0
- package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
- package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
- package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
- package/components/p-LMGfIvTf.js +4 -0
- package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
- package/components/p-_lHSumhG.js +4 -0
- package/components/p-j9Da6cYO.js +4 -0
- package/components/p-jOtMJMv8.js +4 -0
- package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
- package/components/p-uTR_dEqg.js +4 -0
- package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
- package/dist/cjs/config-DWdFbSNK.js +35 -0
- package/dist/cjs/index-Cueg3U4w.js +429 -0
- package/dist/cjs/index.cjs.js +6 -6
- package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -7
- package/dist/cjs/ion-alert.cjs.entry.js +64 -25
- package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
- 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_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
- package/dist/cjs/ion-img.cjs.entry.js +3 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -2
- 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 +10 -5
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +23 -33
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -115
- package/dist/cjs/ion-popover.cjs.entry.js +9 -5
- 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 +6 -5
- 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 +18 -4
- 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 +84 -30
- package/dist/cjs/ion-select_3.cjs.entry.js +407 -49
- 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 +6 -5
- 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/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-B9UiYZ4R.js → overlays-DSmSrd_4.js} +27 -30
- package/dist/cjs/select-option-render-DTF50t5r.js +124 -0
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
- package/dist/collection/components/action-sheet/action-sheet.js +24 -5
- package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
- package/dist/collection/components/alert/alert.ios.css +280 -10
- package/dist/collection/components/alert/alert.js +59 -21
- package/dist/collection/components/alert/alert.md.css +269 -20
- package/dist/collection/components/img/img.js +6 -1
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +7 -3
- package/dist/collection/components/modal/gestures/sheet.js +0 -8
- package/dist/collection/components/modal/gestures/swipe-to-close.js +0 -8
- package/dist/collection/components/modal/modal.ios.css +0 -8
- package/dist/collection/components/modal/modal.js +23 -17
- package/dist/collection/components/modal/modal.md.css +0 -8
- package/dist/collection/components/nav/nav.js +4 -219
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +7 -3
- package/dist/collection/components/popover/popover.md.css +15 -0
- 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/route/route.js +1 -1
- package/dist/collection/components/router/utils/dom.js +22 -3
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +38 -5
- 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 +33 -0
- package/dist/collection/components/select/select.js +323 -16
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
- package/dist/collection/components/select-modal/select-modal.js +79 -26
- package/dist/collection/components/select-modal/select-modal.md.css +165 -0
- package/dist/collection/components/select-option/select-option.js +67 -3
- package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
- package/dist/collection/components/select-popover/select-popover.js +78 -26
- package/dist/collection/components/select-popover/select-popover.md.css +165 -0
- 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/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +26 -29
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/docs.json +497 -1189
- package/dist/esm/config-BwKpO3Is.js +31 -0
- package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
- package/dist/esm/index-DQSkZyOJ.js +424 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +27 -7
- package/dist/esm/ion-alert.entry.js +63 -24
- package/dist/esm/ion-app_8.entry.js +23 -9
- 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_3.entry.js → ion-datetime.entry.js} +5 -641
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +4 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -1
- 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 +9 -4
- package/dist/esm/ion-menu_3.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +23 -33
- package/dist/esm/ion-nav_2.entry.js +3 -116
- package/dist/esm/ion-popover.entry.js +9 -5
- 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 +5 -4
- 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 +18 -4
- 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 +84 -30
- package/dist/esm/ion-select_3.entry.js +410 -52
- 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 +5 -4
- 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/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Bmfhux69.js → overlays-DLNOHWNc.js} +28 -31
- package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
- package/dist/html.html-data.json +52 -80
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-038eb991.entry.js +4 -0
- package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
- package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
- package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
- package/dist/ionic/p-4621c387.entry.js +4 -0
- package/dist/ionic/p-4ace7762.entry.js +4 -0
- package/dist/ionic/p-4bb3eb60.entry.js +4 -0
- package/dist/ionic/p-4e9ec5c5.entry.js +4 -0
- package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
- package/dist/ionic/p-5c3ec490.entry.js +4 -0
- package/dist/ionic/p-5d1ac2c7.entry.js +4 -0
- package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
- package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
- package/dist/ionic/p-700795f6.entry.js +4 -0
- package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
- package/dist/ionic/p-79a36078.entry.js +4 -0
- package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
- package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
- package/dist/ionic/p-913b218a.entry.js +4 -0
- package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
- package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
- package/dist/ionic/p-BDtODLZ4.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BwKpO3Is.js +4 -0
- package/dist/ionic/p-Cg5-OQYy.js +4 -0
- package/dist/ionic/p-DCOvXkOm.js +4 -0
- package/dist/ionic/p-a18dcb3c.entry.js +4 -0
- package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
- package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
- package/dist/ionic/p-a9a33367.entry.js +4 -0
- package/dist/ionic/p-ad728198.entry.js +4 -0
- package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
- package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
- package/dist/ionic/p-bfc8c629.entry.js +4 -0
- package/dist/ionic/p-c08e666a.entry.js +4 -0
- package/dist/ionic/p-c474f471.entry.js +4 -0
- package/dist/ionic/{p-cf91e738.entry.js → p-c93553d2.entry.js} +1 -1
- package/dist/ionic/p-ce7992c4.entry.js +4 -0
- package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
- package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
- package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
- package/dist/ionic/p-ed797c72.entry.js +4 -0
- package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
- package/dist/ionic/p-f09f9642.entry.js +4 -0
- package/dist/ionic/p-f1c06f82.entry.js +4 -0
- package/dist/ionic/p-f718fccb.entry.js +4 -0
- package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +74 -303
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +0 -8
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/hydrate/index.js +1410 -1292
- package/hydrate/index.mjs +1410 -1292
- package/package.json +37 -5
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-B1BWKArA.js +0 -4
- package/components/p-B4PlLGHT.js +0 -4
- package/components/p-BFsEcwW9.js +0 -4
- package/components/p-CFRyvUvJ.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-CgLiHbz0.js +0 -4
- package/components/p-MLyEeL3Q.js +0 -4
- package/components/p-PgMVWD8U.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-02473803.entry.js +0 -4
- package/dist/ionic/p-20b1a044.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2f529a55.entry.js +0 -4
- package/dist/ionic/p-485fda23.entry.js +0 -4
- package/dist/ionic/p-48fa7fb1.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4d9181c7.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-532eb373.entry.js +0 -4
- package/dist/ionic/p-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-B0zdMdR0.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-a21add2f.entry.js +0 -4
- package/dist/ionic/p-ab60b48a.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-f994dc44.entry.js +0 -4
- package/dist/ionic/p-fd76f647.entry.js +0 -4
- package/dist/ionic/p-fda60562.entry.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Mode } from '../interface';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
4
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
5
|
+
* option-row layout:
|
|
6
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
7
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
8
|
+
* `"end"` on iOS.
|
|
9
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
10
|
+
*
|
|
11
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
12
|
+
* callers that aren't a modal can omit it.
|
|
13
|
+
*
|
|
14
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
15
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getOverlayLabelPlacement: (mode: Mode, control: "radio" | "checkbox", interfaceType?: "alert" | "popover" | "modal") => "start" | "end";
|
|
18
|
+
/**
|
|
19
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
20
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
21
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
22
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
23
|
+
* on iOS.
|
|
24
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
25
|
+
*
|
|
26
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
27
|
+
* callers that aren't a modal can omit it.
|
|
28
|
+
*
|
|
29
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
30
|
+
* option doesn't explicitly set `justify`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const getOverlayLabelJustify: (mode: Mode, control: "radio" | "checkbox", interfaceType?: "alert" | "popover" | "modal") => "start" | "end" | "space-between";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActionSheetOptions, AlertOptions, Animation, AnimationBuilder, FrameworkDelegate, HTMLIonOverlayElement, IonicConfig, LoadingOptions, ModalOptions, OverlayInterface,
|
|
1
|
+
import type { ActionSheetOptions, AlertOptions, Animation, AnimationBuilder, FrameworkDelegate, HTMLIonOverlayElement, IonicConfig, LoadingOptions, ModalOptions, OverlayInterface, PopoverOptions, ToastOptions } from '../interface';
|
|
2
2
|
export declare const activeAnimations: WeakMap<OverlayInterface, Animation[]>;
|
|
3
3
|
export declare const alertController: {
|
|
4
4
|
create(options: AlertOptions): Promise<HTMLIonAlertElement>;
|
|
@@ -20,14 +20,6 @@ export declare const modalController: {
|
|
|
20
20
|
dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
|
|
21
21
|
getTop(): Promise<HTMLIonModalElement | undefined>;
|
|
22
22
|
};
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated Use the inline ion-picker component instead.
|
|
25
|
-
*/
|
|
26
|
-
export declare const pickerController: {
|
|
27
|
-
create(options: PickerOptions): Promise<HTMLIonPickerLegacyElement>;
|
|
28
|
-
dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
|
|
29
|
-
getTop(): Promise<HTMLIonPickerLegacyElement | undefined>;
|
|
30
|
-
};
|
|
31
23
|
export declare const popoverController: {
|
|
32
24
|
create(options: PopoverOptions<import("../interface").ComponentRef>): Promise<HTMLIonPopoverElement>;
|
|
33
25
|
dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
|
|
@@ -86,6 +78,16 @@ export declare const getPresentedOverlay: (doc: Document, overlayTag?: string, i
|
|
|
86
78
|
* for main content.
|
|
87
79
|
*/
|
|
88
80
|
export declare const setRootAriaHidden: (hidden?: boolean) => void;
|
|
81
|
+
/**
|
|
82
|
+
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
83
|
+
* an overlay is removed from the DOM without going through
|
|
84
|
+
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
85
|
+
* overlay during a route change).
|
|
86
|
+
*
|
|
87
|
+
* Should be called from an overlay's `disconnectedCallback`
|
|
88
|
+
* when the overlay was still presented at the time of removal.
|
|
89
|
+
*/
|
|
90
|
+
export declare const cleanupRootFocusTrapAccessibility: () => void;
|
|
89
91
|
export declare const present: <OverlayPresentOptions>(overlay: OverlayInterface, name: keyof IonicConfig, iosEnterAnimation: AnimationBuilder, mdEnterAnimation: AnimationBuilder, opts?: OverlayPresentOptions) => Promise<void>;
|
|
90
92
|
export declare const dismiss: <OverlayDismissOptions>(overlay: OverlayInterface, data: any | undefined, role: string | undefined, name: keyof IonicConfig, iosLeaveAnimation: AnimationBuilder, mdLeaveAnimation: AnimationBuilder, opts?: OverlayDismissOptions) => Promise<boolean>;
|
|
91
93
|
export declare const eventMethod: <T>(element: HTMLElement, eventName: string) => Promise<T>;
|
|
@@ -1,8 +1,64 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Sanitize an untrusted HTML string.
|
|
3
|
+
*
|
|
4
|
+
* Parses the string into a detached DOM, removes blocked tags, strips
|
|
5
|
+
* attributes outside the narrow `domStringAllowedAttributes` list (refer
|
|
6
|
+
* `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
|
|
7
|
+
* HTML string.
|
|
8
|
+
*
|
|
9
|
+
* Use this when you have an HTML string from an unknown source and need to
|
|
10
|
+
* render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
|
|
11
|
+
* have a DOM tree and want to sanitize it in place without a string round
|
|
12
|
+
* trip. The two apply the same dangerous-vector scrubbing but different
|
|
13
|
+
* attribute allowlists: this path stays narrow so existing consumers
|
|
14
|
+
* (toast, loading, alert message, etc.) are unaffected, while
|
|
15
|
+
* `sanitizeDOMTree` uses the wider rich-content allowlist.
|
|
16
|
+
*
|
|
17
|
+
* @param untrustedString - The HTML string to sanitize. Pass an
|
|
18
|
+
* `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
|
|
19
|
+
* @returns The sanitized HTML string, or `undefined` if the input was
|
|
20
|
+
* `undefined`. Returns `''` if sanitization fails or the input contains
|
|
21
|
+
* an inline `onload=` handler.
|
|
4
22
|
*/
|
|
5
23
|
export declare const sanitizeDOMString: (untrustedString: IonicSafeString | string | undefined) => string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Sanitize an entire trusted DOM tree in place.
|
|
26
|
+
*
|
|
27
|
+
* Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
|
|
28
|
+
* then sanitizes attributes on every remaining element using the wider
|
|
29
|
+
* `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
|
|
30
|
+
* Component presentational attributes (`size`, `color`, `shape`, inline
|
|
31
|
+
* SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
|
|
32
|
+
* form/navigation-hijack attributes, script-scheme URLs, and non-image
|
|
33
|
+
* `data:` URLs are stripped.
|
|
34
|
+
*
|
|
35
|
+
* Use this when you have a DOM tree the developer controls (e.g.
|
|
36
|
+
* cloned slot content from a component) and you need to render it
|
|
37
|
+
* elsewhere safely.
|
|
38
|
+
*
|
|
39
|
+
* @param root - The root element whose subtree will be sanitized in
|
|
40
|
+
* place. No-op when the sanitizer is disabled via `Ionic.config`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const sanitizeDOMTree: (root: HTMLElement) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Mirror known custom-element DOM properties onto attributes so they
|
|
45
|
+
* survive `cloneNode`. Call this on a DOM subtree before cloning it for
|
|
46
|
+
* rendering elsewhere (e.g. cloning slotted option content into an
|
|
47
|
+
* overlay).
|
|
48
|
+
*
|
|
49
|
+
* Only sets the attribute when the property holds a non-empty string
|
|
50
|
+
* and the attribute isn't already present, so existing attributes
|
|
51
|
+
* take precedence.
|
|
52
|
+
*
|
|
53
|
+
* @param root - The root element whose subtree (and itself) will be
|
|
54
|
+
* inspected.
|
|
55
|
+
*/
|
|
56
|
+
export declare const reflectPropertiesToAttributes: (root: Element) => void;
|
|
57
|
+
/**
|
|
58
|
+
* Tags removed entirely (with their subtree) before attribute sanitization.
|
|
59
|
+
* Exported so tests can assert the set without hardcoding it.
|
|
60
|
+
*/
|
|
61
|
+
export declare const blockedTags: string[];
|
|
6
62
|
export declare class IonicSafeString {
|
|
7
63
|
value: string;
|
|
8
64
|
constructor(value: string);
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { VNode } from '../stencil-public-runtime';
|
|
2
|
+
import type { RichContentOption as RichContentOpt } from '../components/select/select-interface';
|
|
3
|
+
interface RichContentOption extends RichContentOpt {
|
|
4
|
+
/** Unique identifier for stable virtual DOM keys across re-renders. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** The main label for the option as a string or an HTMLElement. */
|
|
7
|
+
label?: string | HTMLElement;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Converts a DOM node into a Stencil VNode (or text string) so the
|
|
11
|
+
* resulting tree is rendered through the component's normal render
|
|
12
|
+
* path. Rendering through Stencil ensures that scoped CSS classes
|
|
13
|
+
* (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
|
|
14
|
+
*
|
|
15
|
+
* Highly recommended to pre-sanitize the source DOM (see
|
|
16
|
+
* `getOptionContent` in select.tsx). This function performs pure
|
|
17
|
+
* structural conversion — no security filtering.
|
|
18
|
+
*
|
|
19
|
+
* Preserves attributes only — properties set imperatively on the source
|
|
20
|
+
* element (e.g. `input.value` after a user types) won't carry through.
|
|
21
|
+
* In practice this isn't a concern: interactive controls shouldn't
|
|
22
|
+
* appear in select-option rich content since they'd nest inside the
|
|
23
|
+
* overlay's button/radio/checkbox wrapper, which is invalid HTML and
|
|
24
|
+
* an accessibility issue.
|
|
25
|
+
*
|
|
26
|
+
* @param node - The DOM node to convert. Text nodes become strings,
|
|
27
|
+
* element nodes become VNodes, and any other node types are skipped.
|
|
28
|
+
* @param keyPrefix - String prefix used to build a stable VNode key,
|
|
29
|
+
* so Stencil's diff can preserve elements across re-renders.
|
|
30
|
+
* @param index - Position of this node among its siblings. Combined
|
|
31
|
+
* with `keyPrefix` to form the final unique key.
|
|
32
|
+
* @returns The converted VNode, a text string, or `null` if the node
|
|
33
|
+
* type isn't supported.
|
|
34
|
+
*
|
|
35
|
+
* @internal Exported only so it can be unit tested; not part of the
|
|
36
|
+
* public API.
|
|
37
|
+
*/
|
|
38
|
+
export declare const cloneToVNode: (node: Node, keyPrefix: string, index: number) => VNode | string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Renders the label content for a select option within an overlay
|
|
41
|
+
* interface based on the presence of rich content.
|
|
42
|
+
*
|
|
43
|
+
* Span elements should be used when this content renders within buttons,
|
|
44
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
45
|
+
* content to prevent accessibility issues.
|
|
46
|
+
*
|
|
47
|
+
* @param option - The content option data containing label, slots,
|
|
48
|
+
* and description.
|
|
49
|
+
* @param className - The base CSS class for the label element.
|
|
50
|
+
* @param useSpan - Whether to use a span element instead of a div for the label.
|
|
51
|
+
*/
|
|
52
|
+
export declare const renderOptionLabel: (option: RichContentOption, className: string, useSpan?: boolean) => HTMLElement | string | undefined;
|
|
53
|
+
export {};
|