@ionic/core 8.8.9-dev.11779411201.1a483e09 → 8.8.9-nightly.20260522
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-legacy-column.js +1 -1
- package/components/ion-picker-legacy.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-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-BSB38Tek.js +4 -0
- package/components/p-BTeL5HCK.js +4 -0
- package/components/p-BUbsoBOV.js +4 -0
- package/components/p-BYDc3hSE.js +4 -0
- package/components/p-BagjAGC0.js +4 -0
- package/components/p-BegtE7nr.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-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-Cf6Z1pmL.js +4 -0
- package/components/p-CgfaEEem.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-Cq8cQ0NL.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-Cyxa_4PV.js +4 -0
- package/components/p-Cz5nLPGT.js +4 -0
- package/components/p-D-cP12ZN.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-DHsZWn1l.js +4 -0
- package/components/p-DJMZehmW.js +4 -0
- package/components/p-DJztqcrH.js +4 -0
- package/components/p-DYdpXONG.js +4 -0
- package/components/p-DZhbcvo5.js +4 -0
- package/components/p-DgbT0exM.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/p-DlgpdeOi.js +4 -0
- package/components/p-DvOO1fxp.js +4 -0
- package/components/p-FBcnjE5W.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/components/p-ZuZOauwD.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-fpbh6w3f.js +4 -0
- package/components/p-kvaDs24J.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-OJmFhoxl.js → config-BukYi_pW.js} +7 -108
- 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 -13
- 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 +22 -40
- package/dist/cjs/ion-alert.cjs.entry.js +40 -76
- package/dist/cjs/ion-app_8.cjs.entry.js +157 -292
- 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 +41 -116
- 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 +18 -20
- package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
- package/dist/cjs/ion-modal.cjs.entry.js +138 -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 +19 -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 +84 -513
- 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-C2jiBSNQ.js} +16 -110
- 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 +0 -7
- 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 +13 -32
- 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 +30 -67
- 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 +11 -14
- 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 +12 -50
- 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/picker-legacy/picker.ios.css +1 -13
- package/dist/collection/components/picker-legacy/picker.js +6 -7
- package/dist/collection/components/picker-legacy/picker.md.css +1 -13
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -12
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -12
- package/dist/collection/components/popover/popover.ios.css +1 -29
- package/dist/collection/components/popover/popover.js +15 -18
- 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 +9 -14
- 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 +3 -6
- 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 +66 -473
- 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/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 +6 -91
- package/dist/collection/utils/sanitization/index.js +6 -105
- 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 +283 -8891
- 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-C5F1aoVz.js → config-TO1rZH52.js} +8 -107
- 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-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-D2tu5BUg.js → index-DV3sJJW8.js} +1 -2
- 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 +22 -40
- package/dist/esm/ion-alert.entry.js +40 -76
- package/dist/esm/ion-app_8.entry.js +157 -292
- 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 +41 -116
- 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 +18 -20
- package/dist/esm/ion-menu_3.entry.js +29 -47
- package/dist/esm/ion-modal.entry.js +91 -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 +19 -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 +84 -513
- 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-F8GHPo-e.js} +13 -107
- 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 +161 -2626
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-031b76f7.entry.js +4 -0
- package/dist/ionic/p-045a6a42.entry.js +4 -0
- package/dist/ionic/p-07506134.entry.js +4 -0
- package/dist/ionic/p-078037da.entry.js +4 -0
- package/dist/ionic/p-084c25b2.entry.js +4 -0
- package/dist/ionic/p-0d8b5c38.entry.js +4 -0
- package/dist/ionic/p-16813ce7.entry.js +4 -0
- package/dist/ionic/p-1b169fb6.entry.js +4 -0
- package/dist/ionic/p-1ca9c36b.entry.js +4 -0
- package/dist/ionic/p-23ec35e4.entry.js +4 -0
- package/dist/ionic/p-23fac490.entry.js +4 -0
- package/dist/ionic/p-28a9e720.entry.js +4 -0
- package/dist/ionic/p-294f4bb5.entry.js +4 -0
- package/dist/ionic/p-2a68388b.entry.js +4 -0
- package/dist/ionic/p-2f5a8140.entry.js +4 -0
- package/dist/ionic/p-2fd110aa.entry.js +4 -0
- package/dist/ionic/p-301c43f8.entry.js +4 -0
- package/dist/ionic/p-370a60ee.entry.js +4 -0
- package/dist/ionic/p-53f750a5.entry.js +4 -0
- package/dist/ionic/p-6888a88b.entry.js +4 -0
- package/dist/ionic/p-6af16209.entry.js +4 -0
- package/dist/ionic/p-6b701daa.entry.js +4 -0
- package/dist/ionic/p-6b97f2a3.entry.js +4 -0
- package/dist/ionic/p-7620be24.entry.js +4 -0
- package/dist/ionic/p-771b27a5.entry.js +4 -0
- package/dist/ionic/p-7761ef65.entry.js +4 -0
- package/dist/ionic/p-7ca71c83.entry.js +4 -0
- package/dist/ionic/p-80cac7a2.entry.js +4 -0
- package/dist/ionic/p-87125490.entry.js +4 -0
- package/dist/ionic/p-8fda6a62.entry.js +4 -0
- package/dist/ionic/p-9833cf63.entry.js +4 -0
- package/dist/ionic/p-9cbc6f1f.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.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-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-DTPR1Wpn.js +4 -0
- package/dist/ionic/p-DV3sJJW8.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-a805674e.entry.js +4 -0
- package/dist/ionic/p-a84f2d21.entry.js +4 -0
- package/dist/ionic/p-a893c61c.entry.js +4 -0
- package/dist/ionic/p-aa812c4b.entry.js +4 -0
- package/dist/ionic/p-b325a113.entry.js +4 -0
- package/dist/ionic/p-b6e0ff03.entry.js +4 -0
- package/dist/ionic/p-bcaa827e.entry.js +4 -0
- package/dist/ionic/p-c3cce9d8.entry.js +4 -0
- package/dist/ionic/p-ca31010f.entry.js +4 -0
- package/dist/ionic/p-cf8757a7.entry.js +4 -0
- package/dist/ionic/p-d4e8b473.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-e863ffe8.entry.js +4 -0
- package/dist/ionic/p-f2deaceb.entry.js +4 -0
- package/dist/ionic/p-f3e7b155.entry.js +4 -0
- package/dist/ionic/p-f5dfb9a3.entry.js +4 -0
- package/dist/ionic/p-f69a5f71.entry.js +4 -0
- package/dist/ionic/p-f8186550.entry.js +4 -0
- package/dist/ionic/p-fdbc90d4.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/picker-legacy/picker.d.ts +1 -2
- 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 +1 -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 +13 -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 +205 -1819
- package/dist/types/global/ionic-global.d.ts +2 -28
- package/dist/types/interface.d.ts +0 -3
- package/dist/types/utils/config.d.ts +2 -106
- 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 +1 -1
- package/dist/types/utils/sanitization/index.d.ts +2 -46
- 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 +1182 -5271
- package/hydrate/index.mjs +1182 -5271
- package/package.json +4 -8
- 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/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-DdgejEM3.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-DohYi97K.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-PzmQ86nh.js +0 -4
- package/components/p-Skz67GXZ.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/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-3e186bd8.entry.js +0 -4
- package/dist/ionic/p-3f18dfe9.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-4a5ebd2b.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-729a5b04.entry.js +0 -4
- package/dist/ionic/p-76c70824.entry.js +0 -4
- package/dist/ionic/p-7d25ad9a.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-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-c6516c13.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-e7505567.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-ff09d2a5.entry.js +0 -4
- package/dist/ionic/p-pI5qh5HW.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/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 { reflectPropertiesToAttributes, 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
|
*/
|
|
@@ -413,10 +399,9 @@ export class Select {
|
|
|
413
399
|
.join(' ');
|
|
414
400
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
415
401
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
416
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
417
402
|
return {
|
|
418
403
|
role: isSelected ? 'selected' : '',
|
|
419
|
-
text:
|
|
404
|
+
text: option.textContent,
|
|
420
405
|
cssClass: optClass,
|
|
421
406
|
handler: () => {
|
|
422
407
|
this.setValue(value);
|
|
@@ -425,9 +410,6 @@ export class Select {
|
|
|
425
410
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
426
411
|
role: 'radio',
|
|
427
412
|
},
|
|
428
|
-
startContent,
|
|
429
|
-
endContent,
|
|
430
|
-
description: option.description,
|
|
431
413
|
};
|
|
432
414
|
});
|
|
433
415
|
// Add "cancel" button
|
|
@@ -448,19 +430,13 @@ export class Select {
|
|
|
448
430
|
.filter((cls) => cls !== 'hydrated')
|
|
449
431
|
.join(' ');
|
|
450
432
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
451
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
452
433
|
return {
|
|
453
434
|
type: inputType,
|
|
454
435
|
cssClass: optClass,
|
|
455
|
-
label:
|
|
436
|
+
label: option.textContent || '',
|
|
456
437
|
value,
|
|
457
438
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
458
439
|
disabled: option.disabled,
|
|
459
|
-
startContent,
|
|
460
|
-
endContent,
|
|
461
|
-
description: option.description,
|
|
462
|
-
labelPlacement: option.labelPlacement,
|
|
463
|
-
justify: option.justify,
|
|
464
440
|
};
|
|
465
441
|
});
|
|
466
442
|
return alertInputs;
|
|
@@ -473,9 +449,8 @@ export class Select {
|
|
|
473
449
|
.filter((cls) => cls !== 'hydrated')
|
|
474
450
|
.join(' ');
|
|
475
451
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
476
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
477
452
|
return {
|
|
478
|
-
text:
|
|
453
|
+
text: option.textContent || '',
|
|
479
454
|
cssClass: optClass,
|
|
480
455
|
value,
|
|
481
456
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -486,11 +461,6 @@ export class Select {
|
|
|
486
461
|
this.close();
|
|
487
462
|
}
|
|
488
463
|
},
|
|
489
|
-
startContent,
|
|
490
|
-
endContent,
|
|
491
|
-
description: option.description,
|
|
492
|
-
labelPlacement: option.labelPlacement,
|
|
493
|
-
justify: option.justify,
|
|
494
464
|
};
|
|
495
465
|
});
|
|
496
466
|
return popoverOptions;
|
|
@@ -498,8 +468,8 @@ export class Select {
|
|
|
498
468
|
async openPopover(ev) {
|
|
499
469
|
const { fill, labelPlacement } = this;
|
|
500
470
|
const interfaceOptions = this.interfaceOptions;
|
|
501
|
-
const
|
|
502
|
-
const showBackdrop =
|
|
471
|
+
const mode = getIonMode(this);
|
|
472
|
+
const showBackdrop = mode === 'md' ? false : true;
|
|
503
473
|
const multiple = this.multiple;
|
|
504
474
|
const value = this.value;
|
|
505
475
|
let event = ev;
|
|
@@ -510,7 +480,7 @@ export class Select {
|
|
|
510
480
|
* when using a fill in MD mode or if the
|
|
511
481
|
* label is floating/stacked.
|
|
512
482
|
*/
|
|
513
|
-
if (hasFloatingOrStackedLabel || (
|
|
483
|
+
if (hasFloatingOrStackedLabel || (mode === 'md' && fill !== undefined)) {
|
|
514
484
|
size = 'cover';
|
|
515
485
|
/**
|
|
516
486
|
* Otherwise the popover
|
|
@@ -523,21 +493,15 @@ export class Select {
|
|
|
523
493
|
ionShadowTarget: this.nativeWrapperEl,
|
|
524
494
|
} });
|
|
525
495
|
}
|
|
526
|
-
const
|
|
527
|
-
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
528
|
-
const popoverOpts = Object.assign(Object.assign({ theme,
|
|
496
|
+
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
529
497
|
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: {
|
|
498
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
|
|
535
499
|
header: interfaceOptions.header,
|
|
536
500
|
subHeader: interfaceOptions.subHeader,
|
|
537
501
|
message: interfaceOptions.message,
|
|
538
502
|
multiple,
|
|
539
503
|
value,
|
|
540
|
-
options,
|
|
504
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
541
505
|
} });
|
|
542
506
|
/**
|
|
543
507
|
* Workaround for Stencil to autodefine
|
|
@@ -554,9 +518,9 @@ export class Select {
|
|
|
554
518
|
return popoverController.create(popoverOpts);
|
|
555
519
|
}
|
|
556
520
|
async openActionSheet() {
|
|
557
|
-
const
|
|
521
|
+
const mode = getIonMode(this);
|
|
558
522
|
const interfaceOptions = this.interfaceOptions;
|
|
559
|
-
const actionSheetOpts = Object.assign(Object.assign({
|
|
523
|
+
const actionSheetOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
|
|
560
524
|
/**
|
|
561
525
|
* Workaround for Stencil to autodefine
|
|
562
526
|
* ion-action-sheet when
|
|
@@ -573,8 +537,8 @@ export class Select {
|
|
|
573
537
|
async openAlert() {
|
|
574
538
|
const interfaceOptions = this.interfaceOptions;
|
|
575
539
|
const inputType = this.multiple ? 'checkbox' : 'radio';
|
|
576
|
-
const
|
|
577
|
-
const alertOpts = Object.assign(Object.assign({
|
|
540
|
+
const mode = getIonMode(this);
|
|
541
|
+
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
542
|
{
|
|
579
543
|
text: this.cancelText,
|
|
580
544
|
role: 'cancel',
|
|
@@ -608,11 +572,10 @@ export class Select {
|
|
|
608
572
|
}
|
|
609
573
|
openModal() {
|
|
610
574
|
const { multiple, value, interfaceOptions } = this;
|
|
611
|
-
const
|
|
612
|
-
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode
|
|
575
|
+
const mode = getIonMode(this);
|
|
576
|
+
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
613
577
|
header: interfaceOptions.header,
|
|
614
578
|
cancelText: this.cancelText,
|
|
615
|
-
cancelIcon: this.cancelIcon,
|
|
616
579
|
multiple,
|
|
617
580
|
value,
|
|
618
581
|
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
@@ -665,18 +628,12 @@ export class Select {
|
|
|
665
628
|
}
|
|
666
629
|
return;
|
|
667
630
|
}
|
|
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) {
|
|
631
|
+
getText() {
|
|
675
632
|
const selectedText = this.selectedText;
|
|
676
633
|
if (selectedText != null && selectedText !== '') {
|
|
677
634
|
return selectedText;
|
|
678
635
|
}
|
|
679
|
-
return generateText(this.childOpts, this.value, this.compareWith
|
|
636
|
+
return generateText(this.childOpts, this.value, this.compareWith);
|
|
680
637
|
}
|
|
681
638
|
setFocus() {
|
|
682
639
|
if (this.focusEl) {
|
|
@@ -690,18 +647,6 @@ export class Select {
|
|
|
690
647
|
};
|
|
691
648
|
this.ionStyle.emit(style);
|
|
692
649
|
}
|
|
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
650
|
renderLabel() {
|
|
706
651
|
const { label } = this;
|
|
707
652
|
return (h("div", { class: {
|
|
@@ -734,8 +679,8 @@ export class Select {
|
|
|
734
679
|
* when fill="outline".
|
|
735
680
|
*/
|
|
736
681
|
renderLabelContainer() {
|
|
737
|
-
const
|
|
738
|
-
const hasOutlineFill =
|
|
682
|
+
const mode = getIonMode(this);
|
|
683
|
+
const hasOutlineFill = mode === 'md' && this.fill === 'outline';
|
|
739
684
|
if (hasOutlineFill) {
|
|
740
685
|
/**
|
|
741
686
|
* The outline fill has a special outline
|
|
@@ -758,47 +703,6 @@ export class Select {
|
|
|
758
703
|
*/
|
|
759
704
|
return this.renderLabel();
|
|
760
705
|
}
|
|
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
706
|
/**
|
|
803
707
|
* Renders either the placeholder
|
|
804
708
|
* or the selected values based on
|
|
@@ -806,7 +710,7 @@ export class Select {
|
|
|
806
710
|
*/
|
|
807
711
|
renderSelectText() {
|
|
808
712
|
const { placeholder } = this;
|
|
809
|
-
const displayValue = this.getText(
|
|
713
|
+
const displayValue = this.getText();
|
|
810
714
|
let addPlaceholderClass = false;
|
|
811
715
|
let selectText = displayValue;
|
|
812
716
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -818,10 +722,6 @@ export class Select {
|
|
|
818
722
|
'select-placeholder': addPlaceholderClass,
|
|
819
723
|
};
|
|
820
724
|
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
725
|
return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
826
726
|
}
|
|
827
727
|
/**
|
|
@@ -829,17 +729,21 @@ export class Select {
|
|
|
829
729
|
* next to the select text.
|
|
830
730
|
*/
|
|
831
731
|
renderSelectIcon() {
|
|
832
|
-
const
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
732
|
+
const mode = getIonMode(this);
|
|
733
|
+
const { isExpanded, toggleIcon, expandedIcon } = this;
|
|
734
|
+
let icon;
|
|
735
|
+
if (isExpanded && expandedIcon !== undefined) {
|
|
736
|
+
icon = expandedIcon;
|
|
737
|
+
}
|
|
738
|
+
else {
|
|
739
|
+
const defaultIcon = mode === 'ios' ? chevronExpand : caretDownSharp;
|
|
740
|
+
icon = toggleIcon !== null && toggleIcon !== void 0 ? toggleIcon : defaultIcon;
|
|
836
741
|
}
|
|
837
742
|
return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
|
|
838
743
|
}
|
|
839
744
|
get ariaLabel() {
|
|
840
745
|
var _a;
|
|
841
746
|
const { placeholder, inheritedAttributes } = this;
|
|
842
|
-
// Get the plain text from the selected text
|
|
843
747
|
const displayValue = this.getText();
|
|
844
748
|
// The aria label should be preferred over visible text if both are specified
|
|
845
749
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -868,63 +772,6 @@ export class Select {
|
|
|
868
772
|
const { disabled, inputId, isExpanded, required } = this;
|
|
869
773
|
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
774
|
}
|
|
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
775
|
getHintTextId() {
|
|
929
776
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
930
777
|
if (isInvalid && errorText) {
|
|
@@ -962,17 +809,13 @@ export class Select {
|
|
|
962
809
|
return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
|
|
963
810
|
}
|
|
964
811
|
render() {
|
|
965
|
-
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
|
|
966
|
-
const
|
|
967
|
-
const shape = this.getShape();
|
|
812
|
+
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
|
|
813
|
+
const mode = getIonMode(this);
|
|
968
814
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
969
|
-
const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
|
|
970
|
-
const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
|
|
971
815
|
const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
|
|
972
816
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
973
817
|
const inItem = hostContext('ion-item', this.el);
|
|
974
|
-
const
|
|
975
|
-
const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
|
|
818
|
+
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
976
819
|
const hasValue = this.hasValue();
|
|
977
820
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
978
821
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
@@ -994,8 +837,8 @@ export class Select {
|
|
|
994
837
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
995
838
|
*/
|
|
996
839
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
997
|
-
return (h(Host, { key: '
|
|
998
|
-
[
|
|
840
|
+
return (h(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
841
|
+
[mode]: true,
|
|
999
842
|
'in-item': inItem,
|
|
1000
843
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
1001
844
|
'select-disabled': disabled,
|
|
@@ -1012,33 +855,20 @@ export class Select {
|
|
|
1012
855
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
1013
856
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
1014
857
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
1015
|
-
|
|
1016
|
-
}) }, h("label", { key: '862fa9d03a7feeeac05463842898849001724cef', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '1e91cc271790756a97cfc0c8caaca767ba793467', 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: '14a2a14daa10625fa59f8f148e124a1c0c147319', class: "select-outline" }), h("slot", { key: 'a5a4372feffbeb3652e6045e64cbfacb66c58da9', name: "start" }), h("div", { key: 'b6ac054eaca720a21e0617cf413e576ef23a60e8', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '140d299760a7c7f186b31e9e38f968534b1e116a', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'b1a1e98302b0e87c3cd850e9abd8faf946a2b492', class: "select-highlight" })), this.renderBottomContent()));
|
|
858
|
+
}) }, h("label", { key: 'd56d89b5b58da2b5eaebada9d1be58ca45c67806', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'bc8bf089c693781ad5b3a5db76a12223867d748e', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'e1c12b96f1573eb192608c458ed1f3463174cd89', name: "start" }), h("div", { key: '6ee5e3900d8e462f175649b502ac6faa2f2b9909', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'faeaea34aad412e1458beab95d4b1b9ca7b87c41', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'aeff51e51c990844869eff9940575ce6b2223135', class: "select-highlight" })), this.renderBottomContent()));
|
|
1027
859
|
}
|
|
1028
860
|
static get is() { return "ion-select"; }
|
|
1029
861
|
static get encapsulation() { return "shadow"; }
|
|
1030
862
|
static get originalStyleUrls() {
|
|
1031
863
|
return {
|
|
1032
864
|
"ios": ["select.ios.scss"],
|
|
1033
|
-
"md": ["select.md.scss"]
|
|
1034
|
-
"ionic": ["select.ionic.scss"]
|
|
865
|
+
"md": ["select.md.scss"]
|
|
1035
866
|
};
|
|
1036
867
|
}
|
|
1037
868
|
static get styleUrls() {
|
|
1038
869
|
return {
|
|
1039
870
|
"ios": ["select.ios.css"],
|
|
1040
|
-
"md": ["select.md.css"]
|
|
1041
|
-
"ionic": ["select.ionic.css"]
|
|
871
|
+
"md": ["select.md.css"]
|
|
1042
872
|
};
|
|
1043
873
|
}
|
|
1044
874
|
static get properties() {
|
|
@@ -1063,26 +893,6 @@ export class Select {
|
|
|
1063
893
|
"attribute": "cancel-text",
|
|
1064
894
|
"defaultValue": "'Cancel'"
|
|
1065
895
|
},
|
|
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
896
|
"color": {
|
|
1087
897
|
"type": "string",
|
|
1088
898
|
"mutable": false,
|
|
@@ -1167,7 +977,7 @@ export class Select {
|
|
|
1167
977
|
"optional": true,
|
|
1168
978
|
"docs": {
|
|
1169
979
|
"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
|
|
980
|
+
"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
981
|
},
|
|
1172
982
|
"getter": false,
|
|
1173
983
|
"setter": false,
|
|
@@ -1427,7 +1237,7 @@ export class Select {
|
|
|
1427
1237
|
"optional": true,
|
|
1428
1238
|
"docs": {
|
|
1429
1239
|
"tags": [],
|
|
1430
|
-
"text": "The toggle icon to use. Defaults to
|
|
1240
|
+
"text": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode."
|
|
1431
1241
|
},
|
|
1432
1242
|
"getter": false,
|
|
1433
1243
|
"setter": false,
|
|
@@ -1446,89 +1256,70 @@ export class Select {
|
|
|
1446
1256
|
"optional": true,
|
|
1447
1257
|
"docs": {
|
|
1448
1258
|
"tags": [],
|
|
1449
|
-
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in
|
|
1259
|
+
"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
1260
|
},
|
|
1451
1261
|
"getter": false,
|
|
1452
1262
|
"setter": false,
|
|
1453
1263
|
"reflect": false,
|
|
1454
1264
|
"attribute": "expanded-icon"
|
|
1455
1265
|
},
|
|
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
1266
|
"shape": {
|
|
1477
1267
|
"type": "string",
|
|
1478
1268
|
"mutable": false,
|
|
1479
1269
|
"complexType": {
|
|
1480
|
-
"original": "'
|
|
1481
|
-
"resolved": "\"
|
|
1270
|
+
"original": "'round'",
|
|
1271
|
+
"resolved": "\"round\" | undefined",
|
|
1482
1272
|
"references": {}
|
|
1483
1273
|
},
|
|
1484
1274
|
"required": false,
|
|
1485
1275
|
"optional": true,
|
|
1486
1276
|
"docs": {
|
|
1487
1277
|
"tags": [],
|
|
1488
|
-
"text": "
|
|
1278
|
+
"text": "The shape of the select. If \"round\" it will have an increased border radius."
|
|
1489
1279
|
},
|
|
1490
1280
|
"getter": false,
|
|
1491
1281
|
"setter": false,
|
|
1492
1282
|
"reflect": false,
|
|
1493
1283
|
"attribute": "shape"
|
|
1494
1284
|
},
|
|
1495
|
-
"
|
|
1496
|
-
"type": "
|
|
1497
|
-
"mutable":
|
|
1285
|
+
"value": {
|
|
1286
|
+
"type": "any",
|
|
1287
|
+
"mutable": true,
|
|
1498
1288
|
"complexType": {
|
|
1499
|
-
"original": "
|
|
1500
|
-
"resolved": "
|
|
1289
|
+
"original": "any | null",
|
|
1290
|
+
"resolved": "any",
|
|
1501
1291
|
"references": {}
|
|
1502
1292
|
},
|
|
1503
1293
|
"required": false,
|
|
1504
1294
|
"optional": true,
|
|
1505
1295
|
"docs": {
|
|
1506
1296
|
"tags": [],
|
|
1507
|
-
"text": "The
|
|
1297
|
+
"text": "The value of the select."
|
|
1508
1298
|
},
|
|
1509
1299
|
"getter": false,
|
|
1510
1300
|
"setter": false,
|
|
1511
1301
|
"reflect": false,
|
|
1512
|
-
"attribute": "
|
|
1302
|
+
"attribute": "value"
|
|
1513
1303
|
},
|
|
1514
|
-
"
|
|
1515
|
-
"type": "
|
|
1516
|
-
"mutable":
|
|
1304
|
+
"required": {
|
|
1305
|
+
"type": "boolean",
|
|
1306
|
+
"mutable": false,
|
|
1517
1307
|
"complexType": {
|
|
1518
|
-
"original": "
|
|
1519
|
-
"resolved": "
|
|
1308
|
+
"original": "boolean",
|
|
1309
|
+
"resolved": "boolean",
|
|
1520
1310
|
"references": {}
|
|
1521
1311
|
},
|
|
1522
1312
|
"required": false,
|
|
1523
|
-
"optional":
|
|
1313
|
+
"optional": false,
|
|
1524
1314
|
"docs": {
|
|
1525
1315
|
"tags": [],
|
|
1526
|
-
"text": "
|
|
1316
|
+
"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
1317
|
},
|
|
1528
1318
|
"getter": false,
|
|
1529
1319
|
"setter": false,
|
|
1530
1320
|
"reflect": false,
|
|
1531
|
-
"attribute": "
|
|
1321
|
+
"attribute": "required",
|
|
1322
|
+
"defaultValue": "false"
|
|
1532
1323
|
}
|
|
1533
1324
|
};
|
|
1534
1325
|
}
|
|
@@ -1724,223 +1515,25 @@ const parseValue = (value) => {
|
|
|
1724
1515
|
}
|
|
1725
1516
|
return value.toString();
|
|
1726
1517
|
};
|
|
1727
|
-
const generateText = (opts, value, compareWith
|
|
1518
|
+
const generateText = (opts, value, compareWith) => {
|
|
1728
1519
|
if (value === undefined) {
|
|
1729
1520
|
return '';
|
|
1730
1521
|
}
|
|
1731
1522
|
if (Array.isArray(value)) {
|
|
1732
1523
|
return value
|
|
1733
|
-
.map((v) => textForValue(opts, v, compareWith
|
|
1524
|
+
.map((v) => textForValue(opts, v, compareWith))
|
|
1734
1525
|
.filter((opt) => opt !== null)
|
|
1735
1526
|
.join(', ');
|
|
1736
1527
|
}
|
|
1737
1528
|
else {
|
|
1738
|
-
return textForValue(opts, value, compareWith
|
|
1529
|
+
return textForValue(opts, value, compareWith) || '';
|
|
1739
1530
|
}
|
|
1740
1531
|
};
|
|
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) => {
|
|
1532
|
+
const textForValue = (opts, value, compareWith) => {
|
|
1753
1533
|
const selectOpt = opts.find((opt) => {
|
|
1754
1534
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
1755
1535
|
});
|
|
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
|
-
/**
|
|
1850
|
-
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
1851
|
-
* onto attributes before cloning. Frameworks like Vue set these as
|
|
1852
|
-
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
1853
|
-
* step the cloned overlay copy renders without the prop's value.
|
|
1854
|
-
*/
|
|
1855
|
-
nodes.forEach((n) => {
|
|
1856
|
-
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
1857
|
-
reflectPropertiesToAttributes(n);
|
|
1858
|
-
}
|
|
1859
|
-
});
|
|
1860
|
-
// Clone each node into a temporary container
|
|
1861
|
-
const container = document.createElement('div');
|
|
1862
|
-
nodes.forEach((n) => {
|
|
1863
|
-
var _a;
|
|
1864
|
-
const clone = n.cloneNode(true);
|
|
1865
|
-
if (clone.nodeType === Node.TEXT_NODE) {
|
|
1866
|
-
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1867
|
-
}
|
|
1868
|
-
else {
|
|
1869
|
-
trimTextNodes(clone);
|
|
1870
|
-
}
|
|
1871
|
-
container.appendChild(clone);
|
|
1872
|
-
});
|
|
1873
|
-
/**
|
|
1874
|
-
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
1875
|
-
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
1876
|
-
* blocked tags are stripped.
|
|
1877
|
-
*/
|
|
1878
|
-
sanitizeDOMTree(container);
|
|
1879
|
-
if (useHTML) {
|
|
1880
|
-
return container.innerHTML.trim() || null;
|
|
1881
|
-
}
|
|
1882
|
-
return container;
|
|
1883
|
-
};
|
|
1884
|
-
/**
|
|
1885
|
-
* Returns the child nodes that belong to the default slot of an
|
|
1886
|
-
* option element, excluding any nodes that are assigned to named
|
|
1887
|
-
* slots.
|
|
1888
|
-
*
|
|
1889
|
-
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
1890
|
-
* @returns An array of default slot nodes, or `null` if none are found.
|
|
1891
|
-
*/
|
|
1892
|
-
const getOptionDefaultSlot = (option) => {
|
|
1893
|
-
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
1894
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1895
|
-
return !node.hasAttribute('slot');
|
|
1896
|
-
}
|
|
1897
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1898
|
-
});
|
|
1899
|
-
if (defaultSlotNodes.length === 0) {
|
|
1900
|
-
return null;
|
|
1901
|
-
}
|
|
1902
|
-
return defaultSlotNodes;
|
|
1903
|
-
};
|
|
1904
|
-
/**
|
|
1905
|
-
* Extracts plain text from only the default slot of an option,
|
|
1906
|
-
* excluding content assigned to named slots (start/end).
|
|
1907
|
-
*/
|
|
1908
|
-
const getDefaultSlotPlainText = (option) => {
|
|
1909
|
-
const texts = Array.from(option.childNodes)
|
|
1910
|
-
.filter((node) => {
|
|
1911
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1912
|
-
return !node.hasAttribute('slot');
|
|
1913
|
-
}
|
|
1914
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1915
|
-
})
|
|
1916
|
-
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
1917
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1918
|
-
.filter((t) => t);
|
|
1919
|
-
return texts.join(' ');
|
|
1920
|
-
};
|
|
1921
|
-
/**
|
|
1922
|
-
* Extracts the rich content from an `ion-select-option`.
|
|
1923
|
-
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
1924
|
-
* default slot is read and the start and end slots are skipped.
|
|
1925
|
-
*
|
|
1926
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1927
|
-
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
1928
|
-
* via the `innerHTMLTemplatesEnabled` config.
|
|
1929
|
-
*/
|
|
1930
|
-
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
1931
|
-
var _a, _b;
|
|
1932
|
-
if (!customHTMLEnabled) {
|
|
1933
|
-
return {
|
|
1934
|
-
content: getDefaultSlotPlainText(option),
|
|
1935
|
-
startContent: undefined,
|
|
1936
|
-
endContent: undefined,
|
|
1937
|
-
};
|
|
1938
|
-
}
|
|
1939
|
-
return {
|
|
1940
|
-
content: getOptionContent(option),
|
|
1941
|
-
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
1942
|
-
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
1943
|
-
};
|
|
1536
|
+
return selectOpt ? selectOpt.textContent : null;
|
|
1944
1537
|
};
|
|
1945
1538
|
let selectIds = 0;
|
|
1946
1539
|
const OPTION_CLASS = 'select-interface-option';
|