@ionic/core 8.8.9-dev.11781024903.1e4268e5 → 8.8.9-dev.11781098612.122c6758
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +1 -1
- package/components/ion-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-route-redirect.js +1 -1
- package/components/ion-route.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/components/p--JUspHvy.js +4 -0
- package/components/p-B8U2xbtx.js +4 -0
- package/components/p-B9jFTlwE.js +4 -0
- package/components/{p-oF-CwZ0b.js → p-BAYYcg3o.js} +1 -1
- package/components/p-BTPfOxsU.js +4 -0
- package/{dist/ionic/p-B2-sg7NJ.js → components/p-BT_5jSqG.js} +1 -1
- package/components/p-Baq1XyAy.js +4 -0
- package/components/p-BhmadOit.js +4 -0
- package/components/p-BirPFsRD.js +4 -0
- package/components/p-BjfgFSSR.js +4 -0
- package/components/p-BmVRXR1y.js +4 -0
- package/components/p-BnqQlm7c.js +4 -0
- package/components/p-BpCi7xHq.js +4 -0
- package/components/p-Bz0dSlXZ.js +4 -0
- package/components/p-C1aScSTo.js +4 -0
- package/components/p-C4t5ymfq.js +4 -0
- package/components/p-CHqRYvYm.js +4 -0
- package/components/p-CHzfYZbv.js +4 -0
- package/components/p-CI3ncNZm.js +4 -0
- package/components/p-CIGNaXM1.js +4 -0
- package/components/p-CO7fmmxt.js +4 -0
- package/components/p-CSZf8_j0.js +4 -0
- package/components/p-C_xFdyXe.js +4 -0
- package/components/p-Ciz1-FuE.js +4 -0
- package/components/p-Ck2wcXbv.js +4 -0
- package/components/p-CmR5uXej.js +4 -0
- package/components/p-CtWGkNnJ.js +4 -0
- package/components/p-CtukzcyX.js +4 -0
- package/{dist/ionic/p-CuGhCBt7.js → components/p-D13Eaw-8.js} +1 -1
- package/components/{p-ByW0kK1F.js → p-D5Ubpm7D.js} +1 -1
- package/components/p-D6Ynv7Xh.js +4 -0
- package/components/p-D7bSXQD3.js +4 -0
- package/components/p-DEBD4LvH.js +4 -0
- package/components/p-DH50pr9O.js +4 -0
- package/components/p-DIE4pXMl.js +4 -0
- package/components/p-DJztqcrH.js +4 -0
- package/components/{p-DXehWlOr.js → p-DNQI6d-L.js} +1 -1
- package/components/p-DOFCbuQR.js +4 -0
- package/components/p-DhkITZ-y.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/p-DmpBvltk.js +4 -0
- package/components/p-DnL1c9_X.js +4 -0
- package/components/p-DpV-p5Xs.js +4 -0
- package/components/{p-zWP0sUV_.js → p-DqLB8yFQ.js} +1 -1
- package/components/p-DqZAXv2t.js +4 -0
- package/components/p-Dz74mwlk.js +4 -0
- package/components/{p-BcbmT6b3.js → p-Sh0ICmPV.js} +1 -1
- package/components/p-W5nO8mX_.js +4 -0
- package/components/p-XJWMAP8m.js +4 -0
- package/components/p-ZjP4CjeZ.js +4 -0
- package/components/{p-re70ahxF.js → p-cyNmxje6.js} +1 -1
- package/components/p-djQLE88P.js +4 -0
- package/components/{p-wCDzv5Q8.js → p-ijF0iCrA.js} +1 -1
- package/components/p-j5IxBIan.js +4 -0
- package/components/p-k_E4tX5Z.js +4 -0
- package/components/p-lE_JGpHD.js +4 -0
- package/components/p-r0aq7dpt.js +4 -0
- package/components/p-ryqmO0B-.js +4 -0
- package/components/p-wk2QqrAo.js +4 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-BZJ2wKuM.js → animation-BJq0kcy2.js} +3 -3
- package/dist/cjs/{app-globals-C-d5fQ35.js → app-globals-BlqrqKTN.js} +1 -1
- package/dist/cjs/{button-active-B_20Nxkv.js → button-active-0mPOKmV2.js} +2 -2
- package/dist/cjs/{capacitor-CXqhdZym.js → capacitor-DmA66EwP.js} +3 -3
- package/dist/cjs/config-xninhj0J.js +201 -0
- package/dist/cjs/{data-DuOuKG7I.js → data-DLTUw-KF.js} +6 -6
- package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
- package/dist/cjs/{framework-delegate-Dx9FrqAC.js → framework-delegate-BtICZDHr.js} +2 -4
- package/dist/cjs/{haptic-CQJGW58i.js → haptic-ClPPQ_PS.js} +1 -1
- package/dist/cjs/hardware-back-button-iUuF_76h.js +121 -0
- package/dist/cjs/{helpers-DJYxKN5U.js → helpers-Cv23MFHM.js} +4 -57
- package/dist/cjs/{index-DSNlrgfO.js → index-BERfRao3.js} +4 -4
- package/dist/cjs/{index-BJrpF9T3.js → index-CIrkNXqJ.js} +2 -2
- package/dist/cjs/{index-CzcLEdQ5.js → index-Ct7gcRif.js} +71 -64
- package/dist/cjs/{index-CwxYd6UD.js → index-D81eLYUM.js} +8 -9
- package/dist/cjs/index-DkNv4J_i.js +10 -0
- package/dist/cjs/{index-CgAbCW6L.js → index-DqmRDbxg.js} +0 -2
- package/dist/cjs/{index-BekUBS8C.js → index-aC4x3Fk3.js} +15 -15
- package/dist/cjs/index.cjs.js +16 -17
- package/dist/cjs/{input-shims-VyZciSxi.js → input-shims-CFLg7uzj.js} +17 -18
- package/dist/cjs/{input.utils-Ct5KzpYv.js → input.utils-DetjmtH2.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
- package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -41
- package/dist/cjs/ion-alert.cjs.entry.js +45 -78
- package/dist/cjs/ion-app_8.cjs.entry.js +175 -296
- package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
- package/dist/cjs/ion-back-button.cjs.entry.js +22 -31
- package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -54
- package/dist/cjs/ion-button_2.cjs.entry.js +22 -59
- package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
- package/dist/cjs/ion-checkbox.cjs.entry.js +16 -34
- package/dist/cjs/ion-chip.cjs.entry.js +9 -50
- package/dist/cjs/ion-col_3.cjs.entry.js +57 -56
- package/dist/cjs/ion-datetime-button.cjs.entry.js +9 -13
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +29 -742
- package/dist/cjs/ion-fab_3.cjs.entry.js +28 -44
- package/dist/cjs/ion-img.cjs.entry.js +4 -8
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -93
- package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +15 -53
- package/dist/cjs/ion-input.cjs.entry.js +35 -125
- package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
- package/dist/cjs/ion-item_8.cjs.entry.js +49 -115
- package/dist/cjs/ion-loading.cjs.entry.js +23 -22
- package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
- package/dist/cjs/ion-modal.cjs.entry.js +145 -262
- package/dist/cjs/ion-nav_2.cjs.entry.js +11 -14
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -12
- package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
- package/dist/cjs/ion-picker.cjs.entry.js +6 -10
- package/dist/cjs/ion-popover.cjs.entry.js +23 -21
- package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
- package/dist/cjs/ion-radio_2.cjs.entry.js +17 -35
- package/dist/cjs/ion-range.cjs.entry.js +13 -20
- package/dist/cjs/ion-refresher_2.cjs.entry.js +23 -42
- package/dist/cjs/ion-reorder_2.cjs.entry.js +15 -39
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
- package/dist/cjs/ion-route_4.cjs.entry.js +9 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +25 -138
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
- package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
- package/dist/cjs/ion-select-modal.cjs.entry.js +38 -115
- package/dist/cjs/ion-select_3.cjs.entry.js +113 -510
- package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
- package/dist/cjs/ion-split-pane.cjs.entry.js +9 -13
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +23 -147
- package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
- package/dist/cjs/ion-text.cjs.entry.js +7 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
- package/dist/cjs/ion-toast.cjs.entry.js +47 -71
- package/dist/cjs/ion-toggle.cjs.entry.js +27 -84
- package/dist/cjs/ionic-global-B-cA6LkY.js +151 -0
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-CyNNpj1i.js → ios.transition-BOSWOaiK.js} +5 -7
- package/dist/cjs/{keyboard-VLGMzWBE.js → keyboard-UuAS4D_9.js} +1 -1
- package/dist/cjs/{keyboard-controller-CCTvHp9l.js → keyboard-controller-GXBiBRKS.js} +9 -11
- package/dist/cjs/{keyboard-CA6RtoWx.js → keyboard-hHzlEQpk.js} +3 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-BEfrfWKW.js → md.transition-B8-wBZqt.js} +5 -6
- package/dist/cjs/{notch-controller-BTZCPOsd.js → notch-controller-18PzRGXd.js} +4 -4
- package/dist/cjs/{overlays-BuMIwR8B.js → overlays-DSmSrd_4.js} +42 -117
- package/dist/cjs/{status-tap-CTY2dMsZ.js → status-tap-BXX8H8_Y.js} +3 -4
- package/dist/cjs/{swipe-back-jJFi5KCB.js → swipe-back-C0GCB18x.js} +2 -3
- package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
- package/dist/cjs/validity-BpS37YFM.js +19 -0
- package/dist/collection/collection-manifest.json +4 -14
- package/dist/collection/components/accordion/accordion.ios.css +58 -73
- package/dist/collection/components/accordion/accordion.js +27 -41
- package/dist/collection/components/accordion/accordion.md.css +59 -67
- package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
- package/dist/collection/components/accordion-group/accordion-group.js +8 -44
- package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
- package/dist/collection/components/action-sheet/action-sheet.ios.css +11 -368
- package/dist/collection/components/action-sheet/action-sheet.js +18 -33
- package/dist/collection/components/action-sheet/action-sheet.md.css +10 -307
- package/dist/collection/components/alert/alert.ios.css +19 -482
- package/dist/collection/components/alert/alert.js +35 -68
- package/dist/collection/components/alert/alert.md.css +29 -465
- package/dist/collection/components/app/app.js +83 -15
- package/dist/collection/components/avatar/avatar.ios.css +33 -7
- package/dist/collection/components/avatar/avatar.js +4 -120
- package/dist/collection/components/avatar/avatar.md.css +0 -51
- package/dist/collection/components/back-button/back-button.ios.css +48 -60
- package/dist/collection/components/back-button/back-button.js +19 -27
- package/dist/collection/components/back-button/back-button.md.css +48 -60
- package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
- package/dist/collection/components/backdrop/backdrop.js +6 -12
- package/dist/collection/components/backdrop/backdrop.md.css +19 -56
- package/dist/collection/components/badge/badge.ios.css +12 -139
- package/dist/collection/components/badge/badge.js +9 -145
- package/dist/collection/components/badge/badge.md.css +12 -123
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
- package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
- package/dist/collection/components/button/button.ios.css +46 -154
- package/dist/collection/components/button/button.js +27 -63
- package/dist/collection/components/button/button.md.css +50 -150
- package/dist/collection/components/buttons/buttons.ios.css +7 -59
- package/dist/collection/components/buttons/buttons.js +9 -15
- package/dist/collection/components/buttons/buttons.md.css +3 -55
- package/dist/collection/components/card/card.ios.css +14 -65
- package/dist/collection/components/card/card.js +10 -41
- package/dist/collection/components/card/card.md.css +14 -65
- package/dist/collection/components/card-content/card-content.ios.css +35 -20
- package/dist/collection/components/card-content/card-content.js +10 -12
- package/dist/collection/components/card-content/card-content.md.css +35 -20
- package/dist/collection/components/card-header/card-header.ios.css +15 -27
- package/dist/collection/components/card-header/card-header.js +10 -13
- package/dist/collection/components/card-header/card-header.md.css +15 -27
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
- package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
- package/dist/collection/components/card-title/card-title.ios.css +0 -73
- package/dist/collection/components/card-title/card-title.js +8 -11
- package/dist/collection/components/card-title/card-title.md.css +0 -73
- package/dist/collection/components/checkbox/checkbox.ios.css +101 -161
- package/dist/collection/components/checkbox/checkbox.js +14 -70
- package/dist/collection/components/checkbox/checkbox.md.css +102 -162
- package/dist/collection/components/chip/chip.ios.css +14 -67
- package/dist/collection/components/chip/chip.js +8 -108
- package/dist/collection/components/chip/chip.md.css +14 -67
- package/dist/collection/components/col/col.css +4 -192
- package/dist/collection/components/col/col.js +61 -211
- package/dist/collection/components/content/content.css +2 -8
- package/dist/collection/components/content/content.js +11 -16
- package/dist/collection/components/datetime/datetime.ios.css +106 -302
- package/dist/collection/components/datetime/datetime.js +20 -98
- package/dist/collection/components/datetime/datetime.md.css +96 -293
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
- package/dist/collection/components/datetime-button/datetime-button.js +8 -11
- package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
- package/dist/collection/components/fab/fab.css +1 -25
- package/dist/collection/components/fab/fab.js +5 -9
- package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
- package/dist/collection/components/fab-button/fab-button.js +21 -36
- package/dist/collection/components/fab-button/fab-button.md.css +8 -20
- package/dist/collection/components/fab-list/fab-list.css +0 -12
- package/dist/collection/components/fab-list/fab-list.js +5 -9
- package/dist/collection/components/footer/footer.ios.css +2 -14
- package/dist/collection/components/footer/footer.js +16 -21
- package/dist/collection/components/footer/footer.md.css +0 -12
- package/dist/collection/components/grid/grid.css +0 -12
- package/dist/collection/components/grid/grid.js +5 -9
- package/dist/collection/components/header/header.ios.css +10 -25
- package/dist/collection/components/header/header.js +19 -50
- package/dist/collection/components/header/header.md.css +8 -23
- package/dist/collection/components/header/header.utils.js +5 -5
- package/dist/collection/components/img/img.js +2 -8
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
- package/dist/collection/components/input/input.ios.css +135 -223
- package/dist/collection/components/input/input.js +42 -153
- package/dist/collection/components/input/input.md.css +207 -193
- package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
- package/dist/collection/components/input-otp/input-otp.js +6 -73
- package/dist/collection/components/input-otp/input-otp.md.css +60 -105
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
- package/dist/collection/components/item/item.ios.css +69 -109
- package/dist/collection/components/item/item.js +20 -50
- package/dist/collection/components/item/item.md.css +68 -120
- package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
- package/dist/collection/components/item-divider/item-divider.js +8 -11
- package/dist/collection/components/item-divider/item-divider.md.css +0 -18
- package/dist/collection/components/item-group/item-group.ios.css +0 -12
- package/dist/collection/components/item-group/item-group.js +7 -13
- package/dist/collection/components/item-group/item-group.md.css +0 -12
- package/dist/collection/components/item-option/item-option.ios.css +29 -136
- package/dist/collection/components/item-option/item-option.js +9 -73
- package/dist/collection/components/item-option/item-option.md.css +29 -136
- package/dist/collection/components/item-options/item-options.ios.css +34 -77
- package/dist/collection/components/item-options/item-options.js +7 -13
- package/dist/collection/components/item-options/item-options.md.css +34 -77
- package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
- package/dist/collection/components/item-sliding/item-sliding.js +35 -421
- package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
- package/dist/collection/components/label/label.ios.css +0 -18
- package/dist/collection/components/label/label.js +8 -11
- package/dist/collection/components/label/label.md.css +0 -18
- package/dist/collection/components/list/list.ios.css +14 -54
- package/dist/collection/components/list/list.js +9 -48
- package/dist/collection/components/list/list.md.css +16 -56
- package/dist/collection/components/list-header/list-header.ios.css +38 -82
- package/dist/collection/components/list-header/list-header.js +8 -11
- package/dist/collection/components/list-header/list-header.md.css +38 -82
- package/dist/collection/components/loading/loading.ios.css +1 -13
- package/dist/collection/components/loading/loading.js +16 -15
- package/dist/collection/components/loading/loading.md.css +1 -13
- package/dist/collection/components/menu/menu.ios.css +3 -15
- package/dist/collection/components/menu/menu.js +7 -12
- package/dist/collection/components/menu/menu.md.css +3 -15
- package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
- package/dist/collection/components/menu-button/menu-button.js +10 -26
- package/dist/collection/components/menu-button/menu-button.md.css +15 -49
- package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
- package/dist/collection/components/modal/animations/sheet.js +2 -8
- package/dist/collection/components/modal/gestures/sheet.js +10 -76
- package/dist/collection/components/modal/modal.ios.css +70 -178
- package/dist/collection/components/modal/modal.js +20 -51
- package/dist/collection/components/modal/modal.md.css +70 -178
- package/dist/collection/components/nav/nav.css +1 -7
- package/dist/collection/components/nav/nav.js +5 -11
- package/dist/collection/components/nav-link/nav-link.js +1 -5
- package/dist/collection/components/note/note.ios.css +0 -12
- package/dist/collection/components/note/note.js +8 -11
- package/dist/collection/components/note/note.md.css +0 -12
- package/dist/collection/components/picker/picker.ios.css +3 -15
- package/dist/collection/components/picker/picker.js +5 -8
- package/dist/collection/components/picker/picker.md.css +3 -15
- package/dist/collection/components/picker-column/picker-column.css +2 -9
- package/dist/collection/components/picker-column/picker-column.js +7 -8
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
- package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
- package/dist/collection/components/popover/popover.ios.css +1 -29
- package/dist/collection/components/popover/popover.js +20 -19
- package/dist/collection/components/popover/popover.md.css +1 -29
- package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
- package/dist/collection/components/progress-bar/progress-bar.js +7 -43
- package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
- package/dist/collection/components/radio/radio.ios.css +91 -134
- package/dist/collection/components/radio/radio.js +10 -15
- package/dist/collection/components/radio/radio.md.css +91 -134
- package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
- package/dist/collection/components/radio-group/radio-group.js +7 -48
- package/dist/collection/components/radio-group/radio-group.md.css +19 -43
- package/dist/collection/components/range/range.ios.css +85 -128
- package/dist/collection/components/range/range.js +10 -16
- package/dist/collection/components/range/range.md.css +85 -128
- package/dist/collection/components/refresher/refresher.ios.css +1 -14
- package/dist/collection/components/refresher/refresher.js +8 -11
- package/dist/collection/components/refresher/refresher.md.css +2 -15
- package/dist/collection/components/refresher-content/refresher-content.js +7 -28
- package/dist/collection/components/reorder/reorder.ios.css +0 -6
- package/dist/collection/components/reorder/reorder.js +6 -33
- package/dist/collection/components/reorder/reorder.md.css +0 -6
- package/dist/collection/components/reorder-group/reorder-group.css +0 -6
- package/dist/collection/components/reorder-group/reorder-group.js +4 -8
- package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
- package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
- package/dist/collection/components/route/route.js +0 -4
- package/dist/collection/components/router/router.js +0 -4
- package/dist/collection/components/router-link/router-link.css +2 -8
- package/dist/collection/components/router-link/router-link.js +5 -9
- package/dist/collection/components/router-outlet/router-outlet.css +1 -7
- package/dist/collection/components/router-outlet/router-outlet.js +40 -10
- package/dist/collection/components/row/row.css +0 -16
- package/dist/collection/components/row/row.js +2 -9
- package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
- package/dist/collection/components/searchbar/searchbar.js +38 -185
- package/dist/collection/components/searchbar/searchbar.md.css +18 -56
- package/dist/collection/components/segment/segment.ios.css +2 -45
- package/dist/collection/components/segment/segment.js +8 -11
- package/dist/collection/components/segment/segment.md.css +2 -45
- package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
- package/dist/collection/components/segment-button/segment-button.js +8 -11
- package/dist/collection/components/segment-button/segment-button.md.css +107 -148
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
- package/dist/collection/components/segment-view/segment-view.js +4 -13
- package/dist/collection/components/segment-view/segment-view.md.css +0 -6
- package/dist/collection/components/select/select.ios.css +176 -348
- package/dist/collection/components/select/select.js +97 -474
- package/dist/collection/components/select/select.md.css +178 -364
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -467
- package/dist/collection/components/select-modal/select-modal.js +30 -127
- package/dist/collection/components/select-modal/select-modal.md.css +0 -395
- package/dist/collection/components/select-option/select-option.js +2 -70
- package/dist/collection/components/select-popover/select-popover.ios.css +20 -303
- package/dist/collection/components/select-popover/select-popover.js +29 -89
- package/dist/collection/components/select-popover/select-popover.md.css +0 -346
- package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
- package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
- package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
- package/dist/collection/components/spinner/spinner.js +6 -47
- package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
- package/dist/collection/components/split-pane/split-pane.js +9 -16
- package/dist/collection/components/split-pane/split-pane.md.css +2 -20
- package/dist/collection/components/tab/tab.js +2 -6
- package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -71
- package/dist/collection/components/tab-bar/tab-bar.js +13 -171
- package/dist/collection/components/tab-bar/tab-bar.md.css +43 -71
- package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
- package/dist/collection/components/tab-button/tab-button.js +9 -54
- package/dist/collection/components/tab-button/tab-button.md.css +93 -137
- package/dist/collection/components/tabs/tabs.css +1 -7
- package/dist/collection/components/tabs/tabs.js +1 -4
- package/dist/collection/components/text/text.css +0 -6
- package/dist/collection/components/text/text.js +6 -7
- package/dist/collection/components/textarea/textarea.ios.css +158 -298
- package/dist/collection/components/textarea/textarea.js +24 -162
- package/dist/collection/components/textarea/textarea.md.css +159 -312
- package/dist/collection/components/thumbnail/thumbnail.css +0 -6
- package/dist/collection/components/thumbnail/thumbnail.js +2 -9
- package/dist/collection/components/title/title.ios.css +4 -32
- package/dist/collection/components/title/title.js +7 -13
- package/dist/collection/components/title/title.md.css +4 -32
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ios.css +45 -84
- package/dist/collection/components/toast/toast.js +13 -76
- package/dist/collection/components/toast/toast.md.css +45 -84
- package/dist/collection/components/toggle/toggle.ios.css +131 -247
- package/dist/collection/components/toggle/toggle.js +18 -73
- package/dist/collection/components/toggle/toggle.md.css +131 -244
- package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
- package/dist/collection/components/toolbar/toolbar.js +13 -218
- package/dist/collection/components/toolbar/toolbar.md.css +47 -90
- package/dist/collection/global/ionic-global.js +13 -241
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +2 -13
- package/dist/collection/utils/focus-visible.js +0 -22
- package/dist/collection/utils/forms/validity.js +0 -31
- package/dist/collection/utils/framework-delegate.js +1 -3
- package/dist/collection/utils/hardware-back-button.js +0 -15
- package/dist/collection/utils/helpers.js +3 -57
- package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
- package/dist/collection/utils/media.js +0 -1
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +1 -2
- package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
- package/dist/collection/utils/overlays.js +31 -97
- package/dist/collection/utils/sanitization/index.js +14 -255
- package/dist/collection/utils/test/playwright/drag-element.js +9 -32
- package/dist/collection/utils/test/playwright/generator.js +23 -48
- package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
- package/dist/collection/utils/theme.js +1 -25
- package/dist/collection/utils/transition/ios.transition.js +0 -1
- package/dist/docs.json +589 -10120
- package/dist/esm/{animation-Cd1EA2ar.js → animation-DLJpuoEz.js} +2 -2
- package/dist/esm/{app-globals-9x_U7ofY.js → app-globals-D0C5S4hU.js} +1 -1
- package/dist/esm/{button-active-B016u5N-.js → button-active-BSpTQmS9.js} +2 -2
- package/dist/esm/{capacitor-13SFuT1K.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/config-DQCONYYp.js +195 -0
- package/dist/esm/{data-BNKYavC3.js → data-DZI70dKr.js} +6 -6
- package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
- package/dist/esm/{framework-delegate-CjVwn_KZ.js → framework-delegate-FnPGymXL.js} +2 -4
- package/dist/esm/{haptic-CbnKC3go.js → haptic-DzAMWJuk.js} +1 -1
- package/dist/esm/hardware-back-button-B93Gru0Y.js +115 -0
- package/dist/esm/{helpers-Do7zwvM1.js → helpers-HEqiOzXb.js} +5 -58
- package/dist/esm/{index-D2tu5BUg.js → index-AlrZKoWR.js} +1 -2
- package/dist/esm/{index-D3WueHpT.js → index-BRHzoo00.js} +3 -4
- package/dist/esm/{index-B2VWavcK.js → index-B_dQk_WE.js} +4 -4
- package/dist/esm/{index-BmkLokUL.js → index-MEDq2S8l.js} +2 -2
- package/dist/esm/{index-BWMvrRiE.js → index-Q6UPU0Ay.js} +11 -11
- package/dist/esm/index-ZjP4CjeZ.js +7 -0
- package/dist/esm/{index-Omi_TcwW.js → index-tcQvqkiX.js} +71 -64
- package/dist/esm/index.js +14 -14
- package/dist/esm/{input-shims-DU23z7Hg.js → input-shims-D10mwcw1.js} +6 -7
- package/dist/esm/{input.utils-C64RbLd_.js → input.utils-Y6NgW8bw.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +29 -61
- package/dist/esm/ion-action-sheet.entry.js +26 -41
- package/dist/esm/ion-alert.entry.js +44 -77
- package/dist/esm/ion-app_8.entry.js +175 -296
- package/dist/esm/ion-avatar_3.entry.js +13 -125
- package/dist/esm/ion-back-button.entry.js +22 -31
- package/dist/esm/ion-backdrop.entry.js +7 -10
- package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
- package/dist/esm/ion-button_2.entry.js +22 -59
- package/dist/esm/ion-card_5.entry.js +33 -55
- package/dist/esm/ion-checkbox.entry.js +16 -34
- package/dist/esm/ion-chip.entry.js +9 -50
- package/dist/esm/ion-col_3.entry.js +57 -56
- package/dist/esm/ion-datetime-button.entry.js +9 -13
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +30 -741
- package/dist/esm/ion-fab_3.entry.js +28 -44
- package/dist/esm/ion-img.entry.js +4 -8
- package/dist/esm/ion-infinite-scroll_2.entry.js +16 -92
- package/dist/esm/ion-input-otp.entry.js +9 -74
- package/dist/esm/ion-input-password-toggle.entry.js +15 -53
- package/dist/esm/ion-input.entry.js +35 -125
- package/dist/esm/ion-item-option_3.entry.js +52 -467
- package/dist/esm/ion-item_8.entry.js +49 -115
- package/dist/esm/ion-loading.entry.js +22 -21
- package/dist/esm/ion-menu_3.entry.js +29 -47
- package/dist/esm/ion-modal.entry.js +98 -215
- package/dist/esm/ion-nav_2.entry.js +11 -14
- package/dist/esm/ion-picker-column-option.entry.js +8 -12
- package/dist/esm/ion-picker-column.entry.js +13 -13
- package/dist/esm/ion-picker.entry.js +6 -10
- package/dist/esm/ion-popover.entry.js +23 -21
- package/dist/esm/ion-progress-bar.entry.js +9 -27
- package/dist/esm/ion-radio_2.entry.js +17 -35
- package/dist/esm/ion-range.entry.js +13 -20
- package/dist/esm/ion-refresher_2.entry.js +21 -40
- package/dist/esm/ion-reorder_2.entry.js +15 -39
- package/dist/esm/ion-ripple-effect.entry.js +7 -15
- package/dist/esm/ion-route_4.entry.js +9 -10
- package/dist/esm/ion-searchbar.entry.js +25 -138
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +3 -13
- package/dist/esm/ion-segment_2.entry.js +16 -23
- package/dist/esm/ion-select-modal.entry.js +38 -115
- package/dist/esm/ion-select_3.entry.js +114 -511
- package/dist/esm/ion-spinner.entry.js +8 -30
- package/dist/esm/ion-split-pane.entry.js +9 -13
- package/dist/esm/ion-tab-bar_2.entry.js +23 -147
- package/dist/esm/ion-tab_2.entry.js +7 -8
- package/dist/esm/ion-text.entry.js +7 -7
- package/dist/esm/ion-textarea.entry.js +23 -137
- package/dist/esm/ion-toast.entry.js +22 -46
- package/dist/esm/ion-toggle.entry.js +27 -84
- package/dist/esm/ionic-global-Cp_eT4sZ.js +146 -0
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-DoQTN5Jk.js → ios.transition-ClFrsIrS.js} +5 -7
- package/dist/esm/{keyboard-Dnno7-Ci.js → keyboard-CUw4ekVy.js} +1 -1
- package/dist/esm/{keyboard-controller-BpOdk6xN.js → keyboard-controller-BaaVITYt.js} +3 -5
- package/dist/esm/{keyboard-Ca1zVCcH.js → keyboard-ywgs5efA.js} +3 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-DZydrWwq.js → md.transition-D0msQmzI.js} +5 -6
- package/dist/esm/{notch-controller-klgNWpjJ.js → notch-controller-DKDjU_O7.js} +2 -2
- package/dist/esm/{overlays-CpQ6Df2g.js → overlays-DLNOHWNc.js} +39 -114
- package/dist/esm/{status-tap-fYFdZg6z.js → status-tap-Kan2W7sh.js} +3 -4
- package/dist/esm/{swipe-back-BzGqTrrq.js → swipe-back-DQ1q5MgD.js} +2 -3
- package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
- package/dist/esm/validity-DJztqcrH.js +17 -0
- package/dist/html.html-data.json +151 -2687
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-03aa786d.entry.js +4 -0
- package/dist/ionic/p-06c232a4.entry.js +4 -0
- package/dist/ionic/p-11684553.entry.js +4 -0
- package/dist/ionic/p-1ae21e4c.entry.js +4 -0
- package/dist/ionic/p-20b1a044.entry.js +4 -0
- package/dist/ionic/p-259d0d98.entry.js +4 -0
- package/dist/ionic/p-2a6d6565.entry.js +4 -0
- package/dist/ionic/p-341032b3.entry.js +4 -0
- package/dist/ionic/p-441fbb13.entry.js +4 -0
- package/dist/ionic/p-4502a274.entry.js +4 -0
- package/dist/ionic/p-4621c387.entry.js +4 -0
- package/dist/ionic/p-4bb3eb60.entry.js +4 -0
- package/dist/ionic/p-4e92a11f.entry.js +4 -0
- package/dist/ionic/p-50e1194a.entry.js +4 -0
- package/dist/ionic/p-51cd1643.entry.js +4 -0
- package/dist/ionic/p-5c3ec490.entry.js +4 -0
- package/dist/ionic/p-627fabd9.entry.js +4 -0
- package/dist/ionic/p-629e4703.entry.js +4 -0
- package/dist/ionic/p-76e92a84.entry.js +4 -0
- package/dist/ionic/p-7a37b3ce.entry.js +4 -0
- package/dist/ionic/p-7aed7726.entry.js +4 -0
- package/dist/ionic/p-7ebd980c.entry.js +4 -0
- package/dist/ionic/p-80b44b3c.entry.js +4 -0
- package/dist/ionic/p-81ea5652.entry.js +4 -0
- package/dist/ionic/p-8c8eee7d.entry.js +4 -0
- package/dist/ionic/p-8d624ee5.entry.js +4 -0
- package/dist/ionic/p-8d6fd502.entry.js +4 -0
- package/dist/ionic/p-9177f4ac.entry.js +4 -0
- package/dist/ionic/p-944c8939.entry.js +4 -0
- package/dist/ionic/p-9c6a5a8d.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-AlrZKoWR.js +4 -0
- package/dist/ionic/p-BGqMS-oh.js +4 -0
- package/dist/ionic/p-BUFIpxKM.js +4 -0
- package/dist/ionic/p-BmVRXR1y.js +4 -0
- package/dist/ionic/p-CFlfIb2g.js +4 -0
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/dist/ionic/{p-BmEwy3tY.js → p-CKvCXMs9.js} +1 -1
- package/dist/ionic/p-Cg5-OQYy.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/dist/ionic/p-Cx3IXROA.js +4 -0
- package/{components/p-Cllkut-B.js → dist/ionic/p-D13Eaw-8.js} +1 -1
- package/dist/ionic/p-D4uTWt4-.js +4 -0
- package/dist/ionic/{p-C8IHbcuP.js → p-DAAFkPFT.js} +1 -1
- package/dist/ionic/p-DC3RagnA.js +4 -0
- package/dist/ionic/p-DIuEbVLu.js +4 -0
- package/dist/ionic/p-DJztqcrH.js +4 -0
- package/dist/ionic/p-DSG2s2Eb.js +4 -0
- package/dist/ionic/p-Dfbt-q2k.js +4 -0
- package/dist/ionic/p-DiVJyqlX.js +4 -0
- package/dist/ionic/p-DoJvtrbw.js +4 -0
- package/dist/ionic/p-DzWaWHGc.js +4 -0
- package/dist/ionic/p-KjNvRoEp.js +4 -0
- package/dist/ionic/p-Nqf6uvGh.js +4 -0
- package/dist/ionic/p-SNAkTDfm.js +4 -0
- package/{components/p-CDgDBcU9.js → dist/ionic/p-VAemlbDS.js} +1 -1
- package/dist/ionic/{p-DKWXAwlR.js → p-Wk5HzclC.js} +1 -1
- package/dist/ionic/p-ZjP4CjeZ.js +4 -0
- package/dist/ionic/p-a2e51c5d.entry.js +4 -0
- package/dist/ionic/p-a3bdcae6.entry.js +4 -0
- package/dist/ionic/p-a44b7536.entry.js +4 -0
- package/dist/ionic/p-a5213260.entry.js +4 -0
- package/dist/ionic/p-a7628bc7.entry.js +4 -0
- package/dist/ionic/p-b1599fca.entry.js +4 -0
- package/dist/ionic/p-b16be471.entry.js +4 -0
- package/dist/ionic/p-b6a7397c.entry.js +4 -0
- package/dist/ionic/p-b9ac1fe0.entry.js +4 -0
- package/dist/ionic/p-c6e49f3f.entry.js +4 -0
- package/dist/ionic/p-c93553d2.entry.js +4 -0
- package/dist/ionic/p-d2c7f046.entry.js +4 -0
- package/dist/ionic/p-d8387b99.entry.js +4 -0
- package/dist/ionic/p-d8ac9eea.entry.js +4 -0
- package/dist/ionic/p-db1b6738.entry.js +4 -0
- package/dist/ionic/p-dfa8d673.entry.js +4 -0
- package/dist/ionic/p-ed797c72.entry.js +4 -0
- package/dist/ionic/p-ef93ca92.entry.js +4 -0
- package/dist/ionic/p-f09f9642.entry.js +4 -0
- package/dist/ionic/p-f1c06f82.entry.js +4 -0
- package/dist/ionic/p-f386f6ae.entry.js +4 -0
- package/dist/ionic/p-fe4aa1db.entry.js +4 -0
- package/dist/ionic/p-mjKAFv89.js +4 -0
- package/dist/ionic/p-tcQvqkiX.js +5 -0
- package/dist/ionic/p-viFHDgRs.js +4 -0
- package/dist/ionic/p-xWb6fgfq.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +3 -6
- package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
- package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
- package/dist/types/components/alert/alert-interface.d.ts +7 -3
- package/dist/types/components/alert/alert.d.ts +2 -3
- package/dist/types/components/app/app.d.ts +5 -4
- package/dist/types/components/avatar/avatar.d.ts +0 -32
- package/dist/types/components/back-button/back-button.d.ts +1 -2
- package/dist/types/components/backdrop/backdrop.d.ts +0 -4
- package/dist/types/components/badge/badge.d.ts +1 -34
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +8 -23
- package/dist/types/components/buttons/buttons.d.ts +1 -5
- package/dist/types/components/card/card.d.ts +1 -8
- package/dist/types/components/card-content/card-content.d.ts +1 -2
- package/dist/types/components/card-header/card-header.d.ts +2 -3
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
- package/dist/types/components/card-title/card-title.d.ts +1 -2
- package/dist/types/components/checkbox/checkbox.d.ts +4 -14
- package/dist/types/components/chip/chip.d.ts +1 -26
- package/dist/types/components/col/col.d.ts +5 -52
- package/dist/types/components/content/content.d.ts +0 -3
- package/dist/types/components/datetime/datetime.d.ts +1 -26
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
- package/dist/types/components/fab/fab.d.ts +0 -4
- package/dist/types/components/fab-button/fab-button.d.ts +3 -5
- package/dist/types/components/fab-list/fab-list.d.ts +0 -4
- package/dist/types/components/footer/footer.d.ts +3 -4
- package/dist/types/components/grid/grid.d.ts +0 -4
- package/dist/types/components/header/header.d.ts +3 -9
- package/dist/types/components/header/header.utils.d.ts +3 -3
- package/dist/types/components/img/img.d.ts +0 -3
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
- package/dist/types/components/input/input.d.ts +6 -32
- package/dist/types/components/input-otp/input-otp.d.ts +0 -37
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
- package/dist/types/components/item/item.d.ts +4 -11
- package/dist/types/components/item-divider/item-divider.d.ts +1 -2
- package/dist/types/components/item-group/item-group.d.ts +0 -4
- package/dist/types/components/item-option/item-option.d.ts +1 -18
- package/dist/types/components/item-options/item-options.d.ts +0 -4
- package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
- package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
- package/dist/types/components/label/label.d.ts +1 -2
- package/dist/types/components/list/list.d.ts +1 -15
- package/dist/types/components/list-header/list-header.d.ts +1 -2
- package/dist/types/components/loading/loading-interface.d.ts +7 -2
- package/dist/types/components/loading/loading.d.ts +2 -3
- package/dist/types/components/menu/menu.d.ts +0 -3
- package/dist/types/components/menu-button/menu-button.d.ts +1 -3
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +7 -4
- package/dist/types/components/modal/modal.d.ts +1 -11
- package/dist/types/components/nav/nav-interface.d.ts +1 -9
- package/dist/types/components/nav/nav.d.ts +1 -5
- package/dist/types/components/nav-link/nav-link.d.ts +0 -4
- package/dist/types/components/note/note.d.ts +1 -2
- package/dist/types/components/picker/picker.d.ts +1 -2
- package/dist/types/components/picker-column/picker-column.d.ts +1 -2
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
- package/dist/types/components/popover/popover-interface.d.ts +6 -3
- package/dist/types/components/popover/popover.d.ts +5 -6
- package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
- package/dist/types/components/radio/radio.d.ts +1 -2
- package/dist/types/components/radio-group/radio-group.d.ts +0 -12
- package/dist/types/components/range/range.d.ts +1 -2
- package/dist/types/components/refresher/refresher.d.ts +1 -2
- package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
- package/dist/types/components/reorder/reorder.d.ts +0 -9
- package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
- package/dist/types/components/route/route.d.ts +0 -4
- package/dist/types/components/router/router.d.ts +0 -4
- package/dist/types/components/router-link/router-link.d.ts +0 -4
- package/dist/types/components/router-outlet/router-outlet.d.ts +8 -4
- package/dist/types/components/row/row.d.ts +0 -4
- package/dist/types/components/searchbar/searchbar.d.ts +10 -52
- package/dist/types/components/segment/segment.d.ts +1 -2
- package/dist/types/components/segment-button/segment-button.d.ts +1 -2
- package/dist/types/components/select/select-interface.d.ts +0 -31
- package/dist/types/components/select/select.d.ts +14 -66
- package/dist/types/components/select-modal/select-modal.d.ts +0 -8
- package/dist/types/components/select-option/select-option.d.ts +0 -44
- package/dist/types/components/select-popover/select-popover.d.ts +0 -3
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
- package/dist/types/components/spinner/spinner.d.ts +0 -15
- package/dist/types/components/split-pane/split-pane.d.ts +0 -4
- package/dist/types/components/tab/tab.d.ts +0 -4
- package/dist/types/components/tab-bar/tab-bar.d.ts +2 -37
- package/dist/types/components/tab-button/tab-button.d.ts +1 -12
- package/dist/types/components/tabs/tabs.d.ts +0 -3
- package/dist/types/components/text/text.d.ts +1 -2
- package/dist/types/components/textarea/textarea.d.ts +4 -53
- package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
- package/dist/types/components/title/title.d.ts +0 -4
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +7 -3
- package/dist/types/components/toast/toast.d.ts +2 -19
- package/dist/types/components/toggle/toggle.d.ts +1 -15
- package/dist/types/components/toolbar/toolbar.d.ts +3 -43
- package/dist/types/components.d.ts +258 -2135
- package/dist/types/global/ionic-global.d.ts +2 -28
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -4
- package/dist/types/stencil-public-runtime.d.ts +4 -1
- package/dist/types/utils/config.d.ts +2 -114
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +0 -13
- package/dist/types/utils/forms/validity.d.ts +0 -7
- package/dist/types/utils/helpers.d.ts +0 -11
- package/dist/types/utils/overlays-interface.d.ts +1 -31
- package/dist/types/utils/overlays.d.ts +12 -10
- package/dist/types/utils/sanitization/index.d.ts +2 -54
- package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
- package/dist/types/utils/test/playwright/generator.d.ts +2 -31
- package/dist/types/utils/theme.d.ts +0 -9
- package/hydrate/index.js +2303 -6668
- package/hydrate/index.mjs +2303 -6668
- package/package.json +40 -12
- package/components/ion-divider.d.ts +0 -11
- package/components/ion-divider.js +0 -4
- package/components/ion-gallery.d.ts +0 -11
- package/components/ion-gallery.js +0 -4
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-3Ni1Z654.js +0 -4
- package/components/p-7kL3tltU.js +0 -4
- package/components/p-B9MABkWm.js +0 -4
- package/components/p-BBu2n-9C.js +0 -4
- package/components/p-BDcohALy.js +0 -4
- package/components/p-BDqjX7Z_.js +0 -4
- package/components/p-BJzJdLry.js +0 -4
- package/components/p-BP_TU_4l.js +0 -4
- package/components/p-BYSs-jZz.js +0 -4
- package/components/p-BZCB7f49.js +0 -4
- package/components/p-BaPtaYEC.js +0 -4
- package/components/p-Bg30AtDZ.js +0 -4
- package/components/p-BhkGOA7t.js +0 -4
- package/components/p-BjW8SOqw.js +0 -4
- package/components/p-Bk9hTY4h.js +0 -4
- package/components/p-BqDiJgC_.js +0 -4
- package/components/p-BqTwa6uT.js +0 -4
- package/components/p-BsNpz2u3.js +0 -4
- package/components/p-Bt0d89x3.js +0 -4
- package/components/p-BwKpO3Is.js +0 -4
- package/components/p-BwQOIWD7.js +0 -4
- package/components/p-Bxiu1dAN.js +0 -4
- package/components/p-C75FIZBC.js +0 -4
- package/components/p-C8kBejTT.js +0 -4
- package/components/p-C91NnY87.js +0 -4
- package/components/p-CBS0sBAa.js +0 -4
- package/components/p-CODBQrPj.js +0 -4
- package/components/p-Cg-xpJhD.js +0 -4
- package/components/p-CgSn4J7d.js +0 -4
- package/components/p-CgZLVOCc.js +0 -4
- package/components/p-Cz4uz3Dy.js +0 -4
- package/components/p-CzC_ZSgb.js +0 -4
- package/components/p-D1t981Ih.js +0 -4
- package/components/p-D2mReIu8.js +0 -4
- package/components/p-D6g8ud1e.js +0 -4
- package/components/p-DDw-NYxz.js +0 -4
- package/components/p-DN_scBC7.js +0 -4
- package/components/p-DVcs-2q3.js +0 -4
- package/components/p-DaJxRxSQ.js +0 -4
- package/components/p-Dhi5xtNS.js +0 -4
- package/components/p-Do7NMUwR.js +0 -4
- package/components/p-Dp2x0MpA.js +0 -4
- package/components/p-GElQZ38c.js +0 -4
- package/components/p-GtzfsjJP.js +0 -4
- package/components/p-LB-QPk3e.js +0 -4
- package/components/p-Skz67GXZ.js +0 -4
- package/components/p-WdrzoonY.js +0 -4
- package/components/p-XegQjlzJ.js +0 -4
- package/components/p-fIOYmaqA.js +0 -4
- package/components/p-h64_gZrH.js +0 -4
- package/components/p-hpwmNJ2Q.js +0 -4
- package/components/p-kKYBfhbe.js +0 -4
- package/components/p-lGSe6-vg.js +0 -4
- package/components/p-pvh0bjpw.js +0 -4
- package/components/p-sToA4Co7.js +0 -4
- package/components/p-sehKq5RI.js +0 -4
- package/components/p-vXpMhGrs.js +0 -4
- package/css/ionic/bundle.ionic.css +0 -1
- package/css/ionic/bundle.ionic.css.map +0 -1
- package/css/ionic/core.ionic.css +0 -1
- package/css/ionic/core.ionic.css.map +0 -1
- package/css/ionic/global.bundle.ionic.css +0 -1
- package/css/ionic/global.bundle.ionic.css.map +0 -1
- package/css/ionic/ionic-swiper.ionic.css +0 -1
- package/css/ionic/ionic-swiper.ionic.css.map +0 -1
- package/css/ionic/link.ionic.css +0 -1
- package/css/ionic/link.ionic.css.map +0 -1
- package/css/ionic/structure.ionic.css +0 -1
- package/css/ionic/structure.ionic.css.map +0 -1
- package/css/ionic/typography.ionic.css +0 -1
- package/css/ionic/typography.ionic.css.map +0 -1
- package/css/ionic/utils.bundle.ionic.css +0 -1
- package/css/ionic/utils.bundle.ionic.css.map +0 -1
- package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
- package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
- package/dist/cjs/caret-right-CRCgv98E.js +0 -8
- package/dist/cjs/config-DWdFbSNK.js +0 -35
- package/dist/cjs/index-Dm4Dm7Vg.js +0 -414
- package/dist/cjs/ion-divider.cjs.entry.js +0 -51
- package/dist/cjs/ion-gallery.cjs.entry.js +0 -529
- package/dist/cjs/ionic-global-BW5tRzrz.js +0 -519
- package/dist/cjs/list-a-7GSA6K.js +0 -8
- package/dist/cjs/overlay-control-label-DnRLQR1t.js +0 -52
- package/dist/cjs/select-option-render-DQyZnlF5.js +0 -116
- package/dist/cjs/validity-QmuwEptc.js +0 -51
- package/dist/cjs/x-BTF99yFH.js +0 -8
- package/dist/collection/components/accordion/accordion.ionic.css +0 -201
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -491
- package/dist/collection/components/alert/alert.ionic.css +0 -784
- package/dist/collection/components/avatar/avatar.ionic.css +0 -391
- package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
- package/dist/collection/components/badge/badge.ionic.css +0 -275
- package/dist/collection/components/button/button.ionic.css +0 -646
- package/dist/collection/components/buttons/buttons.ionic.css +0 -97
- package/dist/collection/components/card/card.ionic.css +0 -144
- package/dist/collection/components/card-content/card-content.ionic.css +0 -89
- package/dist/collection/components/card-header/card-header.ionic.css +0 -85
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
- package/dist/collection/components/checkbox/checkbox.ionic.css +0 -539
- package/dist/collection/components/chip/chip.ionic.css +0 -217
- package/dist/collection/components/datetime/datetime.ionic.css +0 -703
- package/dist/collection/components/divider/divider.ionic.css +0 -148
- package/dist/collection/components/divider/divider.ios.css +0 -87
- package/dist/collection/components/divider/divider.js +0 -94
- package/dist/collection/components/divider/divider.md.css +0 -87
- package/dist/collection/components/gallery/gallery-constants.js +0 -12
- package/dist/collection/components/gallery/gallery-interface.js +0 -1
- package/dist/collection/components/gallery/gallery.css +0 -100
- package/dist/collection/components/gallery/gallery.js +0 -600
- package/dist/collection/components/gallery/test/utils.js +0 -100
- package/dist/collection/components/header/header.ionic.css +0 -97
- package/dist/collection/components/input/input.ionic.css +0 -889
- package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
- package/dist/collection/components/item/item.ionic.css +0 -496
- package/dist/collection/components/item-option/item-option.ionic.css +0 -278
- package/dist/collection/components/item-options/item-options.ionic.css +0 -221
- package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
- package/dist/collection/components/list/list.ionic.css +0 -212
- package/dist/collection/components/list-header/list-header.ionic.css +0 -190
- package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
- package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
- package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
- package/dist/collection/components/modal/modal.ionic.css +0 -247
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -312
- package/dist/collection/components/picker-legacy/picker.js +0 -891
- package/dist/collection/components/picker-legacy/picker.md.css +0 -299
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -243
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -234
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/collection/components/popover/popover.ionic.css +0 -290
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
- package/dist/collection/components/radio/radio.ionic.css +0 -422
- package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
- package/dist/collection/components/range/range.ionic.css +0 -567
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
- package/dist/collection/components/searchbar/searchbar.ionic.css +0 -626
- package/dist/collection/components/segment/segment.ionic.css +0 -115
- package/dist/collection/components/segment-button/segment-button.ionic.css +0 -353
- package/dist/collection/components/select/select.ionic.css +0 -810
- package/dist/collection/components/select-modal/select-modal.ionic.css +0 -264
- package/dist/collection/components/select-popover/select-popover.ionic.css +0 -252
- package/dist/collection/components/spinner/spinner.native.css +0 -199
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -227
- package/dist/collection/components/tab-button/tab-button.ionic.css +0 -348
- package/dist/collection/components/textarea/textarea.ionic.css +0 -898
- package/dist/collection/components/title/title.ionic.css +0 -127
- package/dist/collection/components/toast/toast.ionic.css +0 -394
- package/dist/collection/components/toggle/toggle.ionic.css +0 -508
- package/dist/collection/components/toolbar/test/image.svg +0 -1
- package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
- package/dist/collection/utils/css-value-validation.js +0 -39
- package/dist/collection/utils/overlay-control-label.js +0 -47
- package/dist/collection/utils/select-option-render.js +0 -111
- package/dist/esm/caret-down-D1t981Ih.js +0 -6
- package/dist/esm/caret-left-fIOYmaqA.js +0 -6
- package/dist/esm/caret-right-BYSs-jZz.js +0 -6
- package/dist/esm/config-BwKpO3Is.js +0 -31
- package/dist/esm/index-Bmyj8b0z.js +0 -409
- package/dist/esm/ion-divider.entry.js +0 -49
- package/dist/esm/ion-gallery.entry.js +0 -527
- package/dist/esm/ionic-global--9mOmThr.js +0 -508
- package/dist/esm/list-Dhi5xtNS.js +0 -6
- package/dist/esm/overlay-control-label-CODBQrPj.js +0 -49
- package/dist/esm/select-option-render-QGJ9tZHa.js +0 -114
- package/dist/esm/validity-BjW8SOqw.js +0 -48
- package/dist/esm/x-BDqjX7Z_.js +0 -6
- package/dist/ionic/p-0030507d.entry.js +0 -4
- package/dist/ionic/p-084c2623.entry.js +0 -4
- package/dist/ionic/p-09f8a57f.entry.js +0 -4
- package/dist/ionic/p-108c0f30.entry.js +0 -4
- package/dist/ionic/p-1439fecb.entry.js +0 -4
- package/dist/ionic/p-18ed37e3.entry.js +0 -4
- package/dist/ionic/p-199bffb3.entry.js +0 -4
- package/dist/ionic/p-19a1ff9a.entry.js +0 -4
- package/dist/ionic/p-1a026890.entry.js +0 -4
- package/dist/ionic/p-1ad16c09.entry.js +0 -4
- package/dist/ionic/p-2049aa81.entry.js +0 -4
- package/dist/ionic/p-290778c1.entry.js +0 -4
- package/dist/ionic/p-2aa7567e.entry.js +0 -4
- package/dist/ionic/p-2e7e3da1.entry.js +0 -4
- package/dist/ionic/p-3656314c.entry.js +0 -4
- package/dist/ionic/p-379cc989.entry.js +0 -4
- package/dist/ionic/p-3f18dfe9.entry.js +0 -4
- package/dist/ionic/p-40d9e029.entry.js +0 -4
- package/dist/ionic/p-456736d1.entry.js +0 -4
- package/dist/ionic/p-48e3cb9e.entry.js +0 -4
- package/dist/ionic/p-497f6391.entry.js +0 -4
- package/dist/ionic/p-64b4e6eb.entry.js +0 -4
- package/dist/ionic/p-66eb0193.entry.js +0 -4
- package/dist/ionic/p-67c2d349.entry.js +0 -4
- package/dist/ionic/p-7054a1b9.entry.js +0 -4
- package/dist/ionic/p-70ee89c9.entry.js +0 -4
- package/dist/ionic/p-7186786e.entry.js +0 -4
- package/dist/ionic/p-7194f6fa.entry.js +0 -4
- package/dist/ionic/p-76c70824.entry.js +0 -4
- package/dist/ionic/p-7f294078.entry.js +0 -4
- package/dist/ionic/p-8458f1b6.entry.js +0 -4
- package/dist/ionic/p-88e7f52a.entry.js +0 -4
- package/dist/ionic/p-89eab395.entry.js +0 -4
- package/dist/ionic/p-93315d96.entry.js +0 -4
- package/dist/ionic/p-9ccfb733.entry.js +0 -4
- package/dist/ionic/p-9dfbe98d.entry.js +0 -4
- package/dist/ionic/p-B4ikoeaj.js +0 -4
- package/dist/ionic/p-BDqjX7Z_.js +0 -4
- package/dist/ionic/p-BFBCtvFI.js +0 -4
- package/dist/ionic/p-BQgCYKKG.js +0 -4
- package/dist/ionic/p-BYAxJDlE.js +0 -4
- package/dist/ionic/p-BYSs-jZz.js +0 -4
- package/dist/ionic/p-BjW8SOqw.js +0 -4
- package/dist/ionic/p-BwKpO3Is.js +0 -4
- package/dist/ionic/p-CDn0uNJA.js +0 -4
- package/dist/ionic/p-CHE1xWbg.js +0 -4
- package/dist/ionic/p-CK179dBb.js +0 -4
- package/dist/ionic/p-CODBQrPj.js +0 -4
- package/dist/ionic/p-CYhXBSjd.js +0 -4
- package/dist/ionic/p-CxRK9GyE.js +0 -4
- package/dist/ionic/p-D1t981Ih.js +0 -4
- package/dist/ionic/p-D2tu5BUg.js +0 -4
- package/dist/ionic/p-DDFhx1YX.js +0 -4
- package/dist/ionic/p-DNGqaUsl.js +0 -4
- package/dist/ionic/p-DaJxRxSQ.js +0 -4
- package/dist/ionic/p-DaknVxZR.js +0 -4
- package/dist/ionic/p-Dhi5xtNS.js +0 -4
- package/dist/ionic/p-DoyDJ2X5.js +0 -4
- package/dist/ionic/p-E1wtzfO0.js +0 -4
- package/dist/ionic/p-FvDKM4Ax.js +0 -4
- package/dist/ionic/p-IXZW3FBt.js +0 -4
- package/dist/ionic/p-NqPMS7BP.js +0 -4
- package/dist/ionic/p-Omi_TcwW.js +0 -5
- package/dist/ionic/p-PoSbs6oh.js +0 -4
- package/dist/ionic/p-VAJ_3beW.js +0 -4
- package/dist/ionic/p-a3f9be52.entry.js +0 -4
- package/dist/ionic/p-b4fd91b8.entry.js +0 -4
- package/dist/ionic/p-b653f4c2.entry.js +0 -4
- package/dist/ionic/p-b69add0e.entry.js +0 -4
- package/dist/ionic/p-b7235e85.entry.js +0 -4
- package/dist/ionic/p-b847907d.entry.js +0 -4
- package/dist/ionic/p-bc317965.entry.js +0 -4
- package/dist/ionic/p-bc3d68ff.entry.js +0 -4
- package/dist/ionic/p-bsfLvRbd.js +0 -4
- package/dist/ionic/p-c684a3b6.entry.js +0 -4
- package/dist/ionic/p-c7139c41.entry.js +0 -4
- package/dist/ionic/p-c94fbdab.entry.js +0 -4
- package/dist/ionic/p-dac1d4de.entry.js +0 -4
- package/dist/ionic/p-dd2981d0.entry.js +0 -4
- package/dist/ionic/p-e89848b2.entry.js +0 -4
- package/dist/ionic/p-eTI_FbQJ.js +0 -4
- package/dist/ionic/p-f2f740aa.entry.js +0 -4
- package/dist/ionic/p-f52856cb.entry.js +0 -4
- package/dist/ionic/p-fIOYmaqA.js +0 -4
- package/dist/ionic/p-fbdbdb3e.entry.js +0 -4
- package/dist/ionic/p-ff09d2a5.entry.js +0 -4
- package/dist/ionic/p-vXpMhGrs.js +0 -4
- package/dist/types/components/divider/divider.d.ts +0 -20
- package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
- package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
- package/dist/types/components/gallery/gallery.d.ts +0 -185
- package/dist/types/components/gallery/test/utils.d.ts +0 -2
- package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
- package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -159
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
- package/dist/types/utils/css-value-validation.d.ts +0 -21
- package/dist/types/utils/overlay-control-label.d.ts +0 -34
- package/dist/types/utils/select-option-render.d.ts +0 -53
- /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import caretDownRegular from "@phosphor-icons/core/assets/regular/caret-down.svg";
|
|
5
4
|
import { Build, Host, h, forceUpdate } from "@stencil/core";
|
|
6
|
-
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
7
5
|
import { compareOptions, createNotchController, isOptionSelected, checkInvalidState } from "../../utils/forms/index";
|
|
8
6
|
import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
|
|
9
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
10
8
|
import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
|
|
11
9
|
import { isRTL } from "../../utils/rtl/index";
|
|
12
|
-
import { reflectPropertiesToAttributes, sanitizeDOMTree } from "../../utils/sanitization/index";
|
|
13
10
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
14
11
|
import { watchForOptions } from "../../utils/watch-options";
|
|
15
12
|
import { caretDownSharp, chevronExpand } from "ionicons/icons";
|
|
16
|
-
import {
|
|
17
|
-
import { getIonTheme } from "../../global/ionic-global";
|
|
13
|
+
import { getIonMode } from "../../global/ionic-global";
|
|
18
14
|
// TODO(FW-2832): types
|
|
19
15
|
/**
|
|
20
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines
|
|
21
|
-
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
16
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
22
17
|
*
|
|
23
18
|
* @slot label - The label text to associate with the select. Use the `labelPlacement` property to control where the label is placed relative to the select. Use this if you need to render a label with custom HTML.
|
|
24
19
|
* @slot start - Content to display at the leading edge of the select.
|
|
@@ -42,7 +37,6 @@ export class Select {
|
|
|
42
37
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
43
38
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
44
39
|
this.inheritedAttributes = {};
|
|
45
|
-
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
46
40
|
this.isExpanded = false;
|
|
47
41
|
/**
|
|
48
42
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -61,14 +55,6 @@ export class Select {
|
|
|
61
55
|
* The text to display on the cancel button.
|
|
62
56
|
*/
|
|
63
57
|
this.cancelText = 'Cancel';
|
|
64
|
-
/**
|
|
65
|
-
* If `true`, the cancel button will display an icon instead of the `cancelText`.
|
|
66
|
-
* Only applies when `interface` is set to `"modal"`. Has no effect on `"action-sheet"`,
|
|
67
|
-
* `"alert"`, or `"popover"` interfaces.
|
|
68
|
-
* When `cancelIcon` is `true`, the `cancelText` property is ignored for display
|
|
69
|
-
* but is used as the accessible label for the icon button.
|
|
70
|
-
*/
|
|
71
|
-
this.cancelIcon = false;
|
|
72
58
|
/**
|
|
73
59
|
* If `true`, the user cannot interact with the select.
|
|
74
60
|
*/
|
|
@@ -176,9 +162,40 @@ export class Select {
|
|
|
176
162
|
this.emitStyle();
|
|
177
163
|
}
|
|
178
164
|
setValue(value) {
|
|
165
|
+
if (this.isValueEqual(this.value, value)) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
179
168
|
this.value = value;
|
|
180
169
|
this.ionChange.emit({ value });
|
|
181
170
|
}
|
|
171
|
+
isValueEqual(currentValue, newValue) {
|
|
172
|
+
if (this.multiple) {
|
|
173
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
174
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
175
|
+
if (currentArr.length !== newArr.length) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
179
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
180
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
181
|
+
const remaining = currentArr.slice();
|
|
182
|
+
return newArr.every((val) => {
|
|
183
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
184
|
+
if (idx === -1) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
remaining.splice(idx, 1);
|
|
188
|
+
return true;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
if (currentValue == null && newValue == null) {
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
if (currentValue == null || newValue == null) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
198
|
+
}
|
|
182
199
|
async connectedCallback() {
|
|
183
200
|
const { el } = this;
|
|
184
201
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -413,12 +430,10 @@ export class Select {
|
|
|
413
430
|
.join(' ');
|
|
414
431
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
415
432
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
416
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
417
433
|
return {
|
|
418
434
|
role: isSelected ? 'selected' : '',
|
|
419
|
-
text:
|
|
435
|
+
text: option.textContent,
|
|
420
436
|
cssClass: optClass,
|
|
421
|
-
disabled: option.disabled,
|
|
422
437
|
handler: () => {
|
|
423
438
|
this.setValue(value);
|
|
424
439
|
},
|
|
@@ -426,9 +441,6 @@ export class Select {
|
|
|
426
441
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
427
442
|
role: 'radio',
|
|
428
443
|
},
|
|
429
|
-
startContent,
|
|
430
|
-
endContent,
|
|
431
|
-
description: option.description,
|
|
432
444
|
};
|
|
433
445
|
});
|
|
434
446
|
// Add "cancel" button
|
|
@@ -449,19 +461,13 @@ export class Select {
|
|
|
449
461
|
.filter((cls) => cls !== 'hydrated')
|
|
450
462
|
.join(' ');
|
|
451
463
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
452
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
453
464
|
return {
|
|
454
465
|
type: inputType,
|
|
455
466
|
cssClass: optClass,
|
|
456
|
-
label:
|
|
467
|
+
label: option.textContent || '',
|
|
457
468
|
value,
|
|
458
469
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
459
470
|
disabled: option.disabled,
|
|
460
|
-
startContent,
|
|
461
|
-
endContent,
|
|
462
|
-
description: option.description,
|
|
463
|
-
labelPlacement: option.labelPlacement,
|
|
464
|
-
justify: option.justify,
|
|
465
471
|
};
|
|
466
472
|
});
|
|
467
473
|
return alertInputs;
|
|
@@ -474,9 +480,8 @@ export class Select {
|
|
|
474
480
|
.filter((cls) => cls !== 'hydrated')
|
|
475
481
|
.join(' ');
|
|
476
482
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
477
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
478
483
|
return {
|
|
479
|
-
text:
|
|
484
|
+
text: option.textContent || '',
|
|
480
485
|
cssClass: optClass,
|
|
481
486
|
value,
|
|
482
487
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -487,11 +492,6 @@ export class Select {
|
|
|
487
492
|
this.close();
|
|
488
493
|
}
|
|
489
494
|
},
|
|
490
|
-
startContent,
|
|
491
|
-
endContent,
|
|
492
|
-
description: option.description,
|
|
493
|
-
labelPlacement: option.labelPlacement,
|
|
494
|
-
justify: option.justify,
|
|
495
495
|
};
|
|
496
496
|
});
|
|
497
497
|
return popoverOptions;
|
|
@@ -499,8 +499,8 @@ export class Select {
|
|
|
499
499
|
async openPopover(ev) {
|
|
500
500
|
const { fill, labelPlacement } = this;
|
|
501
501
|
const interfaceOptions = this.interfaceOptions;
|
|
502
|
-
const
|
|
503
|
-
const showBackdrop =
|
|
502
|
+
const mode = getIonMode(this);
|
|
503
|
+
const showBackdrop = mode === 'md' ? false : true;
|
|
504
504
|
const multiple = this.multiple;
|
|
505
505
|
const value = this.value;
|
|
506
506
|
let event = ev;
|
|
@@ -511,7 +511,7 @@ export class Select {
|
|
|
511
511
|
* when using a fill in MD mode or if the
|
|
512
512
|
* label is floating/stacked.
|
|
513
513
|
*/
|
|
514
|
-
if (hasFloatingOrStackedLabel || (
|
|
514
|
+
if (hasFloatingOrStackedLabel || (mode === 'md' && fill !== undefined)) {
|
|
515
515
|
size = 'cover';
|
|
516
516
|
/**
|
|
517
517
|
* Otherwise the popover
|
|
@@ -524,21 +524,15 @@ export class Select {
|
|
|
524
524
|
ionShadowTarget: this.nativeWrapperEl,
|
|
525
525
|
} });
|
|
526
526
|
}
|
|
527
|
-
const
|
|
528
|
-
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
529
|
-
const popoverOpts = Object.assign(Object.assign({ theme,
|
|
527
|
+
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
530
528
|
event, alignment: 'center', size,
|
|
531
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
532
|
-
'select-popover',
|
|
533
|
-
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
534
|
-
interfaceOptions.cssClass,
|
|
535
|
-
], componentProps: {
|
|
529
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
|
|
536
530
|
header: interfaceOptions.header,
|
|
537
531
|
subHeader: interfaceOptions.subHeader,
|
|
538
532
|
message: interfaceOptions.message,
|
|
539
533
|
multiple,
|
|
540
534
|
value,
|
|
541
|
-
options,
|
|
535
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
542
536
|
} });
|
|
543
537
|
/**
|
|
544
538
|
* Workaround for Stencil to autodefine
|
|
@@ -555,9 +549,9 @@ export class Select {
|
|
|
555
549
|
return popoverController.create(popoverOpts);
|
|
556
550
|
}
|
|
557
551
|
async openActionSheet() {
|
|
558
|
-
const
|
|
552
|
+
const mode = getIonMode(this);
|
|
559
553
|
const interfaceOptions = this.interfaceOptions;
|
|
560
|
-
const actionSheetOpts = Object.assign(Object.assign({
|
|
554
|
+
const actionSheetOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
|
|
561
555
|
/**
|
|
562
556
|
* Workaround for Stencil to autodefine
|
|
563
557
|
* ion-action-sheet when
|
|
@@ -574,8 +568,8 @@ export class Select {
|
|
|
574
568
|
async openAlert() {
|
|
575
569
|
const interfaceOptions = this.interfaceOptions;
|
|
576
570
|
const inputType = this.multiple ? 'checkbox' : 'radio';
|
|
577
|
-
const
|
|
578
|
-
const alertOpts = Object.assign(Object.assign({
|
|
571
|
+
const mode = getIonMode(this);
|
|
572
|
+
const alertOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
|
|
579
573
|
{
|
|
580
574
|
text: this.cancelText,
|
|
581
575
|
role: 'cancel',
|
|
@@ -609,11 +603,10 @@ export class Select {
|
|
|
609
603
|
}
|
|
610
604
|
openModal() {
|
|
611
605
|
const { multiple, value, interfaceOptions } = this;
|
|
612
|
-
const
|
|
613
|
-
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode
|
|
606
|
+
const mode = getIonMode(this);
|
|
607
|
+
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
614
608
|
header: interfaceOptions.header,
|
|
615
609
|
cancelText: this.cancelText,
|
|
616
|
-
cancelIcon: this.cancelIcon,
|
|
617
610
|
multiple,
|
|
618
611
|
value,
|
|
619
612
|
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
@@ -666,18 +659,12 @@ export class Select {
|
|
|
666
659
|
}
|
|
667
660
|
return;
|
|
668
661
|
}
|
|
669
|
-
|
|
670
|
-
* Returns the text to display in the select based on the selected value.
|
|
671
|
-
*
|
|
672
|
-
* @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`.
|
|
673
|
-
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
674
|
-
*/
|
|
675
|
-
getText(useHTML = false) {
|
|
662
|
+
getText() {
|
|
676
663
|
const selectedText = this.selectedText;
|
|
677
664
|
if (selectedText != null && selectedText !== '') {
|
|
678
665
|
return selectedText;
|
|
679
666
|
}
|
|
680
|
-
return generateText(this.childOpts, this.value, this.compareWith
|
|
667
|
+
return generateText(this.childOpts, this.value, this.compareWith);
|
|
681
668
|
}
|
|
682
669
|
setFocus() {
|
|
683
670
|
if (this.focusEl) {
|
|
@@ -691,18 +678,6 @@ export class Select {
|
|
|
691
678
|
};
|
|
692
679
|
this.ionStyle.emit(style);
|
|
693
680
|
}
|
|
694
|
-
getSize() {
|
|
695
|
-
const theme = getIonTheme(this);
|
|
696
|
-
const { size } = this;
|
|
697
|
-
// TODO(ROU-11370): Remove theme check when sizes are defined for all themes.
|
|
698
|
-
if (theme !== 'ionic') {
|
|
699
|
-
return undefined;
|
|
700
|
-
}
|
|
701
|
-
if (size === undefined) {
|
|
702
|
-
return 'medium';
|
|
703
|
-
}
|
|
704
|
-
return size;
|
|
705
|
-
}
|
|
706
681
|
renderLabel() {
|
|
707
682
|
const { label } = this;
|
|
708
683
|
return (h("div", { class: {
|
|
@@ -735,8 +710,8 @@ export class Select {
|
|
|
735
710
|
* when fill="outline".
|
|
736
711
|
*/
|
|
737
712
|
renderLabelContainer() {
|
|
738
|
-
const
|
|
739
|
-
const hasOutlineFill =
|
|
713
|
+
const mode = getIonMode(this);
|
|
714
|
+
const hasOutlineFill = mode === 'md' && this.fill === 'outline';
|
|
740
715
|
if (hasOutlineFill) {
|
|
741
716
|
/**
|
|
742
717
|
* The outline fill has a special outline
|
|
@@ -759,47 +734,6 @@ export class Select {
|
|
|
759
734
|
*/
|
|
760
735
|
return this.renderLabel();
|
|
761
736
|
}
|
|
762
|
-
/**
|
|
763
|
-
* Wraps text nodes in the select text with span elements
|
|
764
|
-
* so spacing can be added between elements without
|
|
765
|
-
* changing the display to prevent losing the ellipses
|
|
766
|
-
* behavior.
|
|
767
|
-
*
|
|
768
|
-
* Only wraps when the string contains HTML elements
|
|
769
|
-
* alongside text.
|
|
770
|
-
*/
|
|
771
|
-
wrapSelectTextNodes(html) {
|
|
772
|
-
const temp = document.createElement('div');
|
|
773
|
-
temp.innerHTML = html;
|
|
774
|
-
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
775
|
-
// Return the plain text
|
|
776
|
-
if (!hasElements) {
|
|
777
|
-
return html;
|
|
778
|
-
}
|
|
779
|
-
Array.from(temp.childNodes).forEach((node) => {
|
|
780
|
-
var _a, _b, _c, _d;
|
|
781
|
-
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
782
|
-
const text = node.textContent;
|
|
783
|
-
/**
|
|
784
|
-
* Split comma separator from the text content
|
|
785
|
-
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
786
|
-
*/
|
|
787
|
-
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
788
|
-
if (commaMatch) {
|
|
789
|
-
const commaNode = document.createTextNode(commaMatch[1]);
|
|
790
|
-
const wrapper = document.createElement('span');
|
|
791
|
-
wrapper.textContent = commaMatch[2];
|
|
792
|
-
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
793
|
-
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
794
|
-
return;
|
|
795
|
-
}
|
|
796
|
-
const wrapper = document.createElement('span');
|
|
797
|
-
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
798
|
-
wrapper.appendChild(node);
|
|
799
|
-
}
|
|
800
|
-
});
|
|
801
|
-
return temp.innerHTML;
|
|
802
|
-
}
|
|
803
737
|
/**
|
|
804
738
|
* Renders either the placeholder
|
|
805
739
|
* or the selected values based on
|
|
@@ -807,7 +741,7 @@ export class Select {
|
|
|
807
741
|
*/
|
|
808
742
|
renderSelectText() {
|
|
809
743
|
const { placeholder } = this;
|
|
810
|
-
const displayValue = this.getText(
|
|
744
|
+
const displayValue = this.getText();
|
|
811
745
|
let addPlaceholderClass = false;
|
|
812
746
|
let selectText = displayValue;
|
|
813
747
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -819,10 +753,6 @@ export class Select {
|
|
|
819
753
|
'select-placeholder': addPlaceholderClass,
|
|
820
754
|
};
|
|
821
755
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
822
|
-
if (this.customHTMLEnabled) {
|
|
823
|
-
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
824
|
-
return h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
825
|
-
}
|
|
826
756
|
return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
827
757
|
}
|
|
828
758
|
/**
|
|
@@ -830,17 +760,21 @@ export class Select {
|
|
|
830
760
|
* next to the select text.
|
|
831
761
|
*/
|
|
832
762
|
renderSelectIcon() {
|
|
833
|
-
const
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
763
|
+
const mode = getIonMode(this);
|
|
764
|
+
const { isExpanded, toggleIcon, expandedIcon } = this;
|
|
765
|
+
let icon;
|
|
766
|
+
if (isExpanded && expandedIcon !== undefined) {
|
|
767
|
+
icon = expandedIcon;
|
|
768
|
+
}
|
|
769
|
+
else {
|
|
770
|
+
const defaultIcon = mode === 'ios' ? chevronExpand : caretDownSharp;
|
|
771
|
+
icon = toggleIcon !== null && toggleIcon !== void 0 ? toggleIcon : defaultIcon;
|
|
837
772
|
}
|
|
838
773
|
return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
|
|
839
774
|
}
|
|
840
775
|
get ariaLabel() {
|
|
841
776
|
var _a;
|
|
842
777
|
const { placeholder, inheritedAttributes } = this;
|
|
843
|
-
// Get the plain text from the selected text
|
|
844
778
|
const displayValue = this.getText();
|
|
845
779
|
// The aria label should be preferred over visible text if both are specified
|
|
846
780
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -869,63 +803,6 @@ export class Select {
|
|
|
869
803
|
const { disabled, inputId, isExpanded, required } = this;
|
|
870
804
|
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
871
805
|
}
|
|
872
|
-
getShape() {
|
|
873
|
-
const theme = getIonTheme(this);
|
|
874
|
-
const { shape } = this;
|
|
875
|
-
// TODO(ROU-11366): Remove theme check when shapes are defined for all themes.
|
|
876
|
-
if (theme === 'ionic' && shape === undefined) {
|
|
877
|
-
return 'round';
|
|
878
|
-
}
|
|
879
|
-
return shape;
|
|
880
|
-
}
|
|
881
|
-
/**
|
|
882
|
-
* Get the icon to use for the expand icon.
|
|
883
|
-
* If an icon is set on the component, use that.
|
|
884
|
-
* Otherwise, use the icon set in the config.
|
|
885
|
-
* If no icon is set in the config, use the default icon.
|
|
886
|
-
*/
|
|
887
|
-
get selectExpandedIcon() {
|
|
888
|
-
// Return the expandedIcon or toggleIcon if either is explicitly set
|
|
889
|
-
if (this.expandedIcon != null) {
|
|
890
|
-
return this.expandedIcon;
|
|
891
|
-
}
|
|
892
|
-
else if (this.toggleIcon != null) {
|
|
893
|
-
return this.toggleIcon;
|
|
894
|
-
}
|
|
895
|
-
// Determine the theme and map to default icons
|
|
896
|
-
const theme = getIonTheme(this);
|
|
897
|
-
const defaultIcons = {
|
|
898
|
-
ios: chevronExpand,
|
|
899
|
-
ionic: caretDownRegular,
|
|
900
|
-
md: caretDownSharp,
|
|
901
|
-
};
|
|
902
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
903
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
904
|
-
// Return the configured select expanded icon or the default icon
|
|
905
|
-
return config.get('selectExpandedIcon', defaultIcon);
|
|
906
|
-
}
|
|
907
|
-
/**
|
|
908
|
-
* Get the icon to use for the collapsed icon.
|
|
909
|
-
* If an icon is set on the component, use that.
|
|
910
|
-
* Otherwise, use the icon set in the config.
|
|
911
|
-
* If no icon is set in the config, use the default icon.
|
|
912
|
-
*/
|
|
913
|
-
get selectCollapsedIcon() {
|
|
914
|
-
// Return the toggleIcon if it is explicitly set
|
|
915
|
-
if (this.toggleIcon) {
|
|
916
|
-
return this.toggleIcon;
|
|
917
|
-
}
|
|
918
|
-
// Determine the theme and map to default icons
|
|
919
|
-
const theme = getIonTheme(this);
|
|
920
|
-
const defaultIcons = {
|
|
921
|
-
ios: chevronExpand,
|
|
922
|
-
ionic: caretDownRegular,
|
|
923
|
-
md: caretDownSharp,
|
|
924
|
-
};
|
|
925
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
926
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
927
|
-
return config.get('selectCollapsedIcon', defaultIcon);
|
|
928
|
-
}
|
|
929
806
|
getHintTextId() {
|
|
930
807
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
931
808
|
if (isInvalid && errorText) {
|
|
@@ -963,17 +840,13 @@ export class Select {
|
|
|
963
840
|
return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
|
|
964
841
|
}
|
|
965
842
|
render() {
|
|
966
|
-
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
|
|
967
|
-
const
|
|
968
|
-
const shape = this.getShape();
|
|
843
|
+
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
|
|
844
|
+
const mode = getIonMode(this);
|
|
969
845
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
970
|
-
const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
|
|
971
|
-
const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
|
|
972
846
|
const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
|
|
973
847
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
974
848
|
const inItem = hostContext('ion-item', this.el);
|
|
975
|
-
const
|
|
976
|
-
const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
|
|
849
|
+
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
977
850
|
const hasValue = this.hasValue();
|
|
978
851
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
979
852
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
@@ -995,8 +868,8 @@ export class Select {
|
|
|
995
868
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
996
869
|
*/
|
|
997
870
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
998
|
-
return (h(Host, { key: '
|
|
999
|
-
[
|
|
871
|
+
return (h(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
872
|
+
[mode]: true,
|
|
1000
873
|
'in-item': inItem,
|
|
1001
874
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
1002
875
|
'select-disabled': disabled,
|
|
@@ -1013,33 +886,20 @@ export class Select {
|
|
|
1013
886
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
1014
887
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
1015
888
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
1016
|
-
|
|
1017
|
-
}) }, h("label", { key: '7bb66ac4302033164def96ee2e7e4c75e91486bf', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'f471303b19939f7f2dbbff84c71baee0245744f8', class: "select-wrapper-inner", part: "inner" },
|
|
1018
|
-
/**
|
|
1019
|
-
* For the ionic theme, we render the outline container here
|
|
1020
|
-
* instead of higher up, so it can be positioned relative to
|
|
1021
|
-
* the native wrapper instead of the <label> element or the
|
|
1022
|
-
* entire component. This allows the label text to be positioned
|
|
1023
|
-
* above the outline, while staying within the bounds of the
|
|
1024
|
-
* <label> element, ensuring that clicking the label text
|
|
1025
|
-
* focuses the select.
|
|
1026
|
-
*/
|
|
1027
|
-
theme === 'ionic' && fill === 'outline' && h("div", { key: '07ec46ff5185031edeaeb9c329ae05a1dc4500bc', class: "select-outline" }), h("slot", { key: '69bb4d4a2948f9fbcdd8aa7450a08bdd4e812eea', name: "start" }), h("div", { key: '44c1be22c26165e68fc7fced999019a1da8ea58d', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'be3d1f07547ecb117056a7baf0013d162db67dc4', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '621376ed95b35dc867ed8a6f450155405f9f37fe', class: "select-highlight" })), this.renderBottomContent()));
|
|
889
|
+
}) }, h("label", { key: 'fa1889b325387da10d1e5fa865aef128bc31aee6', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e31f4ae38af01dbe3a7551e9e5dca2650ae42ef5', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: '623916631f44446fcf2c1df64788ce530964afea', name: "start" }), h("div", { key: 'cbd2298a7c6666ce6b4443b3967195f96558861c', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'ee8c2a236c7f120988f5bab17397204f1b374b57', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '951566d0da3aea0be4921b2951207765b089a7f3', class: "select-highlight" })), this.renderBottomContent()));
|
|
1028
890
|
}
|
|
1029
891
|
static get is() { return "ion-select"; }
|
|
1030
892
|
static get encapsulation() { return "shadow"; }
|
|
1031
893
|
static get originalStyleUrls() {
|
|
1032
894
|
return {
|
|
1033
895
|
"ios": ["select.ios.scss"],
|
|
1034
|
-
"md": ["select.md.scss"]
|
|
1035
|
-
"ionic": ["select.ionic.scss"]
|
|
896
|
+
"md": ["select.md.scss"]
|
|
1036
897
|
};
|
|
1037
898
|
}
|
|
1038
899
|
static get styleUrls() {
|
|
1039
900
|
return {
|
|
1040
901
|
"ios": ["select.ios.css"],
|
|
1041
|
-
"md": ["select.md.css"]
|
|
1042
|
-
"ionic": ["select.ionic.css"]
|
|
902
|
+
"md": ["select.md.css"]
|
|
1043
903
|
};
|
|
1044
904
|
}
|
|
1045
905
|
static get properties() {
|
|
@@ -1064,26 +924,6 @@ export class Select {
|
|
|
1064
924
|
"attribute": "cancel-text",
|
|
1065
925
|
"defaultValue": "'Cancel'"
|
|
1066
926
|
},
|
|
1067
|
-
"cancelIcon": {
|
|
1068
|
-
"type": "boolean",
|
|
1069
|
-
"mutable": false,
|
|
1070
|
-
"complexType": {
|
|
1071
|
-
"original": "boolean",
|
|
1072
|
-
"resolved": "boolean",
|
|
1073
|
-
"references": {}
|
|
1074
|
-
},
|
|
1075
|
-
"required": false,
|
|
1076
|
-
"optional": false,
|
|
1077
|
-
"docs": {
|
|
1078
|
-
"tags": [],
|
|
1079
|
-
"text": "If `true`, the cancel button will display an icon instead of the `cancelText`.\nOnly applies when `interface` is set to `\"modal\"`. Has no effect on `\"action-sheet\"`,\n`\"alert\"`, or `\"popover\"` interfaces.\nWhen `cancelIcon` is `true`, the `cancelText` property is ignored for display\nbut is used as the accessible label for the icon button."
|
|
1080
|
-
},
|
|
1081
|
-
"getter": false,
|
|
1082
|
-
"setter": false,
|
|
1083
|
-
"reflect": false,
|
|
1084
|
-
"attribute": "cancel-icon",
|
|
1085
|
-
"defaultValue": "false"
|
|
1086
|
-
},
|
|
1087
927
|
"color": {
|
|
1088
928
|
"type": "string",
|
|
1089
929
|
"mutable": false,
|
|
@@ -1168,7 +1008,7 @@ export class Select {
|
|
|
1168
1008
|
"optional": true,
|
|
1169
1009
|
"docs": {
|
|
1170
1010
|
"tags": [],
|
|
1171
|
-
"text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in
|
|
1011
|
+
"text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode."
|
|
1172
1012
|
},
|
|
1173
1013
|
"getter": false,
|
|
1174
1014
|
"setter": false,
|
|
@@ -1428,7 +1268,7 @@ export class Select {
|
|
|
1428
1268
|
"optional": true,
|
|
1429
1269
|
"docs": {
|
|
1430
1270
|
"tags": [],
|
|
1431
|
-
"text": "The toggle icon to use. Defaults to
|
|
1271
|
+
"text": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode."
|
|
1432
1272
|
},
|
|
1433
1273
|
"getter": false,
|
|
1434
1274
|
"setter": false,
|
|
@@ -1447,89 +1287,70 @@ export class Select {
|
|
|
1447
1287
|
"optional": true,
|
|
1448
1288
|
"docs": {
|
|
1449
1289
|
"tags": [],
|
|
1450
|
-
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in
|
|
1290
|
+
"text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in `md` mode will be disabled. If undefined, `toggleIcon`\nwill be used for when the select is both open and closed."
|
|
1451
1291
|
},
|
|
1452
1292
|
"getter": false,
|
|
1453
1293
|
"setter": false,
|
|
1454
1294
|
"reflect": false,
|
|
1455
1295
|
"attribute": "expanded-icon"
|
|
1456
1296
|
},
|
|
1457
|
-
"required": {
|
|
1458
|
-
"type": "boolean",
|
|
1459
|
-
"mutable": false,
|
|
1460
|
-
"complexType": {
|
|
1461
|
-
"original": "boolean",
|
|
1462
|
-
"resolved": "boolean",
|
|
1463
|
-
"references": {}
|
|
1464
|
-
},
|
|
1465
|
-
"required": false,
|
|
1466
|
-
"optional": false,
|
|
1467
|
-
"docs": {
|
|
1468
|
-
"tags": [],
|
|
1469
|
-
"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."
|
|
1470
|
-
},
|
|
1471
|
-
"getter": false,
|
|
1472
|
-
"setter": false,
|
|
1473
|
-
"reflect": false,
|
|
1474
|
-
"attribute": "required",
|
|
1475
|
-
"defaultValue": "false"
|
|
1476
|
-
},
|
|
1477
1297
|
"shape": {
|
|
1478
1298
|
"type": "string",
|
|
1479
1299
|
"mutable": false,
|
|
1480
1300
|
"complexType": {
|
|
1481
|
-
"original": "'
|
|
1482
|
-
"resolved": "\"
|
|
1301
|
+
"original": "'round'",
|
|
1302
|
+
"resolved": "\"round\" | undefined",
|
|
1483
1303
|
"references": {}
|
|
1484
1304
|
},
|
|
1485
1305
|
"required": false,
|
|
1486
1306
|
"optional": true,
|
|
1487
1307
|
"docs": {
|
|
1488
1308
|
"tags": [],
|
|
1489
|
-
"text": "
|
|
1309
|
+
"text": "The shape of the select. If \"round\" it will have an increased border radius."
|
|
1490
1310
|
},
|
|
1491
1311
|
"getter": false,
|
|
1492
1312
|
"setter": false,
|
|
1493
1313
|
"reflect": false,
|
|
1494
1314
|
"attribute": "shape"
|
|
1495
1315
|
},
|
|
1496
|
-
"
|
|
1497
|
-
"type": "
|
|
1498
|
-
"mutable":
|
|
1316
|
+
"value": {
|
|
1317
|
+
"type": "any",
|
|
1318
|
+
"mutable": true,
|
|
1499
1319
|
"complexType": {
|
|
1500
|
-
"original": "
|
|
1501
|
-
"resolved": "
|
|
1320
|
+
"original": "any | null",
|
|
1321
|
+
"resolved": "any",
|
|
1502
1322
|
"references": {}
|
|
1503
1323
|
},
|
|
1504
1324
|
"required": false,
|
|
1505
1325
|
"optional": true,
|
|
1506
1326
|
"docs": {
|
|
1507
1327
|
"tags": [],
|
|
1508
|
-
"text": "The
|
|
1328
|
+
"text": "The value of the select."
|
|
1509
1329
|
},
|
|
1510
1330
|
"getter": false,
|
|
1511
1331
|
"setter": false,
|
|
1512
1332
|
"reflect": false,
|
|
1513
|
-
"attribute": "
|
|
1333
|
+
"attribute": "value"
|
|
1514
1334
|
},
|
|
1515
|
-
"
|
|
1516
|
-
"type": "
|
|
1517
|
-
"mutable":
|
|
1335
|
+
"required": {
|
|
1336
|
+
"type": "boolean",
|
|
1337
|
+
"mutable": false,
|
|
1518
1338
|
"complexType": {
|
|
1519
|
-
"original": "
|
|
1520
|
-
"resolved": "
|
|
1339
|
+
"original": "boolean",
|
|
1340
|
+
"resolved": "boolean",
|
|
1521
1341
|
"references": {}
|
|
1522
1342
|
},
|
|
1523
1343
|
"required": false,
|
|
1524
|
-
"optional":
|
|
1344
|
+
"optional": false,
|
|
1525
1345
|
"docs": {
|
|
1526
1346
|
"tags": [],
|
|
1527
|
-
"text": "
|
|
1347
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
1528
1348
|
},
|
|
1529
1349
|
"getter": false,
|
|
1530
1350
|
"setter": false,
|
|
1531
1351
|
"reflect": false,
|
|
1532
|
-
"attribute": "
|
|
1352
|
+
"attribute": "required",
|
|
1353
|
+
"defaultValue": "false"
|
|
1533
1354
|
}
|
|
1534
1355
|
};
|
|
1535
1356
|
}
|
|
@@ -1725,223 +1546,25 @@ const parseValue = (value) => {
|
|
|
1725
1546
|
}
|
|
1726
1547
|
return value.toString();
|
|
1727
1548
|
};
|
|
1728
|
-
const generateText = (opts, value, compareWith
|
|
1549
|
+
const generateText = (opts, value, compareWith) => {
|
|
1729
1550
|
if (value === undefined) {
|
|
1730
1551
|
return '';
|
|
1731
1552
|
}
|
|
1732
1553
|
if (Array.isArray(value)) {
|
|
1733
1554
|
return value
|
|
1734
|
-
.map((v) => textForValue(opts, v, compareWith
|
|
1555
|
+
.map((v) => textForValue(opts, v, compareWith))
|
|
1735
1556
|
.filter((opt) => opt !== null)
|
|
1736
1557
|
.join(', ');
|
|
1737
1558
|
}
|
|
1738
1559
|
else {
|
|
1739
|
-
return textForValue(opts, value, compareWith
|
|
1560
|
+
return textForValue(opts, value, compareWith) || '';
|
|
1740
1561
|
}
|
|
1741
1562
|
};
|
|
1742
|
-
|
|
1743
|
-
* Returns the display text for a given value from the list of options.
|
|
1744
|
-
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
1745
|
-
* When `useHTML` is false, returns plain text for aria-label and other
|
|
1746
|
-
* text-only contexts.
|
|
1747
|
-
*
|
|
1748
|
-
* @param opts - The list of ion-select-option elements.
|
|
1749
|
-
* @param value - The value to find the matching option for.
|
|
1750
|
-
* @param compareWith - Custom comparison function or property name.
|
|
1751
|
-
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
1752
|
-
*/
|
|
1753
|
-
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
1563
|
+
const textForValue = (opts, value, compareWith) => {
|
|
1754
1564
|
const selectOpt = opts.find((opt) => {
|
|
1755
1565
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
1756
1566
|
});
|
|
1757
|
-
|
|
1758
|
-
if (!selectOpt) {
|
|
1759
|
-
return null;
|
|
1760
|
-
}
|
|
1761
|
-
// Return sanitized HTML for the select text
|
|
1762
|
-
if (customHTMLEnabled && useHTML) {
|
|
1763
|
-
return getOptionContent(selectOpt, undefined, true);
|
|
1764
|
-
}
|
|
1765
|
-
/**
|
|
1766
|
-
* When custom HTML is enabled, extract only the default slot content.
|
|
1767
|
-
* This ensures aria-label and other text-only contexts read only
|
|
1768
|
-
* the relevant option text.
|
|
1769
|
-
*/
|
|
1770
|
-
if (customHTMLEnabled) {
|
|
1771
|
-
const content = getOptionContent(selectOpt);
|
|
1772
|
-
if (typeof content === 'string') {
|
|
1773
|
-
return content;
|
|
1774
|
-
}
|
|
1775
|
-
/**
|
|
1776
|
-
* Elements were found in the default slot, extract and concatenate
|
|
1777
|
-
* their text content while trimming whitespace.
|
|
1778
|
-
*/
|
|
1779
|
-
if (content) {
|
|
1780
|
-
const texts = Array.from(content.childNodes)
|
|
1781
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1782
|
-
.filter((t) => t);
|
|
1783
|
-
return texts.join(' ') || null;
|
|
1784
|
-
}
|
|
1785
|
-
// Empty option
|
|
1786
|
-
return null;
|
|
1787
|
-
}
|
|
1788
|
-
return getDefaultSlotPlainText(selectOpt);
|
|
1789
|
-
};
|
|
1790
|
-
/**
|
|
1791
|
-
* Trims whitespace from all text nodes within a DOM tree.
|
|
1792
|
-
* This prevents invisible layout shifts and unwanted gaps between
|
|
1793
|
-
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
1794
|
-
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
1795
|
-
* the original source markup.
|
|
1796
|
-
*
|
|
1797
|
-
* @param node The root node to start trimming text nodes from.
|
|
1798
|
-
*/
|
|
1799
|
-
const trimTextNodes = (node) => {
|
|
1800
|
-
node.childNodes.forEach((child) => {
|
|
1801
|
-
var _a;
|
|
1802
|
-
if (child.nodeType === Node.TEXT_NODE) {
|
|
1803
|
-
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1804
|
-
}
|
|
1805
|
-
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
1806
|
-
trimTextNodes(child);
|
|
1807
|
-
}
|
|
1808
|
-
});
|
|
1809
|
-
};
|
|
1810
|
-
/**
|
|
1811
|
-
* Extracts and clones content from an `ion-select-option` element
|
|
1812
|
-
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
1813
|
-
*
|
|
1814
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1815
|
-
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
1816
|
-
* @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.
|
|
1817
|
-
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
1818
|
-
* div element containing cloned child nodes. Returns `null` if no matching
|
|
1819
|
-
* content is found.
|
|
1820
|
-
*/
|
|
1821
|
-
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
1822
|
-
let nodes;
|
|
1823
|
-
if (slotName) {
|
|
1824
|
-
// Named slot: get elements with matching slot attribute
|
|
1825
|
-
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
1826
|
-
}
|
|
1827
|
-
else {
|
|
1828
|
-
// Default slot: get nodes without a slot attribute
|
|
1829
|
-
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
1830
|
-
nodes = defaultSlot.filter((node) => {
|
|
1831
|
-
var _a;
|
|
1832
|
-
/**
|
|
1833
|
-
* Exclude whitespace-only text nodes (newline noise between
|
|
1834
|
-
* markup elements). Element nodes are always kept, even when
|
|
1835
|
-
* their textContent is empty (e.g. <svg>, <img>).
|
|
1836
|
-
*/
|
|
1837
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
1838
|
-
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
1839
|
-
}
|
|
1840
|
-
return true;
|
|
1841
|
-
});
|
|
1842
|
-
}
|
|
1843
|
-
if (nodes.length === 0) {
|
|
1844
|
-
return null;
|
|
1845
|
-
}
|
|
1846
|
-
// Return plain text if no elements are found
|
|
1847
|
-
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
1848
|
-
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
1849
|
-
}
|
|
1850
|
-
/**
|
|
1851
|
-
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
1852
|
-
* onto attributes before cloning. Frameworks like Vue set these as
|
|
1853
|
-
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
1854
|
-
* step the cloned overlay copy renders without the prop's value.
|
|
1855
|
-
*/
|
|
1856
|
-
nodes.forEach((n) => {
|
|
1857
|
-
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
1858
|
-
reflectPropertiesToAttributes(n);
|
|
1859
|
-
}
|
|
1860
|
-
});
|
|
1861
|
-
// Clone each node into a temporary container
|
|
1862
|
-
const container = document.createElement('div');
|
|
1863
|
-
nodes.forEach((n) => {
|
|
1864
|
-
var _a;
|
|
1865
|
-
const clone = n.cloneNode(true);
|
|
1866
|
-
if (clone.nodeType === Node.TEXT_NODE) {
|
|
1867
|
-
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1868
|
-
}
|
|
1869
|
-
else {
|
|
1870
|
-
trimTextNodes(clone);
|
|
1871
|
-
}
|
|
1872
|
-
container.appendChild(clone);
|
|
1873
|
-
});
|
|
1874
|
-
/**
|
|
1875
|
-
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
1876
|
-
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
1877
|
-
* blocked tags are stripped.
|
|
1878
|
-
*/
|
|
1879
|
-
sanitizeDOMTree(container);
|
|
1880
|
-
if (useHTML) {
|
|
1881
|
-
return container.innerHTML.trim() || null;
|
|
1882
|
-
}
|
|
1883
|
-
return container;
|
|
1884
|
-
};
|
|
1885
|
-
/**
|
|
1886
|
-
* Returns the child nodes that belong to the default slot of an
|
|
1887
|
-
* option element, excluding any nodes that are assigned to named
|
|
1888
|
-
* slots.
|
|
1889
|
-
*
|
|
1890
|
-
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
1891
|
-
* @returns An array of default slot nodes, or `null` if none are found.
|
|
1892
|
-
*/
|
|
1893
|
-
const getOptionDefaultSlot = (option) => {
|
|
1894
|
-
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
1895
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1896
|
-
return !node.hasAttribute('slot');
|
|
1897
|
-
}
|
|
1898
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1899
|
-
});
|
|
1900
|
-
if (defaultSlotNodes.length === 0) {
|
|
1901
|
-
return null;
|
|
1902
|
-
}
|
|
1903
|
-
return defaultSlotNodes;
|
|
1904
|
-
};
|
|
1905
|
-
/**
|
|
1906
|
-
* Extracts plain text from only the default slot of an option,
|
|
1907
|
-
* excluding content assigned to named slots (start/end).
|
|
1908
|
-
*/
|
|
1909
|
-
const getDefaultSlotPlainText = (option) => {
|
|
1910
|
-
const texts = Array.from(option.childNodes)
|
|
1911
|
-
.filter((node) => {
|
|
1912
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
1913
|
-
return !node.hasAttribute('slot');
|
|
1914
|
-
}
|
|
1915
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
1916
|
-
})
|
|
1917
|
-
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
1918
|
-
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1919
|
-
.filter((t) => t);
|
|
1920
|
-
return texts.join(' ');
|
|
1921
|
-
};
|
|
1922
|
-
/**
|
|
1923
|
-
* Extracts the rich content from an `ion-select-option`.
|
|
1924
|
-
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
1925
|
-
* default slot is read and the start and end slots are skipped.
|
|
1926
|
-
*
|
|
1927
|
-
* @param option - The `ion-select-option` element to extract content from.
|
|
1928
|
-
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
1929
|
-
* via the `innerHTMLTemplatesEnabled` config.
|
|
1930
|
-
*/
|
|
1931
|
-
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
1932
|
-
var _a, _b;
|
|
1933
|
-
if (!customHTMLEnabled) {
|
|
1934
|
-
return {
|
|
1935
|
-
content: getDefaultSlotPlainText(option),
|
|
1936
|
-
startContent: undefined,
|
|
1937
|
-
endContent: undefined,
|
|
1938
|
-
};
|
|
1939
|
-
}
|
|
1940
|
-
return {
|
|
1941
|
-
content: getOptionContent(option),
|
|
1942
|
-
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
1943
|
-
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
1944
|
-
};
|
|
1567
|
+
return selectOpt ? selectOpt.textContent : null;
|
|
1945
1568
|
};
|
|
1946
1569
|
let selectIds = 0;
|
|
1947
1570
|
const OPTION_CLASS = 'select-interface-option';
|