@ionic/core 8.8.17 → 8.8.18-dev.11786108988.1fd94742
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-0tt0PTAe.js +4 -0
- package/components/p-3dKnMgX5.js +4 -0
- package/components/p-6e_5igwn.js +4 -0
- package/components/{p--JUspHvy.js → p-AqD_wmvU.js} +1 -1
- package/components/p-B-FxiyeI.js +4 -0
- package/components/p-B4COLbAV.js +4 -0
- package/components/p-B9zzUBwR.js +4 -0
- package/components/p-BFU7kgcj.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BPbRjpb2.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/{dist/ionic/p-KjNvRoEp.js → components/p-BXQ7upSC.js} +1 -1
- package/components/p-BhamHSw3.js +4 -0
- package/components/p-BrXE0XUu.js +4 -0
- package/components/p-Bv7Rqz3Z.js +4 -0
- package/components/p-Bw7MMRH7.js +4 -0
- package/components/p-C-X5vb8f.js +4 -0
- package/components/p-C117Majq.js +4 -0
- package/components/{p-ChIZKXUu.js → p-C6JOi8wS.js} +1 -1
- package/components/p-CCVPk59A.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CKMc290p.js +4 -0
- package/components/{p-BkKAANMJ.js → p-CO5nI-BZ.js} +1 -1
- package/components/p-COQ_7Wwc.js +4 -0
- package/components/p-CQbh6Be_.js +4 -0
- package/components/p-CQtcj8t7.js +4 -0
- package/components/p-Cap9bvqr.js +4 -0
- package/components/p-CdP7ze2J.js +4 -0
- package/components/p-CfyJ_Ogc.js +4 -0
- package/components/p-ChWC4-vA.js +4 -0
- package/components/p-CmKf4pgI.js +4 -0
- package/components/p-CqYSqB9_.js +4 -0
- package/{dist/ionic/p-DC3RagnA.js → components/p-Cwsd9bue.js} +1 -1
- package/components/{p-D3xo7hqU.js → p-D0pL_HuH.js} +1 -1
- package/components/p-D0xd6h3Q.js +4 -0
- package/components/p-D28LaDuR.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/components/p-D9KqizZs.js +4 -0
- package/components/p-DIZE3CVV.js +4 -0
- package/components/p-DL8rd5jo.js +4 -0
- package/components/p-DRcApg6F.js +4 -0
- package/components/p-DTTnwMiS.js +4 -0
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-DYmrV1HT.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-Dcu-SAJG.js} +1 -1
- package/components/p-DnINLmwC.js +4 -0
- package/components/{p-DRugphUN.js → p-DsNz6_gM.js} +1 -1
- package/components/p-DtiuiOTk.js +4 -0
- package/components/p-DunYzubP.js +4 -0
- package/components/p-DwcSJ9u1.js +4 -0
- package/components/p-QCPSB1bo.js +4 -0
- package/components/p-RvtofbHn.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-WOFp6fXj.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/{p-C_hpsif8.js → p-ltNYIRmI.js} +1 -1
- package/components/p-miSGCTAU.js +4 -0
- package/components/p-mpdX3emm.js +4 -0
- package/components/p-nvqVLrWC.js +4 -0
- package/components/p-qiWM96Sz.js +4 -0
- package/components/p-vlF0Bcfd.js +4 -0
- package/dist/cjs/{animation-BJq0kcy2.js → animation-D5WDBRvT.js} +4 -4
- package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-C2s3Cbal.js} +1 -1
- package/dist/cjs/{button-active-0mPOKmV2.js → button-active-CXI2TseG.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/{dir-Cn0z1rJH.js → dir-Brx7VkvP.js} +1 -1
- package/dist/cjs/{format-PxvGiOik.js → format-ZfKtcdit.js} +40 -30
- package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-Bdvk3JQO.js} +5 -7
- package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
- package/dist/cjs/{hardware-back-button-iUuF_76h.js → hardware-back-button-zr8zeYaH.js} +4 -4
- package/dist/cjs/{helpers-Cv23MFHM.js → helpers-DURh1XdY.js} +3 -3
- package/dist/cjs/{index-aC4x3Fk3.js → index-B7sCu6vN.js} +6 -7
- package/dist/cjs/{index-CIrkNXqJ.js → index-BnhnwL1o.js} +2 -2
- package/dist/cjs/{index-D81eLYUM.js → index-Btdix80K.js} +2 -2
- package/dist/cjs/{index-Ct7gcRif.js → index-CAThePqm.js} +4 -6
- package/dist/cjs/index-DhSx3VvD.js +429 -0
- package/dist/cjs/{index-BERfRao3.js → index-DsoHs7Ly.js} +5 -5
- package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
- package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
- package/dist/cjs/index.cjs.js +18 -18
- package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-CPbWb84M.js} +9 -11
- package/dist/cjs/{input.utils-DetjmtH2.js → input.utils-CkASW3mE.js} +3 -4
- package/dist/cjs/ion-accordion_2.cjs.entry.js +368 -340
- package/dist/cjs/ion-action-sheet.cjs.entry.js +187 -76
- package/dist/cjs/ion-alert.cjs.entry.js +273 -111
- package/dist/cjs/ion-app_8.cjs.entry.js +306 -190
- package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +47 -23
- package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +199 -121
- package/dist/cjs/ion-button_2.cjs.entry.js +138 -66
- package/dist/cjs/ion-card_5.cjs.entry.js +82 -30
- package/dist/cjs/ion-checkbox.cjs.entry.js +152 -101
- package/dist/cjs/ion-chip.cjs.entry.js +17 -11
- package/dist/cjs/ion-col_3.cjs.entry.js +134 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +253 -241
- package/dist/cjs/ion-datetime.cjs.entry.js +2767 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +139 -81
- package/dist/cjs/ion-img.cjs.entry.js +34 -12
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +100 -72
- package/dist/cjs/ion-input-otp.cjs.entry.js +433 -370
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +33 -19
- package/dist/cjs/ion-input.cjs.entry.js +314 -168
- package/dist/cjs/ion-item-option_3.cjs.entry.js +91 -51
- package/dist/cjs/ion-item_8.cjs.entry.js +181 -82
- package/dist/cjs/ion-loading.cjs.entry.js +146 -60
- package/dist/cjs/ion-menu_3.cjs.entry.js +163 -101
- package/dist/cjs/ion-modal.cjs.entry.js +418 -251
- package/dist/cjs/ion-nav_2.cjs.entry.js +100 -157
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +37 -33
- package/dist/cjs/ion-picker-column.cjs.entry.js +417 -405
- package/dist/cjs/ion-picker.cjs.entry.js +401 -392
- package/dist/cjs/ion-popover.cjs.entry.js +319 -205
- package/dist/cjs/ion-progress-bar.cjs.entry.js +31 -25
- package/dist/cjs/ion-radio_2.cjs.entry.js +206 -133
- package/dist/cjs/ion-range.cjs.entry.js +302 -237
- package/dist/cjs/ion-refresher_2.cjs.entry.js +165 -93
- package/dist/cjs/ion-reorder_2.cjs.entry.js +53 -23
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +175 -71
- package/dist/cjs/ion-searchbar.cjs.entry.js +291 -200
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +28 -17
- package/dist/cjs/ion-segment_2.cjs.entry.js +169 -126
- package/dist/cjs/ion-select-modal.cjs.entry.js +104 -48
- package/dist/cjs/ion-select_3.cjs.entry.js +759 -214
- package/dist/cjs/ion-spinner.cjs.entry.js +24 -10
- package/dist/cjs/ion-split-pane.cjs.entry.js +29 -16
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +100 -41
- package/dist/cjs/ion-tab_2.cjs.entry.js +53 -27
- package/dist/cjs/ion-text.cjs.entry.js +11 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +263 -144
- package/dist/cjs/ion-toast.cjs.entry.js +236 -117
- package/dist/cjs/ion-toggle.cjs.entry.js +175 -122
- package/dist/cjs/{ionic-global-B-cA6LkY.js → ionic-global-dMut1Czp.js} +13 -8
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-CeaFa0y2.js} +13 -17
- package/dist/cjs/{item-multiple-inputs-D-gyg57c.js → item-multiple-inputs-HQO5Iy9I.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-B8-wBZqt.js → md.transition-D4Q5jny7.js} +7 -8
- package/dist/cjs/{notch-controller-18PzRGXd.js → notch-controller-fMfidI-7.js} +1 -1
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-DdtIYQUH.js → overlays-C2qrqpHm.js} +48 -33
- package/dist/cjs/select-option-render-Dh16lTnA.js +123 -0
- package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-CgjQ-6jq.js} +3 -3
- package/dist/cjs/{swipe-back-C0GCB18x.js → swipe-back-CmfRYdWQ.js} +5 -5
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/accordion/accordion.js +315 -312
- package/dist/collection/components/accordion-group/accordion-group.js +48 -25
- package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
- package/dist/collection/components/action-sheet/action-sheet.js +173 -64
- package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
- package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
- package/dist/collection/components/alert/alert.ios.css +279 -10
- package/dist/collection/components/alert/alert.js +257 -97
- package/dist/collection/components/alert/alert.md.css +268 -20
- package/dist/collection/components/app/app.js +3 -0
- package/dist/collection/components/back-button/back-button.js +42 -19
- package/dist/collection/components/backdrop/backdrop.js +16 -14
- package/dist/collection/components/badge/badge.js +6 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +91 -30
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +103 -88
- package/dist/collection/components/button/button.js +132 -61
- package/dist/collection/components/buttons/buttons.js +13 -15
- package/dist/collection/components/card/card.js +54 -21
- package/dist/collection/components/card-header/card-header.js +12 -8
- package/dist/collection/components/card-subtitle/card-subtitle.js +6 -0
- package/dist/collection/components/card-title/card-title.js +6 -0
- package/dist/collection/components/checkbox/checkbox.js +147 -97
- package/dist/collection/components/chip/chip.js +14 -10
- package/dist/collection/components/col/col.js +127 -3
- package/dist/collection/components/content/content.js +92 -64
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +1038 -803
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime/utils/data.js +13 -14
- package/dist/collection/components/datetime/utils/format.js +21 -11
- package/dist/collection/components/datetime/utils/manipulation.js +8 -8
- package/dist/collection/components/datetime/utils/parse.js +10 -10
- package/dist/collection/components/datetime/utils/state.js +8 -2
- package/dist/collection/components/datetime/utils/validate.js +4 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +247 -237
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/fab/fab.js +20 -13
- package/dist/collection/components/fab-button/fab-button.js +104 -55
- package/dist/collection/components/fab-list/fab-list.js +10 -11
- package/dist/collection/components/footer/footer.js +50 -44
- package/dist/collection/components/grid/grid.js +4 -6
- package/dist/collection/components/header/header.js +35 -25
- package/dist/collection/components/img/img.js +34 -10
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +73 -66
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +20 -3
- package/dist/collection/components/input/input.ios.css +1 -2
- package/dist/collection/components/input/input.js +309 -164
- package/dist/collection/components/input/input.md.css +1 -2
- package/dist/collection/components/input-otp/input-otp.js +428 -366
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +29 -16
- package/dist/collection/components/item/item.js +99 -53
- package/dist/collection/components/item-divider/item-divider.js +15 -10
- package/dist/collection/components/item-option/item-option.js +49 -21
- package/dist/collection/components/item-options/item-options.js +10 -7
- package/dist/collection/components/item-sliding/item-sliding.js +26 -20
- package/dist/collection/components/label/label.js +24 -4
- package/dist/collection/components/list/list.js +10 -7
- package/dist/collection/components/list-header/list-header.js +10 -0
- package/dist/collection/components/loading/loading.js +135 -51
- package/dist/collection/components/menu/menu.js +101 -59
- package/dist/collection/components/menu-button/menu-button.js +29 -20
- package/dist/collection/components/menu-toggle/menu-toggle.js +20 -13
- package/dist/collection/components/modal/animations/ios.enter.js +1 -1
- package/dist/collection/components/modal/animations/md.enter.js +1 -1
- package/dist/collection/components/modal/gestures/sheet.js +6 -7
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
- package/dist/collection/components/modal/modal.js +393 -224
- package/dist/collection/components/modal/safe-area-utils.js +4 -5
- package/dist/collection/components/modal/test/fixtures.js +3 -0
- package/dist/collection/components/nav/nav.js +69 -247
- package/dist/collection/components/nav/view-controller.js +7 -1
- package/dist/collection/components/nav-link/nav-link.js +20 -9
- package/dist/collection/components/note/note.js +6 -0
- package/dist/collection/components/picker/picker.js +398 -390
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +414 -404
- package/dist/collection/components/picker-column-option/picker-column-option.js +33 -31
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/animations/ios.enter.js +1 -2
- package/dist/collection/components/popover/animations/md.enter.js +1 -2
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +302 -185
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/popover/test/fixture.js +1 -0
- package/dist/collection/components/popover/utils.js +4 -6
- package/dist/collection/components/progress-bar/progress-bar.js +27 -23
- package/dist/collection/components/radio/radio.js +102 -66
- package/dist/collection/components/radio-group/radio-group.js +100 -65
- package/dist/collection/components/radio-group/test/fixtures.js +2 -0
- package/dist/collection/components/range/range.js +296 -232
- package/dist/collection/components/refresher/refresher.js +110 -78
- package/dist/collection/components/refresher-content/refresher-content.js +41 -4
- package/dist/collection/components/reorder/reorder.js +2 -1
- package/dist/collection/components/reorder-group/reorder-group.js +44 -15
- package/dist/collection/components/ripple-effect/ripple-effect.js +12 -13
- package/dist/collection/components/route/route.js +39 -10
- package/dist/collection/components/route-redirect/route-redirect.js +31 -0
- package/dist/collection/components/router/router.js +37 -33
- package/dist/collection/components/router/utils/dom.js +25 -7
- package/dist/collection/components/router/utils/matching.js +7 -9
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +0 -1
- package/dist/collection/components/router-link/router-link.js +37 -12
- package/dist/collection/components/router-outlet/router-outlet.js +82 -21
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +289 -199
- package/dist/collection/components/segment/segment.js +120 -85
- package/dist/collection/components/segment-button/segment-button.js +43 -37
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +26 -16
- package/dist/collection/components/select/select.ios.css +33 -0
- package/dist/collection/components/select/select.js +597 -166
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
- package/dist/collection/components/select-modal/select-modal.js +92 -38
- package/dist/collection/components/select-modal/select-modal.md.css +164 -0
- package/dist/collection/components/select-modal/test/fixtures.js +8 -1
- package/dist/collection/components/select-option/select-option.js +110 -9
- package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
- package/dist/collection/components/select-popover/select-popover.js +103 -36
- package/dist/collection/components/select-popover/select-popover.md.css +164 -0
- package/dist/collection/components/select-popover/test/fixtures.js +8 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +12 -8
- package/dist/collection/components/spinner/spinner.js +21 -9
- package/dist/collection/components/split-pane/split-pane.js +27 -15
- package/dist/collection/components/tab/tab.js +17 -6
- package/dist/collection/components/tab-bar/tab-bar.js +32 -14
- package/dist/collection/components/tab-button/tab-button.js +62 -23
- package/dist/collection/components/tabs/tabs.js +33 -20
- package/dist/collection/components/text/text.js +8 -2
- package/dist/collection/components/textarea/textarea.js +257 -139
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +18 -2
- package/dist/collection/components/toast/toast.js +223 -106
- package/dist/collection/components/toggle/toggle.js +167 -115
- package/dist/collection/components/toolbar/toolbar.js +15 -7
- package/dist/collection/global/config.js +4 -6
- package/dist/collection/global/ionic-global.js +8 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +5 -4
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +3 -3
- package/dist/collection/utils/framework-delegate.js +4 -6
- package/dist/collection/utils/gesture/gesture-controller.js +15 -8
- package/dist/collection/utils/gesture/index.js +10 -2
- package/dist/collection/utils/gesture/listener.js +1 -1
- package/dist/collection/utils/hardware-back-button.js +3 -3
- package/dist/collection/utils/helpers.js +2 -2
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
- package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
- package/dist/collection/utils/keyboard/keyboard.js +1 -1
- package/dist/collection/utils/menu-controller/index.js +1 -2
- package/dist/collection/utils/native/haptic.js +2 -3
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +38 -23
- package/dist/collection/utils/platform.js +4 -5
- package/dist/collection/utils/rtl/dir.js +1 -1
- package/dist/collection/utils/sanitization/index.js +276 -20
- package/dist/collection/utils/select-option-render.js +118 -0
- package/dist/collection/utils/slot-mutation-controller.js +1 -2
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/drag-element.js +2 -3
- package/dist/collection/utils/test/playwright/generator.js +3 -4
- package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
- package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
- package/dist/collection/utils/test/press-keys.js +10 -17
- package/dist/collection/utils/theme.js +6 -1
- package/dist/collection/utils/transition/ios.transition.js +9 -13
- package/dist/collection/utils/transition/md.transition.js +3 -4
- package/dist/docs.json +556 -1272
- package/dist/esm/{animation-DLJpuoEz.js → animation-CVK55yMY.js} +4 -4
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-Bk1_t4sH.js} +1 -1
- package/dist/esm/{button-active-BSpTQmS9.js → button-active-CdCqmeT0.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/{dir-C53feagD.js → dir-B-FxiyeI.js} +1 -1
- package/dist/esm/{format-CAmvpAez.js → format-sMi4BZ_l.js} +41 -31
- package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BfAlKlW5.js} +5 -7
- package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
- package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-DcHMMB9j.js} +4 -4
- package/dist/esm/{helpers-HEqiOzXb.js → helpers-BPcITY5s.js} +3 -3
- package/dist/esm/{index-BRHzoo00.js → index-B9GsUd2c.js} +2 -2
- package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
- package/dist/esm/{index-tcQvqkiX.js → index-D1CQtpUN.js} +5 -7
- package/dist/esm/index-DDa8edAS.js +424 -0
- package/dist/esm/{index-MEDq2S8l.js → index-DcUt1pPn.js} +2 -2
- package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
- package/dist/esm/{index-B_dQk_WE.js → index-DqVqy_Cy.js} +5 -5
- package/dist/esm/{index-Q6UPU0Ay.js → index-ks-BjikL.js} +6 -7
- package/dist/esm/index.js +16 -15
- package/dist/esm/{input-shims-D10mwcw1.js → input-shims-C1dCKVMO.js} +9 -11
- package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-Dd5xwlP6.js} +3 -4
- package/dist/esm/ion-accordion_2.entry.js +368 -340
- package/dist/esm/ion-action-sheet.entry.js +187 -76
- package/dist/esm/ion-alert.entry.js +272 -110
- package/dist/esm/ion-app_8.entry.js +306 -190
- package/dist/esm/ion-avatar_3.entry.js +10 -4
- package/dist/esm/ion-back-button.entry.js +47 -23
- package/dist/esm/ion-backdrop.entry.js +18 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +199 -121
- package/dist/esm/ion-button_2.entry.js +138 -66
- package/dist/esm/ion-card_5.entry.js +82 -30
- package/dist/esm/ion-checkbox.entry.js +152 -101
- package/dist/esm/ion-chip.entry.js +17 -11
- package/dist/esm/ion-col_3.entry.js +134 -10
- package/dist/esm/ion-datetime-button.entry.js +253 -241
- package/dist/esm/ion-datetime.entry.js +2765 -0
- package/dist/esm/ion-fab_3.entry.js +139 -81
- package/dist/esm/ion-img.entry.js +34 -12
- package/dist/esm/ion-infinite-scroll_2.entry.js +99 -71
- package/dist/esm/ion-input-otp.entry.js +433 -370
- package/dist/esm/ion-input-password-toggle.entry.js +33 -19
- package/dist/esm/ion-input.entry.js +314 -168
- package/dist/esm/ion-item-option_3.entry.js +91 -51
- package/dist/esm/ion-item_8.entry.js +181 -82
- package/dist/esm/ion-loading.entry.js +145 -59
- package/dist/esm/ion-menu_3.entry.js +163 -101
- package/dist/esm/ion-modal.entry.js +418 -251
- package/dist/esm/ion-nav_2.entry.js +100 -157
- package/dist/esm/ion-picker-column-option.entry.js +37 -33
- package/dist/esm/ion-picker-column.entry.js +417 -405
- package/dist/esm/ion-picker.entry.js +401 -392
- package/dist/esm/ion-popover.entry.js +319 -205
- package/dist/esm/ion-progress-bar.entry.js +31 -25
- package/dist/esm/ion-radio_2.entry.js +206 -133
- package/dist/esm/ion-range.entry.js +302 -237
- package/dist/esm/ion-refresher_2.entry.js +163 -91
- package/dist/esm/ion-reorder_2.entry.js +53 -23
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +175 -71
- package/dist/esm/ion-searchbar.entry.js +291 -200
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +28 -17
- package/dist/esm/ion-segment_2.entry.js +169 -126
- package/dist/esm/ion-select-modal.entry.js +104 -48
- package/dist/esm/ion-select_3.entry.js +760 -215
- package/dist/esm/ion-spinner.entry.js +24 -10
- package/dist/esm/ion-split-pane.entry.js +29 -16
- package/dist/esm/ion-tab-bar_2.entry.js +100 -41
- package/dist/esm/ion-tab_2.entry.js +53 -27
- package/dist/esm/ion-text.entry.js +11 -5
- package/dist/esm/ion-textarea.entry.js +263 -144
- package/dist/esm/ion-toast.entry.js +235 -116
- package/dist/esm/ion-toggle.entry.js +175 -122
- package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-5bZ91kOL.js} +13 -8
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-OcwIGkv9.js} +13 -17
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-ifd3ZrqY.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-D0msQmzI.js → md.transition-BetdF0bc.js} +7 -8
- package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-DBSn-Uat.js} +1 -1
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-DUzb9CQf.js} +48 -33
- package/dist/esm/select-option-render-DsW8svRr.js +121 -0
- package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-C-wNhea0.js} +3 -3
- package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-D6YSgAn7.js} +5 -5
- package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
- package/dist/html.html-data.json +52 -80
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01eaee58.entry.js +4 -0
- package/dist/ionic/p-0c567140.entry.js +4 -0
- package/dist/ionic/p-105bb794.entry.js +4 -0
- package/dist/ionic/p-10d55bb6.entry.js +4 -0
- package/dist/ionic/p-173a87d8.entry.js +4 -0
- package/dist/ionic/p-178da672.entry.js +4 -0
- package/dist/ionic/p-1ead2857.entry.js +4 -0
- package/dist/ionic/p-224e2464.entry.js +4 -0
- package/dist/ionic/p-2268e718.entry.js +4 -0
- package/dist/ionic/p-2b5283f3.entry.js +4 -0
- package/dist/ionic/p-2b6decac.entry.js +4 -0
- package/dist/ionic/p-2da5d9c6.entry.js +4 -0
- package/dist/ionic/p-31890acd.entry.js +4 -0
- package/dist/ionic/p-34ef7425.entry.js +4 -0
- package/dist/ionic/p-34f7c1d8.entry.js +4 -0
- package/dist/ionic/p-3b1e6fa4.entry.js +4 -0
- package/dist/ionic/p-42fefd2c.entry.js +4 -0
- package/dist/ionic/p-440cd489.entry.js +4 -0
- package/dist/ionic/{p-aaeedb6b.entry.js → p-460da491.entry.js} +1 -1
- package/dist/ionic/p-53f680e8.entry.js +4 -0
- package/dist/ionic/p-57ba508f.entry.js +4 -0
- package/dist/ionic/p-599e5a75.entry.js +4 -0
- package/dist/ionic/p-5f670a9e.entry.js +4 -0
- package/dist/ionic/p-63502088.entry.js +4 -0
- package/dist/ionic/p-6e6bf45d.entry.js +4 -0
- package/dist/ionic/p-6f0b6a48.entry.js +4 -0
- package/dist/ionic/p-7438c462.entry.js +4 -0
- package/dist/ionic/p-747716e7.entry.js +4 -0
- package/dist/ionic/p-7759fcaf.entry.js +4 -0
- package/dist/ionic/p-7a8338e2.entry.js +4 -0
- package/dist/ionic/p-80f9f1dc.entry.js +4 -0
- package/dist/ionic/p-83ff4dcb.entry.js +4 -0
- package/dist/ionic/p-86f03895.entry.js +4 -0
- package/dist/ionic/p-87b8d70e.entry.js +4 -0
- package/dist/ionic/p-888236bf.entry.js +4 -0
- package/dist/ionic/p-8a92ca23.entry.js +4 -0
- package/dist/ionic/p-8c9af4ad.entry.js +4 -0
- package/dist/ionic/p-9669f546.entry.js +4 -0
- package/dist/ionic/p-9bcd8b74.entry.js +4 -0
- package/dist/ionic/p-B-FxiyeI.js +4 -0
- package/dist/ionic/p-B2trYd8K.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/{p-DIuEbVLu.js → p-BNKr91bi.js} +1 -1
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BSzG1VcX.js +4 -0
- package/dist/ionic/p-BVgBHS96.js +4 -0
- package/dist/ionic/p-BX2IOAqC.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/p-BufXJ_A8.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-C73UOs4m.js +4 -0
- package/{components/p-B-JJgYSG.js → dist/ionic/p-CHpEzg-o.js} +1 -1
- package/dist/ionic/p-CUSwMljM.js +4 -0
- package/dist/ionic/p-CeOSrSdu.js +4 -0
- package/dist/ionic/p-CfkB7_FV.js +4 -0
- package/dist/ionic/p-CmKf4pgI.js +4 -0
- package/dist/ionic/p-CnM-CMw7.js +4 -0
- package/dist/ionic/p-D1CQtpUN.js +5 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-DVYb1IVZ.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-DfJ-SVJf.js +4 -0
- package/dist/ionic/p-DmXrLsoD.js +4 -0
- package/dist/ionic/p-DtLHAMFW.js +4 -0
- package/dist/ionic/p-Dtlob2JL.js +4 -0
- package/dist/ionic/p-F7ipfyOA.js +4 -0
- package/dist/ionic/{p-DoJvtrbw.js → p-I9ETXg5W.js} +1 -1
- package/dist/ionic/{p-Wk5HzclC.js → p-IaXd5VMv.js} +1 -1
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-aL0G45tD.js +4 -0
- package/dist/ionic/p-acbb97c3.entry.js +4 -0
- package/dist/ionic/p-aeb85531.entry.js +4 -0
- package/dist/ionic/p-b157f80d.entry.js +4 -0
- package/dist/ionic/p-b158de5d.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-b40c9715.entry.js} +1 -1
- package/dist/ionic/p-b852101e.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c0d81bee.entry.js +4 -0
- package/dist/ionic/p-c8a327fb.entry.js +4 -0
- package/dist/ionic/p-d42ae99f.entry.js +4 -0
- package/dist/ionic/p-d47ff529.entry.js +4 -0
- package/dist/ionic/p-eHi73fGE.js +4 -0
- package/dist/ionic/p-eeabce92.entry.js +4 -0
- package/dist/ionic/p-efc66d77.entry.js +4 -0
- package/dist/ionic/p-f6d203dc.entry.js +4 -0
- package/dist/ionic/p-u2a770LZ.js +4 -0
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +74 -311
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +0 -8
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
- package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
- package/hydrate/index.js +10278 -7052
- package/hydrate/index.mjs +10278 -7052
- package/package.json +54 -11
- 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-A3O24YmY.js +0 -4
- package/components/p-ABkNVeU9.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMI53wYL.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BlIAuGv2.js +0 -4
- package/components/p-Bnsn6KaP.js +0 -4
- package/components/p-BsBCoGa-.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-C53feagD.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CQGnMY3n.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-C_xFdyXe.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CkMSOsFF.js +0 -4
- package/components/p-Cl0B-RWe.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-CsNJ1ULL.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-CzCbeKys.js +0 -4
- package/components/p-D-aHdMxW.js +0 -4
- package/components/p-D0d8qTwj.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DCnGU1fF.js +0 -4
- package/components/p-DGvrK8dD.js +0 -4
- package/components/p-DHTSTb52.js +0 -4
- package/components/p-DJZp0KTQ.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DV5mPYQS.js +0 -4
- package/components/p-DWkAgceV.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-KEFO0w3i.js +0 -4
- package/components/p-Osve4qkc.js +0 -4
- package/components/p-SLS1rDZM.js +0 -4
- package/components/p-VWbRkLT7.js +0 -4
- package/components/p-aJ6PBUvj.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-gAg0kXZp.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-oD4kcBRX.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/components/p-scxfI1Dd.js +0 -4
- package/components/p-sijaAIYG.js +0 -4
- package/components/p-yzCsOZE2.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3164
- 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 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/esm/ion-datetime_3.entry.js +0 -3160
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0dc33652.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-10e833ef.entry.js +0 -4
- package/dist/ionic/p-20b1a044.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2a05aa64.entry.js +0 -4
- package/dist/ionic/p-2b204c59.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2fa58e80.entry.js +0 -4
- package/dist/ionic/p-3353c229.entry.js +0 -4
- package/dist/ionic/p-34586ead.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-390ca786.entry.js +0 -4
- package/dist/ionic/p-3ae5f277.entry.js +0 -4
- package/dist/ionic/p-4654ae1c.entry.js +0 -4
- package/dist/ionic/p-4745f534.entry.js +0 -4
- package/dist/ionic/p-4858af1f.entry.js +0 -4
- package/dist/ionic/p-485fda23.entry.js +0 -4
- package/dist/ionic/p-4ac4f3d6.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4e92a11f.entry.js +0 -4
- package/dist/ionic/p-5018dfc8.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5eb8e86d.entry.js +0 -4
- package/dist/ionic/p-65ebdf1b.entry.js +0 -4
- package/dist/ionic/p-75dc25ba.entry.js +0 -4
- package/dist/ionic/p-7c319341.entry.js +0 -4
- package/dist/ionic/p-829367ed.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-874b4bd8.entry.js +0 -4
- package/dist/ionic/p-8eb8ee76.entry.js +0 -4
- package/dist/ionic/p-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9f1103ce.entry.js +0 -4
- package/dist/ionic/p-9f9db3a2.entry.js +0 -4
- package/dist/ionic/p-BGqMS-oh.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-C53feagD.js +0 -4
- package/dist/ionic/p-CFlfIb2g.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-Cl0B-RWe.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-Cx3IXROA.js +0 -4
- package/dist/ionic/p-D-3ycHmd.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-D4uTWt4-.js +0 -4
- package/dist/ionic/p-DSG2s2Eb.js +0 -4
- package/dist/ionic/p-Dfbt-q2k.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-VAemlbDS.js +0 -4
- package/dist/ionic/p-a3bdcae6.entry.js +0 -4
- package/dist/ionic/p-ad306193.entry.js +0 -4
- package/dist/ionic/p-b6a7397c.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ca2ab74d.entry.js +0 -4
- package/dist/ionic/p-d889ff6d.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-e0be05c5.entry.js +0 -4
- package/dist/ionic/p-ef4c3bee.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- package/dist/ionic/p-viFHDgRs.js +0 -4
- package/dist/ionic/p-xWb6fgfq.js +0 -4
- 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 -158
- 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/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var helpers = require('./helpers-
|
|
8
|
-
var dir = require('./dir-
|
|
9
|
-
var theme = require('./theme-
|
|
10
|
-
var index$1 = require('./index-
|
|
11
|
-
var ionicGlobal = require('./ionic-global-
|
|
6
|
+
var index = require('./index-CAThePqm.js');
|
|
7
|
+
var helpers = require('./helpers-DURh1XdY.js');
|
|
8
|
+
var dir = require('./dir-Brx7VkvP.js');
|
|
9
|
+
var theme = require('./theme-Bw0rpaNN.js');
|
|
10
|
+
var index$1 = require('./index-wOmugbdg.js');
|
|
11
|
+
var ionicGlobal = require('./ionic-global-dMut1Czp.js');
|
|
12
12
|
|
|
13
13
|
const searchbarIosCss = () => `.sc-ion-searchbar-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-ios-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:inherit}.searchbar-search-icon.sc-ion-searchbar-ios{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ios{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ios{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;border-radius:var(--border-radius);display:block;width:100%;min-height:inherit;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ios::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ios>div.sc-ion-searchbar-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ios:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{display:block}.searchbar-disabled.sc-ion-searchbar-ios-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-ios-h{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.07);--border-radius:10px;--box-shadow:none;--cancel-button-color:var(--ion-color-primary, #0054e9);--clear-button-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));--color:var(--ion-text-color, #000);--icon-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:12px;padding-bottom:12px;min-height:60px;contain:content}.searchbar-input-container.sc-ion-searchbar-ios{min-height:36px}.searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:calc(50% - 60px);margin-inline-start:calc(50% - 60px);top:0;position:absolute;width:1.375rem;height:100%;contain:strict}.searchbar-search-icon.sc-ion-searchbar-ios{inset-inline-start:5px}.searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:6px;padding-bottom:6px;height:100%;font-size:1.0625rem;font-weight:400;contain:strict}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem;-webkit-padding-end:1.75rem;padding-inline-end:1.75rem}.searchbar-clear-button.sc-ion-searchbar-ios{top:0;background-position:center;position:absolute;width:1.875rem;height:100%;border:0;background-color:transparent}.searchbar-clear-button.sc-ion-searchbar-ios{inset-inline-end:0}.searchbar-clear-icon.sc-ion-searchbar-ios{width:1.125rem;height:100%}.searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0;background-color:transparent;font-size:17px}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:0;margin-inline-start:0}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:1.875rem;padding-inline-start:1.875rem}.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{display:block}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-transition:all 300ms ease;transition:all 300ms ease}.searchbar-animated.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{opacity:1;pointer-events:auto}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-margin-end:-100%;margin-inline-end:-100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:all 300ms ease;transition:all 300ms ease;opacity:0;pointer-events:none}.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-transition-duration:0ms;transition-duration:0ms}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{color:var(--ion-color-base)}@media (any-hover: hover){.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios:hover{color:var(--ion-color-tint)}}ion-toolbar.sc-ion-searchbar-ios-h,ion-toolbar .sc-ion-searchbar-ios-h{padding-top:1px;padding-bottom:15px;min-height:52px}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color),ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color){color:inherit}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios{color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios{background:rgba(var(--ion-color-contrast-rgb), 0.07);color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}`;
|
|
14
14
|
|
|
@@ -24,185 +24,23 @@ const Searchbar = class {
|
|
|
24
24
|
this.ionBlur = index.createEvent(this, "ionBlur", 7);
|
|
25
25
|
this.ionFocus = index.createEvent(this, "ionFocus", 7);
|
|
26
26
|
this.ionStyle = index.createEvent(this, "ionStyle", 7);
|
|
27
|
-
this.isCancelVisible = false;
|
|
28
|
-
this.shouldAlignLeft = true;
|
|
29
|
-
this.inputId = `ion-searchbar-${searchbarIds++}`;
|
|
30
|
-
this.inheritedAttributes = {};
|
|
31
|
-
this.focused = false;
|
|
32
|
-
this.noAnimate = true;
|
|
33
|
-
/**
|
|
34
|
-
* If `true`, enable searchbar animation.
|
|
35
|
-
*/
|
|
36
|
-
this.animated = false;
|
|
37
|
-
/**
|
|
38
|
-
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
39
|
-
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
40
|
-
*/
|
|
41
|
-
this.autocapitalize = 'off';
|
|
42
|
-
/**
|
|
43
|
-
* Set the input's autocomplete property.
|
|
44
|
-
*/
|
|
45
|
-
this.autocomplete = 'off';
|
|
46
|
-
/**
|
|
47
|
-
* Set the input's autocorrect property.
|
|
48
|
-
*/
|
|
49
|
-
this.autocorrect = 'off';
|
|
50
|
-
/**
|
|
51
|
-
* Set the cancel button icon. Only applies to `md` mode.
|
|
52
|
-
* Defaults to `arrow-back-sharp`.
|
|
53
|
-
*/
|
|
54
|
-
this.cancelButtonIcon = index.config.get('backButtonIcon', index$1.arrowBackSharp);
|
|
55
|
-
/**
|
|
56
|
-
* Set the cancel button text. Only applies to `ios` mode.
|
|
57
|
-
*/
|
|
58
|
-
this.cancelButtonText = 'Cancel';
|
|
59
|
-
/**
|
|
60
|
-
* If `true`, the user cannot interact with the input.
|
|
61
|
-
*/
|
|
62
|
-
this.disabled = false;
|
|
63
|
-
/**
|
|
64
|
-
* If used in a form, set the name of the control, which is submitted with the form data.
|
|
65
|
-
*/
|
|
66
|
-
this.name = this.inputId;
|
|
67
|
-
/**
|
|
68
|
-
* Set the input's placeholder.
|
|
69
|
-
* `placeholder` can accept either plaintext or HTML as a string.
|
|
70
|
-
* To display characters normally reserved for HTML, they
|
|
71
|
-
* must be escaped. For example `<Ionic>` would become
|
|
72
|
-
* `<Ionic>`
|
|
73
|
-
*
|
|
74
|
-
* For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)
|
|
75
|
-
*/
|
|
76
|
-
this.placeholder = 'Search';
|
|
77
|
-
/**
|
|
78
|
-
* Sets the behavior for the cancel button. Defaults to `"never"`.
|
|
79
|
-
* Setting to `"focus"` shows the cancel button on focus.
|
|
80
|
-
* Setting to `"never"` hides the cancel button.
|
|
81
|
-
* Setting to `"always"` shows the cancel button regardless
|
|
82
|
-
* of focus state.
|
|
83
|
-
*/
|
|
84
|
-
this.showCancelButton = 'never';
|
|
85
|
-
/**
|
|
86
|
-
* Sets the behavior for the clear button. Defaults to `"focus"`.
|
|
87
|
-
* Setting to `"focus"` shows the clear button on focus if the
|
|
88
|
-
* input is not empty.
|
|
89
|
-
* Setting to `"never"` hides the clear button.
|
|
90
|
-
* Setting to `"always"` shows the clear button regardless
|
|
91
|
-
* of focus state, but only if the input is not empty.
|
|
92
|
-
*/
|
|
93
|
-
this.showClearButton = 'always';
|
|
94
|
-
/**
|
|
95
|
-
* If `true`, enable spellcheck on the input.
|
|
96
|
-
*/
|
|
97
|
-
this.spellcheck = false;
|
|
98
|
-
/**
|
|
99
|
-
* Set the type of the input.
|
|
100
|
-
*/
|
|
101
|
-
this.type = 'search';
|
|
102
|
-
/**
|
|
103
|
-
* the value of the searchbar.
|
|
104
|
-
*/
|
|
105
|
-
this.value = '';
|
|
106
|
-
/**
|
|
107
|
-
* Clears the input field and triggers the control change.
|
|
108
|
-
*/
|
|
109
|
-
this.onClearInput = async (shouldFocus) => {
|
|
110
|
-
if (this.clearTimeout) {
|
|
111
|
-
clearTimeout(this.clearTimeout);
|
|
112
|
-
}
|
|
113
|
-
this.ionClear.emit();
|
|
114
|
-
return new Promise((resolve) => {
|
|
115
|
-
// setTimeout() fixes https://github.com/ionic-team/ionic-framework/issues/7527
|
|
116
|
-
// wait for 4 frames
|
|
117
|
-
this.clearTimeout = setTimeout(() => {
|
|
118
|
-
const value = this.getValue();
|
|
119
|
-
if (value !== '') {
|
|
120
|
-
this.value = '';
|
|
121
|
-
this.emitInputChange();
|
|
122
|
-
/**
|
|
123
|
-
* When tapping clear button
|
|
124
|
-
* ensure input is focused after
|
|
125
|
-
* clearing input so users
|
|
126
|
-
* can quickly start typing.
|
|
127
|
-
*/
|
|
128
|
-
if (shouldFocus && !this.focused) {
|
|
129
|
-
this.setFocus();
|
|
130
|
-
/**
|
|
131
|
-
* The setFocus call above will clear focusedValue,
|
|
132
|
-
* but ionChange will never have gotten a chance to
|
|
133
|
-
* fire. Manually revert focusedValue so onBlur can
|
|
134
|
-
* compare against what was in the box before the clear.
|
|
135
|
-
*/
|
|
136
|
-
this.focusedValue = value;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
resolve();
|
|
140
|
-
}, 16 * 4);
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
/**
|
|
144
|
-
* Clears the input field and tells the input to blur since
|
|
145
|
-
* the clearInput function doesn't want the input to blur
|
|
146
|
-
* then calls the custom cancel function if the user passed one in.
|
|
147
|
-
*/
|
|
148
|
-
this.onCancelSearchbar = async (ev) => {
|
|
149
|
-
if (ev) {
|
|
150
|
-
ev.preventDefault();
|
|
151
|
-
ev.stopPropagation();
|
|
152
|
-
}
|
|
153
|
-
this.ionCancel.emit();
|
|
154
|
-
// get cached values before clearing the input
|
|
155
|
-
const value = this.getValue();
|
|
156
|
-
const focused = this.focused;
|
|
157
|
-
await this.onClearInput();
|
|
158
|
-
/**
|
|
159
|
-
* If there used to be something in the box, and we weren't focused
|
|
160
|
-
* beforehand (meaning no blur fired that would already handle this),
|
|
161
|
-
* manually fire ionChange.
|
|
162
|
-
*/
|
|
163
|
-
if (value && !focused) {
|
|
164
|
-
this.emitValueChange(ev);
|
|
165
|
-
}
|
|
166
|
-
if (this.nativeInput) {
|
|
167
|
-
this.nativeInput.blur();
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
/**
|
|
171
|
-
* Update the Searchbar input value when the input changes
|
|
172
|
-
*/
|
|
173
|
-
this.onInput = (ev) => {
|
|
174
|
-
const input = ev.target;
|
|
175
|
-
if (input) {
|
|
176
|
-
this.value = input.value;
|
|
177
|
-
}
|
|
178
|
-
this.emitInputChange(ev);
|
|
179
|
-
};
|
|
180
|
-
this.onChange = (ev) => {
|
|
181
|
-
this.emitValueChange(ev);
|
|
182
|
-
};
|
|
183
|
-
/**
|
|
184
|
-
* Sets the Searchbar to not focused and checks if it should align left
|
|
185
|
-
* based on whether there is a value in the searchbar or not.
|
|
186
|
-
*/
|
|
187
|
-
this.onBlur = (ev) => {
|
|
188
|
-
this.focused = false;
|
|
189
|
-
this.ionBlur.emit();
|
|
190
|
-
this.positionElements();
|
|
191
|
-
if (this.focusedValue !== this.value) {
|
|
192
|
-
this.emitValueChange(ev);
|
|
193
|
-
}
|
|
194
|
-
this.focusedValue = undefined;
|
|
195
|
-
};
|
|
196
|
-
/**
|
|
197
|
-
* Sets the Searchbar to focused and active on input focus.
|
|
198
|
-
*/
|
|
199
|
-
this.onFocus = () => {
|
|
200
|
-
this.focused = true;
|
|
201
|
-
this.focusedValue = this.value;
|
|
202
|
-
this.ionFocus.emit();
|
|
203
|
-
this.positionElements();
|
|
204
|
-
};
|
|
205
27
|
}
|
|
28
|
+
nativeInput;
|
|
29
|
+
isCancelVisible = false;
|
|
30
|
+
shouldAlignLeft = true;
|
|
31
|
+
originalIonInput;
|
|
32
|
+
inputId = `ion-searchbar-${searchbarIds++}`;
|
|
33
|
+
inheritedAttributes = {};
|
|
34
|
+
loadTimeout;
|
|
35
|
+
clearTimeout;
|
|
36
|
+
searchIconResizeObserver;
|
|
37
|
+
/**
|
|
38
|
+
* The value of the input when the textarea is focused.
|
|
39
|
+
*/
|
|
40
|
+
focusedValue;
|
|
41
|
+
get el() { return index.getElement(this); }
|
|
42
|
+
focused = false;
|
|
43
|
+
noAnimate = true;
|
|
206
44
|
/**
|
|
207
45
|
* lang and dir are globally enumerated attributes.
|
|
208
46
|
* As a result, creating these as properties
|
|
@@ -211,21 +49,177 @@ const Searchbar = class {
|
|
|
211
49
|
* to the inner `<input>` element.
|
|
212
50
|
*/
|
|
213
51
|
onLangChanged(newValue) {
|
|
214
|
-
this.inheritedAttributes =
|
|
52
|
+
this.inheritedAttributes = {
|
|
53
|
+
...this.inheritedAttributes,
|
|
54
|
+
lang: newValue,
|
|
55
|
+
};
|
|
215
56
|
index.forceUpdate(this);
|
|
216
57
|
}
|
|
217
58
|
onDirChanged(newValue) {
|
|
218
|
-
this.inheritedAttributes =
|
|
59
|
+
this.inheritedAttributes = {
|
|
60
|
+
...this.inheritedAttributes,
|
|
61
|
+
dir: newValue,
|
|
62
|
+
};
|
|
219
63
|
index.forceUpdate(this);
|
|
220
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* The color to use from your application's color palette.
|
|
67
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
68
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
69
|
+
*/
|
|
70
|
+
color;
|
|
71
|
+
/**
|
|
72
|
+
* If `true`, enable searchbar animation.
|
|
73
|
+
*/
|
|
74
|
+
animated = false;
|
|
75
|
+
/**
|
|
76
|
+
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
77
|
+
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
78
|
+
*/
|
|
79
|
+
autocapitalize = 'off';
|
|
80
|
+
/**
|
|
81
|
+
* Set the input's autocomplete property.
|
|
82
|
+
*/
|
|
83
|
+
autocomplete = 'off';
|
|
84
|
+
/**
|
|
85
|
+
* Set the input's autocorrect property.
|
|
86
|
+
*/
|
|
87
|
+
autocorrect = false;
|
|
88
|
+
/**
|
|
89
|
+
* Set the cancel button icon. Only applies to `md` mode.
|
|
90
|
+
* Defaults to `arrow-back-sharp`.
|
|
91
|
+
*/
|
|
92
|
+
cancelButtonIcon = index.config.get('backButtonIcon', index$1.arrowBackSharp);
|
|
93
|
+
/**
|
|
94
|
+
* Set the cancel button text. Only applies to `ios` mode.
|
|
95
|
+
*/
|
|
96
|
+
cancelButtonText = 'Cancel';
|
|
97
|
+
/**
|
|
98
|
+
* Set the clear icon. Defaults to `close-circle` for `ios` and `close-sharp` for `md`.
|
|
99
|
+
*/
|
|
100
|
+
clearIcon;
|
|
101
|
+
/**
|
|
102
|
+
* Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke.
|
|
103
|
+
*/
|
|
104
|
+
debounce;
|
|
221
105
|
debounceChanged() {
|
|
222
106
|
const { ionInput, debounce, originalIonInput } = this;
|
|
223
107
|
/**
|
|
224
108
|
* If debounce is undefined, we have to manually revert the ionInput emitter in case
|
|
225
109
|
* debounce used to be set to a number. Otherwise, the event would stay debounced.
|
|
226
110
|
*/
|
|
227
|
-
this.ionInput = debounce === undefined ? originalIonInput
|
|
111
|
+
this.ionInput = debounce === undefined ? originalIonInput ?? ionInput : helpers.debounceEvent(ionInput, debounce);
|
|
228
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* If `true`, the user cannot interact with the input.
|
|
115
|
+
*/
|
|
116
|
+
disabled = false;
|
|
117
|
+
/**
|
|
118
|
+
* A hint to the browser for which keyboard to display.
|
|
119
|
+
* Possible values: `"none"`, `"text"`, `"tel"`, `"url"`,
|
|
120
|
+
* `"email"`, `"numeric"`, `"decimal"`, and `"search"`.
|
|
121
|
+
*/
|
|
122
|
+
inputmode;
|
|
123
|
+
/**
|
|
124
|
+
* A hint to the browser for which enter key to display.
|
|
125
|
+
* Possible values: `"enter"`, `"done"`, `"go"`, `"next"`,
|
|
126
|
+
* `"previous"`, `"search"`, and `"send"`.
|
|
127
|
+
*/
|
|
128
|
+
enterkeyhint;
|
|
129
|
+
/**
|
|
130
|
+
* This attribute specifies the maximum number of characters that the user can enter.
|
|
131
|
+
*/
|
|
132
|
+
maxlength;
|
|
133
|
+
/**
|
|
134
|
+
* This attribute specifies the minimum number of characters that the user can enter.
|
|
135
|
+
*/
|
|
136
|
+
minlength;
|
|
137
|
+
/**
|
|
138
|
+
* If used in a form, set the name of the control, which is submitted with the form data.
|
|
139
|
+
*/
|
|
140
|
+
name = this.inputId;
|
|
141
|
+
/**
|
|
142
|
+
* Set the input's placeholder.
|
|
143
|
+
* `placeholder` can accept either plaintext or HTML as a string.
|
|
144
|
+
* To display characters normally reserved for HTML, they
|
|
145
|
+
* must be escaped. For example `<Ionic>` would become
|
|
146
|
+
* `<Ionic>`
|
|
147
|
+
*
|
|
148
|
+
* For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)
|
|
149
|
+
*/
|
|
150
|
+
placeholder = 'Search';
|
|
151
|
+
/**
|
|
152
|
+
* The icon to use as the search icon. Defaults to `search-outline` in
|
|
153
|
+
* `ios` mode and `search-sharp` in `md` mode.
|
|
154
|
+
*/
|
|
155
|
+
searchIcon;
|
|
156
|
+
/**
|
|
157
|
+
* Sets the behavior for the cancel button. Defaults to `"never"`.
|
|
158
|
+
* Setting to `"focus"` shows the cancel button on focus.
|
|
159
|
+
* Setting to `"never"` hides the cancel button.
|
|
160
|
+
* Setting to `"always"` shows the cancel button regardless
|
|
161
|
+
* of focus state.
|
|
162
|
+
*/
|
|
163
|
+
showCancelButton = 'never';
|
|
164
|
+
/**
|
|
165
|
+
* Sets the behavior for the clear button. Defaults to `"focus"`.
|
|
166
|
+
* Setting to `"focus"` shows the clear button on focus if the
|
|
167
|
+
* input is not empty.
|
|
168
|
+
* Setting to `"never"` hides the clear button.
|
|
169
|
+
* Setting to `"always"` shows the clear button regardless
|
|
170
|
+
* of focus state, but only if the input is not empty.
|
|
171
|
+
*/
|
|
172
|
+
showClearButton = 'always';
|
|
173
|
+
/**
|
|
174
|
+
* If `true`, enable spellcheck on the input.
|
|
175
|
+
*/
|
|
176
|
+
spellcheck = false;
|
|
177
|
+
/**
|
|
178
|
+
* Set the type of the input.
|
|
179
|
+
*/
|
|
180
|
+
type = 'search';
|
|
181
|
+
/**
|
|
182
|
+
* the value of the searchbar.
|
|
183
|
+
*/
|
|
184
|
+
value = '';
|
|
185
|
+
/**
|
|
186
|
+
* Emitted when the `value` of the `ion-searchbar` element has changed.
|
|
187
|
+
*/
|
|
188
|
+
ionInput;
|
|
189
|
+
/**
|
|
190
|
+
* The `ionChange` event is fired for `<ion-searchbar>` elements when the user
|
|
191
|
+
* modifies the element's value. Unlike the `ionInput` event, the `ionChange`
|
|
192
|
+
* event is not necessarily fired for each alteration to an element's value.
|
|
193
|
+
*
|
|
194
|
+
* The `ionChange` event is fired when the value has been committed
|
|
195
|
+
* by the user. This can happen when the element loses focus or
|
|
196
|
+
* when the "Enter" key is pressed. `ionChange` can also fire
|
|
197
|
+
* when clicking the clear or cancel buttons.
|
|
198
|
+
*
|
|
199
|
+
* This event will not emit when programmatically setting the `value` property.
|
|
200
|
+
*/
|
|
201
|
+
ionChange;
|
|
202
|
+
/**
|
|
203
|
+
* Emitted when the cancel button is clicked.
|
|
204
|
+
*/
|
|
205
|
+
ionCancel;
|
|
206
|
+
/**
|
|
207
|
+
* Emitted when the clear input button is clicked.
|
|
208
|
+
*/
|
|
209
|
+
ionClear;
|
|
210
|
+
/**
|
|
211
|
+
* Emitted when the input loses focus.
|
|
212
|
+
*/
|
|
213
|
+
ionBlur;
|
|
214
|
+
/**
|
|
215
|
+
* Emitted when the input has focus.
|
|
216
|
+
*/
|
|
217
|
+
ionFocus;
|
|
218
|
+
/**
|
|
219
|
+
* Emitted when the styles change.
|
|
220
|
+
* @internal
|
|
221
|
+
*/
|
|
222
|
+
ionStyle;
|
|
229
223
|
valueChanged() {
|
|
230
224
|
const inputEl = this.nativeInput;
|
|
231
225
|
const value = this.getValue();
|
|
@@ -243,7 +237,9 @@ const Searchbar = class {
|
|
|
243
237
|
this.emitStyle();
|
|
244
238
|
}
|
|
245
239
|
componentWillLoad() {
|
|
246
|
-
this.inheritedAttributes =
|
|
240
|
+
this.inheritedAttributes = {
|
|
241
|
+
...helpers.inheritAttributes(this.el, ['lang', 'dir']),
|
|
242
|
+
};
|
|
247
243
|
}
|
|
248
244
|
componentDidLoad() {
|
|
249
245
|
this.originalIonInput = this.ionInput;
|
|
@@ -254,14 +250,13 @@ const Searchbar = class {
|
|
|
254
250
|
}, 300);
|
|
255
251
|
}
|
|
256
252
|
disconnectedCallback() {
|
|
257
|
-
var _a;
|
|
258
253
|
if (this.loadTimeout) {
|
|
259
254
|
clearTimeout(this.loadTimeout);
|
|
260
255
|
}
|
|
261
256
|
if (this.clearTimeout) {
|
|
262
257
|
clearTimeout(this.clearTimeout);
|
|
263
258
|
}
|
|
264
|
-
|
|
259
|
+
this.searchIconResizeObserver?.disconnect();
|
|
265
260
|
}
|
|
266
261
|
emitStyle() {
|
|
267
262
|
this.ionStyle.emit({
|
|
@@ -317,6 +312,105 @@ const Searchbar = class {
|
|
|
317
312
|
const { value } = this;
|
|
318
313
|
this.ionInput.emit({ value, event });
|
|
319
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Clears the input field and triggers the control change.
|
|
317
|
+
*/
|
|
318
|
+
onClearInput = async (shouldFocus) => {
|
|
319
|
+
if (this.clearTimeout) {
|
|
320
|
+
clearTimeout(this.clearTimeout);
|
|
321
|
+
}
|
|
322
|
+
this.ionClear.emit();
|
|
323
|
+
return new Promise((resolve) => {
|
|
324
|
+
// setTimeout() fixes https://github.com/ionic-team/ionic-framework/issues/7527
|
|
325
|
+
// wait for 4 frames
|
|
326
|
+
this.clearTimeout = setTimeout(() => {
|
|
327
|
+
const value = this.getValue();
|
|
328
|
+
if (value !== '') {
|
|
329
|
+
this.value = '';
|
|
330
|
+
this.emitInputChange();
|
|
331
|
+
/**
|
|
332
|
+
* When tapping clear button
|
|
333
|
+
* ensure input is focused after
|
|
334
|
+
* clearing input so users
|
|
335
|
+
* can quickly start typing.
|
|
336
|
+
*/
|
|
337
|
+
if (shouldFocus && !this.focused) {
|
|
338
|
+
this.setFocus();
|
|
339
|
+
/**
|
|
340
|
+
* The setFocus call above will clear focusedValue,
|
|
341
|
+
* but ionChange will never have gotten a chance to
|
|
342
|
+
* fire. Manually revert focusedValue so onBlur can
|
|
343
|
+
* compare against what was in the box before the clear.
|
|
344
|
+
*/
|
|
345
|
+
this.focusedValue = value;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
resolve();
|
|
349
|
+
}, 16 * 4);
|
|
350
|
+
});
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* Clears the input field and tells the input to blur since
|
|
354
|
+
* the clearInput function doesn't want the input to blur
|
|
355
|
+
* then calls the custom cancel function if the user passed one in.
|
|
356
|
+
*/
|
|
357
|
+
onCancelSearchbar = async (ev) => {
|
|
358
|
+
if (ev) {
|
|
359
|
+
ev.preventDefault();
|
|
360
|
+
ev.stopPropagation();
|
|
361
|
+
}
|
|
362
|
+
this.ionCancel.emit();
|
|
363
|
+
// get cached values before clearing the input
|
|
364
|
+
const value = this.getValue();
|
|
365
|
+
const focused = this.focused;
|
|
366
|
+
await this.onClearInput();
|
|
367
|
+
/**
|
|
368
|
+
* If there used to be something in the box, and we weren't focused
|
|
369
|
+
* beforehand (meaning no blur fired that would already handle this),
|
|
370
|
+
* manually fire ionChange.
|
|
371
|
+
*/
|
|
372
|
+
if (value && !focused) {
|
|
373
|
+
this.emitValueChange(ev);
|
|
374
|
+
}
|
|
375
|
+
if (this.nativeInput) {
|
|
376
|
+
this.nativeInput.blur();
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* Update the Searchbar input value when the input changes
|
|
381
|
+
*/
|
|
382
|
+
onInput = (ev) => {
|
|
383
|
+
const input = ev.target;
|
|
384
|
+
if (input) {
|
|
385
|
+
this.value = input.value;
|
|
386
|
+
}
|
|
387
|
+
this.emitInputChange(ev);
|
|
388
|
+
};
|
|
389
|
+
onChange = (ev) => {
|
|
390
|
+
this.emitValueChange(ev);
|
|
391
|
+
};
|
|
392
|
+
/**
|
|
393
|
+
* Sets the Searchbar to not focused and checks if it should align left
|
|
394
|
+
* based on whether there is a value in the searchbar or not.
|
|
395
|
+
*/
|
|
396
|
+
onBlur = (ev) => {
|
|
397
|
+
this.focused = false;
|
|
398
|
+
this.ionBlur.emit();
|
|
399
|
+
this.positionElements();
|
|
400
|
+
if (this.focusedValue !== this.value) {
|
|
401
|
+
this.emitValueChange(ev);
|
|
402
|
+
}
|
|
403
|
+
this.focusedValue = undefined;
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Sets the Searchbar to focused and active on input focus.
|
|
407
|
+
*/
|
|
408
|
+
onFocus = () => {
|
|
409
|
+
this.focused = true;
|
|
410
|
+
this.focusedValue = this.value;
|
|
411
|
+
this.ionFocus.emit();
|
|
412
|
+
this.positionElements();
|
|
413
|
+
};
|
|
320
414
|
/**
|
|
321
415
|
* Positions the input search icon, placeholder, and the cancel button
|
|
322
416
|
* based on the input value and if it is focused. (ios only)
|
|
@@ -359,7 +453,6 @@ const Searchbar = class {
|
|
|
359
453
|
doc.body.appendChild(tempSpan);
|
|
360
454
|
// Get the width of the span then remove it
|
|
361
455
|
helpers.raf(() => {
|
|
362
|
-
var _a, _b;
|
|
363
456
|
const textWidth = tempSpan.offsetWidth;
|
|
364
457
|
tempSpan.remove();
|
|
365
458
|
// Calculate the input padding
|
|
@@ -378,15 +471,14 @@ const Searchbar = class {
|
|
|
378
471
|
* If it is zero, set up a ResizeObserver and call this function when it observes a width greater than 0.
|
|
379
472
|
*/
|
|
380
473
|
if (iconWidth === 0) {
|
|
381
|
-
|
|
474
|
+
this.searchIconResizeObserver?.disconnect();
|
|
382
475
|
this.searchIconResizeObserver = new ResizeObserver((entries) => {
|
|
383
|
-
var _a;
|
|
384
476
|
if (entries[0].contentRect.width > 0) {
|
|
385
|
-
|
|
477
|
+
this.searchIconResizeObserver?.disconnect();
|
|
386
478
|
this.positionPlaceholder();
|
|
387
479
|
}
|
|
388
480
|
});
|
|
389
|
-
|
|
481
|
+
this.searchIconResizeObserver?.observe(iconEl);
|
|
390
482
|
return;
|
|
391
483
|
}
|
|
392
484
|
const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconWidth + 8) + 'px)';
|
|
@@ -470,8 +562,8 @@ const Searchbar = class {
|
|
|
470
562
|
const clearIcon = this.clearIcon || (mode === 'ios' ? index$1.closeCircle : index$1.closeSharp);
|
|
471
563
|
const searchIcon = this.searchIcon || (mode === 'ios' ? index$1.searchOutline : index$1.searchSharp);
|
|
472
564
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
473
|
-
const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '
|
|
474
|
-
return (index.h(index.Host, { key: '
|
|
565
|
+
const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '73964da43dbd099fc7f3d30cbc4da11087701ac5', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '27335a0e35f6c253c074685fa0b088404927bcbb', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
566
|
+
return (index.h(index.Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
|
|
475
567
|
[mode]: true,
|
|
476
568
|
'searchbar-animated': animated,
|
|
477
569
|
'searchbar-disabled': this.disabled,
|
|
@@ -481,16 +573,15 @@ const Searchbar = class {
|
|
|
481
573
|
'searchbar-has-focus': this.focused,
|
|
482
574
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
483
575
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
484
|
-
}) }, index.h("div", { key: '
|
|
576
|
+
}) }, index.h("div", { key: '587e1950e329cfb9d3658be5b2a6491e7af9321a', class: "searchbar-input-container" }, index.h("input", { key: '7f78a3d22cce03af277a538b4d9f85faddf1fa80', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck, ...this.inheritedAttributes }), mode === 'md' && cancelButton, index.h("ion-icon", { key: '9fd3e458978b64e9e3358bcbb26471753f6ff2a6', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: 'c7864c85923668dfa25f5fc4a70c7dbf6da191b7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
485
577
|
/**
|
|
486
578
|
* This prevents mobile browsers from
|
|
487
579
|
* blurring the input when the clear
|
|
488
580
|
* button is activated.
|
|
489
581
|
*/
|
|
490
582
|
ev.preventDefault();
|
|
491
|
-
}, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '
|
|
583
|
+
}, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '47e7a15c6c6d4df4c54c62b042842e499627da05', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
492
584
|
}
|
|
493
|
-
get el() { return index.getElement(this); }
|
|
494
585
|
static get watchers() { return {
|
|
495
586
|
"lang": [{
|
|
496
587
|
"onLangChanged": 0
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-CAThePqm.js');
|
|
7
7
|
|
|
8
8
|
const segmentContentCss = () => `:host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%;min-height:1px;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;}:host::-webkit-scrollbar{display:none}`;
|
|
9
9
|
|
|
@@ -12,7 +12,7 @@ const SegmentContent = class {
|
|
|
12
12
|
index.registerInstance(this, hostRef);
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
|
-
return (index.h(index.Host, { key: '
|
|
15
|
+
return (index.h(index.Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, index.h("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
SegmentContent.style = segmentContentCss();
|