@ionic/core 8.8.19-dev.11786610762.137bbb21 → 8.8.19-nightly.20260814
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--JUspHvy.js +4 -0
- package/components/{p-paDbTUL9.js → p-A3O24YmY.js} +1 -1
- package/components/p-ABkNVeU9.js +4 -0
- package/components/{p-CA4M5WkT.js → p-B-JJgYSG.js} +1 -1
- package/components/p-B9jFTlwE.js +4 -0
- package/components/p-BLmJ0zRm.js +4 -0
- package/components/p-BMI53wYL.js +4 -0
- package/components/p-BSEgsdFI.js +4 -0
- package/{dist/ionic/p-Cipl19Qe.js → components/p-BkKAANMJ.js} +1 -1
- package/components/p-BlIAuGv2.js +4 -0
- package/components/p-BmVRXR1y.js +4 -0
- package/components/p-Bnsn6KaP.js +4 -0
- package/components/p-BsBCoGa-.js +4 -0
- package/components/p-Bz0dSlXZ.js +4 -0
- package/components/p-CHqRYvYm.js +4 -0
- package/components/p-CIGNaXM1.js +4 -0
- package/components/p-CO7fmmxt.js +4 -0
- package/components/p-CQGnMY3n.js +4 -0
- package/components/p-CSZf8_j0.js +4 -0
- package/components/{p-CpHPq11n.js → p-C_hpsif8.js} +1 -1
- package/components/p-C_xFdyXe.js +4 -0
- package/components/{p-BE21dB_a.js → p-Cf2jSDS8.js} +1 -1
- package/components/p-Cfx4M1Bn.js +4 -0
- package/components/{p-Ch8jco3x.js → p-ChIZKXUu.js} +1 -1
- package/components/p-CkMSOsFF.js +4 -0
- package/components/p-CmR5uXej.js +4 -0
- package/components/p-Cp4GRDqq.js +4 -0
- package/components/p-CsNJ1ULL.js +4 -0
- package/components/p-CtWGkNnJ.js +4 -0
- package/components/p-CzCbeKys.js +4 -0
- package/components/p-D-aHdMxW.js +4 -0
- package/components/p-D0d8qTwj.js +4 -0
- package/components/{p-znZTPd7u.js → p-D13Eaw-8.js} +1 -1
- package/components/p-D3xo7hqU.js +4 -0
- package/components/p-D6Ynv7Xh.js +4 -0
- package/components/{p-CzlL9T_X.js → p-D7uN07a3.js} +1 -1
- package/components/p-DCnGU1fF.js +4 -0
- package/components/p-DGvrK8dD.js +4 -0
- package/components/p-DJztqcrH.js +4 -0
- package/components/p-DOFCbuQR.js +4 -0
- package/components/p-DRxvM2Ic.js +4 -0
- package/components/p-DV5mPYQS.js +4 -0
- package/components/p-DWkAgceV.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/{p-BZwQa9ey.js → p-DqLB8yFQ.js} +1 -1
- package/components/p-DqZAXv2t.js +4 -0
- package/components/{p-miSYSxcc.js → p-Osve4qkc.js} +1 -1
- package/components/p-R8zmRi4c.js +4 -0
- package/components/p-SLS1rDZM.js +4 -0
- package/components/p-ZjP4CjeZ.js +4 -0
- package/components/p-aJ6PBUvj.js +4 -0
- package/{dist/ionic/p-C7urd_wE.js → components/p-cyNmxje6.js} +1 -1
- package/components/p-gAg0kXZp.js +4 -0
- package/components/p-gYiraiT_.js +4 -0
- package/components/p-j5IxBIan.js +4 -0
- package/components/p-k_E4tX5Z.js +4 -0
- package/components/p-oD4kcBRX.js +4 -0
- package/components/p-rCa2eL0j.js +4 -0
- package/components/p-vRBNsYbs.js +4 -0
- package/components/p-yEQxMl70.js +4 -0
- package/components/p-yzCsOZE2.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-qlGmEn5Y.js → animation-Ch16T-Nb.js} +3 -3
- package/dist/cjs/{app-globals-CtK-3pCu.js → app-globals-Dd89e0MR.js} +1 -1
- package/dist/cjs/{button-active-CugpWmFI.js → button-active-COnxOe4X.js} +2 -2
- package/dist/cjs/{capacitor-BixsAzyb.js → capacitor-DmA66EwP.js} +3 -3
- package/dist/cjs/config-D6C-KlA9.js +201 -0
- package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
- package/dist/cjs/{format-COAsdjOc.js → format-BUFWn4Bn.js} +1 -1
- package/dist/cjs/{framework-delegate-CJT_QJQI.js → framework-delegate-BgU6U9Ez.js} +2 -4
- package/dist/cjs/{haptic-BFgF-QCg.js → haptic-ClPPQ_PS.js} +1 -1
- package/dist/cjs/hardware-back-button-CXmUnTJC.js +121 -0
- package/dist/cjs/{helpers-Fh1iXsX9.js → helpers-gntk8bfm.js} +4 -71
- package/dist/cjs/{index-D94mERjz.js → index-BS2uhvhT.js} +4 -4
- package/dist/cjs/{index-C1knGA9x.js → index-BfaXsATC.js} +4 -53
- package/dist/cjs/{index-CNicxECl.js → index-BhhuJ1Yx.js} +8 -9
- package/dist/cjs/{index-DRFkZu3V.js → index-BiRrzGDi.js} +2 -2
- package/dist/cjs/index-DkNv4J_i.js +10 -0
- package/dist/cjs/{index-CxDnX7hd.js → index-DqmRDbxg.js} +1 -3
- package/dist/cjs/{index-CM8iGvyx.js → index-ooS8B4p9.js} +15 -15
- package/dist/cjs/index.cjs.js +16 -16
- package/dist/cjs/{input-shims-C8NCYfWv.js → input-shims-Bn1cXfCM.js} +17 -18
- package/dist/cjs/{input.utils-CYZZsbdf.js → input.utils-BwhxZooW.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
- package/dist/cjs/ion-action-sheet.cjs.entry.js +22 -41
- package/dist/cjs/ion-alert.cjs.entry.js +41 -78
- package/dist/cjs/ion-app_8.cjs.entry.js +194 -458
- 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 +24 -61
- package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
- package/dist/cjs/ion-checkbox.cjs.entry.js +17 -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 +46 -121
- 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 +17 -93
- 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 +40 -132
- package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
- package/dist/cjs/ion-item_8.cjs.entry.js +50 -121
- package/dist/cjs/ion-loading.cjs.entry.js +19 -22
- 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 +18 -36
- package/dist/cjs/ion-range.cjs.entry.js +13 -20
- package/dist/cjs/ion-refresher_2.cjs.entry.js +23 -42
- 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 +10 -11
- package/dist/cjs/ion-searchbar.cjs.entry.js +32 -146
- 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 +38 -114
- package/dist/cjs/ion-select_3.cjs.entry.js +108 -557
- 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 +28 -150
- 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 -70
- package/dist/cjs/ion-toggle.cjs.entry.js +26 -82
- package/dist/cjs/ionic-global-BerQGEpE.js +151 -0
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-BgDCUY4Y.js → ios.transition-IMJRwn29.js} +5 -7
- package/dist/cjs/{item-multiple-inputs-DKn76MYO.js → item-multiple-inputs-jOJZE_I0.js} +1 -1
- package/dist/cjs/{keyboard-BbZXOwZg.js → keyboard-UuAS4D_9.js} +1 -1
- package/dist/cjs/keyboard-controller-GXBiBRKS.js +167 -0
- package/dist/cjs/{keyboard-nne7rvBK.js → keyboard-hHzlEQpk.js} +3 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-Debf4tYr.js → md.transition-CgQZxcoT.js} +5 -6
- package/dist/cjs/{notch-controller-CFlPw7ER.js → notch-controller-_SwR025y.js} +4 -4
- package/dist/cjs/{overlays-DYBUkNQu.js → overlays-DuSEMhIW.js} +18 -309
- package/dist/cjs/{status-tap-hwqc0yb_.js → status-tap-CSvBT7FV.js} +3 -4
- package/dist/cjs/{swipe-back-DqQx5QCp.js → swipe-back-CuIiziaa.js} +2 -3
- package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
- package/dist/cjs/validity-BpS37YFM.js +19 -0
- package/dist/collection/collection-manifest.json +1 -9
- 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 -367
- package/dist/collection/components/action-sheet/action-sheet.js +13 -32
- package/dist/collection/components/action-sheet/action-sheet.md.css +10 -306
- package/dist/collection/components/alert/alert.ios.css +19 -481
- package/dist/collection/components/alert/alert.js +30 -67
- package/dist/collection/components/alert/alert.md.css +29 -464
- 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 -137
- package/dist/collection/components/badge/badge.js +9 -145
- package/dist/collection/components/badge/badge.md.css +12 -122
- 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 +117 -242
- package/dist/collection/components/checkbox/checkbox.js +14 -69
- package/dist/collection/components/checkbox/checkbox.md.css +118 -243
- 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 -47
- 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 -97
- 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 +6 -33
- package/dist/collection/components/footer/footer.js +25 -117
- package/dist/collection/components/footer/footer.md.css +0 -40
- 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 +133 -178
- package/dist/collection/components/header/header.js +39 -181
- package/dist/collection/components/header/header.md.css +9 -199
- package/dist/collection/components/header/header.utils.js +13 -6
- 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 +137 -224
- package/dist/collection/components/input/input.js +45 -158
- package/dist/collection/components/input/input.md.css +209 -194
- package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
- package/dist/collection/components/input-otp/input-otp.js +7 -74
- 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 +80 -120
- package/dist/collection/components/item/item.js +21 -56
- package/dist/collection/components/item/item.md.css +79 -131
- 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 +102 -207
- package/dist/collection/components/radio/radio.js +9 -14
- package/dist/collection/components/radio/radio.md.css +102 -207
- 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 +42 -191
- 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 +92 -521
- package/dist/collection/components/select/select.md.css +178 -364
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -466
- package/dist/collection/components/select-modal/select-modal.js +30 -126
- package/dist/collection/components/select-modal/select-modal.md.css +0 -394
- package/dist/collection/components/select-option/select-option.js +4 -72
- package/dist/collection/components/select-popover/select-popover.ios.css +20 -302
- package/dist/collection/components/select-popover/select-popover.js +29 -89
- package/dist/collection/components/select-popover/select-popover.md.css +0 -345
- 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 -86
- package/dist/collection/components/tab-bar/tab-bar.js +15 -179
- package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
- 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 -39
- 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 +127 -247
- package/dist/collection/components/toggle/toggle.js +18 -72
- package/dist/collection/components/toggle/toggle.md.css +127 -245
- 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/index.js +0 -1
- 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 -70
- 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 +8 -290
- package/dist/collection/utils/sanitization/index.js +18 -274
- 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 +286 -9090
- package/dist/esm/{animation-ChfHU0RG.js → animation-DLJpuoEz.js} +2 -2
- package/dist/esm/{app-globals-D1OOQlqq.js → app-globals-D0C5S4hU.js} +1 -1
- package/dist/esm/{button-active-CPYK0dNo.js → button-active-BSpTQmS9.js} +2 -2
- package/dist/esm/{capacitor-DG_4yVXz.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/config-DQCONYYp.js +195 -0
- package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
- package/dist/esm/{format-2WlZcMvG.js → format-CAmvpAez.js} +1 -1
- package/dist/esm/{framework-delegate-DO2QXccA.js → framework-delegate-FnPGymXL.js} +2 -4
- package/dist/esm/{haptic-BWlRCqa-.js → haptic-DzAMWJuk.js} +1 -1
- package/dist/esm/hardware-back-button-B93Gru0Y.js +115 -0
- package/dist/esm/{helpers-DfF5_wJc.js → helpers-HEqiOzXb.js} +5 -71
- package/dist/esm/{index-DNY2GOUg.js → index-BRHzoo00.js} +3 -4
- package/dist/esm/{index-BSDDOljg.js → index-B_dQk_WE.js} +4 -4
- package/dist/esm/{index-B4Kq2YNk.js → index-DV3sJJW8.js} +2 -3
- package/dist/esm/{index-taYRjZGp.js → index-Dw-wN0Ja.js} +2 -2
- package/dist/esm/{index-7eS8XtuU.js → index-Q6UPU0Ay.js} +11 -11
- package/dist/esm/index-ZjP4CjeZ.js +7 -0
- package/dist/esm/{index-C0EQceqV.js → index-tcQvqkiX.js} +4 -53
- package/dist/esm/index.js +14 -14
- package/dist/esm/{input-shims-tZfqB5a5.js → input-shims-LXhI7LEx.js} +6 -7
- package/dist/esm/{input.utils-fs4B7WL5.js → input.utils-Y6NgW8bw.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +29 -61
- package/dist/esm/ion-action-sheet.entry.js +22 -41
- package/dist/esm/ion-alert.entry.js +40 -77
- package/dist/esm/ion-app_8.entry.js +193 -457
- 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 +24 -61
- package/dist/esm/ion-card_5.entry.js +33 -55
- package/dist/esm/ion-checkbox.entry.js +17 -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 +46 -121
- 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 -92
- 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 +40 -132
- package/dist/esm/ion-item-option_3.entry.js +52 -467
- package/dist/esm/ion-item_8.entry.js +50 -121
- package/dist/esm/ion-loading.entry.js +18 -21
- 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 +18 -36
- package/dist/esm/ion-range.entry.js +13 -20
- package/dist/esm/ion-refresher_2.entry.js +21 -40
- 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 +10 -11
- package/dist/esm/ion-searchbar.entry.js +32 -146
- 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 +38 -114
- package/dist/esm/ion-select_3.entry.js +108 -557
- 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 +27 -149
- 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 -45
- package/dist/esm/ion-toggle.entry.js +26 -82
- package/dist/esm/ionic-global-Cp_eT4sZ.js +146 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-C3r-0w96.js → ios.transition-ClFrsIrS.js} +5 -7
- package/dist/esm/{item-multiple-inputs-C6onMFOo.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
- package/dist/esm/{keyboard-DYGmALa7.js → keyboard-CUw4ekVy.js} +1 -1
- package/dist/esm/keyboard-controller-BaaVITYt.js +165 -0
- package/dist/esm/{keyboard-BzbtCDwZ.js → keyboard-ywgs5efA.js} +3 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-CPHOF5T9.js → md.transition-D0msQmzI.js} +5 -6
- package/dist/esm/{notch-controller-CsbpmbOz.js → notch-controller-DKDjU_O7.js} +2 -2
- package/dist/esm/{overlays-C1NQMs9y.js → overlays-Dg0q2_tJ.js} +15 -306
- package/dist/esm/{status-tap-BueE8Coq.js → status-tap-vO-6s4Yp.js} +3 -4
- package/dist/esm/{swipe-back-qmvTRnSq.js → swipe-back-DQ1q5MgD.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 +160 -2699
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01f81ea5.entry.js +4 -0
- package/dist/ionic/p-06c232a4.entry.js +4 -0
- package/dist/ionic/p-0caa922c.entry.js +4 -0
- package/dist/ionic/p-0dc33652.entry.js +4 -0
- package/dist/ionic/p-0fa9c382.entry.js +4 -0
- package/dist/ionic/p-10e833ef.entry.js +4 -0
- package/dist/ionic/p-21eb76d5.entry.js +4 -0
- package/dist/ionic/p-27d30585.entry.js +4 -0
- package/dist/ionic/p-2a05aa64.entry.js +4 -0
- package/dist/ionic/p-2b204c59.entry.js +4 -0
- package/dist/ionic/p-2bb2cb18.entry.js +4 -0
- package/dist/ionic/p-2fa58e80.entry.js +4 -0
- package/dist/ionic/p-3353c229.entry.js +4 -0
- package/dist/ionic/p-34586ead.entry.js +4 -0
- package/dist/ionic/p-37e720da.entry.js +4 -0
- package/dist/ionic/p-390ca786.entry.js +4 -0
- package/dist/ionic/p-3ae5f277.entry.js +4 -0
- package/dist/ionic/p-4654ae1c.entry.js +4 -0
- package/dist/ionic/p-4745f534.entry.js +4 -0
- package/dist/ionic/p-4858af1f.entry.js +4 -0
- package/dist/ionic/p-4baa5b82.entry.js +4 -0
- package/dist/ionic/p-4e92a11f.entry.js +4 -0
- package/dist/ionic/p-50e1194a.entry.js +4 -0
- package/dist/ionic/p-5334df12.entry.js +4 -0
- package/dist/ionic/p-5d1da0a2.entry.js +4 -0
- package/dist/ionic/p-5e2f73ee.entry.js +4 -0
- package/dist/ionic/p-5eb8e86d.entry.js +4 -0
- package/dist/ionic/p-65ebdf1b.entry.js +4 -0
- package/dist/ionic/p-746fa988.entry.js +4 -0
- package/dist/ionic/p-75dc25ba.entry.js +4 -0
- package/dist/ionic/p-7c319341.entry.js +4 -0
- package/dist/ionic/p-829367ed.entry.js +4 -0
- package/dist/ionic/p-84d5ce05.entry.js +4 -0
- package/dist/ionic/p-874b4bd8.entry.js +4 -0
- package/dist/ionic/p-8eb8ee76.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-9f9db3a2.entry.js +4 -0
- package/dist/ionic/p-9fa3c405.entry.js +4 -0
- package/dist/ionic/p-BGqMS-oh.js +4 -0
- package/dist/ionic/p-BUFIpxKM.js +4 -0
- package/dist/ionic/p-BmVRXR1y.js +4 -0
- package/dist/ionic/{p-7k7Q1A38.js → p-C0eMdTCW.js} +1 -1
- package/dist/ionic/p-CFlfIb2g.js +4 -0
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/{components/p-BUNIyvqe.js → dist/ionic/p-CKvCXMs9.js} +1 -1
- package/dist/ionic/p-CmcFnK-B.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/dist/ionic/p-Cx3IXROA.js +4 -0
- package/dist/ionic/p-D-3ycHmd.js +4 -0
- package/dist/ionic/{p-CCgRIJJv.js → p-D13Eaw-8.js} +1 -1
- package/dist/ionic/p-D4uTWt4-.js +4 -0
- package/dist/ionic/{p-CnIzWLAn.js → p-DC3RagnA.js} +1 -1
- package/dist/ionic/p-DIuEbVLu.js +4 -0
- package/dist/ionic/p-DJztqcrH.js +4 -0
- package/dist/ionic/p-DV3sJJW8.js +4 -0
- package/dist/ionic/p-DiVJyqlX.js +4 -0
- package/dist/ionic/p-DoJvtrbw.js +4 -0
- package/dist/ionic/p-DqN5EA2O.js +4 -0
- package/dist/ionic/p-DzWaWHGc.js +4 -0
- package/dist/ionic/p-KjNvRoEp.js +4 -0
- package/dist/ionic/p-Nqf6uvGh.js +4 -0
- package/dist/ionic/p-SNAkTDfm.js +4 -0
- package/dist/ionic/{p-CYYo93al.js → p-VAemlbDS.js} +1 -1
- package/dist/ionic/p-ZjP4CjeZ.js +4 -0
- package/dist/ionic/p-a3bdcae6.entry.js +4 -0
- package/dist/ionic/p-aaeedb6b.entry.js +4 -0
- package/dist/ionic/p-af55a72f.entry.js +4 -0
- package/dist/ionic/p-b2020591.entry.js +4 -0
- package/dist/ionic/p-b9fadbfe.entry.js +4 -0
- package/dist/ionic/p-biz8zWmJ.js +4 -0
- package/dist/ionic/p-c0fb8edd.entry.js +4 -0
- package/dist/ionic/p-c38b648e.entry.js +4 -0
- package/dist/ionic/p-c4d8641b.entry.js +4 -0
- package/dist/ionic/p-c6e49f3f.entry.js +4 -0
- package/dist/ionic/p-ca2ab74d.entry.js +4 -0
- package/dist/ionic/p-d889ff6d.entry.js +4 -0
- package/dist/ionic/p-dfa8d673.entry.js +4 -0
- package/dist/ionic/p-ea56626d.entry.js +4 -0
- package/dist/ionic/p-ef4c3bee.entry.js +4 -0
- package/dist/ionic/p-f386f6ae.entry.js +4 -0
- package/{components/p-BYoGvMgh.js → dist/ionic/p-mjKAFv89.js} +1 -1
- package/dist/ionic/p-tcQvqkiX.js +5 -0
- package/dist/ionic/p-uWtqTrG8.js +4 -0
- package/dist/ionic/{p-DINFwXlp.js → p-viFHDgRs.js} +1 -1
- package/dist/ionic/p-xWb6fgfq.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 -20
- package/dist/types/components/grid/grid.d.ts +0 -4
- package/dist/types/components/header/header.d.ts +3 -26
- package/dist/types/components/header/header.utils.d.ts +5 -4
- 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 -34
- 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 +10 -56
- 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 +1 -45
- 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-interface.d.ts +0 -1
- package/dist/types/components/tab-bar/tab-bar.d.ts +3 -41
- 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 +211 -1882
- 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/index.d.ts +0 -1
- package/dist/types/utils/forms/validity.d.ts +0 -7
- package/dist/types/utils/helpers.d.ts +0 -22
- 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 -58
- 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 +1406 -6402
- package/hydrate/index.mjs +1406 -6402
- package/package.json +5 -9
- package/components/ion-divider.d.ts +0 -11
- package/components/ion-divider.js +0 -4
- package/components/ion-gallery-item.d.ts +0 -11
- package/components/ion-gallery-item.js +0 -4
- package/components/ion-gallery.d.ts +0 -11
- package/components/ion-gallery.js +0 -4
- package/components/p-6hUZIMBp.js +0 -4
- package/components/p-9mfpAwJh.js +0 -4
- package/components/p-B2SvA6NE.js +0 -4
- package/components/p-B2aAAEfp.js +0 -4
- package/components/p-B2lpqDWK.js +0 -4
- package/components/p-BDoEcs72.js +0 -4
- package/components/p-BDqjX7Z_.js +0 -4
- package/components/p-BFpXpzD-.js +0 -4
- package/components/p-BYSs-jZz.js +0 -4
- package/components/p-BYrCPOBM.js +0 -4
- package/components/p-BbVhJs-a.js +0 -4
- package/components/p-BhRXIcSN.js +0 -4
- package/components/p-BjW8SOqw.js +0 -4
- package/components/p-BsiHrVPa.js +0 -4
- package/components/p-BwKpO3Is.js +0 -4
- package/components/p-Bz8jnuiy.js +0 -4
- package/components/p-C-Ea1l5K.js +0 -4
- package/components/p-C3X10Pc6.js +0 -4
- package/components/p-CH6jbAEI.js +0 -4
- package/components/p-CJE5t2qs.js +0 -4
- package/components/p-CODBQrPj.js +0 -4
- package/components/p-CUbb1HkU.js +0 -4
- package/components/p-CVYFPBs-.js +0 -4
- package/components/p-CVoLDZ7z.js +0 -4
- package/components/p-CZrORZXS.js +0 -4
- package/components/p-Cc3oC60a.js +0 -4
- package/components/p-CmoUesXp.js +0 -4
- package/components/p-CyNW8ypn.js +0 -4
- package/components/p-CzxyxYID.js +0 -4
- package/components/p-D0Iqw6OZ.js +0 -4
- package/components/p-D0LT3Z3i.js +0 -4
- package/components/p-D1t981Ih.js +0 -4
- package/components/p-D6tqrIYY.js +0 -4
- package/components/p-D9C5yWpF.js +0 -4
- package/components/p-DCRXgAoM.js +0 -4
- package/components/p-DL5wyRub.js +0 -4
- package/components/p-DQlXUUDh.js +0 -4
- package/components/p-DRWN7QM2.js +0 -4
- package/components/p-DaJxRxSQ.js +0 -4
- package/components/p-DbmfFkd1.js +0 -4
- package/components/p-Dhi5xtNS.js +0 -4
- package/components/p-DnwLgh9U.js +0 -4
- package/components/p-DoZB3DcY.js +0 -4
- package/components/p-Dovs7FIs.js +0 -4
- package/components/p-DrrpZB81.js +0 -4
- package/components/p-DrzWRqnG.js +0 -4
- package/components/p-DylrHLJF.js +0 -4
- package/components/p-Dypq4kXE.js +0 -4
- package/components/p-DzeMJvWL.js +0 -4
- package/components/p-Dzk4Tr0X.js +0 -4
- package/components/p-Rkm2AOZ2.js +0 -4
- package/components/p-UYngqo1f.js +0 -4
- package/components/p-Va26YR7l.js +0 -4
- package/components/p-asUhrzOB.js +0 -4
- package/components/p-fIOYmaqA.js +0 -4
- package/components/p-jlwpz7Ms.js +0 -4
- package/components/p-kInyVu79.js +0 -4
- package/components/p-vXpMhGrs.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/clear-button-press-controller-2hAy_qdm.js +0 -45
- package/dist/cjs/config-DWdFbSNK.js +0 -35
- package/dist/cjs/index-YYUVCfP-.js +0 -429
- package/dist/cjs/ion-divider.cjs.entry.js +0 -51
- package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
- package/dist/cjs/ion-gallery.cjs.entry.js +0 -607
- package/dist/cjs/ionic-global-DvEcO0tQ.js +0 -519
- package/dist/cjs/list-a-7GSA6K.js +0 -8
- package/dist/cjs/overlay-control-label-DnRLQR1t.js +0 -52
- package/dist/cjs/scroll-hide-controller-DAf_DwKc.js +0 -345
- package/dist/cjs/select-option-render-BqJEK1N1.js +0 -124
- 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 -494
- package/dist/collection/components/alert/alert.ionic.css +0 -787
- package/dist/collection/components/avatar/avatar.ionic.css +0 -385
- package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
- package/dist/collection/components/badge/badge.ionic.css +0 -272
- package/dist/collection/components/button/button.ionic.css +0 -644
- 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 -543
- 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/footer/footer-interface.js +0 -1
- 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 -15
- package/dist/collection/components/gallery/gallery.js +0 -679
- package/dist/collection/components/gallery/test/utils.js +0 -100
- package/dist/collection/components/gallery-item/gallery-item.css +0 -49
- package/dist/collection/components/gallery-item/gallery-item.js +0 -99
- package/dist/collection/components/header/header-interface.js +0 -1
- package/dist/collection/components/header/header.ionic.css +0 -250
- package/dist/collection/components/input/input.ionic.css +0 -891
- 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 -277
- 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 -255
- 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 -622
- package/dist/collection/components/segment/segment.ionic.css +0 -115
- package/dist/collection/components/segment-button/segment-button.ionic.css +0 -352
- package/dist/collection/components/select/select.ionic.css +0 -809
- package/dist/collection/components/select-modal/select-modal.ionic.css +0 -257
- package/dist/collection/components/select-popover/select-popover.ionic.css +0 -255
- package/dist/collection/components/spinner/spinner.native.css +0 -199
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
- package/dist/collection/components/tab-button/tab-button.ionic.css +0 -373
- 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 -512
- 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 -39
- package/dist/collection/utils/forms/clear-button-press-controller.js +0 -40
- package/dist/collection/utils/overlay-control-label.js +0 -47
- package/dist/collection/utils/scroll-hide-controller.js +0 -178
- package/dist/collection/utils/select-option-render.js +0 -119
- 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/clear-button-press-controller-C79TPm5p.js +0 -43
- package/dist/esm/config-BwKpO3Is.js +0 -31
- package/dist/esm/index-Mq5pCWmZ.js +0 -424
- package/dist/esm/ion-divider.entry.js +0 -49
- package/dist/esm/ion-gallery-item.entry.js +0 -57
- package/dist/esm/ion-gallery.entry.js +0 -605
- package/dist/esm/ionic-global-CEwbmRLz.js +0 -508
- package/dist/esm/list-Dhi5xtNS.js +0 -6
- package/dist/esm/overlay-control-label-CODBQrPj.js +0 -49
- package/dist/esm/scroll-hide-controller-CfbtPBWv.js +0 -342
- package/dist/esm/select-option-render-BlKZ2H83.js +0 -122
- package/dist/esm/validity-BjW8SOqw.js +0 -48
- package/dist/esm/x-BDqjX7Z_.js +0 -6
- package/dist/ionic/p--sroV-k-.js +0 -4
- package/dist/ionic/p-00731d20.entry.js +0 -4
- package/dist/ionic/p-03c20a50.entry.js +0 -4
- package/dist/ionic/p-03ec6673.entry.js +0 -4
- package/dist/ionic/p-0405ec57.entry.js +0 -4
- package/dist/ionic/p-04f16322.entry.js +0 -4
- package/dist/ionic/p-09123f89.entry.js +0 -4
- package/dist/ionic/p-15028853.entry.js +0 -4
- package/dist/ionic/p-16c5db90.entry.js +0 -4
- package/dist/ionic/p-1d1dfb68.entry.js +0 -4
- package/dist/ionic/p-231572a0.entry.js +0 -4
- package/dist/ionic/p-2740db6e.entry.js +0 -4
- package/dist/ionic/p-2a6d4601.entry.js +0 -4
- package/dist/ionic/p-2d8fe33c.entry.js +0 -4
- package/dist/ionic/p-2dbc50d9.entry.js +0 -4
- package/dist/ionic/p-32d3095c.entry.js +0 -4
- package/dist/ionic/p-356cd619.entry.js +0 -4
- package/dist/ionic/p-391bdb60.entry.js +0 -4
- package/dist/ionic/p-3b2ab5b4.entry.js +0 -4
- package/dist/ionic/p-4e3e750a.entry.js +0 -4
- package/dist/ionic/p-4fee0df6.entry.js +0 -4
- package/dist/ionic/p-547d010c.entry.js +0 -4
- package/dist/ionic/p-54895118.entry.js +0 -4
- package/dist/ionic/p-6163d04d.entry.js +0 -4
- package/dist/ionic/p-679c1448.entry.js +0 -4
- package/dist/ionic/p-6de524e5.entry.js +0 -4
- package/dist/ionic/p-764d7ea2.entry.js +0 -4
- package/dist/ionic/p-81BMEE8Q.js +0 -4
- package/dist/ionic/p-8d6d7acb.entry.js +0 -4
- package/dist/ionic/p-96732fe2.entry.js +0 -4
- package/dist/ionic/p-96c4c1b9.entry.js +0 -4
- package/dist/ionic/p-9745f518.entry.js +0 -4
- package/dist/ionic/p-9a40af3c.entry.js +0 -4
- package/dist/ionic/p-9e725104.entry.js +0 -4
- package/dist/ionic/p-B4Kq2YNk.js +0 -4
- package/dist/ionic/p-BDqjX7Z_.js +0 -4
- package/dist/ionic/p-BYSs-jZz.js +0 -4
- package/dist/ionic/p-BbWo-T8F.js +0 -4
- package/dist/ionic/p-BjW8SOqw.js +0 -4
- package/dist/ionic/p-Bvz8PHo5.js +0 -4
- package/dist/ionic/p-BwKpO3Is.js +0 -4
- package/dist/ionic/p-C0EQceqV.js +0 -5
- package/dist/ionic/p-C1_a9uRb.js +0 -4
- package/dist/ionic/p-C6WD6qSF.js +0 -4
- package/dist/ionic/p-CEkwLb3L.js +0 -4
- package/dist/ionic/p-CGFf6My7.js +0 -4
- package/dist/ionic/p-CLUwRxij.js +0 -4
- package/dist/ionic/p-CODBQrPj.js +0 -4
- package/dist/ionic/p-CP_sVwEm.js +0 -4
- package/dist/ionic/p-CSMWpRc0.js +0 -4
- package/dist/ionic/p-Cvvva6Z7.js +0 -4
- package/dist/ionic/p-D1t981Ih.js +0 -4
- package/dist/ionic/p-DIvCXVmD.js +0 -4
- package/dist/ionic/p-DTsDGZPd.js +0 -4
- package/dist/ionic/p-DaJxRxSQ.js +0 -4
- package/dist/ionic/p-Dhi5xtNS.js +0 -4
- package/dist/ionic/p-DtQgCTtW.js +0 -4
- package/dist/ionic/p-DuRx6DeQ.js +0 -4
- package/dist/ionic/p-YGLqXqFd.js +0 -4
- package/dist/ionic/p-YIsE5bNG.js +0 -4
- package/dist/ionic/p-a61c2ace.entry.js +0 -4
- package/dist/ionic/p-abb516e3.entry.js +0 -4
- package/dist/ionic/p-b54edee6.entry.js +0 -4
- package/dist/ionic/p-c076ac5c.entry.js +0 -4
- package/dist/ionic/p-c4ff25cb.entry.js +0 -4
- package/dist/ionic/p-c7279756.entry.js +0 -4
- package/dist/ionic/p-c7ebed50.entry.js +0 -4
- package/dist/ionic/p-cd0037e4.entry.js +0 -4
- package/dist/ionic/p-d261938d.entry.js +0 -4
- package/dist/ionic/p-d33dfc12.entry.js +0 -4
- package/dist/ionic/p-d7764330.entry.js +0 -4
- package/dist/ionic/p-defb23a2.entry.js +0 -4
- package/dist/ionic/p-df642ef5.entry.js +0 -4
- package/dist/ionic/p-e2a35249.entry.js +0 -4
- package/dist/ionic/p-e2b952ef.entry.js +0 -4
- package/dist/ionic/p-e77cfd1e.entry.js +0 -4
- package/dist/ionic/p-ecb9d3d3.entry.js +0 -4
- package/dist/ionic/p-efd13adf.entry.js +0 -4
- package/dist/ionic/p-f0904c1d.entry.js +0 -4
- package/dist/ionic/p-f33689f7.entry.js +0 -4
- package/dist/ionic/p-f693efe9.entry.js +0 -4
- package/dist/ionic/p-f788396b.entry.js +0 -4
- package/dist/ionic/p-fIOYmaqA.js +0 -4
- package/dist/ionic/p-fa16fad8.entry.js +0 -4
- package/dist/ionic/p-lMb_45ax.js +0 -4
- package/dist/ionic/p-oadJNPuo.js +0 -4
- package/dist/ionic/p-vXpMhGrs.js +0 -4
- package/dist/ionic/p-wNjWCZVO.js +0 -4
- package/dist/types/components/divider/divider.d.ts +0 -20
- package/dist/types/components/footer/footer-interface.d.ts +0 -1
- 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 -218
- package/dist/types/components/gallery/test/utils.d.ts +0 -3
- package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
- package/dist/types/components/header/header-interface.d.ts +0 -1
- 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 -21
- package/dist/types/utils/forms/clear-button-press-controller.d.ts +0 -20
- package/dist/types/utils/overlay-control-label.d.ts +0 -34
- package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
- package/dist/types/utils/select-option-render.d.ts +0 -53
- /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
|
-
import {
|
|
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
|
*/
|
|
@@ -278,65 +264,44 @@ export class Select {
|
|
|
278
264
|
// Add logic to scroll selected item into view before presenting
|
|
279
265
|
const scrollSelectedIntoView = () => {
|
|
280
266
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
281
|
-
/**
|
|
282
|
-
* Determine which option to focus when the overlay opens: the selected
|
|
283
|
-
* option if the select has a value, otherwise the first enabled option.
|
|
284
|
-
*/
|
|
285
|
-
let optionToFocus = null;
|
|
286
267
|
if (indexOfSelected > -1) {
|
|
287
268
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-of-type(${indexOfSelected + 1})`);
|
|
288
|
-
/**
|
|
289
|
-
* If the option contains an `ion-radio` or `ion-checkbox`, focus
|
|
290
|
-
* that instead of the option element itself. This ensures that
|
|
291
|
-
* screen readers will announce the role and state of the element
|
|
292
|
-
* (e.g. "radio button, checked") rather than only the option text.
|
|
293
|
-
* Alert and action sheet options are plain buttons, so fall back to
|
|
294
|
-
* focusing the option element itself in those cases.
|
|
295
|
-
*/
|
|
296
269
|
if (selectedItem) {
|
|
270
|
+
/**
|
|
271
|
+
* Browsers such as Firefox do not
|
|
272
|
+
* correctly delegate focus when manually
|
|
273
|
+
* focusing an element with delegatesFocus.
|
|
274
|
+
* We work around this by manually focusing
|
|
275
|
+
* the interactive element.
|
|
276
|
+
* ion-radio and ion-checkbox are the only
|
|
277
|
+
* elements that ion-select-popover uses, so
|
|
278
|
+
* we only need to worry about those two components
|
|
279
|
+
* when focusing.
|
|
280
|
+
*/
|
|
297
281
|
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
298
282
|
if (interactiveEl) {
|
|
299
283
|
selectedItem.scrollIntoView({ block: 'nearest' });
|
|
284
|
+
// Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
285
|
+
// and removing `ion-focused` style
|
|
286
|
+
interactiveEl.setFocus();
|
|
300
287
|
}
|
|
301
|
-
|
|
288
|
+
focusVisibleElement(selectedItem);
|
|
302
289
|
}
|
|
303
290
|
}
|
|
304
291
|
else {
|
|
305
292
|
/**
|
|
306
293
|
* If no value is set then focus the first enabled option.
|
|
307
294
|
*/
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
*
|
|
319
|
-
* `ion-radio` and `ion-checkbox` expose `setFocus`, which correctly
|
|
320
|
-
* delegates focus to their inner focusable element. This is needed
|
|
321
|
-
* because browsers such as Firefox do not delegate focus correctly
|
|
322
|
-
* when focusing an element with delegatesFocus. When the option is
|
|
323
|
-
* a plain button it can be focused directly.
|
|
324
|
-
*/
|
|
325
|
-
if (optionToFocus.matches('ion-radio, ion-checkbox')) {
|
|
326
|
-
optionToFocus.setFocus();
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
optionToFocus.focus();
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* In the alert interface, when tabbing and pressing enter to open
|
|
333
|
-
* the select, the value that is currently selected flashes the
|
|
334
|
-
* focused state briefly before moving to its wrapper. This suppresses
|
|
335
|
-
* the focus visible state, so that the option will only show as
|
|
336
|
-
* focused when navigating with the keyboard.
|
|
337
|
-
*/
|
|
338
|
-
if (this.interface === 'alert') {
|
|
339
|
-
suppressFocusVisible();
|
|
295
|
+
const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
|
|
296
|
+
if (firstEnabledOption) {
|
|
297
|
+
/**
|
|
298
|
+
* Focus the option for the same reason as we do above.
|
|
299
|
+
*
|
|
300
|
+
* Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
301
|
+
* and removing `ion-focused` style
|
|
302
|
+
*/
|
|
303
|
+
firstEnabledOption.setFocus();
|
|
304
|
+
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
340
305
|
}
|
|
341
306
|
}
|
|
342
307
|
};
|
|
@@ -434,12 +399,10 @@ export class Select {
|
|
|
434
399
|
.join(' ');
|
|
435
400
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
436
401
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
437
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
438
402
|
return {
|
|
439
403
|
role: isSelected ? 'selected' : '',
|
|
440
|
-
text:
|
|
404
|
+
text: option.textContent,
|
|
441
405
|
cssClass: optClass,
|
|
442
|
-
disabled: option.disabled,
|
|
443
406
|
handler: () => {
|
|
444
407
|
this.setValue(value);
|
|
445
408
|
},
|
|
@@ -447,9 +410,6 @@ export class Select {
|
|
|
447
410
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
448
411
|
role: 'radio',
|
|
449
412
|
},
|
|
450
|
-
startContent,
|
|
451
|
-
endContent,
|
|
452
|
-
description: option.description,
|
|
453
413
|
};
|
|
454
414
|
});
|
|
455
415
|
// Add "cancel" button
|
|
@@ -470,19 +430,13 @@ export class Select {
|
|
|
470
430
|
.filter((cls) => cls !== 'hydrated')
|
|
471
431
|
.join(' ');
|
|
472
432
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
473
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
474
433
|
return {
|
|
475
434
|
type: inputType,
|
|
476
435
|
cssClass: optClass,
|
|
477
|
-
label:
|
|
436
|
+
label: option.textContent || '',
|
|
478
437
|
value,
|
|
479
438
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
480
439
|
disabled: option.disabled,
|
|
481
|
-
startContent,
|
|
482
|
-
endContent,
|
|
483
|
-
description: option.description,
|
|
484
|
-
labelPlacement: option.labelPlacement,
|
|
485
|
-
justify: option.justify,
|
|
486
440
|
};
|
|
487
441
|
});
|
|
488
442
|
return alertInputs;
|
|
@@ -495,9 +449,8 @@ export class Select {
|
|
|
495
449
|
.filter((cls) => cls !== 'hydrated')
|
|
496
450
|
.join(' ');
|
|
497
451
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
498
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
499
452
|
return {
|
|
500
|
-
text:
|
|
453
|
+
text: option.textContent || '',
|
|
501
454
|
cssClass: optClass,
|
|
502
455
|
value,
|
|
503
456
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -508,11 +461,6 @@ export class Select {
|
|
|
508
461
|
this.close();
|
|
509
462
|
}
|
|
510
463
|
},
|
|
511
|
-
startContent,
|
|
512
|
-
endContent,
|
|
513
|
-
description: option.description,
|
|
514
|
-
labelPlacement: option.labelPlacement,
|
|
515
|
-
justify: option.justify,
|
|
516
464
|
};
|
|
517
465
|
});
|
|
518
466
|
return popoverOptions;
|
|
@@ -520,8 +468,8 @@ export class Select {
|
|
|
520
468
|
async openPopover(ev) {
|
|
521
469
|
const { fill, labelPlacement } = this;
|
|
522
470
|
const interfaceOptions = this.interfaceOptions;
|
|
523
|
-
const
|
|
524
|
-
const showBackdrop =
|
|
471
|
+
const mode = getIonMode(this);
|
|
472
|
+
const showBackdrop = mode === 'md' ? false : true;
|
|
525
473
|
const multiple = this.multiple;
|
|
526
474
|
const value = this.value;
|
|
527
475
|
let event = ev;
|
|
@@ -532,7 +480,7 @@ export class Select {
|
|
|
532
480
|
* when using a fill in MD mode or if the
|
|
533
481
|
* label is floating/stacked.
|
|
534
482
|
*/
|
|
535
|
-
if (hasFloatingOrStackedLabel || (
|
|
483
|
+
if (hasFloatingOrStackedLabel || (mode === 'md' && fill !== undefined)) {
|
|
536
484
|
size = 'cover';
|
|
537
485
|
/**
|
|
538
486
|
* Otherwise the popover
|
|
@@ -545,21 +493,15 @@ export class Select {
|
|
|
545
493
|
ionShadowTarget: this.nativeWrapperEl,
|
|
546
494
|
} });
|
|
547
495
|
}
|
|
548
|
-
const
|
|
549
|
-
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
550
|
-
const popoverOpts = Object.assign(Object.assign({ theme,
|
|
496
|
+
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
551
497
|
event, alignment: 'center', size,
|
|
552
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
553
|
-
'select-popover',
|
|
554
|
-
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
555
|
-
interfaceOptions.cssClass,
|
|
556
|
-
], componentProps: {
|
|
498
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
|
|
557
499
|
header: interfaceOptions.header,
|
|
558
500
|
subHeader: interfaceOptions.subHeader,
|
|
559
501
|
message: interfaceOptions.message,
|
|
560
502
|
multiple,
|
|
561
503
|
value,
|
|
562
|
-
options,
|
|
504
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
563
505
|
} });
|
|
564
506
|
/**
|
|
565
507
|
* Workaround for Stencil to autodefine
|
|
@@ -576,9 +518,9 @@ export class Select {
|
|
|
576
518
|
return popoverController.create(popoverOpts);
|
|
577
519
|
}
|
|
578
520
|
async openActionSheet() {
|
|
579
|
-
const
|
|
521
|
+
const mode = getIonMode(this);
|
|
580
522
|
const interfaceOptions = this.interfaceOptions;
|
|
581
|
-
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] });
|
|
582
524
|
/**
|
|
583
525
|
* Workaround for Stencil to autodefine
|
|
584
526
|
* ion-action-sheet when
|
|
@@ -595,8 +537,8 @@ export class Select {
|
|
|
595
537
|
async openAlert() {
|
|
596
538
|
const interfaceOptions = this.interfaceOptions;
|
|
597
539
|
const inputType = this.multiple ? 'checkbox' : 'radio';
|
|
598
|
-
const
|
|
599
|
-
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: [
|
|
600
542
|
{
|
|
601
543
|
text: this.cancelText,
|
|
602
544
|
role: 'cancel',
|
|
@@ -630,11 +572,10 @@ export class Select {
|
|
|
630
572
|
}
|
|
631
573
|
openModal() {
|
|
632
574
|
const { multiple, value, interfaceOptions } = this;
|
|
633
|
-
const
|
|
634
|
-
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: {
|
|
635
577
|
header: interfaceOptions.header,
|
|
636
578
|
cancelText: this.cancelText,
|
|
637
|
-
cancelIcon: this.cancelIcon,
|
|
638
579
|
multiple,
|
|
639
580
|
value,
|
|
640
581
|
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
@@ -687,18 +628,12 @@ export class Select {
|
|
|
687
628
|
}
|
|
688
629
|
return;
|
|
689
630
|
}
|
|
690
|
-
|
|
691
|
-
* Returns the text to display in the select based on the selected value.
|
|
692
|
-
*
|
|
693
|
-
* @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`.
|
|
694
|
-
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
695
|
-
*/
|
|
696
|
-
getText(useHTML = false) {
|
|
631
|
+
getText() {
|
|
697
632
|
const selectedText = this.selectedText;
|
|
698
633
|
if (selectedText != null && selectedText !== '') {
|
|
699
634
|
return selectedText;
|
|
700
635
|
}
|
|
701
|
-
return generateText(this.childOpts, this.value, this.compareWith
|
|
636
|
+
return generateText(this.childOpts, this.value, this.compareWith);
|
|
702
637
|
}
|
|
703
638
|
setFocus() {
|
|
704
639
|
if (this.focusEl) {
|
|
@@ -712,18 +647,6 @@ export class Select {
|
|
|
712
647
|
};
|
|
713
648
|
this.ionStyle.emit(style);
|
|
714
649
|
}
|
|
715
|
-
getSize() {
|
|
716
|
-
const theme = getIonTheme(this);
|
|
717
|
-
const { size } = this;
|
|
718
|
-
// TODO(ROU-11370): Remove theme check when sizes are defined for all themes.
|
|
719
|
-
if (theme !== 'ionic') {
|
|
720
|
-
return undefined;
|
|
721
|
-
}
|
|
722
|
-
if (size === undefined) {
|
|
723
|
-
return 'medium';
|
|
724
|
-
}
|
|
725
|
-
return size;
|
|
726
|
-
}
|
|
727
650
|
renderLabel() {
|
|
728
651
|
const { label } = this;
|
|
729
652
|
return (h("div", { class: {
|
|
@@ -756,8 +679,8 @@ export class Select {
|
|
|
756
679
|
* when fill="outline".
|
|
757
680
|
*/
|
|
758
681
|
renderLabelContainer() {
|
|
759
|
-
const
|
|
760
|
-
const hasOutlineFill =
|
|
682
|
+
const mode = getIonMode(this);
|
|
683
|
+
const hasOutlineFill = mode === 'md' && this.fill === 'outline';
|
|
761
684
|
if (hasOutlineFill) {
|
|
762
685
|
/**
|
|
763
686
|
* The outline fill has a special outline
|
|
@@ -780,47 +703,6 @@ export class Select {
|
|
|
780
703
|
*/
|
|
781
704
|
return this.renderLabel();
|
|
782
705
|
}
|
|
783
|
-
/**
|
|
784
|
-
* Wraps text nodes in the select text with span elements
|
|
785
|
-
* so spacing can be added between elements without
|
|
786
|
-
* changing the display to prevent losing the ellipses
|
|
787
|
-
* behavior.
|
|
788
|
-
*
|
|
789
|
-
* Only wraps when the string contains HTML elements
|
|
790
|
-
* alongside text.
|
|
791
|
-
*/
|
|
792
|
-
wrapSelectTextNodes(html) {
|
|
793
|
-
const temp = document.createElement('div');
|
|
794
|
-
temp.innerHTML = html;
|
|
795
|
-
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
796
|
-
// Return the plain text
|
|
797
|
-
if (!hasElements) {
|
|
798
|
-
return html;
|
|
799
|
-
}
|
|
800
|
-
Array.from(temp.childNodes).forEach((node) => {
|
|
801
|
-
var _a, _b, _c, _d;
|
|
802
|
-
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
803
|
-
const text = node.textContent;
|
|
804
|
-
/**
|
|
805
|
-
* Split comma separator from the text content
|
|
806
|
-
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
807
|
-
*/
|
|
808
|
-
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
809
|
-
if (commaMatch) {
|
|
810
|
-
const commaNode = document.createTextNode(commaMatch[1]);
|
|
811
|
-
const wrapper = document.createElement('span');
|
|
812
|
-
wrapper.textContent = commaMatch[2];
|
|
813
|
-
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
814
|
-
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
815
|
-
return;
|
|
816
|
-
}
|
|
817
|
-
const wrapper = document.createElement('span');
|
|
818
|
-
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
819
|
-
wrapper.appendChild(node);
|
|
820
|
-
}
|
|
821
|
-
});
|
|
822
|
-
return temp.innerHTML;
|
|
823
|
-
}
|
|
824
706
|
/**
|
|
825
707
|
* Renders either the placeholder
|
|
826
708
|
* or the selected values based on
|
|
@@ -828,7 +710,7 @@ export class Select {
|
|
|
828
710
|
*/
|
|
829
711
|
renderSelectText() {
|
|
830
712
|
const { placeholder } = this;
|
|
831
|
-
const displayValue = this.getText(
|
|
713
|
+
const displayValue = this.getText();
|
|
832
714
|
let addPlaceholderClass = false;
|
|
833
715
|
let selectText = displayValue;
|
|
834
716
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -840,10 +722,6 @@ export class Select {
|
|
|
840
722
|
'select-placeholder': addPlaceholderClass,
|
|
841
723
|
};
|
|
842
724
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
843
|
-
if (this.customHTMLEnabled) {
|
|
844
|
-
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
845
|
-
return h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
846
|
-
}
|
|
847
725
|
return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
848
726
|
}
|
|
849
727
|
/**
|
|
@@ -851,17 +729,21 @@ export class Select {
|
|
|
851
729
|
* next to the select text.
|
|
852
730
|
*/
|
|
853
731
|
renderSelectIcon() {
|
|
854
|
-
const
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
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;
|
|
858
741
|
}
|
|
859
742
|
return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
|
|
860
743
|
}
|
|
861
744
|
get ariaLabel() {
|
|
862
745
|
var _a;
|
|
863
746
|
const { placeholder, inheritedAttributes } = this;
|
|
864
|
-
// Get the plain text from the selected text
|
|
865
747
|
const displayValue = this.getText();
|
|
866
748
|
// The aria label should be preferred over visible text if both are specified
|
|
867
749
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -890,63 +772,6 @@ export class Select {
|
|
|
890
772
|
const { disabled, inputId, isExpanded, required } = this;
|
|
891
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) }));
|
|
892
774
|
}
|
|
893
|
-
getShape() {
|
|
894
|
-
const theme = getIonTheme(this);
|
|
895
|
-
const { shape } = this;
|
|
896
|
-
// TODO(ROU-11366): Remove theme check when shapes are defined for all themes.
|
|
897
|
-
if (theme === 'ionic' && shape === undefined) {
|
|
898
|
-
return 'round';
|
|
899
|
-
}
|
|
900
|
-
return shape;
|
|
901
|
-
}
|
|
902
|
-
/**
|
|
903
|
-
* Get the icon to use for the expand icon.
|
|
904
|
-
* If an icon is set on the component, use that.
|
|
905
|
-
* Otherwise, use the icon set in the config.
|
|
906
|
-
* If no icon is set in the config, use the default icon.
|
|
907
|
-
*/
|
|
908
|
-
get selectExpandedIcon() {
|
|
909
|
-
// Return the expandedIcon or toggleIcon if either is explicitly set
|
|
910
|
-
if (this.expandedIcon != null) {
|
|
911
|
-
return this.expandedIcon;
|
|
912
|
-
}
|
|
913
|
-
else if (this.toggleIcon != null) {
|
|
914
|
-
return this.toggleIcon;
|
|
915
|
-
}
|
|
916
|
-
// Determine the theme and map to default icons
|
|
917
|
-
const theme = getIonTheme(this);
|
|
918
|
-
const defaultIcons = {
|
|
919
|
-
ios: chevronExpand,
|
|
920
|
-
ionic: caretDownRegular,
|
|
921
|
-
md: caretDownSharp,
|
|
922
|
-
};
|
|
923
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
924
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
925
|
-
// Return the configured select expanded icon or the default icon
|
|
926
|
-
return config.get('selectExpandedIcon', defaultIcon);
|
|
927
|
-
}
|
|
928
|
-
/**
|
|
929
|
-
* Get the icon to use for the collapsed icon.
|
|
930
|
-
* If an icon is set on the component, use that.
|
|
931
|
-
* Otherwise, use the icon set in the config.
|
|
932
|
-
* If no icon is set in the config, use the default icon.
|
|
933
|
-
*/
|
|
934
|
-
get selectCollapsedIcon() {
|
|
935
|
-
// Return the toggleIcon if it is explicitly set
|
|
936
|
-
if (this.toggleIcon) {
|
|
937
|
-
return this.toggleIcon;
|
|
938
|
-
}
|
|
939
|
-
// Determine the theme and map to default icons
|
|
940
|
-
const theme = getIonTheme(this);
|
|
941
|
-
const defaultIcons = {
|
|
942
|
-
ios: chevronExpand,
|
|
943
|
-
ionic: caretDownRegular,
|
|
944
|
-
md: caretDownSharp,
|
|
945
|
-
};
|
|
946
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
947
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
948
|
-
return config.get('selectCollapsedIcon', defaultIcon);
|
|
949
|
-
}
|
|
950
775
|
getHintTextId() {
|
|
951
776
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
952
777
|
if (isInvalid && errorText) {
|
|
@@ -984,17 +809,13 @@ export class Select {
|
|
|
984
809
|
return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
|
|
985
810
|
}
|
|
986
811
|
render() {
|
|
987
|
-
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
|
|
988
|
-
const
|
|
989
|
-
const shape = this.getShape();
|
|
812
|
+
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
|
|
813
|
+
const mode = getIonMode(this);
|
|
990
814
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
991
|
-
const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
|
|
992
|
-
const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
|
|
993
815
|
const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
|
|
994
816
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
995
817
|
const inItem = hostContext('ion-item', this.el);
|
|
996
|
-
const
|
|
997
|
-
const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
|
|
818
|
+
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
998
819
|
const hasValue = this.hasValue();
|
|
999
820
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
1000
821
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
@@ -1017,8 +838,8 @@ export class Select {
|
|
|
1017
838
|
*/
|
|
1018
839
|
const labelShouldFloat = labelPlacement === 'stacked' ||
|
|
1019
840
|
(labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded || hasStartEndSlots));
|
|
1020
|
-
return (h(Host, { key: '
|
|
1021
|
-
[
|
|
841
|
+
return (h(Host, { key: 'f16327d6866ffee76e1618fcd3281590ca0fd56d', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
842
|
+
[mode]: true,
|
|
1022
843
|
'in-item': inItem,
|
|
1023
844
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
1024
845
|
'select-disabled': disabled,
|
|
@@ -1035,33 +856,20 @@ export class Select {
|
|
|
1035
856
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
1036
857
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
1037
858
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
1038
|
-
|
|
1039
|
-
}) }, h("label", { key: 'db8f0b67592f4b99f5e16d06ee8120852a60f4d1', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '30313c0f3034be59605b368d15af4ba00202a5f4', class: "select-wrapper-inner", part: "inner" },
|
|
1040
|
-
/**
|
|
1041
|
-
* For the ionic theme, we render the outline container here
|
|
1042
|
-
* instead of higher up, so it can be positioned relative to
|
|
1043
|
-
* the native wrapper instead of the <label> element or the
|
|
1044
|
-
* entire component. This allows the label text to be positioned
|
|
1045
|
-
* above the outline, while staying within the bounds of the
|
|
1046
|
-
* <label> element, ensuring that clicking the label text
|
|
1047
|
-
* focuses the select.
|
|
1048
|
-
*/
|
|
1049
|
-
theme === 'ionic' && fill === 'outline' && h("div", { key: '78bba2953ba88efd1189afa31e8229a8972175e5', class: "select-outline" }), h("slot", { key: '086505d193a19677d33e26a5a116783d999c6861', name: "start" }), h("div", { key: '5bb7863236596cad5c1118be1ae54898b638b760', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '38744ee0cc6750f84d11470c09a4e950d73f1e44', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '4eecb0df50800d16bea58c5649e68e06b122e472', class: "select-highlight" })), this.renderBottomContent()));
|
|
859
|
+
}) }, h("label", { key: 'db13f76b384a7a7461c1ad752108eadf9c0213be', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '2fb0e57bd596c0f525be79293b7da4aca55a9385', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'cd694c36242789a89461ed3412af9891ad68411b', name: "start" }), h("div", { key: 'fdf62911be54f4ab29eb3c2eb153f082e76a8f49', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'a32f5c4b101d4d6ad45870f4c4446960009377f5', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '61f792024a5f221ef4f28a3c249bd3a0de5edeab', class: "select-highlight" })), this.renderBottomContent()));
|
|
1050
860
|
}
|
|
1051
861
|
static get is() { return "ion-select"; }
|
|
1052
862
|
static get encapsulation() { return "shadow"; }
|
|
1053
863
|
static get originalStyleUrls() {
|
|
1054
864
|
return {
|
|
1055
865
|
"ios": ["select.ios.scss"],
|
|
1056
|
-
"md": ["select.md.scss"]
|
|
1057
|
-
"ionic": ["select.ionic.scss"]
|
|
866
|
+
"md": ["select.md.scss"]
|
|
1058
867
|
};
|
|
1059
868
|
}
|
|
1060
869
|
static get styleUrls() {
|
|
1061
870
|
return {
|
|
1062
871
|
"ios": ["select.ios.css"],
|
|
1063
|
-
"md": ["select.md.css"]
|
|
1064
|
-
"ionic": ["select.ionic.css"]
|
|
872
|
+
"md": ["select.md.css"]
|
|
1065
873
|
};
|
|
1066
874
|
}
|
|
1067
875
|
static get properties() {
|
|
@@ -1086,26 +894,6 @@ export class Select {
|
|
|
1086
894
|
"attribute": "cancel-text",
|
|
1087
895
|
"defaultValue": "'Cancel'"
|
|
1088
896
|
},
|
|
1089
|
-
"cancelIcon": {
|
|
1090
|
-
"type": "boolean",
|
|
1091
|
-
"mutable": false,
|
|
1092
|
-
"complexType": {
|
|
1093
|
-
"original": "boolean",
|
|
1094
|
-
"resolved": "boolean",
|
|
1095
|
-
"references": {}
|
|
1096
|
-
},
|
|
1097
|
-
"required": false,
|
|
1098
|
-
"optional": false,
|
|
1099
|
-
"docs": {
|
|
1100
|
-
"tags": [],
|
|
1101
|
-
"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."
|
|
1102
|
-
},
|
|
1103
|
-
"getter": false,
|
|
1104
|
-
"setter": false,
|
|
1105
|
-
"reflect": false,
|
|
1106
|
-
"attribute": "cancel-icon",
|
|
1107
|
-
"defaultValue": "false"
|
|
1108
|
-
},
|
|
1109
897
|
"color": {
|
|
1110
898
|
"type": "string",
|
|
1111
899
|
"mutable": false,
|
|
@@ -1190,7 +978,7 @@ export class Select {
|
|
|
1190
978
|
"optional": true,
|
|
1191
979
|
"docs": {
|
|
1192
980
|
"tags": [],
|
|
1193
|
-
"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
|
|
981
|
+
"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."
|
|
1194
982
|
},
|
|
1195
983
|
"getter": false,
|
|
1196
984
|
"setter": false,
|
|
@@ -1450,7 +1238,7 @@ export class Select {
|
|
|
1450
1238
|
"optional": true,
|
|
1451
1239
|
"docs": {
|
|
1452
1240
|
"tags": [],
|
|
1453
|
-
"text": "The toggle icon to use. Defaults to
|
|
1241
|
+
"text": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode."
|
|
1454
1242
|
},
|
|
1455
1243
|
"getter": false,
|
|
1456
1244
|
"setter": false,
|
|
@@ -1469,89 +1257,70 @@ export class Select {
|
|
|
1469
1257
|
"optional": true,
|
|
1470
1258
|
"docs": {
|
|
1471
1259
|
"tags": [],
|
|
1472
|
-
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in
|
|
1260
|
+
"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."
|
|
1473
1261
|
},
|
|
1474
1262
|
"getter": false,
|
|
1475
1263
|
"setter": false,
|
|
1476
1264
|
"reflect": false,
|
|
1477
1265
|
"attribute": "expanded-icon"
|
|
1478
1266
|
},
|
|
1479
|
-
"required": {
|
|
1480
|
-
"type": "boolean",
|
|
1481
|
-
"mutable": false,
|
|
1482
|
-
"complexType": {
|
|
1483
|
-
"original": "boolean",
|
|
1484
|
-
"resolved": "boolean",
|
|
1485
|
-
"references": {}
|
|
1486
|
-
},
|
|
1487
|
-
"required": false,
|
|
1488
|
-
"optional": false,
|
|
1489
|
-
"docs": {
|
|
1490
|
-
"tags": [],
|
|
1491
|
-
"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."
|
|
1492
|
-
},
|
|
1493
|
-
"getter": false,
|
|
1494
|
-
"setter": false,
|
|
1495
|
-
"reflect": false,
|
|
1496
|
-
"attribute": "required",
|
|
1497
|
-
"defaultValue": "false"
|
|
1498
|
-
},
|
|
1499
1267
|
"shape": {
|
|
1500
1268
|
"type": "string",
|
|
1501
1269
|
"mutable": false,
|
|
1502
1270
|
"complexType": {
|
|
1503
|
-
"original": "'
|
|
1504
|
-
"resolved": "\"
|
|
1271
|
+
"original": "'round'",
|
|
1272
|
+
"resolved": "\"round\" | undefined",
|
|
1505
1273
|
"references": {}
|
|
1506
1274
|
},
|
|
1507
1275
|
"required": false,
|
|
1508
1276
|
"optional": true,
|
|
1509
1277
|
"docs": {
|
|
1510
1278
|
"tags": [],
|
|
1511
|
-
"text": "
|
|
1279
|
+
"text": "The shape of the select. If \"round\" it will have an increased border radius."
|
|
1512
1280
|
},
|
|
1513
1281
|
"getter": false,
|
|
1514
1282
|
"setter": false,
|
|
1515
1283
|
"reflect": false,
|
|
1516
1284
|
"attribute": "shape"
|
|
1517
1285
|
},
|
|
1518
|
-
"
|
|
1519
|
-
"type": "
|
|
1520
|
-
"mutable":
|
|
1286
|
+
"value": {
|
|
1287
|
+
"type": "any",
|
|
1288
|
+
"mutable": true,
|
|
1521
1289
|
"complexType": {
|
|
1522
|
-
"original": "
|
|
1523
|
-
"resolved": "
|
|
1290
|
+
"original": "any | null",
|
|
1291
|
+
"resolved": "any",
|
|
1524
1292
|
"references": {}
|
|
1525
1293
|
},
|
|
1526
1294
|
"required": false,
|
|
1527
1295
|
"optional": true,
|
|
1528
1296
|
"docs": {
|
|
1529
1297
|
"tags": [],
|
|
1530
|
-
"text": "The
|
|
1298
|
+
"text": "The value of the select."
|
|
1531
1299
|
},
|
|
1532
1300
|
"getter": false,
|
|
1533
1301
|
"setter": false,
|
|
1534
1302
|
"reflect": false,
|
|
1535
|
-
"attribute": "
|
|
1303
|
+
"attribute": "value"
|
|
1536
1304
|
},
|
|
1537
|
-
"
|
|
1538
|
-
"type": "
|
|
1539
|
-
"mutable":
|
|
1305
|
+
"required": {
|
|
1306
|
+
"type": "boolean",
|
|
1307
|
+
"mutable": false,
|
|
1540
1308
|
"complexType": {
|
|
1541
|
-
"original": "
|
|
1542
|
-
"resolved": "
|
|
1309
|
+
"original": "boolean",
|
|
1310
|
+
"resolved": "boolean",
|
|
1543
1311
|
"references": {}
|
|
1544
1312
|
},
|
|
1545
1313
|
"required": false,
|
|
1546
|
-
"optional":
|
|
1314
|
+
"optional": false,
|
|
1547
1315
|
"docs": {
|
|
1548
1316
|
"tags": [],
|
|
1549
|
-
"text": "
|
|
1317
|
+
"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."
|
|
1550
1318
|
},
|
|
1551
1319
|
"getter": false,
|
|
1552
1320
|
"setter": false,
|
|
1553
1321
|
"reflect": false,
|
|
1554
|
-
"attribute": "
|
|
1322
|
+
"attribute": "required",
|
|
1323
|
+
"defaultValue": "false"
|
|
1555
1324
|
}
|
|
1556
1325
|
};
|
|
1557
1326
|
}
|
|
@@ -1747,223 +1516,25 @@ const parseValue = (value) => {
|
|
|
1747
1516
|
}
|
|
1748
1517
|
return value.toString();
|
|
1749
1518
|
};
|
|
1750
|
-
const generateText = (opts, value, compareWith
|
|
1519
|
+
const generateText = (opts, value, compareWith) => {
|
|
1751
1520
|
if (value === undefined) {
|
|
1752
1521
|
return '';
|
|
1753
1522
|
}
|
|
1754
1523
|
if (Array.isArray(value)) {
|
|
1755
1524
|
return value
|
|
1756
|
-
.map((v) => textForValue(opts, v, compareWith
|
|
1525
|
+
.map((v) => textForValue(opts, v, compareWith))
|
|
1757
1526
|
.filter((opt) => opt !== null)
|
|
1758
1527
|
.join(', ');
|
|
1759
1528
|
}
|
|
1760
1529
|
else {
|
|
1761
|
-
return textForValue(opts, value, compareWith
|
|
1530
|
+
return textForValue(opts, value, compareWith) || '';
|
|
1762
1531
|
}
|
|
1763
1532
|
};
|
|
1764
|
-
|
|
1765
|
-
* Returns the display text for a given value from the list of options.
|
|
1766
|
-
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
1767
|
-
* When `useHTML` is false, returns plain text for aria-label and other
|
|
1768
|
-
* text-only contexts.
|
|
1769
|
-
*
|
|
1770
|
-
* @param opts - The list of ion-select-option elements.
|
|
1771
|
-
* @param value - The value to find the matching option for.
|
|
1772
|
-
* @param compareWith - Custom comparison function or property name.
|
|
1773
|
-
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
1774
|
-
*/
|
|
1775
|
-
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
1533
|
+
const textForValue = (opts, value, compareWith) => {
|
|
1776
1534
|
const selectOpt = opts.find((opt) => {
|
|
1777
1535
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
1778
1536
|
});
|
|
1779
|
-
|
|
1780
|
-
if (!selectOpt) {
|
|
1781
|
-
return null;
|
|
1782
|
-
}
|
|
1783
|
-
// Return sanitized HTML for the select text
|
|
1784
|
-
if (customHTMLEnabled && useHTML) {
|
|
1785
|
-
return getOptionContent(selectOpt, undefined, true);
|
|
1786
|
-
}
|
|
1787
|
-
/**
|
|
1788
|
-
* When custom HTML is enabled, extract only the default slot content.
|
|
1789
|
-
* This ensures aria-label and other text-only contexts read only
|
|
1790
|
-
* the relevant option text.
|
|
1791
|
-
*/
|
|
1792
|
-
if (customHTMLEnabled) {
|
|
1793
|
-
const content = getOptionContent(selectOpt);
|
|
1794
|
-
if (typeof content === 'string') {
|
|
1795
|
-
return content;
|
|
1796
|
-
}
|
|
1797
|
-
/**
|
|
1798
|
-
* Elements were found in the default slot, extract and concatenate
|
|
1799
|
-
* their text content while trimming whitespace.
|
|
1800
|
-
*/
|
|
1801
|
-
if (content) {
|
|
1802
|
-
const texts = Array.from(content.childNodes)
|
|
1803
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1804
|
-
.filter((t) => t);
|
|
1805
|
-
return texts.join(' ') || null;
|
|
1806
|
-
}
|
|
1807
|
-
// Empty option
|
|
1808
|
-
return null;
|
|
1809
|
-
}
|
|
1810
|
-
return getDefaultSlotPlainText(selectOpt);
|
|
1811
|
-
};
|
|
1812
|
-
/**
|
|
1813
|
-
* Trims whitespace from all text nodes within a DOM tree.
|
|
1814
|
-
* This prevents invisible layout shifts and unwanted gaps between
|
|
1815
|
-
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
1816
|
-
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
1817
|
-
* the original source markup.
|
|
1818
|
-
*
|
|
1819
|
-
* @param node The root node to start trimming text nodes from.
|
|
1820
|
-
*/
|
|
1821
|
-
const trimTextNodes = (node) => {
|
|
1822
|
-
node.childNodes.forEach((child) => {
|
|
1823
|
-
var _a;
|
|
1824
|
-
if (child.nodeType === Node.TEXT_NODE) {
|
|
1825
|
-
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1826
|
-
}
|
|
1827
|
-
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
1828
|
-
trimTextNodes(child);
|
|
1829
|
-
}
|
|
1830
|
-
});
|
|
1831
|
-
};
|
|
1832
|
-
/**
|
|
1833
|
-
* Extracts and clones content from an `ion-select-option` element
|
|
1834
|
-
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
1835
|
-
*
|
|
1836
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1837
|
-
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
1838
|
-
* @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.
|
|
1839
|
-
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
1840
|
-
* div element containing cloned child nodes. Returns `null` if no matching
|
|
1841
|
-
* content is found.
|
|
1842
|
-
*/
|
|
1843
|
-
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
1844
|
-
let nodes;
|
|
1845
|
-
if (slotName) {
|
|
1846
|
-
// Named slot: get elements with matching slot attribute
|
|
1847
|
-
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
1848
|
-
}
|
|
1849
|
-
else {
|
|
1850
|
-
// Default slot: get nodes without a slot attribute
|
|
1851
|
-
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
1852
|
-
nodes = defaultSlot.filter((node) => {
|
|
1853
|
-
var _a;
|
|
1854
|
-
/**
|
|
1855
|
-
* Exclude whitespace-only text nodes (newline noise between
|
|
1856
|
-
* markup elements). Element nodes are always kept, even when
|
|
1857
|
-
* their textContent is empty (e.g. <svg>, <img>).
|
|
1858
|
-
*/
|
|
1859
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
1860
|
-
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
1861
|
-
}
|
|
1862
|
-
return true;
|
|
1863
|
-
});
|
|
1864
|
-
}
|
|
1865
|
-
if (nodes.length === 0) {
|
|
1866
|
-
return null;
|
|
1867
|
-
}
|
|
1868
|
-
// Return plain text if no elements are found
|
|
1869
|
-
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
1870
|
-
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
1871
|
-
}
|
|
1872
|
-
/**
|
|
1873
|
-
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
1874
|
-
* onto attributes before cloning. Frameworks like Vue set these as
|
|
1875
|
-
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
1876
|
-
* step the cloned overlay copy renders without the prop's value.
|
|
1877
|
-
*/
|
|
1878
|
-
nodes.forEach((n) => {
|
|
1879
|
-
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
1880
|
-
reflectPropertiesToAttributes(n);
|
|
1881
|
-
}
|
|
1882
|
-
});
|
|
1883
|
-
// Clone each node into a temporary container
|
|
1884
|
-
const container = document.createElement('div');
|
|
1885
|
-
nodes.forEach((n) => {
|
|
1886
|
-
var _a;
|
|
1887
|
-
const clone = n.cloneNode(true);
|
|
1888
|
-
if (clone.nodeType === Node.TEXT_NODE) {
|
|
1889
|
-
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1890
|
-
}
|
|
1891
|
-
else {
|
|
1892
|
-
trimTextNodes(clone);
|
|
1893
|
-
}
|
|
1894
|
-
container.appendChild(clone);
|
|
1895
|
-
});
|
|
1896
|
-
/**
|
|
1897
|
-
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
1898
|
-
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
1899
|
-
* blocked tags are stripped.
|
|
1900
|
-
*/
|
|
1901
|
-
sanitizeDOMTree(container);
|
|
1902
|
-
if (useHTML) {
|
|
1903
|
-
return container.innerHTML.trim() || null;
|
|
1904
|
-
}
|
|
1905
|
-
return container;
|
|
1906
|
-
};
|
|
1907
|
-
/**
|
|
1908
|
-
* Returns the child nodes that belong to the default slot of an
|
|
1909
|
-
* option element, excluding any nodes that are assigned to named
|
|
1910
|
-
* slots.
|
|
1911
|
-
*
|
|
1912
|
-
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
1913
|
-
* @returns An array of default slot nodes, or `null` if none are found.
|
|
1914
|
-
*/
|
|
1915
|
-
const getOptionDefaultSlot = (option) => {
|
|
1916
|
-
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
1917
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1918
|
-
return !node.hasAttribute('slot');
|
|
1919
|
-
}
|
|
1920
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1921
|
-
});
|
|
1922
|
-
if (defaultSlotNodes.length === 0) {
|
|
1923
|
-
return null;
|
|
1924
|
-
}
|
|
1925
|
-
return defaultSlotNodes;
|
|
1926
|
-
};
|
|
1927
|
-
/**
|
|
1928
|
-
* Extracts plain text from only the default slot of an option,
|
|
1929
|
-
* excluding content assigned to named slots (start/end).
|
|
1930
|
-
*/
|
|
1931
|
-
const getDefaultSlotPlainText = (option) => {
|
|
1932
|
-
const texts = Array.from(option.childNodes)
|
|
1933
|
-
.filter((node) => {
|
|
1934
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1935
|
-
return !node.hasAttribute('slot');
|
|
1936
|
-
}
|
|
1937
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1938
|
-
})
|
|
1939
|
-
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
1940
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1941
|
-
.filter((t) => t);
|
|
1942
|
-
return texts.join(' ');
|
|
1943
|
-
};
|
|
1944
|
-
/**
|
|
1945
|
-
* Extracts the rich content from an `ion-select-option`.
|
|
1946
|
-
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
1947
|
-
* default slot is read and the start and end slots are skipped.
|
|
1948
|
-
*
|
|
1949
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1950
|
-
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
1951
|
-
* via the `innerHTMLTemplatesEnabled` config.
|
|
1952
|
-
*/
|
|
1953
|
-
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
1954
|
-
var _a, _b;
|
|
1955
|
-
if (!customHTMLEnabled) {
|
|
1956
|
-
return {
|
|
1957
|
-
content: getDefaultSlotPlainText(option),
|
|
1958
|
-
startContent: undefined,
|
|
1959
|
-
endContent: undefined,
|
|
1960
|
-
};
|
|
1961
|
-
}
|
|
1962
|
-
return {
|
|
1963
|
-
content: getOptionContent(option),
|
|
1964
|
-
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
1965
|
-
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
1966
|
-
};
|
|
1537
|
+
return selectOpt ? selectOpt.textContent : null;
|
|
1967
1538
|
};
|
|
1968
1539
|
let selectIds = 0;
|
|
1969
1540
|
const OPTION_CLASS = 'select-interface-option';
|