@ionic/core 8.8.4-dev.11775852701.1bbb2b3e → 8.8.4-dev.11776184632.103b8351
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-divider.d.ts +11 -0
- package/components/ion-divider.js +4 -0
- 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-0sa2JgYA.js +4 -0
- package/components/{p-CO7fmmxt.js → p-0tC5Bj8z.js} +1 -1
- package/components/p-3Ni1Z654.js +4 -0
- package/{dist/ionic/p-D13Eaw-8.js → components/p-9gxM3tAr.js} +1 -1
- package/components/p-B0orUoaV.js +4 -0
- package/components/{p-ak_d-z48.js → p-B636tzQ7.js} +1 -1
- package/components/p-B6czg-mf.js +4 -0
- package/components/p-BCDEEm9n.js +4 -0
- package/components/p-BDndEqui.js +4 -0
- package/components/p-BDqjX7Z_.js +4 -0
- package/components/p-BDwab5EM.js +4 -0
- package/components/p-BErKjY03.js +4 -0
- package/components/p-BFCM_1oE.js +4 -0
- package/components/{p-cyNmxje6.js → p-BLysWQA1.js} +1 -1
- package/components/p-BO4aickU.js +4 -0
- package/components/p-BU8N7ZrK.js +4 -0
- package/components/p-BYSs-jZz.js +4 -0
- package/components/p-BcbmT6b3.js +4 -0
- package/components/p-BeVlsaLA.js +4 -0
- package/components/p-BfHB6wX_.js +4 -0
- package/components/p-BhfW3d9j.js +4 -0
- package/components/p-BjV_nNDy.js +4 -0
- package/components/p-BjW8SOqw.js +4 -0
- package/components/p-Bp__mr16.js +4 -0
- package/components/p-BqDiJgC_.js +4 -0
- package/components/p-Br3pqTOz.js +4 -0
- package/components/p-BtAlyZ0b.js +4 -0
- package/components/p-C00Y_WJv.js +4 -0
- package/components/p-C8Dne7pI.js +4 -0
- package/components/p-C9d4LXRu.js +4 -0
- package/components/p-CBH_owa5.js +4 -0
- package/components/{p-BUbsoBOV.js → p-CHgKFg32.js} +1 -1
- package/components/p-CKfNwyAb.js +4 -0
- package/components/p-CVBkx7m1.js +4 -0
- package/components/p-Cb9imMZh.js +4 -0
- package/components/p-CdYTq34D.js +4 -0
- package/components/p-CeYwuysM.js +4 -0
- package/components/p-Cf9-xP7P.js +4 -0
- package/components/{p-Cwv-vmkN.js → p-CjSx8W-k.js} +1 -1
- package/components/p-CvoKp7OI.js +4 -0
- package/components/p-D1t981Ih.js +4 -0
- package/components/p-D5lMX0xt.js +4 -0
- package/components/p-D8NAdIPC.js +4 -0
- package/components/p-DAeMHNER.js +4 -0
- package/components/p-DDw-NYxz.js +4 -0
- package/components/p-DVcs-2q3.js +4 -0
- package/components/p-DaJxRxSQ.js +4 -0
- package/components/p-Dhi5xtNS.js +4 -0
- package/components/p-DrhTPUzN.js +4 -0
- package/components/p-GnGGIfCd.js +4 -0
- package/components/p-GytrfCp8.js +4 -0
- package/components/p-XegQjlzJ.js +4 -0
- package/components/p-ZRp3l6Dk.js +4 -0
- package/components/p-ZeIAjDcZ.js +4 -0
- package/components/p-fIOYmaqA.js +4 -0
- package/components/p-lIOqnNXn.js +4 -0
- package/{dist/ionic/p-BvFYtOdE.js → components/p-oF-CwZ0b.js} +1 -1
- package/components/p-qhBzWoOF.js +4 -0
- package/components/p-sK-FK9CT.js +4 -0
- package/components/p-t98_NeNv.js +4 -0
- package/components/p-vCpF32Z7.js +4 -0
- package/components/p-vXpMhGrs.js +4 -0
- package/components/p-wCDzv5Q8.js +4 -0
- package/components/{p-YLXPWgVj.js → p-zWP0sUV_.js} +1 -1
- 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/bundle.ionic.css +1 -0
- package/css/ionic/bundle.ionic.css.map +1 -0
- package/css/ionic/core.ionic.css +1 -0
- package/css/ionic/core.ionic.css.map +1 -0
- package/css/ionic/global.bundle.ionic.css +1 -0
- package/css/ionic/global.bundle.ionic.css.map +1 -0
- package/css/ionic/ionic-swiper.ionic.css +1 -0
- package/css/ionic/ionic-swiper.ionic.css.map +1 -0
- package/css/ionic/link.ionic.css +1 -0
- package/css/ionic/link.ionic.css.map +1 -0
- package/css/ionic/structure.ionic.css +1 -0
- package/css/ionic/structure.ionic.css.map +1 -0
- package/css/ionic/typography.ionic.css +1 -0
- package/css/ionic/typography.ionic.css.map +1 -0
- package/css/ionic/utils.bundle.ionic.css +1 -0
- package/css/ionic/utils.bundle.ionic.css.map +1 -0
- 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 +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css +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-Dg4yiuR2.js → animation-DknMeJ3x.js} +3 -3
- package/dist/cjs/{app-globals-CLI8xCmk.js → app-globals-DtAeky3x.js} +1 -1
- package/dist/cjs/{button-active-FscMI17-.js → button-active-JoIWyYri.js} +2 -2
- package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-BnRBm_ys.js} +3 -3
- package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
- package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
- package/dist/cjs/caret-right-CRCgv98E.js +8 -0
- package/dist/cjs/{config-BukYi_pW.js → config-B0utyWaD.js} +1 -1
- package/dist/cjs/{data-BYlBjkMU.js → data-DuOuKG7I.js} +6 -6
- package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
- package/dist/cjs/{framework-delegate-CRgp8o_p.js → framework-delegate-Dx9FrqAC.js} +4 -2
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-D3Ay9mmg.js} +1 -1
- package/dist/cjs/{helpers-CxTYJdbT.js → helpers-DJYxKN5U.js} +57 -4
- package/dist/cjs/{index-MbaBbWXk.js → index-BJrpF9T3.js} +2 -2
- package/dist/cjs/{index-CFUwM5x_.js → index-Cer2Qy4I.js} +15 -15
- package/dist/cjs/{index-CqT-2gKy.js → index-CzcLEdQ5.js} +41 -4
- package/dist/cjs/{index-YcSftOMz.js → index-DMJjUhXH.js} +9 -8
- package/dist/cjs/{index-C845Ti6K.js → index-D_mPAIqF.js} +4 -4
- package/dist/cjs/index.cjs.js +13 -14
- package/dist/cjs/{input-shims-Dl5cnc_e.js → input-shims-Dn33gFln.js} +18 -17
- package/dist/cjs/{input.utils-DmeJ8dmo.js → input.utils-DnVnhWEF.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +60 -28
- package/dist/cjs/ion-action-sheet.cjs.entry.js +33 -22
- package/dist/cjs/ion-alert.cjs.entry.js +48 -24
- package/dist/cjs/ion-app_8.cjs.entry.js +292 -157
- package/dist/cjs/ion-avatar_3.cjs.entry.js +125 -13
- package/dist/cjs/ion-back-button.cjs.entry.js +30 -21
- package/dist/cjs/ion-backdrop.cjs.entry.js +10 -7
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +53 -17
- package/dist/cjs/ion-button_2.cjs.entry.js +59 -22
- package/dist/cjs/ion-card_5.cjs.entry.js +55 -33
- package/dist/cjs/ion-checkbox.cjs.entry.js +34 -16
- package/dist/cjs/ion-chip.cjs.entry.js +50 -9
- package/dist/cjs/ion-col_3.cjs.entry.js +54 -57
- package/dist/cjs/ion-datetime-button.cjs.entry.js +13 -9
- package/dist/cjs/ion-datetime_3.cjs.entry.js +128 -43
- package/dist/cjs/ion-divider.cjs.entry.js +51 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +43 -27
- package/dist/cjs/ion-img.cjs.entry.js +8 -4
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +91 -16
- package/dist/cjs/ion-input-otp.cjs.entry.js +74 -9
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +52 -14
- package/dist/cjs/ion-input.cjs.entry.js +123 -33
- package/dist/cjs/ion-item-option_3.cjs.entry.js +186 -21
- package/dist/cjs/ion-item_8.cjs.entry.js +115 -48
- package/dist/cjs/ion-loading.cjs.entry.js +20 -18
- package/dist/cjs/ion-menu_3.cjs.entry.js +46 -28
- package/dist/cjs/ion-modal.cjs.entry.js +105 -78
- package/dist/cjs/ion-nav_2.cjs.entry.js +14 -11
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +12 -8
- package/dist/cjs/ion-picker-column.cjs.entry.js +15 -15
- package/dist/cjs/ion-picker.cjs.entry.js +10 -6
- package/dist/cjs/ion-popover.cjs.entry.js +20 -18
- package/dist/cjs/ion-progress-bar.cjs.entry.js +27 -9
- package/dist/cjs/ion-radio_2.cjs.entry.js +35 -17
- package/dist/cjs/ion-range.cjs.entry.js +16 -12
- package/dist/cjs/ion-refresher_2.cjs.entry.js +38 -20
- package/dist/cjs/ion-reorder_2.cjs.entry.js +37 -13
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +15 -7
- package/dist/cjs/ion-route_4.cjs.entry.js +10 -9
- package/dist/cjs/ion-searchbar.cjs.entry.js +136 -23
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +6 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +23 -16
- package/dist/cjs/ion-select-modal.cjs.entry.js +60 -35
- package/dist/cjs/ion-select_3.cjs.entry.js +296 -76
- package/dist/cjs/ion-spinner.cjs.entry.js +30 -8
- package/dist/cjs/ion-split-pane.cjs.entry.js +12 -9
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +77 -23
- package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
- package/dist/cjs/ion-text.cjs.entry.js +7 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +137 -23
- package/dist/cjs/ion-toast.cjs.entry.js +68 -45
- package/dist/cjs/ion-toggle.cjs.entry.js +81 -24
- package/dist/cjs/ionic-global-CSEbHD_F.js +519 -0
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-trBiC95R.js → ios.transition-UCjoxA3D.js} +7 -5
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Bhav6x-R.js} +4 -3
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-Dsczf-iT.js} +1 -1
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-tqGDP9SU.js} +11 -9
- package/dist/cjs/list-a-7GSA6K.js +8 -0
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CUQECuvD.js → md.transition-CNwlchQn.js} +6 -5
- package/dist/cjs/{notch-controller-sD-lTpdc.js → notch-controller-CgtkBzy0.js} +4 -4
- package/dist/cjs/{overlays-C2jiBSNQ.js → overlays-Dhoy6v_5.js} +102 -12
- package/dist/cjs/select-option-render-qQf4xz8P.js +67 -0
- package/dist/cjs/{status-tap-CCJk5VgT.js → status-tap-CTY2dMsZ.js} +4 -3
- package/dist/cjs/{swipe-back-BGhTQ1CU.js → swipe-back-jJFi5KCB.js} +3 -2
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-IlOsGAz7.js} +25 -1
- package/dist/cjs/validity-QmuwEptc.js +51 -0
- package/dist/cjs/x-BTF99yFH.js +8 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/accordion/accordion.ionic.css +201 -0
- package/dist/collection/components/accordion/accordion.ios.css +73 -58
- package/dist/collection/components/accordion/accordion.js +41 -27
- package/dist/collection/components/accordion/accordion.md.css +67 -59
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
- package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
- package/dist/collection/components/accordion-group/accordion-group.js +44 -8
- package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +834 -0
- package/dist/collection/components/action-sheet/action-sheet.ios.css +102 -6
- package/dist/collection/components/action-sheet/action-sheet.js +25 -13
- package/dist/collection/components/action-sheet/action-sheet.md.css +101 -5
- package/dist/collection/components/alert/alert.ionic.css +1165 -0
- package/dist/collection/components/alert/alert.ios.css +102 -1
- package/dist/collection/components/alert/alert.js +39 -14
- package/dist/collection/components/alert/alert.md.css +102 -1
- package/dist/collection/components/app/app.js +15 -83
- package/dist/collection/components/avatar/avatar.ionic.css +391 -0
- package/dist/collection/components/avatar/avatar.ios.css +7 -33
- package/dist/collection/components/avatar/avatar.js +120 -4
- package/dist/collection/components/avatar/avatar.md.css +51 -0
- package/dist/collection/components/back-button/back-button.ios.css +60 -48
- package/dist/collection/components/back-button/back-button.js +27 -19
- package/dist/collection/components/back-button/back-button.md.css +60 -48
- package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
- package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
- package/dist/collection/components/backdrop/backdrop.js +12 -6
- package/dist/collection/components/backdrop/backdrop.md.css +56 -19
- package/dist/collection/components/badge/badge.ionic.css +275 -0
- package/dist/collection/components/badge/badge.ios.css +139 -12
- package/dist/collection/components/badge/badge.js +145 -9
- package/dist/collection/components/badge/badge.md.css +123 -12
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
- package/dist/collection/components/button/button.ionic.css +646 -0
- package/dist/collection/components/button/button.ios.css +154 -46
- package/dist/collection/components/button/button.js +63 -27
- package/dist/collection/components/button/button.md.css +150 -50
- package/dist/collection/components/buttons/buttons.ionic.css +97 -0
- package/dist/collection/components/buttons/buttons.ios.css +59 -7
- package/dist/collection/components/buttons/buttons.js +15 -9
- package/dist/collection/components/buttons/buttons.md.css +55 -3
- package/dist/collection/components/card/card.ionic.css +144 -0
- package/dist/collection/components/card/card.ios.css +65 -14
- package/dist/collection/components/card/card.js +41 -10
- package/dist/collection/components/card/card.md.css +65 -14
- package/dist/collection/components/card-content/card-content.ionic.css +89 -0
- package/dist/collection/components/card-content/card-content.ios.css +20 -35
- package/dist/collection/components/card-content/card-content.js +12 -10
- package/dist/collection/components/card-content/card-content.md.css +20 -35
- package/dist/collection/components/card-header/card-header.ionic.css +85 -0
- package/dist/collection/components/card-header/card-header.ios.css +27 -15
- package/dist/collection/components/card-header/card-header.js +13 -10
- package/dist/collection/components/card-header/card-header.md.css +27 -15
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
- package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
- package/dist/collection/components/card-title/card-title.ios.css +73 -0
- package/dist/collection/components/card-title/card-title.js +11 -8
- package/dist/collection/components/card-title/card-title.md.css +73 -0
- package/dist/collection/components/checkbox/checkbox.ionic.css +539 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +161 -101
- package/dist/collection/components/checkbox/checkbox.js +70 -14
- package/dist/collection/components/checkbox/checkbox.md.css +162 -102
- package/dist/collection/components/chip/chip.ionic.css +217 -0
- package/dist/collection/components/chip/chip.ios.css +67 -14
- package/dist/collection/components/chip/chip.js +108 -8
- package/dist/collection/components/chip/chip.md.css +67 -14
- package/dist/collection/components/col/col.css +192 -4
- package/dist/collection/components/col/col.js +210 -61
- package/dist/collection/components/content/content.css +8 -2
- package/dist/collection/components/content/content.js +16 -11
- package/dist/collection/components/datetime/datetime.ionic.css +703 -0
- package/dist/collection/components/datetime/datetime.ios.css +302 -106
- package/dist/collection/components/datetime/datetime.js +111 -23
- package/dist/collection/components/datetime/datetime.md.css +293 -96
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
- package/dist/collection/components/datetime-button/datetime-button.js +11 -8
- package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
- package/dist/collection/components/divider/divider.ionic.css +148 -0
- package/dist/collection/components/divider/divider.ios.css +87 -0
- package/dist/collection/components/divider/divider.js +94 -0
- package/dist/collection/components/divider/divider.md.css +87 -0
- package/dist/collection/components/fab/fab.css +25 -1
- package/dist/collection/components/fab/fab.js +9 -5
- package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
- package/dist/collection/components/fab-button/fab-button.js +36 -21
- package/dist/collection/components/fab-button/fab-button.md.css +20 -8
- package/dist/collection/components/fab-list/fab-list.css +12 -0
- package/dist/collection/components/fab-list/fab-list.js +9 -5
- package/dist/collection/components/footer/footer.ios.css +14 -2
- package/dist/collection/components/footer/footer.js +21 -16
- package/dist/collection/components/footer/footer.md.css +12 -0
- package/dist/collection/components/grid/grid.css +12 -0
- package/dist/collection/components/grid/grid.js +9 -5
- package/dist/collection/components/header/header.ionic.css +97 -0
- package/dist/collection/components/header/header.ios.css +25 -10
- package/dist/collection/components/header/header.js +50 -19
- package/dist/collection/components/header/header.md.css +23 -8
- package/dist/collection/components/header/header.utils.js +5 -5
- package/dist/collection/components/img/img.js +8 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +100 -5
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
- package/dist/collection/components/input/input.ionic.css +889 -0
- package/dist/collection/components/input/input.ios.css +223 -135
- package/dist/collection/components/input/input.js +148 -37
- package/dist/collection/components/input/input.md.css +193 -207
- package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
- package/dist/collection/components/input-otp/input-otp.js +73 -6
- package/dist/collection/components/input-otp/input-otp.md.css +105 -60
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -12
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
- package/dist/collection/components/item/item.ionic.css +508 -0
- package/dist/collection/components/item/item.ios.css +109 -69
- package/dist/collection/components/item/item.js +51 -20
- package/dist/collection/components/item/item.md.css +120 -68
- package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
- package/dist/collection/components/item-divider/item-divider.js +11 -8
- package/dist/collection/components/item-divider/item-divider.md.css +18 -0
- package/dist/collection/components/item-group/item-group.ios.css +12 -0
- package/dist/collection/components/item-group/item-group.js +13 -7
- package/dist/collection/components/item-group/item-group.md.css +12 -0
- package/dist/collection/components/item-option/item-option.ionic.css +278 -0
- package/dist/collection/components/item-option/item-option.ios.css +136 -29
- package/dist/collection/components/item-option/item-option.js +73 -9
- package/dist/collection/components/item-option/item-option.md.css +136 -29
- package/dist/collection/components/item-options/item-options.ionic.css +221 -0
- package/dist/collection/components/item-options/item-options.ios.css +77 -34
- package/dist/collection/components/item-options/item-options.js +13 -7
- package/dist/collection/components/item-options/item-options.md.css +77 -34
- package/dist/collection/components/item-sliding/item-sliding.css +6 -0
- package/dist/collection/components/item-sliding/item-sliding.js +144 -4
- package/dist/collection/components/label/label.ios.css +18 -0
- package/dist/collection/components/label/label.js +11 -8
- package/dist/collection/components/label/label.md.css +18 -0
- package/dist/collection/components/list/list.ionic.css +212 -0
- package/dist/collection/components/list/list.ios.css +54 -14
- package/dist/collection/components/list/list.js +48 -9
- package/dist/collection/components/list/list.md.css +56 -16
- package/dist/collection/components/list-header/list-header.ionic.css +190 -0
- package/dist/collection/components/list-header/list-header.ios.css +82 -38
- package/dist/collection/components/list-header/list-header.js +11 -8
- package/dist/collection/components/list-header/list-header.md.css +82 -38
- package/dist/collection/components/loading/loading.ios.css +13 -1
- package/dist/collection/components/loading/loading.js +14 -11
- package/dist/collection/components/loading/loading.md.css +13 -1
- package/dist/collection/components/menu/menu.ios.css +15 -3
- package/dist/collection/components/menu/menu.js +12 -7
- package/dist/collection/components/menu/menu.md.css +15 -3
- package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
- package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
- package/dist/collection/components/menu-button/menu-button.js +26 -10
- package/dist/collection/components/menu-button/menu-button.md.css +49 -15
- package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
- package/dist/collection/components/modal/animations/sheet.js +8 -2
- package/dist/collection/components/modal/gestures/sheet.js +10 -6
- package/dist/collection/components/modal/modal.ionic.css +247 -0
- package/dist/collection/components/modal/modal.ios.css +178 -70
- package/dist/collection/components/modal/modal.js +48 -11
- package/dist/collection/components/modal/modal.md.css +178 -70
- package/dist/collection/components/nav/nav.css +7 -1
- package/dist/collection/components/nav/nav.js +11 -5
- package/dist/collection/components/nav-link/nav-link.js +5 -1
- package/dist/collection/components/note/note.ios.css +12 -0
- package/dist/collection/components/note/note.js +11 -8
- package/dist/collection/components/note/note.md.css +12 -0
- package/dist/collection/components/picker/picker.ios.css +15 -3
- package/dist/collection/components/picker/picker.js +8 -5
- package/dist/collection/components/picker/picker.md.css +15 -3
- package/dist/collection/components/picker-column/picker-column.css +9 -2
- package/dist/collection/components/picker-column/picker-column.js +10 -9
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
- package/dist/collection/components/picker-legacy/picker.js +7 -6
- package/dist/collection/components/picker-legacy/picker.md.css +13 -1
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
- package/dist/collection/components/popover/popover.ionic.css +274 -0
- package/dist/collection/components/popover/popover.ios.css +13 -1
- package/dist/collection/components/popover/popover.js +17 -14
- package/dist/collection/components/popover/popover.md.css +13 -1
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
- package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
- package/dist/collection/components/progress-bar/progress-bar.js +43 -7
- package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
- package/dist/collection/components/radio/radio.ionic.css +422 -0
- package/dist/collection/components/radio/radio.ios.css +134 -91
- package/dist/collection/components/radio/radio.js +15 -10
- package/dist/collection/components/radio/radio.md.css +134 -91
- package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
- package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
- package/dist/collection/components/radio-group/radio-group.js +48 -7
- package/dist/collection/components/radio-group/radio-group.md.css +43 -19
- package/dist/collection/components/range/range.ionic.css +563 -0
- package/dist/collection/components/range/range.ios.css +128 -85
- package/dist/collection/components/range/range.js +12 -9
- package/dist/collection/components/range/range.md.css +128 -85
- package/dist/collection/components/refresher/refresher.ios.css +14 -1
- package/dist/collection/components/refresher/refresher.js +11 -8
- package/dist/collection/components/refresher/refresher.md.css +15 -2
- package/dist/collection/components/refresher-content/refresher-content.js +28 -7
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +33 -6
- package/dist/collection/components/reorder/reorder.md.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.js +8 -4
- package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
- package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
- package/dist/collection/components/route/route.js +4 -0
- package/dist/collection/components/router/router.js +4 -0
- package/dist/collection/components/router-link/router-link.css +8 -2
- package/dist/collection/components/router-link/router-link.js +9 -5
- package/dist/collection/components/router-outlet/router-outlet.css +7 -1
- package/dist/collection/components/router-outlet/router-outlet.js +6 -3
- package/dist/collection/components/row/row.css +16 -0
- package/dist/collection/components/row/row.js +9 -2
- package/dist/collection/components/searchbar/searchbar.ionic.css +626 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
- package/dist/collection/components/searchbar/searchbar.js +180 -33
- package/dist/collection/components/searchbar/searchbar.md.css +56 -18
- package/dist/collection/components/segment/segment.ionic.css +115 -0
- package/dist/collection/components/segment/segment.ios.css +45 -2
- package/dist/collection/components/segment/segment.js +11 -8
- package/dist/collection/components/segment/segment.md.css +45 -2
- package/dist/collection/components/segment-button/segment-button.ionic.css +353 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
- package/dist/collection/components/segment-button/segment-button.js +11 -8
- package/dist/collection/components/segment-button/segment-button.md.css +148 -107
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
- package/dist/collection/components/segment-view/segment-view.js +6 -4
- package/dist/collection/components/segment-view/segment-view.md.css +6 -0
- package/dist/collection/components/select/select.ionic.css +808 -0
- package/dist/collection/components/select/select.ios.css +346 -176
- package/dist/collection/components/select/select.js +278 -64
- package/dist/collection/components/select/select.md.css +362 -178
- package/dist/collection/components/select-modal/select-modal.ionic.css +154 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +95 -0
- package/dist/collection/components/select-modal/select-modal.js +52 -26
- package/dist/collection/components/select-modal/select-modal.md.css +83 -0
- package/dist/collection/components/select-option/select-option.js +28 -2
- package/dist/collection/components/select-popover/select-popover.ionic.css +489 -0
- package/dist/collection/components/select-popover/select-popover.ios.css +95 -0
- package/dist/collection/components/select-popover/select-popover.js +53 -26
- package/dist/collection/components/select-popover/select-popover.md.css +95 -0
- package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
- package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
- package/dist/collection/components/spinner/spinner.js +47 -6
- package/dist/collection/components/spinner/spinner.native.css +199 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
- package/dist/collection/components/split-pane/split-pane.js +14 -8
- package/dist/collection/components/split-pane/split-pane.md.css +20 -2
- package/dist/collection/components/tab/tab.js +6 -2
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +201 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +71 -43
- package/dist/collection/components/tab-bar/tab-bar.js +78 -11
- package/dist/collection/components/tab-bar/tab-bar.md.css +71 -43
- package/dist/collection/components/tab-button/tab-button.ionic.css +348 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
- package/dist/collection/components/tab-button/tab-button.js +54 -9
- package/dist/collection/components/tab-button/tab-button.md.css +137 -93
- package/dist/collection/components/tabs/tabs.css +7 -1
- package/dist/collection/components/tabs/tabs.js +4 -1
- package/dist/collection/components/text/text.css +6 -0
- package/dist/collection/components/text/text.js +7 -6
- package/dist/collection/components/textarea/textarea.ionic.css +898 -0
- package/dist/collection/components/textarea/textarea.ios.css +298 -158
- package/dist/collection/components/textarea/textarea.js +162 -24
- package/dist/collection/components/textarea/textarea.md.css +312 -159
- package/dist/collection/components/thumbnail/thumbnail.css +6 -0
- package/dist/collection/components/thumbnail/thumbnail.js +9 -2
- package/dist/collection/components/title/title.ionic.css +127 -0
- package/dist/collection/components/title/title.ios.css +32 -4
- package/dist/collection/components/title/title.js +13 -7
- package/dist/collection/components/title/title.md.css +32 -4
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ionic.css +394 -0
- package/dist/collection/components/toast/toast.ios.css +84 -45
- package/dist/collection/components/toast/toast.js +75 -12
- package/dist/collection/components/toast/toast.md.css +84 -45
- package/dist/collection/components/toggle/toggle.ionic.css +508 -0
- package/dist/collection/components/toggle/toggle.ios.css +247 -131
- package/dist/collection/components/toggle/toggle.js +73 -18
- package/dist/collection/components/toggle/toggle.md.css +244 -131
- package/dist/collection/components/toolbar/test/image.svg +1 -0
- package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
- package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
- package/dist/collection/components/toolbar/toolbar.js +218 -13
- package/dist/collection/components/toolbar/toolbar.md.css +90 -47
- package/dist/collection/global/ionic-global.js +241 -13
- package/dist/collection/utils/focus-trap.js +13 -2
- package/dist/collection/utils/focus-visible.js +22 -0
- package/dist/collection/utils/forms/validity.js +31 -0
- package/dist/collection/utils/framework-delegate.js +3 -1
- package/dist/collection/utils/hardware-back-button.js +15 -0
- package/dist/collection/utils/helpers.js +57 -3
- package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +2 -1
- package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
- package/dist/collection/utils/overlays.js +82 -1
- package/dist/collection/utils/select-option-render.js +62 -0
- package/dist/collection/utils/test/playwright/drag-element.js +3 -4
- package/dist/collection/utils/test/playwright/generator.js +48 -23
- package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
- package/dist/collection/utils/theme.js +25 -1
- package/dist/collection/utils/transition/ios.transition.js +1 -0
- package/dist/docs.json +8441 -287
- package/dist/esm/{animation-CnGMT4ji.js → animation-Cqe2x-Pt.js} +2 -2
- package/dist/esm/{app-globals-DhZjtldk.js → app-globals-Dk1rB3aE.js} +1 -1
- package/dist/esm/{button-active-BBx21brx.js → button-active-g6ZnZzDZ.js} +2 -2
- package/dist/esm/{capacitor-CFERIeaU.js → capacitor-C4lYa1nV.js} +1 -1
- package/dist/esm/caret-down-D1t981Ih.js +6 -0
- package/dist/esm/caret-left-fIOYmaqA.js +6 -0
- package/dist/esm/caret-right-BYSs-jZz.js +6 -0
- package/dist/esm/{config-TO1rZH52.js → config-BvDxfLa-.js} +1 -1
- package/dist/esm/{data-B9iGR5YO.js → data-BNKYavC3.js} +6 -6
- package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
- package/dist/esm/{framework-delegate-CyxE1S_P.js → framework-delegate-CjVwn_KZ.js} +4 -2
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-_88k1V5U.js} +1 -1
- package/dist/esm/{helpers-Tl8jw6S2.js → helpers-Do7zwvM1.js} +58 -5
- package/dist/esm/{index-hW6eNZ3o.js → index-BmkLokUL.js} +2 -2
- package/dist/esm/{index-BtUdxPjv.js → index-C5t9-ciC.js} +4 -3
- package/dist/esm/{index-B-hkiOUh.js → index-CGthURny.js} +4 -4
- package/dist/esm/{index-DV3sJJW8.js → index-COG0_eom.js} +1 -1
- package/dist/esm/{index-IGIE5vDm.js → index-Omi_TcwW.js} +41 -4
- package/dist/esm/{index-B2KwgBLx.js → index-hpH08p5s.js} +11 -11
- package/dist/esm/index.js +13 -14
- package/dist/esm/{input-shims-AaDhOpKN.js → input-shims-vDjCsx95.js} +7 -6
- package/dist/esm/{input.utils-Bxa_DQ7-.js → input.utils-B9Q5xHp6.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +61 -29
- package/dist/esm/ion-action-sheet.entry.js +33 -22
- package/dist/esm/ion-alert.entry.js +48 -24
- package/dist/esm/ion-app_8.entry.js +292 -157
- package/dist/esm/ion-avatar_3.entry.js +125 -13
- package/dist/esm/ion-back-button.entry.js +31 -22
- package/dist/esm/ion-backdrop.entry.js +10 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +54 -18
- package/dist/esm/ion-button_2.entry.js +59 -22
- package/dist/esm/ion-card_5.entry.js +55 -33
- package/dist/esm/ion-checkbox.entry.js +34 -16
- package/dist/esm/ion-chip.entry.js +50 -9
- package/dist/esm/ion-col_3.entry.js +54 -57
- package/dist/esm/ion-datetime-button.entry.js +13 -9
- package/dist/esm/ion-datetime_3.entry.js +129 -44
- package/dist/esm/ion-divider.entry.js +49 -0
- package/dist/esm/ion-fab_3.entry.js +44 -28
- package/dist/esm/ion-img.entry.js +8 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +91 -16
- package/dist/esm/ion-input-otp.entry.js +74 -9
- package/dist/esm/ion-input-password-toggle.entry.js +53 -15
- package/dist/esm/ion-input.entry.js +124 -34
- package/dist/esm/ion-item-option_3.entry.js +186 -21
- package/dist/esm/ion-item_8.entry.js +116 -49
- package/dist/esm/ion-loading.entry.js +20 -18
- package/dist/esm/ion-menu_3.entry.js +47 -29
- package/dist/esm/ion-modal.entry.js +58 -31
- package/dist/esm/ion-nav_2.entry.js +14 -11
- package/dist/esm/ion-picker-column-option.entry.js +12 -8
- package/dist/esm/ion-picker-column.entry.js +14 -14
- package/dist/esm/ion-picker.entry.js +10 -6
- package/dist/esm/ion-popover.entry.js +20 -18
- package/dist/esm/ion-progress-bar.entry.js +27 -9
- package/dist/esm/ion-radio_2.entry.js +35 -17
- package/dist/esm/ion-range.entry.js +16 -12
- package/dist/esm/ion-refresher_2.entry.js +39 -21
- package/dist/esm/ion-reorder_2.entry.js +38 -14
- package/dist/esm/ion-ripple-effect.entry.js +15 -7
- package/dist/esm/ion-route_4.entry.js +10 -9
- package/dist/esm/ion-searchbar.entry.js +137 -24
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +6 -3
- package/dist/esm/ion-segment_2.entry.js +23 -16
- package/dist/esm/ion-select-modal.entry.js +60 -35
- package/dist/esm/ion-select_3.entry.js +297 -77
- package/dist/esm/ion-spinner.entry.js +30 -8
- package/dist/esm/ion-split-pane.entry.js +12 -9
- package/dist/esm/ion-tab-bar_2.entry.js +77 -23
- package/dist/esm/ion-tab_2.entry.js +8 -7
- package/dist/esm/ion-text.entry.js +7 -7
- package/dist/esm/ion-textarea.entry.js +137 -23
- package/dist/esm/ion-toast.entry.js +43 -20
- package/dist/esm/ion-toggle.entry.js +82 -25
- package/dist/esm/ionic-global-CAZb-5i-.js +508 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition--aMF-pDH.js → ios.transition-CzSncKQg.js} +7 -5
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-Cpw6xVLJ.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-DJpS2IGK.js} +4 -3
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-CAc33ylR.js} +5 -3
- package/dist/esm/list-Dhi5xtNS.js +6 -0
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-BEVbfm8j.js → md.transition-DIsWqYBZ.js} +6 -5
- package/dist/esm/{notch-controller-DAcvKU57.js → notch-controller-DiBq57w8.js} +2 -2
- package/dist/esm/{overlays-F8GHPo-e.js → overlays-CvFHfO3y.js} +99 -9
- package/dist/esm/select-option-render-BQUT9Aqa.js +65 -0
- package/dist/esm/{status-tap-BfJqFSLF.js → status-tap-fYFdZg6z.js} +4 -3
- package/dist/esm/{swipe-back-BZBFwTQV.js → swipe-back-BzGqTrrq.js} +3 -2
- package/dist/esm/{theme-DiVJyqlX.js → theme-DaJxRxSQ.js} +25 -1
- package/dist/esm/validity-BjW8SOqw.js +48 -0
- package/dist/esm/x-BDqjX7Z_.js +6 -0
- package/dist/html.html-data.json +2454 -102
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01bc266f.entry.js +4 -0
- package/dist/ionic/p-01f414fd.entry.js +4 -0
- package/dist/ionic/p-07d3388f.entry.js +4 -0
- package/dist/ionic/p-11nqcMM3.js +4 -0
- package/dist/ionic/p-139d02eb.entry.js +4 -0
- package/dist/ionic/p-1855fcb6.entry.js +4 -0
- package/dist/ionic/p-2095969c.entry.js +4 -0
- package/dist/ionic/p-2311e660.entry.js +4 -0
- package/dist/ionic/p-26595044.entry.js +4 -0
- package/dist/ionic/p-27edb91a.entry.js +4 -0
- package/dist/ionic/p-2aa44c65.entry.js +4 -0
- package/dist/ionic/p-2effd05d.entry.js +4 -0
- package/dist/ionic/p-304f8b0f.entry.js +4 -0
- package/dist/ionic/p-3093958a.entry.js +4 -0
- package/dist/ionic/p-37f895a8.entry.js +4 -0
- package/dist/ionic/p-3884bfa4.entry.js +4 -0
- package/dist/ionic/p-38897781.entry.js +4 -0
- package/dist/ionic/p-4091ad21.entry.js +4 -0
- package/dist/ionic/p-41914dc2.entry.js +4 -0
- package/dist/ionic/p-45825c2c.entry.js +4 -0
- package/dist/ionic/p-4e46439d.entry.js +4 -0
- package/dist/ionic/p-50d90690.entry.js +4 -0
- package/dist/ionic/p-5239fc93.entry.js +4 -0
- package/dist/ionic/p-63e09af5.entry.js +4 -0
- package/dist/ionic/p-68c21b2a.entry.js +4 -0
- package/dist/ionic/p-69033ad6.entry.js +4 -0
- package/dist/ionic/p-6bffc700.entry.js +4 -0
- package/dist/ionic/p-6e0ce081.entry.js +4 -0
- package/dist/ionic/p-6fbead83.entry.js +4 -0
- package/dist/ionic/p-7194f6fa.entry.js +4 -0
- package/dist/ionic/p-71f28573.entry.js +4 -0
- package/dist/ionic/p-76d0e7ef.entry.js +4 -0
- package/dist/ionic/p-7d267dc6.entry.js +4 -0
- package/dist/ionic/p-8e42d109.entry.js +4 -0
- package/dist/ionic/p-8fc3b5de.entry.js +4 -0
- package/dist/ionic/p-8uDL7fql.js +4 -0
- package/dist/ionic/p-96ec9a10.entry.js +4 -0
- package/dist/ionic/p-98c34fd7.entry.js +4 -0
- package/dist/ionic/p-9e71982e.entry.js +4 -0
- package/dist/ionic/p-BDqjX7Z_.js +4 -0
- package/dist/ionic/p-BYSs-jZz.js +4 -0
- package/dist/ionic/p-BYtS2rae.js +4 -0
- package/dist/ionic/p-BjW8SOqw.js +4 -0
- package/{components/p-9VcRUwdB.js → dist/ionic/p-BsfuYVMP.js} +1 -1
- package/dist/ionic/p-Bx0bt2Ar.js +4 -0
- package/dist/ionic/p-C2mpVKI1.js +4 -0
- package/dist/ionic/p-C5zxLmJ_.js +4 -0
- package/{components/p-BS1TtEiJ.js → dist/ionic/p-C8IHbcuP.js} +1 -1
- package/dist/ionic/p-CBV-BGvD.js +4 -0
- package/dist/ionic/p-CDn0uNJA.js +4 -0
- package/dist/ionic/p-CHE1xWbg.js +4 -0
- package/dist/ionic/p-CIk5QtPm.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-COG0_eom.js} +1 -1
- package/dist/ionic/p-CQKe4n56.js +4 -0
- package/dist/ionic/p-CVp2D--1.js +4 -0
- package/dist/ionic/p-CXqdKf1K.js +4 -0
- package/dist/ionic/p-Cb-0O4h8.js +4 -0
- package/dist/ionic/{p-CKvCXMs9.js → p-CbkICFBN.js} +1 -1
- package/dist/ionic/p-D1t981Ih.js +4 -0
- package/dist/ionic/{p-B8xlpH8p.js → p-DKWXAwlR.js} +1 -1
- package/dist/ionic/p-DaJxRxSQ.js +4 -0
- package/dist/ionic/p-Dhi5xtNS.js +4 -0
- package/dist/ionic/p-DoyDJ2X5.js +4 -0
- package/dist/ionic/p-Dr3N4o63.js +4 -0
- package/dist/ionic/p-FvDKM4Ax.js +4 -0
- package/dist/ionic/p-Omi_TcwW.js +5 -0
- package/{components/p-D13Eaw-8.js → dist/ionic/p-SJmaFQ0H.js} +1 -1
- package/dist/ionic/p-SOASChNu.js +4 -0
- package/dist/ionic/{p-DjriolRs.js → p-ZqkJDyhe.js} +1 -1
- package/dist/ionic/p-a1c8ba8c.entry.js +4 -0
- package/dist/ionic/p-a53a3ecc.entry.js +4 -0
- package/dist/ionic/p-a64ae62e.entry.js +4 -0
- package/dist/ionic/p-a94016be.entry.js +4 -0
- package/dist/ionic/p-aa8c1e64.entry.js +4 -0
- package/dist/ionic/p-b00bbeb7.entry.js +4 -0
- package/dist/ionic/p-b049ae0f.entry.js +4 -0
- package/dist/ionic/p-b0c54b4c.entry.js +4 -0
- package/dist/ionic/p-c136fa43.entry.js +4 -0
- package/dist/ionic/p-d2fe6791.entry.js +4 -0
- package/dist/ionic/p-d45b911b.entry.js +4 -0
- package/dist/ionic/p-db4f4eaf.entry.js +4 -0
- package/dist/ionic/p-dbf13f50.entry.js +4 -0
- package/dist/ionic/p-e1d04699.entry.js +4 -0
- package/dist/ionic/p-edb0b0c8.entry.js +4 -0
- package/dist/ionic/p-ef0c281a.entry.js +4 -0
- package/dist/ionic/p-fIOYmaqA.js +4 -0
- package/dist/ionic/p-qETiT38a.js +4 -0
- package/dist/ionic/{p-gbVXD275.js → p-qYp06FUk.js} +1 -1
- package/dist/ionic/p-vXpMhGrs.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +6 -3
- package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -8
- package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
- package/dist/types/components/alert/alert-interface.d.ts +7 -8
- package/dist/types/components/alert/alert.d.ts +3 -2
- package/dist/types/components/app/app.d.ts +4 -5
- package/dist/types/components/avatar/avatar.d.ts +32 -0
- package/dist/types/components/back-button/back-button.d.ts +2 -1
- package/dist/types/components/backdrop/backdrop.d.ts +4 -0
- package/dist/types/components/badge/badge.d.ts +34 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +23 -8
- package/dist/types/components/buttons/buttons.d.ts +5 -1
- package/dist/types/components/card/card.d.ts +8 -1
- package/dist/types/components/card-content/card-content.d.ts +2 -1
- package/dist/types/components/card-header/card-header.d.ts +3 -2
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
- package/dist/types/components/card-title/card-title.d.ts +2 -1
- package/dist/types/components/checkbox/checkbox.d.ts +14 -4
- package/dist/types/components/chip/chip.d.ts +26 -1
- package/dist/types/components/col/col.d.ts +52 -5
- package/dist/types/components/content/content.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +27 -1
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
- package/dist/types/components/divider/divider.d.ts +20 -0
- package/dist/types/components/fab/fab.d.ts +4 -0
- package/dist/types/components/fab-button/fab-button.d.ts +5 -3
- package/dist/types/components/fab-list/fab-list.d.ts +4 -0
- package/dist/types/components/footer/footer.d.ts +4 -3
- package/dist/types/components/grid/grid.d.ts +4 -0
- package/dist/types/components/header/header.d.ts +9 -3
- package/dist/types/components/header/header.utils.d.ts +3 -3
- package/dist/types/components/img/img.d.ts +3 -0
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
- package/dist/types/components/input/input.d.ts +31 -5
- package/dist/types/components/input-otp/input-otp.d.ts +37 -0
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
- package/dist/types/components/item/item.d.ts +11 -4
- package/dist/types/components/item-divider/item-divider.d.ts +2 -1
- package/dist/types/components/item-group/item-group.d.ts +4 -0
- package/dist/types/components/item-option/item-option.d.ts +18 -1
- package/dist/types/components/item-options/item-options.d.ts +4 -0
- package/dist/types/components/item-sliding/item-sliding.d.ts +32 -1
- package/dist/types/components/label/label.d.ts +2 -1
- package/dist/types/components/list/list.d.ts +15 -1
- package/dist/types/components/list-header/list-header.d.ts +2 -1
- package/dist/types/components/loading/loading-interface.d.ts +2 -7
- package/dist/types/components/loading/loading.d.ts +3 -2
- package/dist/types/components/menu/menu.d.ts +3 -0
- package/dist/types/components/menu-button/menu-button.d.ts +3 -1
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +4 -7
- package/dist/types/components/modal/modal.d.ts +11 -1
- package/dist/types/components/nav/nav-interface.d.ts +9 -1
- package/dist/types/components/nav/nav.d.ts +5 -1
- package/dist/types/components/nav-link/nav-link.d.ts +4 -0
- package/dist/types/components/note/note.d.ts +2 -1
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/picker-column/picker-column.d.ts +2 -1
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
- package/dist/types/components/picker-legacy/picker.d.ts +2 -1
- package/dist/types/components/popover/popover-interface.d.ts +3 -6
- package/dist/types/components/popover/popover.d.ts +6 -5
- package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
- package/dist/types/components/radio/radio.d.ts +2 -1
- package/dist/types/components/radio-group/radio-group.d.ts +12 -0
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/refresher/refresher.d.ts +2 -1
- package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
- package/dist/types/components/reorder/reorder.d.ts +9 -0
- package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
- package/dist/types/components/route/route.d.ts +4 -0
- package/dist/types/components/router/router.d.ts +4 -0
- package/dist/types/components/router-link/router-link.d.ts +4 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
- package/dist/types/components/row/row.d.ts +4 -0
- package/dist/types/components/searchbar/searchbar.d.ts +51 -9
- package/dist/types/components/segment/segment.d.ts +2 -1
- package/dist/types/components/segment-button/segment-button.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +48 -13
- package/dist/types/components/select-modal/select-modal-interface.d.ts +4 -1
- package/dist/types/components/select-modal/select-modal.d.ts +1 -0
- package/dist/types/components/select-option/select-option.d.ts +8 -0
- package/dist/types/components/select-popover/select-popover-interface.d.ts +4 -1
- package/dist/types/components/select-popover/select-popover.d.ts +3 -0
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
- package/dist/types/components/spinner/spinner.d.ts +15 -0
- package/dist/types/components/split-pane/split-pane.d.ts +4 -0
- package/dist/types/components/tab/tab.d.ts +4 -0
- package/dist/types/components/tab-bar/tab-bar.d.ts +22 -2
- package/dist/types/components/tab-button/tab-button.d.ts +12 -1
- package/dist/types/components/tabs/tabs.d.ts +3 -0
- package/dist/types/components/text/text.d.ts +2 -1
- package/dist/types/components/textarea/textarea.d.ts +53 -4
- package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
- package/dist/types/components/title/title.d.ts +4 -0
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +3 -7
- package/dist/types/components/toast/toast.d.ts +19 -2
- package/dist/types/components/toggle/toggle.d.ts +15 -1
- package/dist/types/components/toolbar/toolbar.d.ts +43 -3
- package/dist/types/components.d.ts +1694 -206
- package/dist/types/global/ionic-global.d.ts +28 -2
- package/dist/types/interface.d.ts +3 -0
- package/dist/types/utils/config.d.ts +106 -2
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +13 -0
- package/dist/types/utils/forms/validity.d.ts +7 -0
- package/dist/types/utils/helpers.d.ts +11 -0
- package/dist/types/utils/overlays-interface.d.ts +31 -1
- package/dist/types/utils/select-option-render.d.ts +26 -0
- package/dist/types/utils/test/playwright/drag-element.d.ts +1 -1
- package/dist/types/utils/test/playwright/generator.d.ts +31 -2
- package/dist/types/utils/theme.d.ts +9 -0
- package/hydrate/index.js +3725 -1052
- package/hydrate/index.mjs +3725 -1052
- package/package.json +9 -5
- package/components/p-1KVKSLu5.js +0 -4
- package/components/p-ApmKVjaE.js +0 -4
- package/components/p-B6FQ0cKR.js +0 -4
- package/components/p-B6HaBl3o.js +0 -4
- package/components/p-B8b1Ukl9.js +0 -4
- package/components/p-BJoMtgfR.js +0 -4
- package/components/p-BNAG-aVv.js +0 -4
- package/components/p-BR3tZJmu.js +0 -4
- package/components/p-BTeL5HCK.js +0 -4
- package/components/p-BVnB3eEn.js +0 -4
- package/components/p-BYDc3hSE.js +0 -4
- package/components/p-BagjAGC0.js +0 -4
- package/components/p-BegtE7nr.js +0 -4
- package/components/p-BgwEQWW6.js +0 -4
- package/components/p-Bk2zuNWT.js +0 -4
- package/components/p-BmVRXR1y.js +0 -4
- package/components/p-BxwWvu-b.js +0 -4
- package/components/p-C4jPsTQa.js +0 -4
- package/components/p-C59ryAuS.js +0 -4
- package/components/p-C7AoMl7c.js +0 -4
- package/components/p-CBzELu-H.js +0 -4
- package/components/p-CDfQnFrd.js +0 -4
- package/components/p-CH0NYjKq.js +0 -4
- package/components/p-CIGNaXM1.js +0 -4
- package/components/p-CU1SSH8_.js +0 -4
- package/components/p-CgfaEEem.js +0 -4
- package/components/p-CgqKJg96.js +0 -4
- package/components/p-CneGxKsZ.js +0 -4
- package/components/p-CoA-aqGF.js +0 -4
- package/components/p-Cq8cQ0NL.js +0 -4
- package/components/p-Csw8xuz4.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-Cy5XSfIk.js +0 -4
- package/components/p-Cyxa_4PV.js +0 -4
- package/components/p-Cz5nLPGT.js +0 -4
- package/components/p-D6NJwNJN.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-D7GhgBM-.js +0 -4
- package/components/p-DHsZWn1l.js +0 -4
- package/components/p-DJMZehmW.js +0 -4
- package/components/p-DJztqcrH.js +0 -4
- package/components/p-DYdpXONG.js +0 -4
- package/components/p-DbISMmiI.js +0 -4
- package/components/p-DgbT0exM.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DtUKO5i4.js +0 -4
- package/components/p-ZjP4CjeZ.js +0 -4
- package/components/p-cvHphHJA.js +0 -4
- package/components/p-fpbh6w3f.js +0 -4
- package/components/p-kvaDs24J.js +0 -4
- package/components/p-vEbVo2hO.js +0 -4
- package/dist/cjs/hardware-back-button-C4rMJ5uI.js +0 -121
- package/dist/cjs/index-DkNv4J_i.js +0 -10
- package/dist/cjs/ionic-global-Bc3kJi1Z.js +0 -151
- package/dist/cjs/validity-BpS37YFM.js +0 -19
- package/dist/esm/hardware-back-button-CTe4XmL7.js +0 -115
- package/dist/esm/index-ZjP4CjeZ.js +0 -7
- package/dist/esm/ionic-global-DfbeLwcV.js +0 -146
- package/dist/esm/validity-DJztqcrH.js +0 -17
- package/dist/ionic/p-031b76f7.entry.js +0 -4
- package/dist/ionic/p-045a6a42.entry.js +0 -4
- package/dist/ionic/p-07506134.entry.js +0 -4
- package/dist/ionic/p-084c25b2.entry.js +0 -4
- package/dist/ionic/p-0d8b5c38.entry.js +0 -4
- package/dist/ionic/p-16813ce7.entry.js +0 -4
- package/dist/ionic/p-16b65553.entry.js +0 -4
- package/dist/ionic/p-1b02923f.entry.js +0 -4
- package/dist/ionic/p-1b169fb6.entry.js +0 -4
- package/dist/ionic/p-23fac490.entry.js +0 -4
- package/dist/ionic/p-294f4bb5.entry.js +0 -4
- package/dist/ionic/p-2a68388b.entry.js +0 -4
- package/dist/ionic/p-2f5a8140.entry.js +0 -4
- package/dist/ionic/p-2fd110aa.entry.js +0 -4
- package/dist/ionic/p-301c43f8.entry.js +0 -4
- package/dist/ionic/p-370a60ee.entry.js +0 -4
- package/dist/ionic/p-4819b469.entry.js +0 -4
- package/dist/ionic/p-4dd5e8e0.entry.js +0 -4
- package/dist/ionic/p-51c11c47.entry.js +0 -4
- package/dist/ionic/p-53f750a5.entry.js +0 -4
- package/dist/ionic/p-5b52aa7d.entry.js +0 -4
- package/dist/ionic/p-6af16209.entry.js +0 -4
- package/dist/ionic/p-6b701daa.entry.js +0 -4
- package/dist/ionic/p-6b97f2a3.entry.js +0 -4
- package/dist/ionic/p-7620be24.entry.js +0 -4
- package/dist/ionic/p-771b27a5.entry.js +0 -4
- package/dist/ionic/p-7ca71c83.entry.js +0 -4
- package/dist/ionic/p-80cac7a2.entry.js +0 -4
- package/dist/ionic/p-87125490.entry.js +0 -4
- package/dist/ionic/p-9833cf63.entry.js +0 -4
- package/dist/ionic/p-9cbc6f1f.entry.js +0 -4
- package/dist/ionic/p-9cdbabbb.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9fae83d8.entry.js +0 -4
- package/dist/ionic/p-BAt5H1ac.js +0 -4
- package/dist/ionic/p-BW_TRJm8.js +0 -4
- package/dist/ionic/p-BmVRXR1y.js +0 -4
- package/dist/ionic/p-Bum7H1fw.js +0 -4
- package/dist/ionic/p-BxIcPWoV.js +0 -4
- package/dist/ionic/p-C0JvVFMv.js +0 -4
- package/dist/ionic/p-CGmVTdWh.js +0 -4
- package/dist/ionic/p-CIGNaXM1.js +0 -4
- package/dist/ionic/p-CYbRmDdy.js +0 -4
- package/dist/ionic/p-CYvM5g3q.js +0 -4
- package/dist/ionic/p-CmFz1Mjc.js +0 -4
- package/dist/ionic/p-CtA-yJYy.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-D8HJQ1qq.js +0 -4
- package/dist/ionic/p-DB_iPQC-.js +0 -4
- package/dist/ionic/p-DJztqcrH.js +0 -4
- package/dist/ionic/p-DLbbmF9h.js +0 -4
- package/dist/ionic/p-DTPR1Wpn.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DtVZDHlS.js +0 -4
- package/dist/ionic/p-IGIE5vDm.js +0 -5
- package/dist/ionic/p-NFFyoJ4Q.js +0 -4
- package/dist/ionic/p-ZjP4CjeZ.js +0 -4
- package/dist/ionic/p-a805674e.entry.js +0 -4
- package/dist/ionic/p-a84f2d21.entry.js +0 -4
- package/dist/ionic/p-abca709f.entry.js +0 -4
- package/dist/ionic/p-b325a113.entry.js +0 -4
- package/dist/ionic/p-b6e0ff03.entry.js +0 -4
- package/dist/ionic/p-bcaa827e.entry.js +0 -4
- package/dist/ionic/p-c3cce9d8.entry.js +0 -4
- package/dist/ionic/p-c744307d.entry.js +0 -4
- package/dist/ionic/p-ca31010f.entry.js +0 -4
- package/dist/ionic/p-d4e8b473.entry.js +0 -4
- package/dist/ionic/p-e663bc5a.entry.js +0 -4
- package/dist/ionic/p-e6c5f060.entry.js +0 -4
- package/dist/ionic/p-e6cedcd7.entry.js +0 -4
- package/dist/ionic/p-e863ffe8.entry.js +0 -4
- package/dist/ionic/p-f2deaceb.entry.js +0 -4
- package/dist/ionic/p-f5dfb9a3.entry.js +0 -4
- package/dist/ionic/p-f69a5f71.entry.js +0 -4
- package/dist/ionic/p-f8186550.entry.js +0 -4
- package/dist/ionic/p-fdbc90d4.entry.js +0 -4
- package/dist/ionic/p-hNN3VvaC.js +0 -4
- /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
|
@@ -1,19 +1,24 @@
|
|
|
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";
|
|
4
5
|
import { Build, Host, h, forceUpdate } from "@stencil/core";
|
|
6
|
+
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
5
7
|
import { compareOptions, createNotchController, isOptionSelected, checkInvalidState } from "../../utils/forms/index";
|
|
6
8
|
import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
|
|
7
9
|
import { printIonWarning } from "../../utils/logging/index";
|
|
8
10
|
import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
|
|
9
11
|
import { isRTL } from "../../utils/rtl/index";
|
|
12
|
+
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
10
13
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
11
14
|
import { watchForOptions } from "../../utils/watch-options";
|
|
12
15
|
import { caretDownSharp, chevronExpand } from "ionicons/icons";
|
|
13
|
-
import {
|
|
16
|
+
import { config } from "../../global/config";
|
|
17
|
+
import { getIonTheme } from "../../global/ionic-global";
|
|
14
18
|
// TODO(FW-2832): types
|
|
15
19
|
/**
|
|
16
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines
|
|
20
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
21
|
+
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
17
22
|
*
|
|
18
23
|
* @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.
|
|
19
24
|
* @slot start - Content to display at the leading edge of the select.
|
|
@@ -37,6 +42,7 @@ export class Select {
|
|
|
37
42
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
38
43
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
39
44
|
this.inheritedAttributes = {};
|
|
45
|
+
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
40
46
|
this.isExpanded = false;
|
|
41
47
|
/**
|
|
42
48
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -399,9 +405,14 @@ export class Select {
|
|
|
399
405
|
.join(' ');
|
|
400
406
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
401
407
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
408
|
+
const text = this.customHTMLEnabled ? getOptionContent(option) : option.textContent;
|
|
409
|
+
const startContent = this.customHTMLEnabled
|
|
410
|
+
? getOptionContent(option, 'start')
|
|
411
|
+
: undefined;
|
|
412
|
+
const endContent = this.customHTMLEnabled ? getOptionContent(option, 'end') : undefined;
|
|
402
413
|
return {
|
|
403
414
|
role: isSelected ? 'selected' : '',
|
|
404
|
-
text:
|
|
415
|
+
text: text !== null && text !== void 0 ? text : '',
|
|
405
416
|
cssClass: optClass,
|
|
406
417
|
handler: () => {
|
|
407
418
|
this.setValue(value);
|
|
@@ -410,6 +421,9 @@ export class Select {
|
|
|
410
421
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
411
422
|
role: 'radio',
|
|
412
423
|
},
|
|
424
|
+
startContent: startContent !== null && startContent !== void 0 ? startContent : undefined,
|
|
425
|
+
endContent: endContent !== null && endContent !== void 0 ? endContent : undefined,
|
|
426
|
+
description: option.description,
|
|
413
427
|
};
|
|
414
428
|
});
|
|
415
429
|
// Add "cancel" button
|
|
@@ -430,13 +444,21 @@ export class Select {
|
|
|
430
444
|
.filter((cls) => cls !== 'hydrated')
|
|
431
445
|
.join(' ');
|
|
432
446
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
447
|
+
const label = this.customHTMLEnabled ? getOptionContent(option) : option.textContent;
|
|
448
|
+
const startContent = this.customHTMLEnabled
|
|
449
|
+
? getOptionContent(option, 'start')
|
|
450
|
+
: undefined;
|
|
451
|
+
const endContent = this.customHTMLEnabled ? getOptionContent(option, 'end') : undefined;
|
|
433
452
|
return {
|
|
434
453
|
type: inputType,
|
|
435
454
|
cssClass: optClass,
|
|
436
|
-
label:
|
|
455
|
+
label: label !== null && label !== void 0 ? label : '',
|
|
437
456
|
value,
|
|
438
457
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
439
458
|
disabled: option.disabled,
|
|
459
|
+
startContent: startContent !== null && startContent !== void 0 ? startContent : undefined,
|
|
460
|
+
endContent: endContent !== null && endContent !== void 0 ? endContent : undefined,
|
|
461
|
+
description: option.description,
|
|
440
462
|
};
|
|
441
463
|
});
|
|
442
464
|
return alertInputs;
|
|
@@ -449,8 +471,13 @@ export class Select {
|
|
|
449
471
|
.filter((cls) => cls !== 'hydrated')
|
|
450
472
|
.join(' ');
|
|
451
473
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
474
|
+
const text = this.customHTMLEnabled ? getOptionContent(option) : option.textContent;
|
|
475
|
+
const startContent = this.customHTMLEnabled
|
|
476
|
+
? getOptionContent(option, 'start')
|
|
477
|
+
: undefined;
|
|
478
|
+
const endContent = this.customHTMLEnabled ? getOptionContent(option, 'end') : undefined;
|
|
452
479
|
return {
|
|
453
|
-
text:
|
|
480
|
+
text: text !== null && text !== void 0 ? text : '',
|
|
454
481
|
cssClass: optClass,
|
|
455
482
|
value,
|
|
456
483
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -461,6 +488,9 @@ export class Select {
|
|
|
461
488
|
this.close();
|
|
462
489
|
}
|
|
463
490
|
},
|
|
491
|
+
startContent: startContent !== null && startContent !== void 0 ? startContent : undefined,
|
|
492
|
+
endContent: endContent !== null && endContent !== void 0 ? endContent : undefined,
|
|
493
|
+
description: option.description,
|
|
464
494
|
};
|
|
465
495
|
});
|
|
466
496
|
return popoverOptions;
|
|
@@ -468,8 +498,8 @@ export class Select {
|
|
|
468
498
|
async openPopover(ev) {
|
|
469
499
|
const { fill, labelPlacement } = this;
|
|
470
500
|
const interfaceOptions = this.interfaceOptions;
|
|
471
|
-
const
|
|
472
|
-
const showBackdrop =
|
|
501
|
+
const theme = getIonTheme(this);
|
|
502
|
+
const showBackdrop = theme === 'md' ? false : true;
|
|
473
503
|
const multiple = this.multiple;
|
|
474
504
|
const value = this.value;
|
|
475
505
|
let event = ev;
|
|
@@ -480,7 +510,7 @@ export class Select {
|
|
|
480
510
|
* when using a fill in MD mode or if the
|
|
481
511
|
* label is floating/stacked.
|
|
482
512
|
*/
|
|
483
|
-
if (hasFloatingOrStackedLabel || (
|
|
513
|
+
if (hasFloatingOrStackedLabel || (theme === 'md' && fill !== undefined)) {
|
|
484
514
|
size = 'cover';
|
|
485
515
|
/**
|
|
486
516
|
* Otherwise the popover
|
|
@@ -493,7 +523,7 @@ export class Select {
|
|
|
493
523
|
ionShadowTarget: this.nativeWrapperEl,
|
|
494
524
|
} });
|
|
495
525
|
}
|
|
496
|
-
const popoverOpts = Object.assign(Object.assign({
|
|
526
|
+
const popoverOpts = Object.assign(Object.assign({ theme,
|
|
497
527
|
event, alignment: 'center', size,
|
|
498
528
|
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
|
|
499
529
|
header: interfaceOptions.header,
|
|
@@ -518,9 +548,9 @@ export class Select {
|
|
|
518
548
|
return popoverController.create(popoverOpts);
|
|
519
549
|
}
|
|
520
550
|
async openActionSheet() {
|
|
521
|
-
const
|
|
551
|
+
const theme = getIonTheme(this);
|
|
522
552
|
const interfaceOptions = this.interfaceOptions;
|
|
523
|
-
const actionSheetOpts = Object.assign(Object.assign({
|
|
553
|
+
const actionSheetOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
|
|
524
554
|
/**
|
|
525
555
|
* Workaround for Stencil to autodefine
|
|
526
556
|
* ion-action-sheet when
|
|
@@ -537,8 +567,8 @@ export class Select {
|
|
|
537
567
|
async openAlert() {
|
|
538
568
|
const interfaceOptions = this.interfaceOptions;
|
|
539
569
|
const inputType = this.multiple ? 'checkbox' : 'radio';
|
|
540
|
-
const
|
|
541
|
-
const alertOpts = Object.assign(Object.assign({
|
|
570
|
+
const theme = getIonTheme(this);
|
|
571
|
+
const alertOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
|
|
542
572
|
{
|
|
543
573
|
text: this.cancelText,
|
|
544
574
|
role: 'cancel',
|
|
@@ -572,8 +602,8 @@ export class Select {
|
|
|
572
602
|
}
|
|
573
603
|
openModal() {
|
|
574
604
|
const { multiple, value, interfaceOptions } = this;
|
|
575
|
-
const
|
|
576
|
-
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
605
|
+
const theme = getIonTheme(this);
|
|
606
|
+
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode: theme, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
577
607
|
header: interfaceOptions.header,
|
|
578
608
|
cancelText: this.cancelText,
|
|
579
609
|
multiple,
|
|
@@ -628,12 +658,18 @@ export class Select {
|
|
|
628
658
|
}
|
|
629
659
|
return;
|
|
630
660
|
}
|
|
631
|
-
|
|
661
|
+
/**
|
|
662
|
+
* Returns the text to display in the select based on the selected value.
|
|
663
|
+
*
|
|
664
|
+
* @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`.
|
|
665
|
+
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
666
|
+
*/
|
|
667
|
+
getText(useHTML = false) {
|
|
632
668
|
const selectedText = this.selectedText;
|
|
633
669
|
if (selectedText != null && selectedText !== '') {
|
|
634
670
|
return selectedText;
|
|
635
671
|
}
|
|
636
|
-
return generateText(this.childOpts, this.value, this.compareWith);
|
|
672
|
+
return generateText(this.childOpts, this.value, this.compareWith, useHTML);
|
|
637
673
|
}
|
|
638
674
|
setFocus() {
|
|
639
675
|
if (this.focusEl) {
|
|
@@ -647,6 +683,18 @@ export class Select {
|
|
|
647
683
|
};
|
|
648
684
|
this.ionStyle.emit(style);
|
|
649
685
|
}
|
|
686
|
+
getSize() {
|
|
687
|
+
const theme = getIonTheme(this);
|
|
688
|
+
const { size } = this;
|
|
689
|
+
// TODO(ROU-11370): Remove theme check when sizes are defined for all themes.
|
|
690
|
+
if (theme !== 'ionic') {
|
|
691
|
+
return undefined;
|
|
692
|
+
}
|
|
693
|
+
if (size === undefined) {
|
|
694
|
+
return 'medium';
|
|
695
|
+
}
|
|
696
|
+
return size;
|
|
697
|
+
}
|
|
650
698
|
renderLabel() {
|
|
651
699
|
const { label } = this;
|
|
652
700
|
return (h("div", { class: {
|
|
@@ -679,8 +727,8 @@ export class Select {
|
|
|
679
727
|
* when fill="outline".
|
|
680
728
|
*/
|
|
681
729
|
renderLabelContainer() {
|
|
682
|
-
const
|
|
683
|
-
const hasOutlineFill =
|
|
730
|
+
const theme = getIonTheme(this);
|
|
731
|
+
const hasOutlineFill = theme === 'md' && this.fill === 'outline';
|
|
684
732
|
if (hasOutlineFill) {
|
|
685
733
|
/**
|
|
686
734
|
* The outline fill has a special outline
|
|
@@ -710,7 +758,7 @@ export class Select {
|
|
|
710
758
|
*/
|
|
711
759
|
renderSelectText() {
|
|
712
760
|
const { placeholder } = this;
|
|
713
|
-
const displayValue = this.getText();
|
|
761
|
+
const displayValue = this.getText(true);
|
|
714
762
|
let addPlaceholderClass = false;
|
|
715
763
|
let selectText = displayValue;
|
|
716
764
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -722,6 +770,9 @@ export class Select {
|
|
|
722
770
|
'select-placeholder': addPlaceholderClass,
|
|
723
771
|
};
|
|
724
772
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
773
|
+
if (this.customHTMLEnabled) {
|
|
774
|
+
return h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: selectText });
|
|
775
|
+
}
|
|
725
776
|
return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
726
777
|
}
|
|
727
778
|
/**
|
|
@@ -729,21 +780,17 @@ export class Select {
|
|
|
729
780
|
* next to the select text.
|
|
730
781
|
*/
|
|
731
782
|
renderSelectIcon() {
|
|
732
|
-
const
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
icon = expandedIcon;
|
|
737
|
-
}
|
|
738
|
-
else {
|
|
739
|
-
const defaultIcon = mode === 'ios' ? chevronExpand : caretDownSharp;
|
|
740
|
-
icon = toggleIcon !== null && toggleIcon !== void 0 ? toggleIcon : defaultIcon;
|
|
783
|
+
const { isExpanded, selectExpandedIcon, selectCollapsedIcon } = this;
|
|
784
|
+
let icon = selectCollapsedIcon;
|
|
785
|
+
if (isExpanded) {
|
|
786
|
+
icon = selectExpandedIcon;
|
|
741
787
|
}
|
|
742
788
|
return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
|
|
743
789
|
}
|
|
744
790
|
get ariaLabel() {
|
|
745
791
|
var _a;
|
|
746
792
|
const { placeholder, inheritedAttributes } = this;
|
|
793
|
+
// Get the plain text from the selected text
|
|
747
794
|
const displayValue = this.getText();
|
|
748
795
|
// The aria label should be preferred over visible text if both are specified
|
|
749
796
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -772,6 +819,63 @@ export class Select {
|
|
|
772
819
|
const { disabled, inputId, isExpanded, required } = this;
|
|
773
820
|
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) }));
|
|
774
821
|
}
|
|
822
|
+
getShape() {
|
|
823
|
+
const theme = getIonTheme(this);
|
|
824
|
+
const { shape } = this;
|
|
825
|
+
// TODO(ROU-11366): Remove theme check when shapes are defined for all themes.
|
|
826
|
+
if (theme === 'ionic' && shape === undefined) {
|
|
827
|
+
return 'round';
|
|
828
|
+
}
|
|
829
|
+
return shape;
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Get the icon to use for the expand icon.
|
|
833
|
+
* If an icon is set on the component, use that.
|
|
834
|
+
* Otherwise, use the icon set in the config.
|
|
835
|
+
* If no icon is set in the config, use the default icon.
|
|
836
|
+
*/
|
|
837
|
+
get selectExpandedIcon() {
|
|
838
|
+
// Return the expandedIcon or toggleIcon if either is explicitly set
|
|
839
|
+
if (this.expandedIcon != null) {
|
|
840
|
+
return this.expandedIcon;
|
|
841
|
+
}
|
|
842
|
+
else if (this.toggleIcon != null) {
|
|
843
|
+
return this.toggleIcon;
|
|
844
|
+
}
|
|
845
|
+
// Determine the theme and map to default icons
|
|
846
|
+
const theme = getIonTheme(this);
|
|
847
|
+
const defaultIcons = {
|
|
848
|
+
ios: chevronExpand,
|
|
849
|
+
ionic: caretDownRegular,
|
|
850
|
+
md: caretDownSharp,
|
|
851
|
+
};
|
|
852
|
+
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
853
|
+
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
854
|
+
// Return the configured select expanded icon or the default icon
|
|
855
|
+
return config.get('selectExpandedIcon', defaultIcon);
|
|
856
|
+
}
|
|
857
|
+
/**
|
|
858
|
+
* Get the icon to use for the collapsed icon.
|
|
859
|
+
* If an icon is set on the component, use that.
|
|
860
|
+
* Otherwise, use the icon set in the config.
|
|
861
|
+
* If no icon is set in the config, use the default icon.
|
|
862
|
+
*/
|
|
863
|
+
get selectCollapsedIcon() {
|
|
864
|
+
// Return the toggleIcon if it is explicitly set
|
|
865
|
+
if (this.toggleIcon) {
|
|
866
|
+
return this.toggleIcon;
|
|
867
|
+
}
|
|
868
|
+
// Determine the theme and map to default icons
|
|
869
|
+
const theme = getIonTheme(this);
|
|
870
|
+
const defaultIcons = {
|
|
871
|
+
ios: chevronExpand,
|
|
872
|
+
ionic: caretDownRegular,
|
|
873
|
+
md: caretDownSharp,
|
|
874
|
+
};
|
|
875
|
+
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
876
|
+
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
877
|
+
return config.get('selectCollapsedIcon', defaultIcon);
|
|
878
|
+
}
|
|
775
879
|
getHintTextId() {
|
|
776
880
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
777
881
|
if (isInvalid && errorText) {
|
|
@@ -809,13 +913,17 @@ export class Select {
|
|
|
809
913
|
return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
|
|
810
914
|
}
|
|
811
915
|
render() {
|
|
812
|
-
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill,
|
|
813
|
-
const
|
|
916
|
+
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
|
|
917
|
+
const theme = getIonTheme(this);
|
|
918
|
+
const shape = this.getShape();
|
|
814
919
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
920
|
+
const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
|
|
921
|
+
const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
|
|
815
922
|
const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
|
|
816
923
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
817
924
|
const inItem = hostContext('ion-item', this.el);
|
|
818
|
-
const
|
|
925
|
+
const size = this.getSize();
|
|
926
|
+
const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
|
|
819
927
|
const hasValue = this.hasValue();
|
|
820
928
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
821
929
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
@@ -837,8 +945,8 @@ export class Select {
|
|
|
837
945
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
838
946
|
*/
|
|
839
947
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
840
|
-
return (h(Host, { key: '
|
|
841
|
-
[
|
|
948
|
+
return (h(Host, { key: '3b96c1aab2242d6d5c78c264e619b4bd48a5d41c', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
949
|
+
[theme]: true,
|
|
842
950
|
'in-item': inItem,
|
|
843
951
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
844
952
|
'select-disabled': disabled,
|
|
@@ -855,20 +963,33 @@ export class Select {
|
|
|
855
963
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
856
964
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
857
965
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
858
|
-
|
|
966
|
+
[`select-size-${size}`]: size !== undefined,
|
|
967
|
+
}) }, h("label", { key: '5d313940bd87d981d46ff8d463a68ba35ccb3285', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '6ae3e00ce2f93e72bd03cc25988660d2c98b1b22', class: "select-wrapper-inner", part: "inner" },
|
|
968
|
+
/**
|
|
969
|
+
* For the ionic theme, we render the outline container here
|
|
970
|
+
* instead of higher up, so it can be positioned relative to
|
|
971
|
+
* the native wrapper instead of the <label> element or the
|
|
972
|
+
* entire component. This allows the label text to be positioned
|
|
973
|
+
* above the outline, while staying within the bounds of the
|
|
974
|
+
* <label> element, ensuring that clicking the label text
|
|
975
|
+
* focuses the select.
|
|
976
|
+
*/
|
|
977
|
+
theme === 'ionic' && fill === 'outline' && h("div", { key: 'f6ef2571b7512bdbfd9a891bb0c4965165eb8b0e', class: "select-outline" }), h("slot", { key: '6d31e8769453c6a6119c93602cabbc25a45aba03', name: "start" }), h("div", { key: 'c3c88a6e11ec1ea09c77b9a40a1be9335e99637a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '627ca905d4721fa0b12a2e9ca808e323a2b98e69', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '3fc203f66aad27caf9e3cc533c2a81242900bd78', class: "select-highlight" })), this.renderBottomContent()));
|
|
859
978
|
}
|
|
860
979
|
static get is() { return "ion-select"; }
|
|
861
980
|
static get encapsulation() { return "shadow"; }
|
|
862
981
|
static get originalStyleUrls() {
|
|
863
982
|
return {
|
|
864
983
|
"ios": ["select.ios.scss"],
|
|
865
|
-
"md": ["select.md.scss"]
|
|
984
|
+
"md": ["select.md.scss"],
|
|
985
|
+
"ionic": ["select.ionic.scss"]
|
|
866
986
|
};
|
|
867
987
|
}
|
|
868
988
|
static get styleUrls() {
|
|
869
989
|
return {
|
|
870
990
|
"ios": ["select.ios.css"],
|
|
871
|
-
"md": ["select.md.css"]
|
|
991
|
+
"md": ["select.md.css"],
|
|
992
|
+
"ionic": ["select.ionic.css"]
|
|
872
993
|
};
|
|
873
994
|
}
|
|
874
995
|
static get properties() {
|
|
@@ -977,7 +1098,7 @@ export class Select {
|
|
|
977
1098
|
"optional": true,
|
|
978
1099
|
"docs": {
|
|
979
1100
|
"tags": [],
|
|
980
|
-
"text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in
|
|
1101
|
+
"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 the `\"md\"` theme."
|
|
981
1102
|
},
|
|
982
1103
|
"getter": false,
|
|
983
1104
|
"setter": false,
|
|
@@ -1237,7 +1358,7 @@ export class Select {
|
|
|
1237
1358
|
"optional": true,
|
|
1238
1359
|
"docs": {
|
|
1239
1360
|
"tags": [],
|
|
1240
|
-
"text": "The toggle icon to use. Defaults to
|
|
1361
|
+
"text": "The toggle icon to use. Defaults to `\"chevronExpand\"` for the `\"ios\"` theme,\nor `\"caretDownSharp\"` for the `\"md\"` and `\"ionic\"` themes."
|
|
1241
1362
|
},
|
|
1242
1363
|
"getter": false,
|
|
1243
1364
|
"setter": false,
|
|
@@ -1256,70 +1377,89 @@ export class Select {
|
|
|
1256
1377
|
"optional": true,
|
|
1257
1378
|
"docs": {
|
|
1258
1379
|
"tags": [],
|
|
1259
|
-
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in
|
|
1380
|
+
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in `\"md\"` theme will be disabled. If undefined, `toggleIcon`\nwill be used for when the select is both open and closed."
|
|
1260
1381
|
},
|
|
1261
1382
|
"getter": false,
|
|
1262
1383
|
"setter": false,
|
|
1263
1384
|
"reflect": false,
|
|
1264
1385
|
"attribute": "expanded-icon"
|
|
1265
1386
|
},
|
|
1387
|
+
"required": {
|
|
1388
|
+
"type": "boolean",
|
|
1389
|
+
"mutable": false,
|
|
1390
|
+
"complexType": {
|
|
1391
|
+
"original": "boolean",
|
|
1392
|
+
"resolved": "boolean",
|
|
1393
|
+
"references": {}
|
|
1394
|
+
},
|
|
1395
|
+
"required": false,
|
|
1396
|
+
"optional": false,
|
|
1397
|
+
"docs": {
|
|
1398
|
+
"tags": [],
|
|
1399
|
+
"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."
|
|
1400
|
+
},
|
|
1401
|
+
"getter": false,
|
|
1402
|
+
"setter": false,
|
|
1403
|
+
"reflect": false,
|
|
1404
|
+
"attribute": "required",
|
|
1405
|
+
"defaultValue": "false"
|
|
1406
|
+
},
|
|
1266
1407
|
"shape": {
|
|
1267
1408
|
"type": "string",
|
|
1268
1409
|
"mutable": false,
|
|
1269
1410
|
"complexType": {
|
|
1270
|
-
"original": "'round'",
|
|
1271
|
-
"resolved": "\"round\" | undefined",
|
|
1411
|
+
"original": "'soft' | 'round' | 'rectangular'",
|
|
1412
|
+
"resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
|
|
1272
1413
|
"references": {}
|
|
1273
1414
|
},
|
|
1274
1415
|
"required": false,
|
|
1275
1416
|
"optional": true,
|
|
1276
1417
|
"docs": {
|
|
1277
1418
|
"tags": [],
|
|
1278
|
-
"text": "
|
|
1419
|
+
"text": "Set to `\"soft\"` for a select with slightly rounded corners,\n`\"round\"` for a select with fully rounded corners,\nor `\"rectangular\"` for a select without rounded corners.\n\nDefaults to `\"round\"` for the `\"ionic\"` theme, undefined for all other themes."
|
|
1279
1420
|
},
|
|
1280
1421
|
"getter": false,
|
|
1281
1422
|
"setter": false,
|
|
1282
1423
|
"reflect": false,
|
|
1283
1424
|
"attribute": "shape"
|
|
1284
1425
|
},
|
|
1285
|
-
"
|
|
1286
|
-
"type": "
|
|
1287
|
-
"mutable":
|
|
1426
|
+
"size": {
|
|
1427
|
+
"type": "string",
|
|
1428
|
+
"mutable": false,
|
|
1288
1429
|
"complexType": {
|
|
1289
|
-
"original": "
|
|
1290
|
-
"resolved": "
|
|
1430
|
+
"original": "'small' | 'medium' | 'large'",
|
|
1431
|
+
"resolved": "\"large\" | \"medium\" | \"small\" | undefined",
|
|
1291
1432
|
"references": {}
|
|
1292
1433
|
},
|
|
1293
1434
|
"required": false,
|
|
1294
1435
|
"optional": true,
|
|
1295
1436
|
"docs": {
|
|
1296
1437
|
"tags": [],
|
|
1297
|
-
"text": "The
|
|
1438
|
+
"text": "The size of the select. If \"large\" it will increase the height of the select, while\n\"small\" and \"medium\" provide progressively smaller heights.\n\nDefaults to `\"medium\"` for the ionic theme, and undefined for all other themes."
|
|
1298
1439
|
},
|
|
1299
1440
|
"getter": false,
|
|
1300
1441
|
"setter": false,
|
|
1301
1442
|
"reflect": false,
|
|
1302
|
-
"attribute": "
|
|
1443
|
+
"attribute": "size"
|
|
1303
1444
|
},
|
|
1304
|
-
"
|
|
1305
|
-
"type": "
|
|
1306
|
-
"mutable":
|
|
1445
|
+
"value": {
|
|
1446
|
+
"type": "any",
|
|
1447
|
+
"mutable": true,
|
|
1307
1448
|
"complexType": {
|
|
1308
|
-
"original": "
|
|
1309
|
-
"resolved": "
|
|
1449
|
+
"original": "any | null",
|
|
1450
|
+
"resolved": "any",
|
|
1310
1451
|
"references": {}
|
|
1311
1452
|
},
|
|
1312
1453
|
"required": false,
|
|
1313
|
-
"optional":
|
|
1454
|
+
"optional": true,
|
|
1314
1455
|
"docs": {
|
|
1315
1456
|
"tags": [],
|
|
1316
|
-
"text": "
|
|
1457
|
+
"text": "The value of the select."
|
|
1317
1458
|
},
|
|
1318
1459
|
"getter": false,
|
|
1319
1460
|
"setter": false,
|
|
1320
1461
|
"reflect": false,
|
|
1321
|
-
"attribute": "
|
|
1322
|
-
"defaultValue": "false"
|
|
1462
|
+
"attribute": "value"
|
|
1323
1463
|
}
|
|
1324
1464
|
};
|
|
1325
1465
|
}
|
|
@@ -1515,25 +1655,99 @@ const parseValue = (value) => {
|
|
|
1515
1655
|
}
|
|
1516
1656
|
return value.toString();
|
|
1517
1657
|
};
|
|
1518
|
-
const generateText = (opts, value, compareWith) => {
|
|
1658
|
+
const generateText = (opts, value, compareWith, useHTML = false) => {
|
|
1519
1659
|
if (value === undefined) {
|
|
1520
1660
|
return '';
|
|
1521
1661
|
}
|
|
1522
1662
|
if (Array.isArray(value)) {
|
|
1523
1663
|
return value
|
|
1524
|
-
.map((v) => textForValue(opts, v, compareWith))
|
|
1664
|
+
.map((v) => textForValue(opts, v, compareWith, useHTML))
|
|
1525
1665
|
.filter((opt) => opt !== null)
|
|
1526
1666
|
.join(', ');
|
|
1527
1667
|
}
|
|
1528
1668
|
else {
|
|
1529
|
-
return textForValue(opts, value, compareWith) || '';
|
|
1669
|
+
return textForValue(opts, value, compareWith, useHTML) || '';
|
|
1530
1670
|
}
|
|
1531
1671
|
};
|
|
1532
|
-
const textForValue = (opts, value, compareWith) => {
|
|
1672
|
+
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
1533
1673
|
const selectOpt = opts.find((opt) => {
|
|
1534
1674
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
1535
1675
|
});
|
|
1536
|
-
|
|
1676
|
+
const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
1677
|
+
if (!selectOpt)
|
|
1678
|
+
return null;
|
|
1679
|
+
return customHTMLEnabled && useHTML
|
|
1680
|
+
? getOptionContent(selectOpt, undefined, true)
|
|
1681
|
+
: selectOpt.textContent;
|
|
1682
|
+
};
|
|
1683
|
+
/**
|
|
1684
|
+
* Trims whitespace from all text nodes within a DOM tree.
|
|
1685
|
+
* This prevents invisible layout shifts and unwanted gaps between
|
|
1686
|
+
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
1687
|
+
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
1688
|
+
* the original source markup.
|
|
1689
|
+
*
|
|
1690
|
+
* @param node The root node to start trimming text nodes from.
|
|
1691
|
+
*/
|
|
1692
|
+
const trimTextNodes = (node) => {
|
|
1693
|
+
node.childNodes.forEach((child) => {
|
|
1694
|
+
var _a;
|
|
1695
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
1696
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1697
|
+
}
|
|
1698
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
1699
|
+
trimTextNodes(child);
|
|
1700
|
+
}
|
|
1701
|
+
});
|
|
1702
|
+
};
|
|
1703
|
+
/**
|
|
1704
|
+
* Extracts and clones content from an `ion-select-option` element
|
|
1705
|
+
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
1706
|
+
*
|
|
1707
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
1708
|
+
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
1709
|
+
* @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.
|
|
1710
|
+
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
1711
|
+
* div element containing cloned child nodes. Returns `null` if no matching
|
|
1712
|
+
* content is found.
|
|
1713
|
+
*/
|
|
1714
|
+
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
1715
|
+
let nodes;
|
|
1716
|
+
if (slotName) {
|
|
1717
|
+
// Named slot: get elements with matching slot attribute
|
|
1718
|
+
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
1719
|
+
}
|
|
1720
|
+
else {
|
|
1721
|
+
// Default slot: get nodes without a slot attribute
|
|
1722
|
+
nodes = Array.from(option.childNodes).filter((node) => {
|
|
1723
|
+
var _a;
|
|
1724
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1725
|
+
return !node.hasAttribute('slot');
|
|
1726
|
+
}
|
|
1727
|
+
// Exclude whitespace-only text nodes to prevent empty container returns
|
|
1728
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
1729
|
+
});
|
|
1730
|
+
}
|
|
1731
|
+
if (nodes.length === 0) {
|
|
1732
|
+
return null;
|
|
1733
|
+
}
|
|
1734
|
+
// Clone each node into a temporary container
|
|
1735
|
+
const container = document.createElement('div');
|
|
1736
|
+
nodes.forEach((n) => {
|
|
1737
|
+
var _a;
|
|
1738
|
+
const clone = n.cloneNode(true);
|
|
1739
|
+
if (clone.nodeType === Node.TEXT_NODE) {
|
|
1740
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1741
|
+
}
|
|
1742
|
+
else {
|
|
1743
|
+
trimTextNodes(clone);
|
|
1744
|
+
}
|
|
1745
|
+
container.appendChild(clone);
|
|
1746
|
+
});
|
|
1747
|
+
if (useHTML) {
|
|
1748
|
+
return sanitizeDOMString(container.innerHTML.trim()) || null;
|
|
1749
|
+
}
|
|
1750
|
+
return container;
|
|
1537
1751
|
};
|
|
1538
1752
|
let selectIds = 0;
|
|
1539
1753
|
const OPTION_CLASS = 'select-interface-option';
|