@ionic/core 8.8.9-dev.11779403760.13ea2a08 → 8.8.9-dev.11780086312.13aac420
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-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.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-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.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-route-redirect.js +1 -1
- package/components/ion-route.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-CDgDBcU9.js → p-9VcRUwdB.js} +1 -1
- package/components/p-B6FQ0cKR.js +4 -0
- package/components/p-B6HaBl3o.js +4 -0
- package/components/p-B8b1Ukl9.js +4 -0
- package/components/p-BJoMtgfR.js +4 -0
- package/components/p-BJu4LSK8.js +4 -0
- package/components/p-BNAG-aVv.js +4 -0
- package/components/p-BR3tZJmu.js +4 -0
- package/{dist/ionic/p-C8IHbcuP.js → components/p-BS1TtEiJ.js} +1 -1
- package/components/p-BUbsoBOV.js +4 -0
- package/components/p-BWUpLAtP.js +4 -0
- package/components/p-BYDc3hSE.js +4 -0
- package/components/p-BagjAGC0.js +4 -0
- package/components/p-BeL7B3Bb.js +4 -0
- package/components/p-Bg7NsGS9.js +4 -0
- package/components/p-BgwEQWW6.js +4 -0
- package/components/p-BmVRXR1y.js +4 -0
- package/components/p-BxwWvu-b.js +4 -0
- package/components/p-C4jPsTQa.js +4 -0
- package/components/p-C59ryAuS.js +4 -0
- package/components/p-CBzELu-H.js +4 -0
- package/components/p-CDXBV7oG.js +4 -0
- package/components/p-CDfQnFrd.js +4 -0
- package/components/{p-ByW0kK1F.js → p-CEmXdzGo.js} +1 -1
- package/components/p-CIGNaXM1.js +4 -0
- package/components/p-CO7fmmxt.js +4 -0
- package/components/{p-BZCB7f49.js → p-CU1SSH8_.js} +1 -1
- package/components/p-CWpbvhwY.js +4 -0
- package/components/p-CgqKJg96.js +4 -0
- package/components/p-CneGxKsZ.js +4 -0
- package/components/p-CoA-aqGF.js +4 -0
- package/components/p-Csw8xuz4.js +4 -0
- package/components/p-CtWGkNnJ.js +4 -0
- package/components/p-Cy5XSfIk.js +4 -0
- package/components/p-Cz5nLPGT.js +4 -0
- package/{dist/ionic/p-CuGhCBt7.js → components/p-D13Eaw-8.js} +1 -1
- package/components/p-D6NJwNJN.js +4 -0
- package/components/p-D6Ynv7Xh.js +4 -0
- package/components/p-DJztqcrH.js +4 -0
- package/components/p-DL2W2mt3.js +4 -0
- package/components/p-DYdpXONG.js +4 -0
- package/components/p-DbISMmiI.js +4 -0
- package/components/p-DgbT0exM.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/p-DrIm1s9R.js +4 -0
- package/components/p-DvOO1fxp.js +4 -0
- package/components/p-DxXmSp9Y.js +4 -0
- package/components/p-FBcnjE5W.js +4 -0
- package/components/p-GCtnx-UP.js +4 -0
- package/components/p-JQ4ZNN1D.js +4 -0
- package/components/p-OOMJP0jy.js +4 -0
- package/components/p-Q1-Xy3As.js +4 -0
- package/components/p-SBseW5KJ.js +4 -0
- package/components/{p-zWP0sUV_.js → p-YLXPWgVj.js} +1 -1
- package/components/p-ZjP4CjeZ.js +4 -0
- package/{dist/ionic/p-B2-sg7NJ.js → components/p-ak_d-z48.js} +1 -1
- package/components/{p-re70ahxF.js → p-cyNmxje6.js} +1 -1
- package/components/p-nPoOPlPt.js +4 -0
- package/components/p-vEbVo2hO.js +4 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-BZJ2wKuM.js → animation-Dg4yiuR2.js} +3 -3
- package/dist/cjs/{app-globals-C-d5fQ35.js → app-globals-CLI8xCmk.js} +1 -1
- package/dist/cjs/{button-active-B_20Nxkv.js → button-active-FscMI17-.js} +2 -2
- package/dist/cjs/{capacitor-CXqhdZym.js → capacitor-DmA66EwP.js} +3 -3
- package/dist/cjs/{config-BiqQSDrb.js → config-BukYi_pW.js} +7 -60
- package/dist/cjs/{data-DuOuKG7I.js → data-BYlBjkMU.js} +6 -6
- package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
- package/dist/cjs/{framework-delegate-Dx9FrqAC.js → framework-delegate-CRgp8o_p.js} +2 -4
- package/dist/cjs/{haptic-CQJGW58i.js → haptic-ClPPQ_PS.js} +1 -1
- package/dist/cjs/hardware-back-button-C4rMJ5uI.js +121 -0
- package/dist/cjs/{helpers-DJYxKN5U.js → helpers-CxTYJdbT.js} +4 -57
- package/dist/cjs/{index-DSNlrgfO.js → index-C845Ti6K.js} +4 -4
- package/dist/cjs/{index-BekUBS8C.js → index-CFUwM5x_.js} +15 -15
- package/dist/cjs/{index-CzcLEdQ5.js → index-CqT-2gKy.js} +4 -41
- package/dist/cjs/index-DkNv4J_i.js +10 -0
- package/dist/cjs/{index-CgAbCW6L.js → index-DqmRDbxg.js} +0 -2
- package/dist/cjs/{index-BJrpF9T3.js → index-MbaBbWXk.js} +2 -2
- package/dist/cjs/{index-CwxYd6UD.js → index-YcSftOMz.js} +8 -9
- package/dist/cjs/index.cjs.js +14 -14
- package/dist/cjs/{input-shims-VyZciSxi.js → input-shims-CPL2J8F-.js} +17 -18
- package/dist/cjs/{input.utils-Ct5KzpYv.js → input.utils-DmeJ8dmo.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
- package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -40
- package/dist/cjs/ion-alert.cjs.entry.js +44 -76
- package/dist/cjs/ion-app_8.cjs.entry.js +175 -296
- package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
- package/dist/cjs/ion-back-button.cjs.entry.js +22 -31
- package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -54
- package/dist/cjs/ion-button_2.cjs.entry.js +22 -59
- package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
- package/dist/cjs/ion-checkbox.cjs.entry.js +16 -34
- package/dist/cjs/ion-chip.cjs.entry.js +9 -50
- package/dist/cjs/ion-col_3.cjs.entry.js +57 -56
- package/dist/cjs/ion-datetime-button.cjs.entry.js +9 -13
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +29 -742
- package/dist/cjs/ion-fab_3.cjs.entry.js +28 -44
- package/dist/cjs/ion-img.cjs.entry.js +4 -8
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +16 -91
- package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +15 -53
- package/dist/cjs/ion-input.cjs.entry.js +34 -124
- package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
- package/dist/cjs/ion-item_8.cjs.entry.js +49 -115
- package/dist/cjs/ion-loading.cjs.entry.js +22 -20
- package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
- package/dist/cjs/ion-modal.cjs.entry.js +142 -262
- package/dist/cjs/ion-nav_2.cjs.entry.js +11 -14
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -12
- package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
- package/dist/cjs/ion-picker.cjs.entry.js +6 -10
- package/dist/cjs/ion-popover.cjs.entry.js +23 -21
- package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
- package/dist/cjs/ion-radio_2.cjs.entry.js +17 -35
- package/dist/cjs/ion-range.cjs.entry.js +13 -20
- package/dist/cjs/ion-refresher_2.cjs.entry.js +21 -39
- package/dist/cjs/ion-reorder_2.cjs.entry.js +14 -38
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
- package/dist/cjs/ion-route_4.cjs.entry.js +9 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +24 -137
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
- package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
- package/dist/cjs/ion-select-modal.cjs.entry.js +40 -119
- package/dist/cjs/ion-select_3.cjs.entry.js +115 -500
- package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
- package/dist/cjs/ion-split-pane.cjs.entry.js +9 -13
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +23 -147
- package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
- package/dist/cjs/ion-text.cjs.entry.js +7 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
- package/dist/cjs/ion-toast.cjs.entry.js +46 -69
- package/dist/cjs/ion-toggle.cjs.entry.js +25 -82
- package/dist/cjs/ionic-global-Bc3kJi1Z.js +151 -0
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-CyNNpj1i.js → ios.transition-trBiC95R.js} +5 -7
- package/dist/cjs/{keyboard-VLGMzWBE.js → keyboard-UuAS4D_9.js} +1 -1
- package/dist/cjs/{keyboard-controller-CCTvHp9l.js → keyboard-controller-GXBiBRKS.js} +9 -11
- package/dist/cjs/{keyboard-CA6RtoWx.js → keyboard-hHzlEQpk.js} +3 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-BEfrfWKW.js → md.transition-CUQECuvD.js} +5 -6
- package/dist/cjs/{notch-controller-BTZCPOsd.js → notch-controller-sD-lTpdc.js} +4 -4
- package/dist/cjs/{overlays-BuMIwR8B.js → overlays-DIfHxkst.js} +42 -117
- package/dist/cjs/{status-tap-CTY2dMsZ.js → status-tap-CCJk5VgT.js} +3 -4
- package/dist/cjs/{swipe-back-jJFi5KCB.js → swipe-back-BGhTQ1CU.js} +2 -3
- package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
- package/dist/cjs/validity-BpS37YFM.js +19 -0
- package/dist/collection/collection-manifest.json +1 -12
- package/dist/collection/components/accordion/accordion.ios.css +58 -73
- package/dist/collection/components/accordion/accordion.js +27 -41
- package/dist/collection/components/accordion/accordion.md.css +59 -67
- package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
- package/dist/collection/components/accordion-group/accordion-group.js +8 -44
- package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
- package/dist/collection/components/action-sheet/action-sheet.ios.css +11 -155
- package/dist/collection/components/action-sheet/action-sheet.js +18 -33
- package/dist/collection/components/action-sheet/action-sheet.md.css +10 -155
- package/dist/collection/components/alert/alert.ios.css +19 -219
- package/dist/collection/components/alert/alert.js +35 -68
- package/dist/collection/components/alert/alert.md.css +15 -229
- package/dist/collection/components/app/app.js +83 -15
- package/dist/collection/components/avatar/avatar.ios.css +33 -7
- package/dist/collection/components/avatar/avatar.js +4 -120
- package/dist/collection/components/avatar/avatar.md.css +0 -51
- package/dist/collection/components/back-button/back-button.ios.css +48 -60
- package/dist/collection/components/back-button/back-button.js +19 -27
- package/dist/collection/components/back-button/back-button.md.css +48 -60
- package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
- package/dist/collection/components/backdrop/backdrop.js +6 -12
- package/dist/collection/components/backdrop/backdrop.md.css +19 -56
- package/dist/collection/components/badge/badge.ios.css +12 -139
- package/dist/collection/components/badge/badge.js +9 -145
- package/dist/collection/components/badge/badge.md.css +12 -123
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
- package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
- package/dist/collection/components/button/button.ios.css +46 -154
- package/dist/collection/components/button/button.js +27 -63
- package/dist/collection/components/button/button.md.css +50 -150
- package/dist/collection/components/buttons/buttons.ios.css +7 -59
- package/dist/collection/components/buttons/buttons.js +9 -15
- package/dist/collection/components/buttons/buttons.md.css +3 -55
- package/dist/collection/components/card/card.ios.css +14 -65
- package/dist/collection/components/card/card.js +10 -41
- package/dist/collection/components/card/card.md.css +14 -65
- package/dist/collection/components/card-content/card-content.ios.css +35 -20
- package/dist/collection/components/card-content/card-content.js +10 -12
- package/dist/collection/components/card-content/card-content.md.css +35 -20
- package/dist/collection/components/card-header/card-header.ios.css +15 -27
- package/dist/collection/components/card-header/card-header.js +10 -13
- package/dist/collection/components/card-header/card-header.md.css +15 -27
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
- package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
- package/dist/collection/components/card-title/card-title.ios.css +0 -73
- package/dist/collection/components/card-title/card-title.js +8 -11
- package/dist/collection/components/card-title/card-title.md.css +0 -73
- package/dist/collection/components/checkbox/checkbox.ios.css +101 -161
- package/dist/collection/components/checkbox/checkbox.js +14 -70
- package/dist/collection/components/checkbox/checkbox.md.css +102 -162
- package/dist/collection/components/chip/chip.ios.css +14 -67
- package/dist/collection/components/chip/chip.js +8 -108
- package/dist/collection/components/chip/chip.md.css +14 -67
- package/dist/collection/components/col/col.css +4 -192
- package/dist/collection/components/col/col.js +61 -211
- package/dist/collection/components/content/content.css +2 -8
- package/dist/collection/components/content/content.js +11 -16
- package/dist/collection/components/datetime/datetime.ios.css +106 -302
- package/dist/collection/components/datetime/datetime.js +20 -98
- package/dist/collection/components/datetime/datetime.md.css +96 -293
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
- package/dist/collection/components/datetime-button/datetime-button.js +8 -11
- package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
- package/dist/collection/components/fab/fab.css +1 -25
- package/dist/collection/components/fab/fab.js +5 -9
- package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
- package/dist/collection/components/fab-button/fab-button.js +21 -36
- package/dist/collection/components/fab-button/fab-button.md.css +8 -20
- package/dist/collection/components/fab-list/fab-list.css +0 -12
- package/dist/collection/components/fab-list/fab-list.js +5 -9
- package/dist/collection/components/footer/footer.ios.css +2 -14
- package/dist/collection/components/footer/footer.js +16 -21
- package/dist/collection/components/footer/footer.md.css +0 -12
- package/dist/collection/components/grid/grid.css +0 -12
- package/dist/collection/components/grid/grid.js +5 -9
- package/dist/collection/components/header/header.ios.css +10 -25
- package/dist/collection/components/header/header.js +19 -50
- package/dist/collection/components/header/header.md.css +8 -23
- package/dist/collection/components/header/header.utils.js +5 -5
- package/dist/collection/components/img/img.js +2 -8
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
- package/dist/collection/components/input/input.ios.css +135 -223
- package/dist/collection/components/input/input.js +37 -148
- package/dist/collection/components/input/input.md.css +207 -193
- package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
- package/dist/collection/components/input-otp/input-otp.js +6 -73
- package/dist/collection/components/input-otp/input-otp.md.css +60 -105
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
- package/dist/collection/components/item/item.ios.css +69 -109
- package/dist/collection/components/item/item.js +20 -50
- package/dist/collection/components/item/item.md.css +68 -120
- package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
- package/dist/collection/components/item-divider/item-divider.js +8 -11
- package/dist/collection/components/item-divider/item-divider.md.css +0 -18
- package/dist/collection/components/item-group/item-group.ios.css +0 -12
- package/dist/collection/components/item-group/item-group.js +7 -13
- package/dist/collection/components/item-group/item-group.md.css +0 -12
- package/dist/collection/components/item-option/item-option.ios.css +29 -136
- package/dist/collection/components/item-option/item-option.js +9 -73
- package/dist/collection/components/item-option/item-option.md.css +29 -136
- package/dist/collection/components/item-options/item-options.ios.css +34 -77
- package/dist/collection/components/item-options/item-options.js +7 -13
- package/dist/collection/components/item-options/item-options.md.css +34 -77
- package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
- package/dist/collection/components/item-sliding/item-sliding.js +35 -421
- package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
- package/dist/collection/components/label/label.ios.css +0 -18
- package/dist/collection/components/label/label.js +8 -11
- package/dist/collection/components/label/label.md.css +0 -18
- package/dist/collection/components/list/list.ios.css +14 -54
- package/dist/collection/components/list/list.js +9 -48
- package/dist/collection/components/list/list.md.css +16 -56
- package/dist/collection/components/list-header/list-header.ios.css +38 -82
- package/dist/collection/components/list-header/list-header.js +8 -11
- package/dist/collection/components/list-header/list-header.md.css +38 -82
- package/dist/collection/components/loading/loading.ios.css +1 -13
- package/dist/collection/components/loading/loading.js +16 -15
- package/dist/collection/components/loading/loading.md.css +1 -13
- package/dist/collection/components/menu/menu.ios.css +3 -15
- package/dist/collection/components/menu/menu.js +7 -12
- package/dist/collection/components/menu/menu.md.css +3 -15
- package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
- package/dist/collection/components/menu-button/menu-button.js +10 -26
- package/dist/collection/components/menu-button/menu-button.md.css +15 -49
- package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
- package/dist/collection/components/modal/animations/sheet.js +2 -8
- package/dist/collection/components/modal/gestures/sheet.js +10 -76
- package/dist/collection/components/modal/modal.ios.css +70 -178
- package/dist/collection/components/modal/modal.js +17 -51
- package/dist/collection/components/modal/modal.md.css +70 -178
- package/dist/collection/components/nav/nav.css +1 -7
- package/dist/collection/components/nav/nav.js +5 -11
- package/dist/collection/components/nav-link/nav-link.js +1 -5
- package/dist/collection/components/note/note.ios.css +0 -12
- package/dist/collection/components/note/note.js +8 -11
- package/dist/collection/components/note/note.md.css +0 -12
- package/dist/collection/components/picker/picker.ios.css +3 -15
- package/dist/collection/components/picker/picker.js +5 -8
- package/dist/collection/components/picker/picker.md.css +3 -15
- package/dist/collection/components/picker-column/picker-column.css +2 -9
- package/dist/collection/components/picker-column/picker-column.js +7 -8
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
- package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
- package/dist/collection/components/popover/popover.ios.css +1 -29
- package/dist/collection/components/popover/popover.js +20 -19
- package/dist/collection/components/popover/popover.md.css +1 -29
- package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
- package/dist/collection/components/progress-bar/progress-bar.js +7 -43
- package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
- package/dist/collection/components/radio/radio.ios.css +91 -134
- package/dist/collection/components/radio/radio.js +10 -15
- package/dist/collection/components/radio/radio.md.css +91 -134
- package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
- package/dist/collection/components/radio-group/radio-group.js +7 -48
- package/dist/collection/components/radio-group/radio-group.md.css +19 -43
- package/dist/collection/components/range/range.ios.css +85 -128
- package/dist/collection/components/range/range.js +10 -16
- package/dist/collection/components/range/range.md.css +85 -128
- package/dist/collection/components/refresher/refresher.ios.css +1 -14
- package/dist/collection/components/refresher/refresher.js +8 -11
- package/dist/collection/components/refresher/refresher.md.css +2 -15
- package/dist/collection/components/refresher-content/refresher-content.js +7 -28
- package/dist/collection/components/reorder/reorder.ios.css +0 -6
- package/dist/collection/components/reorder/reorder.js +6 -33
- package/dist/collection/components/reorder/reorder.md.css +0 -6
- package/dist/collection/components/reorder-group/reorder-group.css +0 -6
- package/dist/collection/components/reorder-group/reorder-group.js +4 -8
- package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
- package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
- package/dist/collection/components/route/route.js +0 -4
- package/dist/collection/components/router/router.js +0 -4
- package/dist/collection/components/router-link/router-link.css +2 -8
- package/dist/collection/components/router-link/router-link.js +5 -9
- package/dist/collection/components/router-outlet/router-outlet.css +1 -7
- package/dist/collection/components/router-outlet/router-outlet.js +40 -10
- package/dist/collection/components/row/row.css +0 -16
- package/dist/collection/components/row/row.js +2 -9
- package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
- package/dist/collection/components/searchbar/searchbar.js +33 -180
- package/dist/collection/components/searchbar/searchbar.md.css +18 -56
- package/dist/collection/components/segment/segment.ios.css +2 -45
- package/dist/collection/components/segment/segment.js +8 -11
- package/dist/collection/components/segment/segment.md.css +2 -45
- package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
- package/dist/collection/components/segment-button/segment-button.js +8 -11
- package/dist/collection/components/segment-button/segment-button.md.css +107 -148
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
- package/dist/collection/components/segment-view/segment-view.js +4 -13
- package/dist/collection/components/segment-view/segment-view.md.css +0 -6
- package/dist/collection/components/select/select.ios.css +176 -348
- package/dist/collection/components/select/select.js +97 -460
- package/dist/collection/components/select/select.md.css +178 -364
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -156
- package/dist/collection/components/select-modal/select-modal.js +32 -132
- package/dist/collection/components/select-modal/select-modal.md.css +0 -139
- package/dist/collection/components/select-option/select-option.js +2 -70
- package/dist/collection/components/select-popover/select-popover.ios.css +23 -117
- package/dist/collection/components/select-popover/select-popover.js +31 -94
- package/dist/collection/components/select-popover/select-popover.md.css +22 -117
- package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
- package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
- package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
- package/dist/collection/components/spinner/spinner.js +6 -47
- package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
- package/dist/collection/components/split-pane/split-pane.js +8 -15
- package/dist/collection/components/split-pane/split-pane.md.css +2 -20
- package/dist/collection/components/tab/tab.js +2 -6
- package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -71
- package/dist/collection/components/tab-bar/tab-bar.js +13 -171
- package/dist/collection/components/tab-bar/tab-bar.md.css +43 -71
- package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
- package/dist/collection/components/tab-button/tab-button.js +9 -54
- package/dist/collection/components/tab-button/tab-button.md.css +93 -137
- package/dist/collection/components/tabs/tabs.css +1 -7
- package/dist/collection/components/tabs/tabs.js +1 -4
- package/dist/collection/components/text/text.css +0 -6
- package/dist/collection/components/text/text.js +6 -7
- package/dist/collection/components/textarea/textarea.ios.css +158 -298
- package/dist/collection/components/textarea/textarea.js +24 -162
- package/dist/collection/components/textarea/textarea.md.css +159 -312
- package/dist/collection/components/thumbnail/thumbnail.css +0 -6
- package/dist/collection/components/thumbnail/thumbnail.js +2 -9
- package/dist/collection/components/title/title.ios.css +4 -32
- package/dist/collection/components/title/title.js +7 -13
- package/dist/collection/components/title/title.md.css +4 -32
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ios.css +45 -84
- package/dist/collection/components/toast/toast.js +13 -76
- package/dist/collection/components/toast/toast.md.css +45 -84
- package/dist/collection/components/toggle/toggle.ios.css +131 -247
- package/dist/collection/components/toggle/toggle.js +18 -73
- package/dist/collection/components/toggle/toggle.md.css +131 -244
- package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
- package/dist/collection/components/toolbar/toolbar.js +13 -218
- package/dist/collection/components/toolbar/toolbar.md.css +47 -90
- package/dist/collection/global/ionic-global.js +13 -241
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +2 -13
- package/dist/collection/utils/focus-visible.js +0 -22
- package/dist/collection/utils/forms/validity.js +0 -31
- package/dist/collection/utils/framework-delegate.js +1 -3
- package/dist/collection/utils/hardware-back-button.js +0 -15
- package/dist/collection/utils/helpers.js +3 -57
- package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
- package/dist/collection/utils/media.js +0 -1
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +1 -2
- package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
- package/dist/collection/utils/overlays.js +31 -97
- package/dist/collection/utils/sanitization/index.js +6 -58
- package/dist/collection/utils/test/playwright/drag-element.js +9 -32
- package/dist/collection/utils/test/playwright/generator.js +23 -48
- package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
- package/dist/collection/utils/theme.js +1 -25
- package/dist/collection/utils/transition/ios.transition.js +0 -1
- package/dist/docs.json +574 -10095
- package/dist/esm/{animation-Cd1EA2ar.js → animation-CnGMT4ji.js} +2 -2
- package/dist/esm/{app-globals-9x_U7ofY.js → app-globals-DhZjtldk.js} +1 -1
- package/dist/esm/{button-active-B016u5N-.js → button-active-BBx21brx.js} +2 -2
- package/dist/esm/{capacitor-13SFuT1K.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/{config-DLfuRiEz.js → config-TO1rZH52.js} +8 -60
- package/dist/esm/{data-BNKYavC3.js → data-B9iGR5YO.js} +6 -6
- package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
- package/dist/esm/{framework-delegate-CjVwn_KZ.js → framework-delegate-CyxE1S_P.js} +2 -4
- package/dist/esm/{haptic-CbnKC3go.js → haptic-DzAMWJuk.js} +1 -1
- package/dist/esm/hardware-back-button-CTe4XmL7.js +115 -0
- package/dist/esm/{helpers-Do7zwvM1.js → helpers-Tl8jw6S2.js} +5 -58
- package/dist/esm/{index-D2tu5BUg.js → index-AlrZKoWR.js} +1 -2
- package/dist/esm/{index-B2VWavcK.js → index-B-hkiOUh.js} +4 -4
- package/dist/esm/{index-BWMvrRiE.js → index-B2KwgBLx.js} +11 -11
- package/dist/esm/{index-D3WueHpT.js → index-BtUdxPjv.js} +3 -4
- package/dist/esm/{index-Omi_TcwW.js → index-IGIE5vDm.js} +4 -41
- package/dist/esm/index-ZjP4CjeZ.js +7 -0
- package/dist/esm/{index-BmkLokUL.js → index-hW6eNZ3o.js} +2 -2
- package/dist/esm/index.js +14 -13
- package/dist/esm/{input-shims-DU23z7Hg.js → input-shims-DbrgeeNb.js} +6 -7
- package/dist/esm/{input.utils-C64RbLd_.js → input.utils-Bxa_DQ7-.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +29 -61
- package/dist/esm/ion-action-sheet.entry.js +26 -40
- package/dist/esm/ion-alert.entry.js +44 -76
- package/dist/esm/ion-app_8.entry.js +175 -296
- package/dist/esm/ion-avatar_3.entry.js +13 -125
- package/dist/esm/ion-back-button.entry.js +22 -31
- package/dist/esm/ion-backdrop.entry.js +7 -10
- package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
- package/dist/esm/ion-button_2.entry.js +22 -59
- package/dist/esm/ion-card_5.entry.js +33 -55
- package/dist/esm/ion-checkbox.entry.js +16 -34
- package/dist/esm/ion-chip.entry.js +9 -50
- package/dist/esm/ion-col_3.entry.js +57 -56
- package/dist/esm/ion-datetime-button.entry.js +9 -13
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +30 -741
- package/dist/esm/ion-fab_3.entry.js +28 -44
- package/dist/esm/ion-img.entry.js +4 -8
- package/dist/esm/ion-infinite-scroll_2.entry.js +16 -91
- package/dist/esm/ion-input-otp.entry.js +9 -74
- package/dist/esm/ion-input-password-toggle.entry.js +15 -53
- package/dist/esm/ion-input.entry.js +34 -124
- package/dist/esm/ion-item-option_3.entry.js +52 -467
- package/dist/esm/ion-item_8.entry.js +49 -115
- package/dist/esm/ion-loading.entry.js +22 -20
- package/dist/esm/ion-menu_3.entry.js +29 -47
- package/dist/esm/ion-modal.entry.js +95 -215
- package/dist/esm/ion-nav_2.entry.js +11 -14
- package/dist/esm/ion-picker-column-option.entry.js +8 -12
- package/dist/esm/ion-picker-column.entry.js +13 -13
- package/dist/esm/ion-picker.entry.js +6 -10
- package/dist/esm/ion-popover.entry.js +23 -21
- package/dist/esm/ion-progress-bar.entry.js +9 -27
- package/dist/esm/ion-radio_2.entry.js +17 -35
- package/dist/esm/ion-range.entry.js +13 -20
- package/dist/esm/ion-refresher_2.entry.js +21 -39
- package/dist/esm/ion-reorder_2.entry.js +14 -38
- package/dist/esm/ion-ripple-effect.entry.js +7 -15
- package/dist/esm/ion-route_4.entry.js +9 -10
- package/dist/esm/ion-searchbar.entry.js +24 -137
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +3 -13
- package/dist/esm/ion-segment_2.entry.js +16 -23
- package/dist/esm/ion-select-modal.entry.js +40 -119
- package/dist/esm/ion-select_3.entry.js +116 -501
- package/dist/esm/ion-spinner.entry.js +8 -30
- package/dist/esm/ion-split-pane.entry.js +9 -13
- package/dist/esm/ion-tab-bar_2.entry.js +23 -147
- package/dist/esm/ion-tab_2.entry.js +7 -8
- package/dist/esm/ion-text.entry.js +7 -7
- package/dist/esm/ion-textarea.entry.js +23 -137
- package/dist/esm/ion-toast.entry.js +21 -44
- package/dist/esm/ion-toggle.entry.js +25 -82
- package/dist/esm/ionic-global-DfbeLwcV.js +146 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-DoQTN5Jk.js → ios.transition--aMF-pDH.js} +5 -7
- package/dist/esm/{keyboard-Dnno7-Ci.js → keyboard-CUw4ekVy.js} +1 -1
- package/dist/esm/{keyboard-controller-BpOdk6xN.js → keyboard-controller-BaaVITYt.js} +3 -5
- package/dist/esm/{keyboard-Ca1zVCcH.js → keyboard-ywgs5efA.js} +3 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-DZydrWwq.js → md.transition-BEVbfm8j.js} +5 -6
- package/dist/esm/{notch-controller-klgNWpjJ.js → notch-controller-DAcvKU57.js} +2 -2
- package/dist/esm/{overlays-CpQ6Df2g.js → overlays-BDGzTP3L.js} +39 -114
- package/dist/esm/{status-tap-fYFdZg6z.js → status-tap-BfJqFSLF.js} +3 -4
- package/dist/esm/{swipe-back-BzGqTrrq.js → swipe-back-BZBFwTQV.js} +2 -3
- package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
- package/dist/esm/validity-DJztqcrH.js +17 -0
- package/dist/html.html-data.json +154 -2674
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-045a6a42.entry.js +4 -0
- package/dist/ionic/p-078037da.entry.js +4 -0
- package/dist/ionic/p-0ed06d90.entry.js +4 -0
- package/dist/ionic/p-18b5d5ff.entry.js +4 -0
- package/dist/ionic/p-19adf785.entry.js +4 -0
- package/dist/ionic/p-1d2163ad.entry.js +4 -0
- package/dist/ionic/p-23ec35e4.entry.js +4 -0
- package/dist/ionic/p-30f5ad9e.entry.js +4 -0
- package/dist/ionic/p-34b3a309.entry.js +4 -0
- package/dist/ionic/p-370a60ee.entry.js +4 -0
- package/dist/ionic/p-3b58996c.entry.js +4 -0
- package/dist/ionic/p-460fbe5b.entry.js +4 -0
- package/dist/ionic/p-4c8d8c55.entry.js +4 -0
- package/dist/ionic/p-4ea520a4.entry.js +4 -0
- package/dist/ionic/p-4ed63122.entry.js +4 -0
- package/dist/ionic/p-4f3a8ccf.entry.js +4 -0
- package/dist/ionic/p-528d4c1d.entry.js +4 -0
- package/dist/ionic/p-5430ae94.entry.js +4 -0
- package/dist/ionic/p-54ac6e6d.entry.js +4 -0
- package/dist/ionic/p-66494f9b.entry.js +4 -0
- package/dist/ionic/p-6a56880f.entry.js +4 -0
- package/dist/ionic/p-6af16209.entry.js +4 -0
- package/dist/ionic/p-6b97f2a3.entry.js +4 -0
- package/dist/ionic/p-6da572e7.entry.js +4 -0
- package/dist/ionic/p-6e99ae8d.entry.js +4 -0
- package/dist/ionic/p-7f269aff.entry.js +4 -0
- package/dist/ionic/p-7f9db51b.entry.js +4 -0
- package/dist/ionic/p-7fe42b71.entry.js +4 -0
- package/dist/ionic/p-823eccd3.entry.js +4 -0
- package/dist/ionic/p-87125490.entry.js +4 -0
- package/dist/ionic/p-898f9d11.entry.js +4 -0
- package/dist/ionic/p-8a3a936b.entry.js +4 -0
- package/dist/ionic/p-9833cf63.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-AlrZKoWR.js +4 -0
- package/dist/ionic/{p-DKWXAwlR.js → p-B8xlpH8p.js} +1 -1
- package/dist/ionic/p-BAt5H1ac.js +4 -0
- package/dist/ionic/p-BW_TRJm8.js +4 -0
- package/dist/ionic/p-BmVRXR1y.js +4 -0
- package/dist/ionic/p-Bum7H1fw.js +4 -0
- package/{components/p-oF-CwZ0b.js → dist/ionic/p-BvFYtOdE.js} +1 -1
- package/{components/p-Bt0d89x3.js → dist/ionic/p-BxIcPWoV.js} +1 -1
- package/dist/ionic/p-C0JvVFMv.js +4 -0
- package/dist/ionic/p-CGmVTdWh.js +4 -0
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/dist/ionic/{p-BmEwy3tY.js → p-CKvCXMs9.js} +1 -1
- package/dist/ionic/p-CYbRmDdy.js +4 -0
- package/dist/ionic/p-CmFz1Mjc.js +4 -0
- package/dist/ionic/p-Csx_Ej2k.js +4 -0
- package/dist/ionic/p-CtA-yJYy.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/{components/p-Cllkut-B.js → dist/ionic/p-D13Eaw-8.js} +1 -1
- package/dist/ionic/p-D8HJQ1qq.js +4 -0
- package/dist/ionic/p-DB_iPQC-.js +4 -0
- package/dist/ionic/p-DJztqcrH.js +4 -0
- package/dist/ionic/p-DLbbmF9h.js +4 -0
- package/dist/ionic/p-DcSNwXfb.js +4 -0
- package/dist/ionic/p-DiVJyqlX.js +4 -0
- package/dist/ionic/p-DjriolRs.js +4 -0
- package/dist/ionic/p-DtVZDHlS.js +4 -0
- package/dist/ionic/p-IGIE5vDm.js +5 -0
- package/dist/ionic/p-NFFyoJ4Q.js +4 -0
- package/dist/ionic/p-ZjP4CjeZ.js +4 -0
- package/dist/ionic/p-a39db980.entry.js +4 -0
- package/dist/ionic/p-a47ddfb2.entry.js +4 -0
- package/dist/ionic/p-a805674e.entry.js +4 -0
- package/dist/ionic/p-b553828c.entry.js +4 -0
- package/dist/ionic/p-b6e0ff03.entry.js +4 -0
- package/dist/ionic/p-b8f4a31c.entry.js +4 -0
- package/dist/ionic/p-ca31010f.entry.js +4 -0
- package/dist/ionic/p-cce0cd26.entry.js +4 -0
- package/dist/ionic/p-dc198c3a.entry.js +4 -0
- package/dist/ionic/p-e059750f.entry.js +4 -0
- package/dist/ionic/p-e0d788e9.entry.js +4 -0
- package/dist/ionic/p-e663bc5a.entry.js +4 -0
- package/dist/ionic/p-e6cedcd7.entry.js +4 -0
- package/dist/ionic/p-e9dd191b.entry.js +4 -0
- package/dist/ionic/p-ede28b71.entry.js +4 -0
- package/dist/ionic/p-f17d05e3.entry.js +4 -0
- package/dist/ionic/p-f5dfb9a3.entry.js +4 -0
- package/dist/ionic/p-f7762013.entry.js +4 -0
- package/dist/ionic/p-fed27c64.entry.js +4 -0
- package/dist/ionic/p-gbVXD275.js +4 -0
- package/dist/ionic/p-hNN3VvaC.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +3 -6
- package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
- package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
- package/dist/types/components/alert/alert-interface.d.ts +7 -3
- package/dist/types/components/alert/alert.d.ts +2 -3
- package/dist/types/components/app/app.d.ts +5 -4
- package/dist/types/components/avatar/avatar.d.ts +0 -32
- package/dist/types/components/back-button/back-button.d.ts +1 -2
- package/dist/types/components/backdrop/backdrop.d.ts +0 -4
- package/dist/types/components/badge/badge.d.ts +1 -34
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +8 -23
- package/dist/types/components/buttons/buttons.d.ts +1 -5
- package/dist/types/components/card/card.d.ts +1 -8
- package/dist/types/components/card-content/card-content.d.ts +1 -2
- package/dist/types/components/card-header/card-header.d.ts +2 -3
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
- package/dist/types/components/card-title/card-title.d.ts +1 -2
- package/dist/types/components/checkbox/checkbox.d.ts +4 -14
- package/dist/types/components/chip/chip.d.ts +1 -26
- package/dist/types/components/col/col.d.ts +5 -52
- package/dist/types/components/content/content.d.ts +0 -3
- package/dist/types/components/datetime/datetime.d.ts +1 -26
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
- package/dist/types/components/fab/fab.d.ts +0 -4
- package/dist/types/components/fab-button/fab-button.d.ts +3 -5
- package/dist/types/components/fab-list/fab-list.d.ts +0 -4
- package/dist/types/components/footer/footer.d.ts +3 -4
- package/dist/types/components/grid/grid.d.ts +0 -4
- package/dist/types/components/header/header.d.ts +3 -9
- package/dist/types/components/header/header.utils.d.ts +3 -3
- package/dist/types/components/img/img.d.ts +0 -3
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
- package/dist/types/components/input/input.d.ts +5 -31
- package/dist/types/components/input-otp/input-otp.d.ts +0 -37
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
- package/dist/types/components/item/item.d.ts +4 -11
- package/dist/types/components/item-divider/item-divider.d.ts +1 -2
- package/dist/types/components/item-group/item-group.d.ts +0 -4
- package/dist/types/components/item-option/item-option.d.ts +1 -18
- package/dist/types/components/item-options/item-options.d.ts +0 -4
- package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
- package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
- package/dist/types/components/label/label.d.ts +1 -2
- package/dist/types/components/list/list.d.ts +1 -15
- package/dist/types/components/list-header/list-header.d.ts +1 -2
- package/dist/types/components/loading/loading-interface.d.ts +7 -2
- package/dist/types/components/loading/loading.d.ts +2 -3
- package/dist/types/components/menu/menu.d.ts +0 -3
- package/dist/types/components/menu-button/menu-button.d.ts +1 -3
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +7 -4
- package/dist/types/components/modal/modal.d.ts +1 -11
- package/dist/types/components/nav/nav-interface.d.ts +1 -9
- package/dist/types/components/nav/nav.d.ts +1 -5
- package/dist/types/components/nav-link/nav-link.d.ts +0 -4
- package/dist/types/components/note/note.d.ts +1 -2
- package/dist/types/components/picker/picker.d.ts +1 -2
- package/dist/types/components/picker-column/picker-column.d.ts +1 -2
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
- package/dist/types/components/popover/popover-interface.d.ts +6 -3
- package/dist/types/components/popover/popover.d.ts +5 -6
- package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
- package/dist/types/components/radio/radio.d.ts +1 -2
- package/dist/types/components/radio-group/radio-group.d.ts +0 -12
- package/dist/types/components/range/range.d.ts +1 -2
- package/dist/types/components/refresher/refresher.d.ts +1 -2
- package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
- package/dist/types/components/reorder/reorder.d.ts +0 -9
- package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
- package/dist/types/components/route/route.d.ts +0 -4
- package/dist/types/components/router/router.d.ts +0 -4
- package/dist/types/components/router-link/router-link.d.ts +0 -4
- package/dist/types/components/router-outlet/router-outlet.d.ts +8 -4
- package/dist/types/components/row/row.d.ts +0 -4
- package/dist/types/components/searchbar/searchbar.d.ts +9 -51
- package/dist/types/components/segment/segment.d.ts +1 -2
- package/dist/types/components/segment-button/segment-button.d.ts +1 -2
- package/dist/types/components/select/select-interface.d.ts +0 -31
- package/dist/types/components/select/select.d.ts +14 -66
- package/dist/types/components/select-modal/select-modal.d.ts +0 -8
- package/dist/types/components/select-option/select-option.d.ts +0 -44
- package/dist/types/components/select-popover/select-popover.d.ts +0 -3
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
- package/dist/types/components/spinner/spinner.d.ts +0 -15
- package/dist/types/components/split-pane/split-pane.d.ts +0 -4
- package/dist/types/components/tab/tab.d.ts +0 -4
- package/dist/types/components/tab-bar/tab-bar.d.ts +2 -37
- package/dist/types/components/tab-button/tab-button.d.ts +1 -12
- package/dist/types/components/tabs/tabs.d.ts +0 -3
- package/dist/types/components/text/text.d.ts +1 -2
- package/dist/types/components/textarea/textarea.d.ts +4 -53
- package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
- package/dist/types/components/title/title.d.ts +0 -4
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +7 -3
- package/dist/types/components/toast/toast.d.ts +2 -19
- package/dist/types/components/toggle/toggle.d.ts +1 -15
- package/dist/types/components/toolbar/toolbar.d.ts +3 -43
- package/dist/types/components.d.ts +248 -2125
- package/dist/types/global/ionic-global.d.ts +2 -28
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -4
- package/dist/types/utils/config.d.ts +2 -114
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +0 -13
- package/dist/types/utils/forms/validity.d.ts +0 -7
- package/dist/types/utils/helpers.d.ts +0 -11
- package/dist/types/utils/overlays-interface.d.ts +1 -31
- package/dist/types/utils/overlays.d.ts +12 -10
- package/dist/types/utils/sanitization/index.d.ts +2 -32
- package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
- package/dist/types/utils/test/playwright/generator.d.ts +2 -31
- package/dist/types/utils/theme.d.ts +0 -9
- package/hydrate/index.js +1292 -5914
- package/hydrate/index.mjs +1292 -5914
- package/package.json +38 -10
- package/components/ion-divider.d.ts +0 -11
- package/components/ion-divider.js +0 -4
- package/components/ion-gallery.d.ts +0 -11
- package/components/ion-gallery.js +0 -4
- 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-3Ni1Z654.js +0 -4
- package/components/p-7kL3tltU.js +0 -4
- package/components/p-B9MABkWm.js +0 -4
- package/components/p-BBu2n-9C.js +0 -4
- package/components/p-BDcohALy.js +0 -4
- package/components/p-BDqjX7Z_.js +0 -4
- package/components/p-BJzJdLry.js +0 -4
- package/components/p-BYSs-jZz.js +0 -4
- package/components/p-B_MdONwD.js +0 -4
- package/components/p-BaPtaYEC.js +0 -4
- package/components/p-BcbmT6b3.js +0 -4
- package/components/p-Bg30AtDZ.js +0 -4
- package/components/p-BhkGOA7t.js +0 -4
- package/components/p-BjW8SOqw.js +0 -4
- package/components/p-Bk9hTY4h.js +0 -4
- package/components/p-BqDiJgC_.js +0 -4
- package/components/p-BsNpz2u3.js +0 -4
- package/components/p-BsSTz5ia.js +0 -4
- package/components/p-BwQOIWD7.js +0 -4
- package/components/p-C75FIZBC.js +0 -4
- package/components/p-C8kBejTT.js +0 -4
- package/components/p-CBS0sBAa.js +0 -4
- package/components/p-CUAgUmQC.js +0 -4
- package/components/p-Cg-xpJhD.js +0 -4
- package/components/p-CgSn4J7d.js +0 -4
- package/components/p-CgZLVOCc.js +0 -4
- package/components/p-Cz4uz3Dy.js +0 -4
- package/components/p-CzC_ZSgb.js +0 -4
- package/components/p-D1t981Ih.js +0 -4
- package/components/p-D2mReIu8.js +0 -4
- package/components/p-D6g8ud1e.js +0 -4
- package/components/p-DDw-NYxz.js +0 -4
- package/components/p-DN_scBC7.js +0 -4
- package/components/p-DVcs-2q3.js +0 -4
- package/components/p-DXehWlOr.js +0 -4
- package/components/p-DaJxRxSQ.js +0 -4
- package/components/p-DhXUGFNH.js +0 -4
- package/components/p-Dhi5xtNS.js +0 -4
- package/components/p-Do7NMUwR.js +0 -4
- package/components/p-Dp2x0MpA.js +0 -4
- package/components/p-GElQZ38c.js +0 -4
- package/components/p-GtzfsjJP.js +0 -4
- package/components/p-LB-QPk3e.js +0 -4
- package/components/p-NVAi5HQQ.js +0 -4
- package/components/p-PzmQ86nh.js +0 -4
- package/components/p-Skz67GXZ.js +0 -4
- package/components/p-VVrXfwLZ.js +0 -4
- package/components/p-WdrzoonY.js +0 -4
- package/components/p-XegQjlzJ.js +0 -4
- package/components/p-fIOYmaqA.js +0 -4
- package/components/p-hpwmNJ2Q.js +0 -4
- package/components/p-kKYBfhbe.js +0 -4
- package/components/p-lGSe6-vg.js +0 -4
- package/components/p-pvh0bjpw.js +0 -4
- package/components/p-sToA4Co7.js +0 -4
- package/components/p-vXpMhGrs.js +0 -4
- package/components/p-wCDzv5Q8.js +0 -4
- package/css/ionic/bundle.ionic.css +0 -1
- package/css/ionic/bundle.ionic.css.map +0 -1
- package/css/ionic/core.ionic.css +0 -1
- package/css/ionic/core.ionic.css.map +0 -1
- package/css/ionic/global.bundle.ionic.css +0 -1
- package/css/ionic/global.bundle.ionic.css.map +0 -1
- package/css/ionic/ionic-swiper.ionic.css +0 -1
- package/css/ionic/ionic-swiper.ionic.css.map +0 -1
- package/css/ionic/link.ionic.css +0 -1
- package/css/ionic/link.ionic.css.map +0 -1
- package/css/ionic/structure.ionic.css +0 -1
- package/css/ionic/structure.ionic.css.map +0 -1
- package/css/ionic/typography.ionic.css +0 -1
- package/css/ionic/typography.ionic.css.map +0 -1
- package/css/ionic/utils.bundle.ionic.css +0 -1
- package/css/ionic/utils.bundle.ionic.css.map +0 -1
- package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
- package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
- package/dist/cjs/caret-right-CRCgv98E.js +0 -8
- package/dist/cjs/ion-divider.cjs.entry.js +0 -51
- package/dist/cjs/ion-gallery.cjs.entry.js +0 -510
- package/dist/cjs/ionic-global-BW5tRzrz.js +0 -519
- package/dist/cjs/list-a-7GSA6K.js +0 -8
- package/dist/cjs/overlay-control-label-t9ZFhCtr.js +0 -51
- package/dist/cjs/select-option-render-C72N7OsO.js +0 -111
- package/dist/cjs/validity-QmuwEptc.js +0 -51
- package/dist/cjs/x-BTF99yFH.js +0 -8
- package/dist/collection/components/accordion/accordion.ionic.css +0 -201
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -439
- package/dist/collection/components/alert/alert.ionic.css +0 -726
- package/dist/collection/components/avatar/avatar.ionic.css +0 -391
- package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
- package/dist/collection/components/badge/badge.ionic.css +0 -275
- package/dist/collection/components/button/button.ionic.css +0 -646
- package/dist/collection/components/buttons/buttons.ionic.css +0 -97
- package/dist/collection/components/card/card.ionic.css +0 -144
- package/dist/collection/components/card-content/card-content.ionic.css +0 -89
- package/dist/collection/components/card-header/card-header.ionic.css +0 -85
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
- package/dist/collection/components/checkbox/checkbox.ionic.css +0 -539
- package/dist/collection/components/chip/chip.ionic.css +0 -217
- package/dist/collection/components/datetime/datetime.ionic.css +0 -703
- package/dist/collection/components/divider/divider.ionic.css +0 -148
- package/dist/collection/components/divider/divider.ios.css +0 -87
- package/dist/collection/components/divider/divider.js +0 -94
- package/dist/collection/components/divider/divider.md.css +0 -87
- package/dist/collection/components/gallery/gallery-constants.js +0 -12
- package/dist/collection/components/gallery/gallery-interface.js +0 -1
- package/dist/collection/components/gallery/gallery.css +0 -100
- package/dist/collection/components/gallery/gallery.js +0 -595
- package/dist/collection/components/gallery/test/utils.js +0 -100
- package/dist/collection/components/header/header.ionic.css +0 -97
- package/dist/collection/components/input/input.ionic.css +0 -889
- package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
- package/dist/collection/components/item/item.ionic.css +0 -496
- package/dist/collection/components/item-option/item-option.ionic.css +0 -278
- package/dist/collection/components/item-options/item-options.ionic.css +0 -221
- package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
- package/dist/collection/components/list/list.ionic.css +0 -212
- package/dist/collection/components/list-header/list-header.ionic.css +0 -190
- package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
- package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
- package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
- package/dist/collection/components/modal/modal.ionic.css +0 -247
- 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 -312
- package/dist/collection/components/picker-legacy/picker.js +0 -891
- package/dist/collection/components/picker-legacy/picker.md.css +0 -299
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -243
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -234
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/collection/components/popover/popover.ionic.css +0 -290
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
- package/dist/collection/components/radio/radio.ionic.css +0 -422
- package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
- package/dist/collection/components/range/range.ionic.css +0 -567
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
- package/dist/collection/components/searchbar/searchbar.ionic.css +0 -626
- package/dist/collection/components/segment/segment.ionic.css +0 -115
- package/dist/collection/components/segment-button/segment-button.ionic.css +0 -353
- package/dist/collection/components/select/select.ionic.css +0 -810
- package/dist/collection/components/select-modal/select-modal.ionic.css +0 -221
- package/dist/collection/components/select-popover/select-popover.ionic.css +0 -220
- package/dist/collection/components/spinner/spinner.native.css +0 -199
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -227
- package/dist/collection/components/tab-button/tab-button.ionic.css +0 -348
- package/dist/collection/components/textarea/textarea.ionic.css +0 -898
- package/dist/collection/components/title/title.ionic.css +0 -127
- package/dist/collection/components/toast/toast.ionic.css +0 -394
- package/dist/collection/components/toggle/toggle.ionic.css +0 -508
- package/dist/collection/components/toolbar/test/image.svg +0 -1
- package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
- package/dist/collection/utils/css-value-validation.js +0 -25
- package/dist/collection/utils/overlay-control-label.js +0 -46
- package/dist/collection/utils/select-option-render.js +0 -106
- package/dist/esm/caret-down-D1t981Ih.js +0 -6
- package/dist/esm/caret-left-fIOYmaqA.js +0 -6
- package/dist/esm/caret-right-BYSs-jZz.js +0 -6
- package/dist/esm/ion-divider.entry.js +0 -49
- package/dist/esm/ion-gallery.entry.js +0 -508
- package/dist/esm/ionic-global--9mOmThr.js +0 -508
- package/dist/esm/list-Dhi5xtNS.js +0 -6
- package/dist/esm/overlay-control-label-PzmQ86nh.js +0 -48
- package/dist/esm/select-option-render-y_4XoEqH.js +0 -109
- package/dist/esm/validity-BjW8SOqw.js +0 -48
- package/dist/esm/x-BDqjX7Z_.js +0 -6
- package/dist/ionic/p-0030507d.entry.js +0 -4
- package/dist/ionic/p-084c2623.entry.js +0 -4
- package/dist/ionic/p-09f8a57f.entry.js +0 -4
- package/dist/ionic/p-108c0f30.entry.js +0 -4
- package/dist/ionic/p-1439fecb.entry.js +0 -4
- package/dist/ionic/p-199bffb3.entry.js +0 -4
- package/dist/ionic/p-19a1ff9a.entry.js +0 -4
- package/dist/ionic/p-1a026890.entry.js +0 -4
- package/dist/ionic/p-1ad16c09.entry.js +0 -4
- package/dist/ionic/p-2aa7567e.entry.js +0 -4
- package/dist/ionic/p-3656314c.entry.js +0 -4
- package/dist/ionic/p-379cc989.entry.js +0 -4
- package/dist/ionic/p-3f18dfe9.entry.js +0 -4
- package/dist/ionic/p-3f1dbb47.entry.js +0 -4
- package/dist/ionic/p-40d9e029.entry.js +0 -4
- package/dist/ionic/p-410d60c5.entry.js +0 -4
- package/dist/ionic/p-456736d1.entry.js +0 -4
- package/dist/ionic/p-48e3cb9e.entry.js +0 -4
- package/dist/ionic/p-497f6391.entry.js +0 -4
- package/dist/ionic/p-64b4e6eb.entry.js +0 -4
- package/dist/ionic/p-66eb0193.entry.js +0 -4
- package/dist/ionic/p-67c2d349.entry.js +0 -4
- package/dist/ionic/p-7054a1b9.entry.js +0 -4
- package/dist/ionic/p-70ee89c9.entry.js +0 -4
- package/dist/ionic/p-7186786e.entry.js +0 -4
- package/dist/ionic/p-7194f6fa.entry.js +0 -4
- package/dist/ionic/p-76c70824.entry.js +0 -4
- package/dist/ionic/p-7e6112fc.entry.js +0 -4
- package/dist/ionic/p-7f294078.entry.js +0 -4
- package/dist/ionic/p-8458f1b6.entry.js +0 -4
- package/dist/ionic/p-88e7f52a.entry.js +0 -4
- package/dist/ionic/p-89eab395.entry.js +0 -4
- package/dist/ionic/p-93315d96.entry.js +0 -4
- package/dist/ionic/p-9ccfb733.entry.js +0 -4
- package/dist/ionic/p-9dfbe98d.entry.js +0 -4
- package/dist/ionic/p-B4ikoeaj.js +0 -4
- package/dist/ionic/p-BDqjX7Z_.js +0 -4
- package/dist/ionic/p-BFBCtvFI.js +0 -4
- package/dist/ionic/p-BQgCYKKG.js +0 -4
- package/dist/ionic/p-BYAxJDlE.js +0 -4
- package/dist/ionic/p-BYSs-jZz.js +0 -4
- package/dist/ionic/p-BjW8SOqw.js +0 -4
- package/dist/ionic/p-CDn0uNJA.js +0 -4
- package/dist/ionic/p-CHE1xWbg.js +0 -4
- package/dist/ionic/p-CK179dBb.js +0 -4
- package/dist/ionic/p-CLHjFE18.js +0 -4
- package/dist/ionic/p-CYhXBSjd.js +0 -4
- package/dist/ionic/p-D1t981Ih.js +0 -4
- package/dist/ionic/p-D2tu5BUg.js +0 -4
- package/dist/ionic/p-DDFhx1YX.js +0 -4
- package/dist/ionic/p-DNGqaUsl.js +0 -4
- package/dist/ionic/p-DaJxRxSQ.js +0 -4
- package/dist/ionic/p-DaknVxZR.js +0 -4
- package/dist/ionic/p-Dhi5xtNS.js +0 -4
- package/dist/ionic/p-DoyDJ2X5.js +0 -4
- package/dist/ionic/p-E1wtzfO0.js +0 -4
- package/dist/ionic/p-FvDKM4Ax.js +0 -4
- package/dist/ionic/p-IXZW3FBt.js +0 -4
- package/dist/ionic/p-Omi_TcwW.js +0 -5
- package/dist/ionic/p-PoSbs6oh.js +0 -4
- package/dist/ionic/p-PzmQ86nh.js +0 -4
- package/dist/ionic/p-VAJ_3beW.js +0 -4
- package/dist/ionic/p-a3f9be52.entry.js +0 -4
- package/dist/ionic/p-ad4d0138.entry.js +0 -4
- package/dist/ionic/p-b4ba0050.entry.js +0 -4
- package/dist/ionic/p-b4fd91b8.entry.js +0 -4
- package/dist/ionic/p-b653f4c2.entry.js +0 -4
- package/dist/ionic/p-b69add0e.entry.js +0 -4
- package/dist/ionic/p-b7235e85.entry.js +0 -4
- package/dist/ionic/p-bc317965.entry.js +0 -4
- package/dist/ionic/p-bsfLvRbd.js +0 -4
- package/dist/ionic/p-c21a780d.entry.js +0 -4
- package/dist/ionic/p-c5118189.entry.js +0 -4
- package/dist/ionic/p-c684a3b6.entry.js +0 -4
- package/dist/ionic/p-c7139c41.entry.js +0 -4
- package/dist/ionic/p-c94fbdab.entry.js +0 -4
- package/dist/ionic/p-dac1d4de.entry.js +0 -4
- package/dist/ionic/p-dd2981d0.entry.js +0 -4
- package/dist/ionic/p-eTI_FbQJ.js +0 -4
- package/dist/ionic/p-f72200cc.entry.js +0 -4
- package/dist/ionic/p-fIOYmaqA.js +0 -4
- package/dist/ionic/p-fbdbdb3e.entry.js +0 -4
- package/dist/ionic/p-fd519e2b.entry.js +0 -4
- package/dist/ionic/p-ff09d2a5.entry.js +0 -4
- package/dist/ionic/p-u6HLvq0g.js +0 -4
- package/dist/ionic/p-vXpMhGrs.js +0 -4
- package/dist/types/components/divider/divider.d.ts +0 -20
- package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
- package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
- package/dist/types/components/gallery/gallery.d.ts +0 -183
- package/dist/types/components/gallery/test/utils.d.ts +0 -2
- package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
- package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
- 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 -159
- 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
- package/dist/types/utils/css-value-validation.d.ts +0 -12
- package/dist/types/utils/overlay-control-label.d.ts +0 -34
- package/dist/types/utils/select-option-render.d.ts +0 -22
- /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import caretDownRegular from "@phosphor-icons/core/assets/regular/caret-down.svg";
|
|
5
4
|
import { Build, Host, h, forceUpdate } from "@stencil/core";
|
|
6
|
-
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
7
5
|
import { compareOptions, createNotchController, isOptionSelected, checkInvalidState } from "../../utils/forms/index";
|
|
8
6
|
import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
|
|
9
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
10
8
|
import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
|
|
11
9
|
import { isRTL } from "../../utils/rtl/index";
|
|
12
|
-
import { sanitizeDOMTree } from "../../utils/sanitization/index";
|
|
13
10
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
14
11
|
import { watchForOptions } from "../../utils/watch-options";
|
|
15
12
|
import { caretDownSharp, chevronExpand } from "ionicons/icons";
|
|
16
|
-
import {
|
|
17
|
-
import { getIonTheme } from "../../global/ionic-global";
|
|
13
|
+
import { getIonMode } from "../../global/ionic-global";
|
|
18
14
|
// TODO(FW-2832): types
|
|
19
15
|
/**
|
|
20
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines
|
|
21
|
-
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
16
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
22
17
|
*
|
|
23
18
|
* @slot label - The label text to associate with the select. Use the `labelPlacement` property to control where the label is placed relative to the select. Use this if you need to render a label with custom HTML.
|
|
24
19
|
* @slot start - Content to display at the leading edge of the select.
|
|
@@ -42,7 +37,6 @@ export class Select {
|
|
|
42
37
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
43
38
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
44
39
|
this.inheritedAttributes = {};
|
|
45
|
-
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
46
40
|
this.isExpanded = false;
|
|
47
41
|
/**
|
|
48
42
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -61,14 +55,6 @@ export class Select {
|
|
|
61
55
|
* The text to display on the cancel button.
|
|
62
56
|
*/
|
|
63
57
|
this.cancelText = 'Cancel';
|
|
64
|
-
/**
|
|
65
|
-
* If `true`, the cancel button will display an icon instead of the `cancelText`.
|
|
66
|
-
* Only applies when `interface` is set to `"modal"`. Has no effect on `"action-sheet"`,
|
|
67
|
-
* `"alert"`, or `"popover"` interfaces.
|
|
68
|
-
* When `cancelIcon` is `true`, the `cancelText` property is ignored for display
|
|
69
|
-
* but is used as the accessible label for the icon button.
|
|
70
|
-
*/
|
|
71
|
-
this.cancelIcon = false;
|
|
72
58
|
/**
|
|
73
59
|
* If `true`, the user cannot interact with the select.
|
|
74
60
|
*/
|
|
@@ -176,9 +162,40 @@ export class Select {
|
|
|
176
162
|
this.emitStyle();
|
|
177
163
|
}
|
|
178
164
|
setValue(value) {
|
|
165
|
+
if (this.isValueEqual(this.value, value)) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
179
168
|
this.value = value;
|
|
180
169
|
this.ionChange.emit({ value });
|
|
181
170
|
}
|
|
171
|
+
isValueEqual(currentValue, newValue) {
|
|
172
|
+
if (this.multiple) {
|
|
173
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
174
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
175
|
+
if (currentArr.length !== newArr.length) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
179
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
180
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
181
|
+
const remaining = currentArr.slice();
|
|
182
|
+
return newArr.every((val) => {
|
|
183
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
184
|
+
if (idx === -1) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
remaining.splice(idx, 1);
|
|
188
|
+
return true;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
if (currentValue == null && newValue == null) {
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
if (currentValue == null || newValue == null) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
198
|
+
}
|
|
182
199
|
async connectedCallback() {
|
|
183
200
|
const { el } = this;
|
|
184
201
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -413,10 +430,9 @@ export class Select {
|
|
|
413
430
|
.join(' ');
|
|
414
431
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
415
432
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
416
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
417
433
|
return {
|
|
418
434
|
role: isSelected ? 'selected' : '',
|
|
419
|
-
text:
|
|
435
|
+
text: option.textContent,
|
|
420
436
|
cssClass: optClass,
|
|
421
437
|
handler: () => {
|
|
422
438
|
this.setValue(value);
|
|
@@ -425,9 +441,6 @@ export class Select {
|
|
|
425
441
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
426
442
|
role: 'radio',
|
|
427
443
|
},
|
|
428
|
-
startContent,
|
|
429
|
-
endContent,
|
|
430
|
-
description: option.description,
|
|
431
444
|
};
|
|
432
445
|
});
|
|
433
446
|
// Add "cancel" button
|
|
@@ -448,19 +461,13 @@ export class Select {
|
|
|
448
461
|
.filter((cls) => cls !== 'hydrated')
|
|
449
462
|
.join(' ');
|
|
450
463
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
451
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
452
464
|
return {
|
|
453
465
|
type: inputType,
|
|
454
466
|
cssClass: optClass,
|
|
455
|
-
label:
|
|
467
|
+
label: option.textContent || '',
|
|
456
468
|
value,
|
|
457
469
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
458
470
|
disabled: option.disabled,
|
|
459
|
-
startContent,
|
|
460
|
-
endContent,
|
|
461
|
-
description: option.description,
|
|
462
|
-
labelPlacement: option.labelPlacement,
|
|
463
|
-
justify: option.justify,
|
|
464
471
|
};
|
|
465
472
|
});
|
|
466
473
|
return alertInputs;
|
|
@@ -473,9 +480,8 @@ export class Select {
|
|
|
473
480
|
.filter((cls) => cls !== 'hydrated')
|
|
474
481
|
.join(' ');
|
|
475
482
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
476
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
477
483
|
return {
|
|
478
|
-
text:
|
|
484
|
+
text: option.textContent || '',
|
|
479
485
|
cssClass: optClass,
|
|
480
486
|
value,
|
|
481
487
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -486,11 +492,6 @@ export class Select {
|
|
|
486
492
|
this.close();
|
|
487
493
|
}
|
|
488
494
|
},
|
|
489
|
-
startContent,
|
|
490
|
-
endContent,
|
|
491
|
-
description: option.description,
|
|
492
|
-
labelPlacement: option.labelPlacement,
|
|
493
|
-
justify: option.justify,
|
|
494
495
|
};
|
|
495
496
|
});
|
|
496
497
|
return popoverOptions;
|
|
@@ -498,8 +499,8 @@ export class Select {
|
|
|
498
499
|
async openPopover(ev) {
|
|
499
500
|
const { fill, labelPlacement } = this;
|
|
500
501
|
const interfaceOptions = this.interfaceOptions;
|
|
501
|
-
const
|
|
502
|
-
const showBackdrop =
|
|
502
|
+
const mode = getIonMode(this);
|
|
503
|
+
const showBackdrop = mode === 'md' ? false : true;
|
|
503
504
|
const multiple = this.multiple;
|
|
504
505
|
const value = this.value;
|
|
505
506
|
let event = ev;
|
|
@@ -510,7 +511,7 @@ export class Select {
|
|
|
510
511
|
* when using a fill in MD mode or if the
|
|
511
512
|
* label is floating/stacked.
|
|
512
513
|
*/
|
|
513
|
-
if (hasFloatingOrStackedLabel || (
|
|
514
|
+
if (hasFloatingOrStackedLabel || (mode === 'md' && fill !== undefined)) {
|
|
514
515
|
size = 'cover';
|
|
515
516
|
/**
|
|
516
517
|
* Otherwise the popover
|
|
@@ -523,21 +524,15 @@ export class Select {
|
|
|
523
524
|
ionShadowTarget: this.nativeWrapperEl,
|
|
524
525
|
} });
|
|
525
526
|
}
|
|
526
|
-
const
|
|
527
|
-
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
528
|
-
const popoverOpts = Object.assign(Object.assign({ theme,
|
|
527
|
+
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
529
528
|
event, alignment: 'center', size,
|
|
530
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
531
|
-
'select-popover',
|
|
532
|
-
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
533
|
-
interfaceOptions.cssClass,
|
|
534
|
-
], componentProps: {
|
|
529
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
|
|
535
530
|
header: interfaceOptions.header,
|
|
536
531
|
subHeader: interfaceOptions.subHeader,
|
|
537
532
|
message: interfaceOptions.message,
|
|
538
533
|
multiple,
|
|
539
534
|
value,
|
|
540
|
-
options,
|
|
535
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
541
536
|
} });
|
|
542
537
|
/**
|
|
543
538
|
* Workaround for Stencil to autodefine
|
|
@@ -554,9 +549,9 @@ export class Select {
|
|
|
554
549
|
return popoverController.create(popoverOpts);
|
|
555
550
|
}
|
|
556
551
|
async openActionSheet() {
|
|
557
|
-
const
|
|
552
|
+
const mode = getIonMode(this);
|
|
558
553
|
const interfaceOptions = this.interfaceOptions;
|
|
559
|
-
const actionSheetOpts = Object.assign(Object.assign({
|
|
554
|
+
const actionSheetOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
|
|
560
555
|
/**
|
|
561
556
|
* Workaround for Stencil to autodefine
|
|
562
557
|
* ion-action-sheet when
|
|
@@ -573,8 +568,8 @@ export class Select {
|
|
|
573
568
|
async openAlert() {
|
|
574
569
|
const interfaceOptions = this.interfaceOptions;
|
|
575
570
|
const inputType = this.multiple ? 'checkbox' : 'radio';
|
|
576
|
-
const
|
|
577
|
-
const alertOpts = Object.assign(Object.assign({
|
|
571
|
+
const mode = getIonMode(this);
|
|
572
|
+
const alertOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
|
|
578
573
|
{
|
|
579
574
|
text: this.cancelText,
|
|
580
575
|
role: 'cancel',
|
|
@@ -608,11 +603,10 @@ export class Select {
|
|
|
608
603
|
}
|
|
609
604
|
openModal() {
|
|
610
605
|
const { multiple, value, interfaceOptions } = this;
|
|
611
|
-
const
|
|
612
|
-
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode
|
|
606
|
+
const mode = getIonMode(this);
|
|
607
|
+
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
613
608
|
header: interfaceOptions.header,
|
|
614
609
|
cancelText: this.cancelText,
|
|
615
|
-
cancelIcon: this.cancelIcon,
|
|
616
610
|
multiple,
|
|
617
611
|
value,
|
|
618
612
|
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
@@ -665,18 +659,12 @@ export class Select {
|
|
|
665
659
|
}
|
|
666
660
|
return;
|
|
667
661
|
}
|
|
668
|
-
|
|
669
|
-
* Returns the text to display in the select based on the selected value.
|
|
670
|
-
*
|
|
671
|
-
* @param useHTML If `true`, the returned text will include any custom HTML content from the selected option. If `false`, the returned text will be plain text without any HTML. Defaults to `false`.
|
|
672
|
-
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
673
|
-
*/
|
|
674
|
-
getText(useHTML = false) {
|
|
662
|
+
getText() {
|
|
675
663
|
const selectedText = this.selectedText;
|
|
676
664
|
if (selectedText != null && selectedText !== '') {
|
|
677
665
|
return selectedText;
|
|
678
666
|
}
|
|
679
|
-
return generateText(this.childOpts, this.value, this.compareWith
|
|
667
|
+
return generateText(this.childOpts, this.value, this.compareWith);
|
|
680
668
|
}
|
|
681
669
|
setFocus() {
|
|
682
670
|
if (this.focusEl) {
|
|
@@ -690,18 +678,6 @@ export class Select {
|
|
|
690
678
|
};
|
|
691
679
|
this.ionStyle.emit(style);
|
|
692
680
|
}
|
|
693
|
-
getSize() {
|
|
694
|
-
const theme = getIonTheme(this);
|
|
695
|
-
const { size } = this;
|
|
696
|
-
// TODO(ROU-11370): Remove theme check when sizes are defined for all themes.
|
|
697
|
-
if (theme !== 'ionic') {
|
|
698
|
-
return undefined;
|
|
699
|
-
}
|
|
700
|
-
if (size === undefined) {
|
|
701
|
-
return 'medium';
|
|
702
|
-
}
|
|
703
|
-
return size;
|
|
704
|
-
}
|
|
705
681
|
renderLabel() {
|
|
706
682
|
const { label } = this;
|
|
707
683
|
return (h("div", { class: {
|
|
@@ -734,8 +710,8 @@ export class Select {
|
|
|
734
710
|
* when fill="outline".
|
|
735
711
|
*/
|
|
736
712
|
renderLabelContainer() {
|
|
737
|
-
const
|
|
738
|
-
const hasOutlineFill =
|
|
713
|
+
const mode = getIonMode(this);
|
|
714
|
+
const hasOutlineFill = mode === 'md' && this.fill === 'outline';
|
|
739
715
|
if (hasOutlineFill) {
|
|
740
716
|
/**
|
|
741
717
|
* The outline fill has a special outline
|
|
@@ -758,47 +734,6 @@ export class Select {
|
|
|
758
734
|
*/
|
|
759
735
|
return this.renderLabel();
|
|
760
736
|
}
|
|
761
|
-
/**
|
|
762
|
-
* Wraps text nodes in the select text with span elements
|
|
763
|
-
* so spacing can be added between elements without
|
|
764
|
-
* changing the display to prevent losing the ellipses
|
|
765
|
-
* behavior.
|
|
766
|
-
*
|
|
767
|
-
* Only wraps when the string contains HTML elements
|
|
768
|
-
* alongside text.
|
|
769
|
-
*/
|
|
770
|
-
wrapSelectTextNodes(html) {
|
|
771
|
-
const temp = document.createElement('div');
|
|
772
|
-
temp.innerHTML = html;
|
|
773
|
-
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
774
|
-
// Return the plain text
|
|
775
|
-
if (!hasElements) {
|
|
776
|
-
return html;
|
|
777
|
-
}
|
|
778
|
-
Array.from(temp.childNodes).forEach((node) => {
|
|
779
|
-
var _a, _b, _c, _d;
|
|
780
|
-
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
781
|
-
const text = node.textContent;
|
|
782
|
-
/**
|
|
783
|
-
* Split comma separator from the text content
|
|
784
|
-
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
785
|
-
*/
|
|
786
|
-
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
787
|
-
if (commaMatch) {
|
|
788
|
-
const commaNode = document.createTextNode(commaMatch[1]);
|
|
789
|
-
const wrapper = document.createElement('span');
|
|
790
|
-
wrapper.textContent = commaMatch[2];
|
|
791
|
-
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
792
|
-
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
793
|
-
return;
|
|
794
|
-
}
|
|
795
|
-
const wrapper = document.createElement('span');
|
|
796
|
-
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
797
|
-
wrapper.appendChild(node);
|
|
798
|
-
}
|
|
799
|
-
});
|
|
800
|
-
return temp.innerHTML;
|
|
801
|
-
}
|
|
802
737
|
/**
|
|
803
738
|
* Renders either the placeholder
|
|
804
739
|
* or the selected values based on
|
|
@@ -806,7 +741,7 @@ export class Select {
|
|
|
806
741
|
*/
|
|
807
742
|
renderSelectText() {
|
|
808
743
|
const { placeholder } = this;
|
|
809
|
-
const displayValue = this.getText(
|
|
744
|
+
const displayValue = this.getText();
|
|
810
745
|
let addPlaceholderClass = false;
|
|
811
746
|
let selectText = displayValue;
|
|
812
747
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -818,10 +753,6 @@ export class Select {
|
|
|
818
753
|
'select-placeholder': addPlaceholderClass,
|
|
819
754
|
};
|
|
820
755
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
821
|
-
if (this.customHTMLEnabled) {
|
|
822
|
-
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
823
|
-
return h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
824
|
-
}
|
|
825
756
|
return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
826
757
|
}
|
|
827
758
|
/**
|
|
@@ -829,17 +760,21 @@ export class Select {
|
|
|
829
760
|
* next to the select text.
|
|
830
761
|
*/
|
|
831
762
|
renderSelectIcon() {
|
|
832
|
-
const
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
763
|
+
const mode = getIonMode(this);
|
|
764
|
+
const { isExpanded, toggleIcon, expandedIcon } = this;
|
|
765
|
+
let icon;
|
|
766
|
+
if (isExpanded && expandedIcon !== undefined) {
|
|
767
|
+
icon = expandedIcon;
|
|
768
|
+
}
|
|
769
|
+
else {
|
|
770
|
+
const defaultIcon = mode === 'ios' ? chevronExpand : caretDownSharp;
|
|
771
|
+
icon = toggleIcon !== null && toggleIcon !== void 0 ? toggleIcon : defaultIcon;
|
|
836
772
|
}
|
|
837
773
|
return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
|
|
838
774
|
}
|
|
839
775
|
get ariaLabel() {
|
|
840
776
|
var _a;
|
|
841
777
|
const { placeholder, inheritedAttributes } = this;
|
|
842
|
-
// Get the plain text from the selected text
|
|
843
778
|
const displayValue = this.getText();
|
|
844
779
|
// The aria label should be preferred over visible text if both are specified
|
|
845
780
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -868,63 +803,6 @@ export class Select {
|
|
|
868
803
|
const { disabled, inputId, isExpanded, required } = this;
|
|
869
804
|
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
870
805
|
}
|
|
871
|
-
getShape() {
|
|
872
|
-
const theme = getIonTheme(this);
|
|
873
|
-
const { shape } = this;
|
|
874
|
-
// TODO(ROU-11366): Remove theme check when shapes are defined for all themes.
|
|
875
|
-
if (theme === 'ionic' && shape === undefined) {
|
|
876
|
-
return 'round';
|
|
877
|
-
}
|
|
878
|
-
return shape;
|
|
879
|
-
}
|
|
880
|
-
/**
|
|
881
|
-
* Get the icon to use for the expand icon.
|
|
882
|
-
* If an icon is set on the component, use that.
|
|
883
|
-
* Otherwise, use the icon set in the config.
|
|
884
|
-
* If no icon is set in the config, use the default icon.
|
|
885
|
-
*/
|
|
886
|
-
get selectExpandedIcon() {
|
|
887
|
-
// Return the expandedIcon or toggleIcon if either is explicitly set
|
|
888
|
-
if (this.expandedIcon != null) {
|
|
889
|
-
return this.expandedIcon;
|
|
890
|
-
}
|
|
891
|
-
else if (this.toggleIcon != null) {
|
|
892
|
-
return this.toggleIcon;
|
|
893
|
-
}
|
|
894
|
-
// Determine the theme and map to default icons
|
|
895
|
-
const theme = getIonTheme(this);
|
|
896
|
-
const defaultIcons = {
|
|
897
|
-
ios: chevronExpand,
|
|
898
|
-
ionic: caretDownRegular,
|
|
899
|
-
md: caretDownSharp,
|
|
900
|
-
};
|
|
901
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
902
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
903
|
-
// Return the configured select expanded icon or the default icon
|
|
904
|
-
return config.get('selectExpandedIcon', defaultIcon);
|
|
905
|
-
}
|
|
906
|
-
/**
|
|
907
|
-
* Get the icon to use for the collapsed icon.
|
|
908
|
-
* If an icon is set on the component, use that.
|
|
909
|
-
* Otherwise, use the icon set in the config.
|
|
910
|
-
* If no icon is set in the config, use the default icon.
|
|
911
|
-
*/
|
|
912
|
-
get selectCollapsedIcon() {
|
|
913
|
-
// Return the toggleIcon if it is explicitly set
|
|
914
|
-
if (this.toggleIcon) {
|
|
915
|
-
return this.toggleIcon;
|
|
916
|
-
}
|
|
917
|
-
// Determine the theme and map to default icons
|
|
918
|
-
const theme = getIonTheme(this);
|
|
919
|
-
const defaultIcons = {
|
|
920
|
-
ios: chevronExpand,
|
|
921
|
-
ionic: caretDownRegular,
|
|
922
|
-
md: caretDownSharp,
|
|
923
|
-
};
|
|
924
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
925
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
926
|
-
return config.get('selectCollapsedIcon', defaultIcon);
|
|
927
|
-
}
|
|
928
806
|
getHintTextId() {
|
|
929
807
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
930
808
|
if (isInvalid && errorText) {
|
|
@@ -962,17 +840,13 @@ export class Select {
|
|
|
962
840
|
return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
|
|
963
841
|
}
|
|
964
842
|
render() {
|
|
965
|
-
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
|
|
966
|
-
const
|
|
967
|
-
const shape = this.getShape();
|
|
843
|
+
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
|
|
844
|
+
const mode = getIonMode(this);
|
|
968
845
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
969
|
-
const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
|
|
970
|
-
const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
|
|
971
846
|
const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
|
|
972
847
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
973
848
|
const inItem = hostContext('ion-item', this.el);
|
|
974
|
-
const
|
|
975
|
-
const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
|
|
849
|
+
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
976
850
|
const hasValue = this.hasValue();
|
|
977
851
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
978
852
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
@@ -994,8 +868,8 @@ export class Select {
|
|
|
994
868
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
995
869
|
*/
|
|
996
870
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
997
|
-
return (h(Host, { key: '
|
|
998
|
-
[
|
|
871
|
+
return (h(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
872
|
+
[mode]: true,
|
|
999
873
|
'in-item': inItem,
|
|
1000
874
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
1001
875
|
'select-disabled': disabled,
|
|
@@ -1012,33 +886,20 @@ export class Select {
|
|
|
1012
886
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
1013
887
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
1014
888
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
1015
|
-
|
|
1016
|
-
}) }, h("label", { key: '4b301ea9bc752639b1a5ad2ffbacddda86aba4e9', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'eed3a60c53e9215d3c06857f0b1ad9e2f8fb7d61', class: "select-wrapper-inner", part: "inner" },
|
|
1017
|
-
/**
|
|
1018
|
-
* For the ionic theme, we render the outline container here
|
|
1019
|
-
* instead of higher up, so it can be positioned relative to
|
|
1020
|
-
* the native wrapper instead of the <label> element or the
|
|
1021
|
-
* entire component. This allows the label text to be positioned
|
|
1022
|
-
* above the outline, while staying within the bounds of the
|
|
1023
|
-
* <label> element, ensuring that clicking the label text
|
|
1024
|
-
* focuses the select.
|
|
1025
|
-
*/
|
|
1026
|
-
theme === 'ionic' && fill === 'outline' && h("div", { key: 'f567c3512f1c1482f5854cc09bcca2067431dc51', class: "select-outline" }), h("slot", { key: '4a332f517ee89bdb6da84c0dee9dea5f35f5a6cd', name: "start" }), h("div", { key: 'e9c541dcfe4b9d3cad4d4c3c094d7666e947cd46', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '3c663f69f85fd87ece0f2da081a3b64e5e140bde', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '336f7c9564b7e19a8b93e2d8a497dbd3e5e4e993', class: "select-highlight" })), this.renderBottomContent()));
|
|
889
|
+
}) }, h("label", { key: 'fa1889b325387da10d1e5fa865aef128bc31aee6', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e31f4ae38af01dbe3a7551e9e5dca2650ae42ef5', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: '623916631f44446fcf2c1df64788ce530964afea', name: "start" }), h("div", { key: 'cbd2298a7c6666ce6b4443b3967195f96558861c', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'ee8c2a236c7f120988f5bab17397204f1b374b57', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '951566d0da3aea0be4921b2951207765b089a7f3', class: "select-highlight" })), this.renderBottomContent()));
|
|
1027
890
|
}
|
|
1028
891
|
static get is() { return "ion-select"; }
|
|
1029
892
|
static get encapsulation() { return "shadow"; }
|
|
1030
893
|
static get originalStyleUrls() {
|
|
1031
894
|
return {
|
|
1032
895
|
"ios": ["select.ios.scss"],
|
|
1033
|
-
"md": ["select.md.scss"]
|
|
1034
|
-
"ionic": ["select.ionic.scss"]
|
|
896
|
+
"md": ["select.md.scss"]
|
|
1035
897
|
};
|
|
1036
898
|
}
|
|
1037
899
|
static get styleUrls() {
|
|
1038
900
|
return {
|
|
1039
901
|
"ios": ["select.ios.css"],
|
|
1040
|
-
"md": ["select.md.css"]
|
|
1041
|
-
"ionic": ["select.ionic.css"]
|
|
902
|
+
"md": ["select.md.css"]
|
|
1042
903
|
};
|
|
1043
904
|
}
|
|
1044
905
|
static get properties() {
|
|
@@ -1063,26 +924,6 @@ export class Select {
|
|
|
1063
924
|
"attribute": "cancel-text",
|
|
1064
925
|
"defaultValue": "'Cancel'"
|
|
1065
926
|
},
|
|
1066
|
-
"cancelIcon": {
|
|
1067
|
-
"type": "boolean",
|
|
1068
|
-
"mutable": false,
|
|
1069
|
-
"complexType": {
|
|
1070
|
-
"original": "boolean",
|
|
1071
|
-
"resolved": "boolean",
|
|
1072
|
-
"references": {}
|
|
1073
|
-
},
|
|
1074
|
-
"required": false,
|
|
1075
|
-
"optional": false,
|
|
1076
|
-
"docs": {
|
|
1077
|
-
"tags": [],
|
|
1078
|
-
"text": "If `true`, the cancel button will display an icon instead of the `cancelText`.\nOnly applies when `interface` is set to `\"modal\"`. Has no effect on `\"action-sheet\"`,\n`\"alert\"`, or `\"popover\"` interfaces.\nWhen `cancelIcon` is `true`, the `cancelText` property is ignored for display\nbut is used as the accessible label for the icon button."
|
|
1079
|
-
},
|
|
1080
|
-
"getter": false,
|
|
1081
|
-
"setter": false,
|
|
1082
|
-
"reflect": false,
|
|
1083
|
-
"attribute": "cancel-icon",
|
|
1084
|
-
"defaultValue": "false"
|
|
1085
|
-
},
|
|
1086
927
|
"color": {
|
|
1087
928
|
"type": "string",
|
|
1088
929
|
"mutable": false,
|
|
@@ -1167,7 +1008,7 @@ export class Select {
|
|
|
1167
1008
|
"optional": true,
|
|
1168
1009
|
"docs": {
|
|
1169
1010
|
"tags": [],
|
|
1170
|
-
"text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in
|
|
1011
|
+
"text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode."
|
|
1171
1012
|
},
|
|
1172
1013
|
"getter": false,
|
|
1173
1014
|
"setter": false,
|
|
@@ -1427,7 +1268,7 @@ export class Select {
|
|
|
1427
1268
|
"optional": true,
|
|
1428
1269
|
"docs": {
|
|
1429
1270
|
"tags": [],
|
|
1430
|
-
"text": "The toggle icon to use. Defaults to
|
|
1271
|
+
"text": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode."
|
|
1431
1272
|
},
|
|
1432
1273
|
"getter": false,
|
|
1433
1274
|
"setter": false,
|
|
@@ -1446,89 +1287,70 @@ export class Select {
|
|
|
1446
1287
|
"optional": true,
|
|
1447
1288
|
"docs": {
|
|
1448
1289
|
"tags": [],
|
|
1449
|
-
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in
|
|
1290
|
+
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in `md` mode will be disabled. If undefined, `toggleIcon`\nwill be used for when the select is both open and closed."
|
|
1450
1291
|
},
|
|
1451
1292
|
"getter": false,
|
|
1452
1293
|
"setter": false,
|
|
1453
1294
|
"reflect": false,
|
|
1454
1295
|
"attribute": "expanded-icon"
|
|
1455
1296
|
},
|
|
1456
|
-
"required": {
|
|
1457
|
-
"type": "boolean",
|
|
1458
|
-
"mutable": false,
|
|
1459
|
-
"complexType": {
|
|
1460
|
-
"original": "boolean",
|
|
1461
|
-
"resolved": "boolean",
|
|
1462
|
-
"references": {}
|
|
1463
|
-
},
|
|
1464
|
-
"required": false,
|
|
1465
|
-
"optional": false,
|
|
1466
|
-
"docs": {
|
|
1467
|
-
"tags": [],
|
|
1468
|
-
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
1469
|
-
},
|
|
1470
|
-
"getter": false,
|
|
1471
|
-
"setter": false,
|
|
1472
|
-
"reflect": false,
|
|
1473
|
-
"attribute": "required",
|
|
1474
|
-
"defaultValue": "false"
|
|
1475
|
-
},
|
|
1476
1297
|
"shape": {
|
|
1477
1298
|
"type": "string",
|
|
1478
1299
|
"mutable": false,
|
|
1479
1300
|
"complexType": {
|
|
1480
|
-
"original": "'
|
|
1481
|
-
"resolved": "\"
|
|
1301
|
+
"original": "'round'",
|
|
1302
|
+
"resolved": "\"round\" | undefined",
|
|
1482
1303
|
"references": {}
|
|
1483
1304
|
},
|
|
1484
1305
|
"required": false,
|
|
1485
1306
|
"optional": true,
|
|
1486
1307
|
"docs": {
|
|
1487
1308
|
"tags": [],
|
|
1488
|
-
"text": "
|
|
1309
|
+
"text": "The shape of the select. If \"round\" it will have an increased border radius."
|
|
1489
1310
|
},
|
|
1490
1311
|
"getter": false,
|
|
1491
1312
|
"setter": false,
|
|
1492
1313
|
"reflect": false,
|
|
1493
1314
|
"attribute": "shape"
|
|
1494
1315
|
},
|
|
1495
|
-
"
|
|
1496
|
-
"type": "
|
|
1497
|
-
"mutable":
|
|
1316
|
+
"value": {
|
|
1317
|
+
"type": "any",
|
|
1318
|
+
"mutable": true,
|
|
1498
1319
|
"complexType": {
|
|
1499
|
-
"original": "
|
|
1500
|
-
"resolved": "
|
|
1320
|
+
"original": "any | null",
|
|
1321
|
+
"resolved": "any",
|
|
1501
1322
|
"references": {}
|
|
1502
1323
|
},
|
|
1503
1324
|
"required": false,
|
|
1504
1325
|
"optional": true,
|
|
1505
1326
|
"docs": {
|
|
1506
1327
|
"tags": [],
|
|
1507
|
-
"text": "The
|
|
1328
|
+
"text": "The value of the select."
|
|
1508
1329
|
},
|
|
1509
1330
|
"getter": false,
|
|
1510
1331
|
"setter": false,
|
|
1511
1332
|
"reflect": false,
|
|
1512
|
-
"attribute": "
|
|
1333
|
+
"attribute": "value"
|
|
1513
1334
|
},
|
|
1514
|
-
"
|
|
1515
|
-
"type": "
|
|
1516
|
-
"mutable":
|
|
1335
|
+
"required": {
|
|
1336
|
+
"type": "boolean",
|
|
1337
|
+
"mutable": false,
|
|
1517
1338
|
"complexType": {
|
|
1518
|
-
"original": "
|
|
1519
|
-
"resolved": "
|
|
1339
|
+
"original": "boolean",
|
|
1340
|
+
"resolved": "boolean",
|
|
1520
1341
|
"references": {}
|
|
1521
1342
|
},
|
|
1522
1343
|
"required": false,
|
|
1523
|
-
"optional":
|
|
1344
|
+
"optional": false,
|
|
1524
1345
|
"docs": {
|
|
1525
1346
|
"tags": [],
|
|
1526
|
-
"text": "
|
|
1347
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
1527
1348
|
},
|
|
1528
1349
|
"getter": false,
|
|
1529
1350
|
"setter": false,
|
|
1530
1351
|
"reflect": false,
|
|
1531
|
-
"attribute": "
|
|
1352
|
+
"attribute": "required",
|
|
1353
|
+
"defaultValue": "false"
|
|
1532
1354
|
}
|
|
1533
1355
|
};
|
|
1534
1356
|
}
|
|
@@ -1724,210 +1546,25 @@ const parseValue = (value) => {
|
|
|
1724
1546
|
}
|
|
1725
1547
|
return value.toString();
|
|
1726
1548
|
};
|
|
1727
|
-
const generateText = (opts, value, compareWith
|
|
1549
|
+
const generateText = (opts, value, compareWith) => {
|
|
1728
1550
|
if (value === undefined) {
|
|
1729
1551
|
return '';
|
|
1730
1552
|
}
|
|
1731
1553
|
if (Array.isArray(value)) {
|
|
1732
1554
|
return value
|
|
1733
|
-
.map((v) => textForValue(opts, v, compareWith
|
|
1555
|
+
.map((v) => textForValue(opts, v, compareWith))
|
|
1734
1556
|
.filter((opt) => opt !== null)
|
|
1735
1557
|
.join(', ');
|
|
1736
1558
|
}
|
|
1737
1559
|
else {
|
|
1738
|
-
return textForValue(opts, value, compareWith
|
|
1560
|
+
return textForValue(opts, value, compareWith) || '';
|
|
1739
1561
|
}
|
|
1740
1562
|
};
|
|
1741
|
-
|
|
1742
|
-
* Returns the display text for a given value from the list of options.
|
|
1743
|
-
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
1744
|
-
* When `useHTML` is false, returns plain text for aria-label and other
|
|
1745
|
-
* text-only contexts.
|
|
1746
|
-
*
|
|
1747
|
-
* @param opts - The list of ion-select-option elements.
|
|
1748
|
-
* @param value - The value to find the matching option for.
|
|
1749
|
-
* @param compareWith - Custom comparison function or property name.
|
|
1750
|
-
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
1751
|
-
*/
|
|
1752
|
-
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
1563
|
+
const textForValue = (opts, value, compareWith) => {
|
|
1753
1564
|
const selectOpt = opts.find((opt) => {
|
|
1754
1565
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
1755
1566
|
});
|
|
1756
|
-
|
|
1757
|
-
if (!selectOpt) {
|
|
1758
|
-
return null;
|
|
1759
|
-
}
|
|
1760
|
-
// Return sanitized HTML for the select text
|
|
1761
|
-
if (customHTMLEnabled && useHTML) {
|
|
1762
|
-
return getOptionContent(selectOpt, undefined, true);
|
|
1763
|
-
}
|
|
1764
|
-
/**
|
|
1765
|
-
* When custom HTML is enabled, extract only the default slot content.
|
|
1766
|
-
* This ensures aria-label and other text-only contexts read only
|
|
1767
|
-
* the relevant option text.
|
|
1768
|
-
*/
|
|
1769
|
-
if (customHTMLEnabled) {
|
|
1770
|
-
const content = getOptionContent(selectOpt);
|
|
1771
|
-
if (typeof content === 'string') {
|
|
1772
|
-
return content;
|
|
1773
|
-
}
|
|
1774
|
-
/**
|
|
1775
|
-
* Elements were found in the default slot, extract and concatenate
|
|
1776
|
-
* their text content while trimming whitespace.
|
|
1777
|
-
*/
|
|
1778
|
-
if (content) {
|
|
1779
|
-
const texts = Array.from(content.childNodes)
|
|
1780
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1781
|
-
.filter((t) => t);
|
|
1782
|
-
return texts.join(' ') || null;
|
|
1783
|
-
}
|
|
1784
|
-
// Empty option
|
|
1785
|
-
return null;
|
|
1786
|
-
}
|
|
1787
|
-
return getDefaultSlotPlainText(selectOpt);
|
|
1788
|
-
};
|
|
1789
|
-
/**
|
|
1790
|
-
* Trims whitespace from all text nodes within a DOM tree.
|
|
1791
|
-
* This prevents invisible layout shifts and unwanted gaps between
|
|
1792
|
-
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
1793
|
-
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
1794
|
-
* the original source markup.
|
|
1795
|
-
*
|
|
1796
|
-
* @param node The root node to start trimming text nodes from.
|
|
1797
|
-
*/
|
|
1798
|
-
const trimTextNodes = (node) => {
|
|
1799
|
-
node.childNodes.forEach((child) => {
|
|
1800
|
-
var _a;
|
|
1801
|
-
if (child.nodeType === Node.TEXT_NODE) {
|
|
1802
|
-
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1803
|
-
}
|
|
1804
|
-
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
1805
|
-
trimTextNodes(child);
|
|
1806
|
-
}
|
|
1807
|
-
});
|
|
1808
|
-
};
|
|
1809
|
-
/**
|
|
1810
|
-
* Extracts and clones content from an `ion-select-option` element
|
|
1811
|
-
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
1812
|
-
*
|
|
1813
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1814
|
-
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
1815
|
-
* @param useHTML - If `true`, the returned string will include any custom HTML content. If `false`, the returned string will be plain text without any HTML.
|
|
1816
|
-
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
1817
|
-
* div element containing cloned child nodes. Returns `null` if no matching
|
|
1818
|
-
* content is found.
|
|
1819
|
-
*/
|
|
1820
|
-
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
1821
|
-
let nodes;
|
|
1822
|
-
if (slotName) {
|
|
1823
|
-
// Named slot: get elements with matching slot attribute
|
|
1824
|
-
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
1825
|
-
}
|
|
1826
|
-
else {
|
|
1827
|
-
// Default slot: get nodes without a slot attribute
|
|
1828
|
-
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
1829
|
-
nodes = defaultSlot.filter((node) => {
|
|
1830
|
-
var _a;
|
|
1831
|
-
/**
|
|
1832
|
-
* Exclude whitespace-only text nodes (newline noise between
|
|
1833
|
-
* markup elements). Element nodes are always kept, even when
|
|
1834
|
-
* their textContent is empty (e.g. <svg>, <img>).
|
|
1835
|
-
*/
|
|
1836
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
1837
|
-
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
1838
|
-
}
|
|
1839
|
-
return true;
|
|
1840
|
-
});
|
|
1841
|
-
}
|
|
1842
|
-
if (nodes.length === 0) {
|
|
1843
|
-
return null;
|
|
1844
|
-
}
|
|
1845
|
-
// Return plain text if no elements are found
|
|
1846
|
-
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
1847
|
-
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
1848
|
-
}
|
|
1849
|
-
// Clone each node into a temporary container
|
|
1850
|
-
const container = document.createElement('div');
|
|
1851
|
-
nodes.forEach((n) => {
|
|
1852
|
-
var _a;
|
|
1853
|
-
const clone = n.cloneNode(true);
|
|
1854
|
-
if (clone.nodeType === Node.TEXT_NODE) {
|
|
1855
|
-
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1856
|
-
}
|
|
1857
|
-
else {
|
|
1858
|
-
trimTextNodes(clone);
|
|
1859
|
-
}
|
|
1860
|
-
container.appendChild(clone);
|
|
1861
|
-
});
|
|
1862
|
-
// Sanitize the cloned DOM in place. Author-written attributes (size,
|
|
1863
|
-
// color, shape, etc.) are preserved; event handlers, javascript: URLs,
|
|
1864
|
-
// and blocked tags are stripped.
|
|
1865
|
-
sanitizeDOMTree(container);
|
|
1866
|
-
if (useHTML) {
|
|
1867
|
-
return container.innerHTML.trim() || null;
|
|
1868
|
-
}
|
|
1869
|
-
return container;
|
|
1870
|
-
};
|
|
1871
|
-
/**
|
|
1872
|
-
* Returns the child nodes that belong to the default slot of an
|
|
1873
|
-
* option element, excluding any nodes that are assigned to named
|
|
1874
|
-
* slots.
|
|
1875
|
-
*
|
|
1876
|
-
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
1877
|
-
* @returns An array of default slot nodes, or `null` if none are found.
|
|
1878
|
-
*/
|
|
1879
|
-
const getOptionDefaultSlot = (option) => {
|
|
1880
|
-
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
1881
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1882
|
-
return !node.hasAttribute('slot');
|
|
1883
|
-
}
|
|
1884
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1885
|
-
});
|
|
1886
|
-
if (defaultSlotNodes.length === 0) {
|
|
1887
|
-
return null;
|
|
1888
|
-
}
|
|
1889
|
-
return defaultSlotNodes;
|
|
1890
|
-
};
|
|
1891
|
-
/**
|
|
1892
|
-
* Extracts plain text from only the default slot of an option,
|
|
1893
|
-
* excluding content assigned to named slots (start/end).
|
|
1894
|
-
*/
|
|
1895
|
-
const getDefaultSlotPlainText = (option) => {
|
|
1896
|
-
const texts = Array.from(option.childNodes)
|
|
1897
|
-
.filter((node) => {
|
|
1898
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1899
|
-
return !node.hasAttribute('slot');
|
|
1900
|
-
}
|
|
1901
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1902
|
-
})
|
|
1903
|
-
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
1904
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1905
|
-
.filter((t) => t);
|
|
1906
|
-
return texts.join(' ');
|
|
1907
|
-
};
|
|
1908
|
-
/**
|
|
1909
|
-
* Extracts the rich content from an `ion-select-option`.
|
|
1910
|
-
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
1911
|
-
* default slot is read and the start and end slots are skipped.
|
|
1912
|
-
*
|
|
1913
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1914
|
-
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
1915
|
-
* via the `innerHTMLTemplatesEnabled` config.
|
|
1916
|
-
*/
|
|
1917
|
-
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
1918
|
-
var _a, _b;
|
|
1919
|
-
if (!customHTMLEnabled) {
|
|
1920
|
-
return {
|
|
1921
|
-
content: getDefaultSlotPlainText(option),
|
|
1922
|
-
startContent: undefined,
|
|
1923
|
-
endContent: undefined,
|
|
1924
|
-
};
|
|
1925
|
-
}
|
|
1926
|
-
return {
|
|
1927
|
-
content: getOptionContent(option),
|
|
1928
|
-
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
1929
|
-
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
1930
|
-
};
|
|
1567
|
+
return selectOpt ? selectOpt.textContent : null;
|
|
1931
1568
|
};
|
|
1932
1569
|
let selectIds = 0;
|
|
1933
1570
|
const OPTION_CLASS = 'select-interface-option';
|