@ionic/core 8.7.4-dev.11756220757.185b8cbf → 8.7.4-dev.11756465095.1387c832
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/action-sheet.js +13 -9
- package/components/alert.js +14 -11
- package/components/animation.js +1 -1
- package/components/backdrop.js +9 -6
- package/components/button.js +41 -10
- package/components/buttons.js +11 -8
- package/components/capacitor.js +1 -1
- package/components/caret-down.js +6 -0
- package/components/caret-left.js +6 -0
- package/components/caret-right.js +6 -0
- package/components/checkbox.js +31 -12
- package/components/content.js +14 -12
- package/components/data.js +5 -5
- package/components/focus-visible.js +23 -1
- package/components/framework-delegate.js +3 -1
- package/components/header.js +28 -16
- package/components/helpers.js +42 -3
- package/components/index5.js +8 -8
- package/components/index6.js +1 -1
- package/components/index7.js +111 -150
- package/components/index8.js +150 -111
- package/components/input-shims.js +2 -2
- package/components/input.utils.js +1 -1
- package/components/ion-accordion-group.js +23 -5
- package/components/ion-accordion.js +32 -21
- package/components/ion-app.js +12 -77
- package/components/ion-avatar.js +58 -5
- package/components/ion-back-button.js +27 -19
- package/components/ion-badge.js +73 -9
- package/components/ion-breadcrumb.js +43 -10
- package/components/ion-breadcrumbs.js +8 -5
- package/components/ion-card-content.js +10 -7
- package/components/ion-card-header.js +9 -6
- package/components/ion-card-subtitle.js +8 -5
- package/components/ion-card-title.js +8 -5
- package/components/ion-card.js +21 -9
- package/components/ion-chip.js +53 -8
- package/components/ion-col.js +5 -5
- package/components/ion-datetime-button.js +8 -5
- package/components/ion-datetime.js +100 -22
- package/components/ion-divider.d.ts +11 -0
- package/components/ion-divider.js +70 -0
- package/components/ion-fab-button.js +31 -15
- package/components/ion-fab-list.js +5 -5
- package/components/ion-fab.js +6 -6
- package/components/ion-footer.js +18 -13
- package/components/ion-grid.js +5 -5
- package/components/ion-img.js +5 -2
- package/components/ion-infinite-scroll-content.js +11 -8
- package/components/ion-infinite-scroll.js +78 -6
- package/components/ion-input-otp.js +9 -6
- package/components/ion-input-password-toggle.js +51 -13
- package/components/ion-input.js +125 -88
- package/components/ion-item-divider.js +8 -5
- package/components/ion-item-group.js +8 -5
- package/components/ion-item-option.js +36 -9
- package/components/ion-item-options.js +10 -7
- package/components/ion-item-sliding.js +5 -5
- package/components/ion-loading.js +12 -9
- package/components/ion-menu-button.js +26 -10
- package/components/ion-menu-toggle.js +5 -5
- package/components/ion-menu.js +13 -8
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +7 -5
- package/components/ion-note.js +8 -5
- package/components/ion-picker-legacy.js +7 -7
- package/components/ion-progress-bar.js +25 -7
- package/components/ion-range.js +12 -9
- package/components/ion-refresher-content.js +23 -8
- package/components/ion-refresher.js +10 -7
- package/components/ion-reorder-group.js +5 -5
- package/components/ion-reorder.js +30 -5
- package/components/ion-router-link.js +6 -6
- package/components/ion-router-outlet.js +4 -4
- package/components/ion-row.js +5 -2
- package/components/ion-searchbar.js +137 -23
- package/components/ion-segment-button.js +10 -7
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +5 -2
- package/components/ion-segment.js +10 -7
- package/components/ion-select-option.js +5 -2
- package/components/ion-select.js +117 -33
- package/components/ion-skeleton-text.js +5 -5
- package/components/ion-split-pane.js +11 -8
- package/components/ion-tab-bar.js +39 -9
- package/components/ion-tab-button.js +25 -7
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +2 -2
- package/components/ion-text.js +5 -5
- package/components/ion-textarea.js +57 -71
- package/components/ion-thumbnail.js +5 -2
- package/components/ion-toast.js +37 -12
- package/components/ion-toggle.js +74 -17
- package/components/ionic-global.js +349 -15
- package/components/ios.transition.js +1 -0
- package/components/item.js +39 -14
- package/components/keyboard-controller.js +4 -2
- package/components/label.js +8 -5
- package/components/list-header.js +10 -7
- package/components/list.js +27 -6
- package/components/list2.js +6 -0
- package/components/modal.js +48 -20
- package/components/notch-controller.js +1 -1
- package/components/overlays.js +20 -112
- package/components/picker-column-option.js +10 -7
- package/components/picker-column.js +7 -44
- package/components/picker-column2.js +4 -4
- package/components/picker.js +7 -4
- package/components/popover.js +12 -9
- package/components/radio-group.js +10 -5
- package/components/radio.js +11 -8
- package/components/ripple-effect.js +15 -7
- package/components/select-modal.js +4 -4
- package/components/select-popover.js +8 -2
- package/components/spinner.js +31 -8
- package/components/status-tap.js +1 -1
- package/components/title.js +10 -7
- package/components/toolbar.js +153 -9
- package/components/x.js +6 -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/bundle.ionic.css +1 -0
- package/css/ionic/bundle.ionic.css.map +1 -0
- package/css/ionic/core.ionic.css +1 -0
- package/css/ionic/core.ionic.css.map +1 -0
- package/css/ionic/global.bundle.ionic.css +1 -0
- package/css/ionic/global.bundle.ionic.css.map +1 -0
- package/css/ionic/ionic-swiper.ionic.css +1 -0
- package/css/ionic/ionic-swiper.ionic.css.map +1 -0
- package/css/ionic/link.ionic.css +1 -0
- package/css/ionic/link.ionic.css.map +1 -0
- package/css/ionic/structure.ionic.css +1 -0
- package/css/ionic/structure.ionic.css.map +1 -0
- package/css/ionic/typography.ionic.css +1 -0
- package/css/ionic/typography.ionic.css.map +1 -0
- package/css/ionic/utils.bundle.ionic.css +1 -0
- package/css/ionic/utils.bundle.ionic.css.map +1 -0
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css.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-ZJ1lAkZD.js → animation-BXRtNUgm.js} +2 -2
- package/dist/cjs/{app-globals-77ZfuXXk.js → app-globals-x_8DXqdl.js} +1 -1
- package/dist/cjs/{button-active-BzZenWWH.js → button-active-BcEaeF5Y.js} +1 -1
- package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-CVcQYFDK.js} +3 -3
- package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
- package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
- package/dist/cjs/caret-right-CRCgv98E.js +8 -0
- package/dist/cjs/{data-DW6ofvJ8.js → data-Crxp8jrQ.js} +5 -5
- package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
- package/dist/cjs/{framework-delegate-WkyjrnCx.js → framework-delegate-D94PxJL6.js} +4 -2
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-r0GBrUII.js} +1 -1
- package/dist/cjs/{helpers-DgwmcYAu.js → helpers-CYFB2_7O.js} +41 -2
- package/dist/cjs/{index-D24wggHR.js → index-DgkpUJvi.js} +15 -15
- package/dist/cjs/{index-BzEyuIww.js → index-DkmXWuZ7.js} +3 -3
- package/dist/cjs/{index-Cc5PNMyz.js → index-DsE1tD-q.js} +1 -1
- package/dist/cjs/{index-bGpoPC4u.js → index-MoROIJ3n.js} +8 -7
- package/dist/cjs/index.cjs.js +10 -11
- package/dist/cjs/{input-shims-CLI_OrmU.js → input-shims-temHXqvt.js} +17 -16
- package/dist/cjs/{input.utils-B2hZ5tX6.js → input.utils-8JmSrYpP.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +55 -26
- package/dist/cjs/ion-action-sheet.cjs.entry.js +21 -18
- package/dist/cjs/ion-alert.cjs.entry.js +22 -20
- package/dist/cjs/ion-app_8.cjs.entry.js +243 -144
- package/dist/cjs/ion-avatar_3.cjs.entry.js +123 -11
- package/dist/cjs/ion-back-button.cjs.entry.js +28 -19
- package/dist/cjs/ion-backdrop.cjs.entry.js +9 -6
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +51 -15
- package/dist/cjs/ion-button_2.cjs.entry.js +43 -11
- package/dist/cjs/ion-card_5.cjs.entry.js +53 -29
- package/dist/cjs/ion-checkbox.cjs.entry.js +31 -13
- package/dist/cjs/ion-chip.cjs.entry.js +48 -7
- package/dist/cjs/ion-col_3.cjs.entry.js +13 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +11 -7
- package/dist/cjs/ion-datetime_3.cjs.entry.js +114 -39
- package/dist/cjs/ion-divider.cjs.entry.js +51 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +41 -25
- package/dist/cjs/ion-img.cjs.entry.js +7 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +89 -14
- package/dist/cjs/ion-input-otp.cjs.entry.js +11 -7
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +50 -12
- package/dist/cjs/ion-input.cjs.entry.js +125 -89
- package/dist/cjs/ion-item-option_3.cjs.entry.js +48 -19
- package/dist/cjs/ion-item_8.cjs.entry.js +105 -45
- package/dist/cjs/ion-loading.cjs.entry.js +17 -15
- package/dist/cjs/ion-menu_3.cjs.entry.js +47 -26
- package/dist/cjs/ion-modal.cjs.entry.js +96 -69
- package/dist/cjs/ion-nav_2.cjs.entry.js +13 -10
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +12 -8
- package/dist/cjs/ion-picker-column.cjs.entry.js +12 -48
- package/dist/cjs/ion-picker.cjs.entry.js +9 -5
- package/dist/cjs/ion-popover.cjs.entry.js +18 -16
- package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -7
- package/dist/cjs/ion-radio_2.cjs.entry.js +22 -13
- package/dist/cjs/ion-range.cjs.entry.js +14 -10
- package/dist/cjs/ion-refresher_2.cjs.entry.js +36 -18
- package/dist/cjs/ion-reorder_2.cjs.entry.js +36 -12
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -6
- package/dist/cjs/ion-route_4.cjs.entry.js +8 -7
- package/dist/cjs/ion-searchbar.cjs.entry.js +134 -21
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +5 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +21 -14
- package/dist/cjs/ion-select-modal.cjs.entry.js +8 -9
- package/dist/cjs/ion-select_3.cjs.entry.js +129 -38
- package/dist/cjs/ion-spinner.cjs.entry.js +28 -6
- package/dist/cjs/ion-split-pane.cjs.entry.js +11 -8
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +65 -20
- package/dist/cjs/ion-tab_2.cjs.entry.js +7 -6
- package/dist/cjs/ion-text.cjs.entry.js +5 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +60 -74
- package/dist/cjs/ion-toast.cjs.entry.js +66 -43
- package/dist/cjs/ion-toggle.cjs.entry.js +78 -21
- package/dist/cjs/ionic-global-RZLbse4y.js +491 -0
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-DEitrLlG.js → ios.transition-CWI22viS.js} +6 -4
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-BZdohzZu.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-ByZ4Ulg3.js} +4 -3
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-B-dr5t4a.js} +11 -9
- package/dist/cjs/list-a-7GSA6K.js +8 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-BHtGC-Wg.js → md.transition-BxMmPf_q.js} +5 -4
- package/dist/cjs/{notch-controller-Bf5Rr4R5.js → notch-controller-BmjMp6Co.js} +4 -4
- package/dist/cjs/{overlays-CglR7j-u.js → overlays-Di-PotkY.js} +25 -117
- package/dist/cjs/{status-tap-D9YPr62n.js → status-tap-D-MulHQM.js} +3 -2
- package/dist/cjs/{swipe-back-C1wRtoww.js → swipe-back-C5W5r-1A.js} +2 -1
- package/dist/cjs/x-BTF99yFH.js +8 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/accordion/accordion.ionic.css +198 -0
- package/dist/collection/components/accordion/accordion.ios.css +73 -58
- package/dist/collection/components/accordion/accordion.js +36 -26
- package/dist/collection/components/accordion/accordion.md.css +67 -59
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +95 -0
- package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
- package/dist/collection/components/accordion-group/accordion-group.js +44 -8
- package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
- package/dist/collection/components/action-sheet/action-sheet.ios.css +18 -6
- package/dist/collection/components/action-sheet/action-sheet.js +15 -11
- package/dist/collection/components/action-sheet/action-sheet.md.css +17 -5
- package/dist/collection/components/alert/alert.ios.css +19 -1
- package/dist/collection/components/alert/alert.js +16 -13
- package/dist/collection/components/alert/alert.md.css +19 -1
- package/dist/collection/components/app/app.js +15 -78
- package/dist/collection/components/avatar/avatar.ionic.css +393 -0
- package/dist/collection/components/avatar/avatar.ios.css +7 -33
- package/dist/collection/components/avatar/avatar.js +120 -4
- package/dist/collection/components/avatar/avatar.md.css +51 -0
- package/dist/collection/components/back-button/back-button.ios.css +60 -48
- package/dist/collection/components/back-button/back-button.js +27 -19
- package/dist/collection/components/back-button/back-button.md.css +60 -48
- package/dist/collection/components/backdrop/backdrop.ionic.css +111 -0
- package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
- package/dist/collection/components/backdrop/backdrop.js +12 -6
- package/dist/collection/components/backdrop/backdrop.md.css +56 -19
- package/dist/collection/components/badge/badge.ionic.css +277 -0
- package/dist/collection/components/badge/badge.ios.css +139 -12
- package/dist/collection/components/badge/badge.js +145 -9
- package/dist/collection/components/badge/badge.md.css +123 -12
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
- package/dist/collection/components/button/button.ionic.css +622 -0
- package/dist/collection/components/button/button.ios.css +135 -46
- package/dist/collection/components/button/button.js +48 -17
- package/dist/collection/components/button/button.md.css +126 -50
- package/dist/collection/components/buttons/buttons.ionic.css +100 -0
- package/dist/collection/components/buttons/buttons.ios.css +59 -7
- package/dist/collection/components/buttons/buttons.js +15 -9
- package/dist/collection/components/buttons/buttons.md.css +55 -3
- package/dist/collection/components/card/card.ionic.css +146 -0
- package/dist/collection/components/card/card.ios.css +65 -14
- package/dist/collection/components/card/card.js +41 -10
- package/dist/collection/components/card/card.md.css +65 -14
- package/dist/collection/components/card-content/card-content.ionic.css +94 -0
- package/dist/collection/components/card-content/card-content.ios.css +16 -1
- package/dist/collection/components/card-content/card-content.js +11 -8
- package/dist/collection/components/card-content/card-content.md.css +16 -1
- package/dist/collection/components/card-header/card-header.ionic.css +87 -0
- package/dist/collection/components/card-header/card-header.ios.css +27 -15
- package/dist/collection/components/card-header/card-header.js +13 -10
- package/dist/collection/components/card-header/card-header.md.css +27 -15
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +146 -0
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
- package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
- package/dist/collection/components/card-title/card-title.ios.css +73 -0
- package/dist/collection/components/card-title/card-title.js +11 -8
- package/dist/collection/components/card-title/card-title.md.css +73 -0
- package/dist/collection/components/checkbox/checkbox.ionic.css +541 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +161 -101
- package/dist/collection/components/checkbox/checkbox.js +70 -14
- package/dist/collection/components/checkbox/checkbox.md.css +162 -102
- package/dist/collection/components/chip/chip.ionic.css +230 -0
- package/dist/collection/components/chip/chip.ios.css +67 -14
- package/dist/collection/components/chip/chip.js +108 -8
- package/dist/collection/components/chip/chip.md.css +67 -14
- package/dist/collection/components/col/col.css +12 -0
- package/dist/collection/components/col/col.js +9 -5
- package/dist/collection/components/content/content.css +8 -2
- package/dist/collection/components/content/content.js +16 -11
- package/dist/collection/components/datetime/datetime.ionic.css +699 -0
- package/dist/collection/components/datetime/datetime.ios.css +242 -86
- package/dist/collection/components/datetime/datetime.js +100 -21
- package/dist/collection/components/datetime/datetime.md.css +242 -86
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
- package/dist/collection/components/datetime-button/datetime-button.js +11 -8
- package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
- package/dist/collection/components/divider/divider.ionic.css +150 -0
- package/dist/collection/components/divider/divider.ios.css +87 -0
- package/dist/collection/components/divider/divider.js +94 -0
- package/dist/collection/components/divider/divider.md.css +87 -0
- package/dist/collection/components/fab/fab.css +25 -1
- package/dist/collection/components/fab/fab.js +9 -5
- package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
- package/dist/collection/components/fab-button/fab-button.js +36 -21
- package/dist/collection/components/fab-button/fab-button.md.css +20 -8
- package/dist/collection/components/fab-list/fab-list.css +12 -0
- package/dist/collection/components/fab-list/fab-list.js +9 -5
- package/dist/collection/components/footer/footer.ios.css +14 -2
- package/dist/collection/components/footer/footer.js +21 -16
- package/dist/collection/components/footer/footer.md.css +12 -0
- package/dist/collection/components/grid/grid.css +12 -0
- package/dist/collection/components/grid/grid.js +9 -5
- package/dist/collection/components/header/header.ionic.css +100 -0
- package/dist/collection/components/header/header.ios.css +25 -10
- package/dist/collection/components/header/header.js +49 -18
- package/dist/collection/components/header/header.md.css +23 -8
- package/dist/collection/components/img/img.js +8 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +100 -5
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
- package/dist/collection/components/input/input.ionic.css +883 -0
- package/dist/collection/components/input/input.ios.css +223 -140
- package/dist/collection/components/input/input.js +155 -99
- package/dist/collection/components/input/input.md.css +193 -212
- package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +106 -60
- package/dist/collection/components/input-otp/input-otp.js +7 -5
- package/dist/collection/components/input-otp/input-otp.md.css +106 -60
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +80 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -12
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
- package/dist/collection/components/item/item.ionic.css +502 -0
- package/dist/collection/components/item/item.ios.css +109 -69
- package/dist/collection/components/item/item.js +43 -19
- package/dist/collection/components/item/item.md.css +120 -68
- package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
- package/dist/collection/components/item-divider/item-divider.js +11 -8
- package/dist/collection/components/item-divider/item-divider.md.css +18 -0
- package/dist/collection/components/item-group/item-group.ios.css +12 -0
- package/dist/collection/components/item-group/item-group.js +13 -7
- package/dist/collection/components/item-group/item-group.md.css +12 -0
- package/dist/collection/components/item-option/item-option.ionic.css +280 -0
- package/dist/collection/components/item-option/item-option.ios.css +136 -29
- package/dist/collection/components/item-option/item-option.js +73 -9
- package/dist/collection/components/item-option/item-option.md.css +136 -29
- package/dist/collection/components/item-options/item-options.ionic.css +223 -0
- package/dist/collection/components/item-options/item-options.ios.css +77 -34
- package/dist/collection/components/item-options/item-options.js +13 -7
- package/dist/collection/components/item-options/item-options.md.css +77 -34
- package/dist/collection/components/item-sliding/item-sliding.css +6 -0
- package/dist/collection/components/item-sliding/item-sliding.js +8 -4
- package/dist/collection/components/label/label.ios.css +18 -0
- package/dist/collection/components/label/label.js +11 -8
- package/dist/collection/components/label/label.md.css +18 -0
- package/dist/collection/components/list/list.ionic.css +214 -0
- package/dist/collection/components/list/list.ios.css +54 -14
- package/dist/collection/components/list/list.js +48 -9
- package/dist/collection/components/list/list.md.css +56 -16
- package/dist/collection/components/list-header/list-header.ionic.css +192 -0
- package/dist/collection/components/list-header/list-header.ios.css +82 -38
- package/dist/collection/components/list-header/list-header.js +11 -8
- package/dist/collection/components/list-header/list-header.md.css +82 -38
- package/dist/collection/components/loading/loading.ios.css +13 -1
- package/dist/collection/components/loading/loading.js +14 -11
- package/dist/collection/components/loading/loading.md.css +13 -1
- package/dist/collection/components/menu/menu.ios.css +15 -3
- package/dist/collection/components/menu/menu.js +19 -7
- package/dist/collection/components/menu/menu.md.css +15 -3
- package/dist/collection/components/menu-button/menu-button.ionic.css +238 -0
- package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
- package/dist/collection/components/menu-button/menu-button.js +26 -10
- package/dist/collection/components/menu-button/menu-button.md.css +49 -15
- package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
- package/dist/collection/components/modal/animations/sheet.js +8 -2
- package/dist/collection/components/modal/gestures/sheet.js +10 -6
- package/dist/collection/components/modal/modal.ionic.css +243 -0
- package/dist/collection/components/modal/modal.ios.css +174 -70
- package/dist/collection/components/modal/modal.js +48 -11
- package/dist/collection/components/modal/modal.md.css +174 -70
- package/dist/collection/components/nav/nav.css +7 -1
- package/dist/collection/components/nav/nav.js +11 -5
- package/dist/collection/components/nav-link/nav-link.js +5 -1
- package/dist/collection/components/note/note.ios.css +12 -0
- package/dist/collection/components/note/note.js +11 -8
- package/dist/collection/components/note/note.md.css +12 -0
- package/dist/collection/components/picker/picker.ios.css +15 -3
- package/dist/collection/components/picker/picker.js +8 -5
- package/dist/collection/components/picker/picker.md.css +15 -3
- package/dist/collection/components/picker-column/picker-column.css +9 -2
- package/dist/collection/components/picker-column/picker-column.js +8 -43
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +8 -2
- package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +8 -2
- package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
- package/dist/collection/components/picker-legacy/picker.js +7 -6
- package/dist/collection/components/picker-legacy/picker.md.css +13 -1
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
- package/dist/collection/components/popover/popover.ios.css +13 -1
- package/dist/collection/components/popover/popover.js +17 -14
- package/dist/collection/components/popover/popover.md.css +13 -1
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +289 -0
- package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
- package/dist/collection/components/progress-bar/progress-bar.js +43 -7
- package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
- package/dist/collection/components/radio/radio.ionic.css +424 -0
- package/dist/collection/components/radio/radio.ios.css +134 -91
- package/dist/collection/components/radio/radio.js +12 -9
- package/dist/collection/components/radio/radio.md.css +134 -91
- package/dist/collection/components/radio-group/radio-group.ionic.css +127 -0
- package/dist/collection/components/radio-group/radio-group.ios.css +42 -18
- package/dist/collection/components/radio-group/radio-group.js +13 -5
- package/dist/collection/components/radio-group/radio-group.md.css +42 -18
- package/dist/collection/components/range/range.ionic.css +565 -0
- package/dist/collection/components/range/range.ios.css +128 -85
- package/dist/collection/components/range/range.js +12 -9
- package/dist/collection/components/range/range.md.css +128 -85
- package/dist/collection/components/refresher/refresher.ios.css +14 -1
- package/dist/collection/components/refresher/refresher.js +11 -8
- package/dist/collection/components/refresher/refresher.md.css +15 -2
- package/dist/collection/components/refresher-content/refresher-content.js +28 -7
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +33 -6
- package/dist/collection/components/reorder/reorder.md.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.js +8 -4
- package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +217 -0
- package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
- package/dist/collection/components/route/route.js +4 -0
- package/dist/collection/components/router/router.js +4 -0
- package/dist/collection/components/router-link/router-link.css +8 -2
- package/dist/collection/components/router-link/router-link.js +9 -5
- package/dist/collection/components/router-outlet/router-outlet.css +7 -1
- package/dist/collection/components/router-outlet/router-outlet.js +6 -3
- package/dist/collection/components/row/row.css +12 -0
- package/dist/collection/components/row/row.js +9 -2
- package/dist/collection/components/searchbar/searchbar.ionic.css +628 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
- package/dist/collection/components/searchbar/searchbar.js +181 -34
- package/dist/collection/components/searchbar/searchbar.md.css +56 -18
- package/dist/collection/components/segment/segment.ionic.css +117 -0
- package/dist/collection/components/segment/segment.ios.css +45 -2
- package/dist/collection/components/segment/segment.js +11 -8
- package/dist/collection/components/segment/segment.md.css +45 -2
- package/dist/collection/components/segment-button/segment-button.ionic.css +355 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
- package/dist/collection/components/segment-button/segment-button.js +11 -8
- package/dist/collection/components/segment-button/segment-button.md.css +148 -107
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
- package/dist/collection/components/segment-view/segment-view.js +6 -4
- package/dist/collection/components/segment-view/segment-view.md.css +6 -0
- package/dist/collection/components/select/select.ionic.css +765 -0
- package/dist/collection/components/select/select.ios.css +315 -176
- package/dist/collection/components/select/select.js +157 -54
- package/dist/collection/components/select/select.md.css +331 -178
- package/dist/collection/components/select-modal/select-modal.ionic.css +121 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +18 -0
- package/dist/collection/components/select-modal/select-modal.js +3 -3
- package/dist/collection/components/select-modal/select-modal.md.css +7 -3
- package/dist/collection/components/select-option/select-option.js +9 -2
- package/dist/collection/components/select-popover/select-popover.ios.css +18 -0
- package/dist/collection/components/select-popover/select-popover.js +12 -4
- package/dist/collection/components/select-popover/select-popover.md.css +18 -0
- package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
- package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +79 -10
- package/dist/collection/components/spinner/spinner.js +47 -6
- package/dist/collection/components/spinner/spinner.native.css +198 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
- package/dist/collection/components/split-pane/split-pane.js +14 -8
- package/dist/collection/components/split-pane/split-pane.md.css +20 -2
- package/dist/collection/components/tab/tab.js +6 -2
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +188 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +71 -43
- package/dist/collection/components/tab-bar/tab-bar.js +78 -11
- package/dist/collection/components/tab-bar/tab-bar.md.css +71 -43
- package/dist/collection/components/tab-button/tab-button.ionic.css +338 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
- package/dist/collection/components/tab-button/tab-button.js +44 -8
- package/dist/collection/components/tab-button/tab-button.md.css +137 -93
- package/dist/collection/components/tabs/tabs.css +7 -1
- package/dist/collection/components/tabs/tabs.js +4 -1
- package/dist/collection/components/text/text.css +6 -0
- package/dist/collection/components/text/text.js +7 -6
- package/dist/collection/components/textarea/textarea.ionic.css +830 -0
- package/dist/collection/components/textarea/textarea.ios.css +275 -139
- package/dist/collection/components/textarea/textarea.js +82 -77
- package/dist/collection/components/textarea/textarea.md.css +288 -140
- package/dist/collection/components/thumbnail/thumbnail.css +6 -0
- package/dist/collection/components/thumbnail/thumbnail.js +9 -2
- package/dist/collection/components/title/title.ionic.css +129 -0
- package/dist/collection/components/title/title.ios.css +32 -4
- package/dist/collection/components/title/title.js +13 -7
- package/dist/collection/components/title/title.md.css +32 -4
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ionic.css +396 -0
- package/dist/collection/components/toast/toast.ios.css +84 -45
- package/dist/collection/components/toast/toast.js +75 -12
- package/dist/collection/components/toast/toast.md.css +84 -45
- package/dist/collection/components/toggle/toggle.ionic.css +511 -0
- package/dist/collection/components/toggle/toggle.ios.css +247 -131
- package/dist/collection/components/toggle/toggle.js +73 -18
- package/dist/collection/components/toggle/toggle.md.css +244 -131
- package/dist/collection/components/toolbar/test/image.svg +1 -0
- package/dist/collection/components/toolbar/toolbar.ionic.css +243 -0
- package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
- package/dist/collection/components/toolbar/toolbar.js +157 -13
- package/dist/collection/components/toolbar/toolbar.md.css +90 -47
- package/dist/collection/global/ionic-global.js +228 -13
- package/dist/collection/utils/focus-visible.js +22 -0
- package/dist/collection/utils/framework-delegate.js +3 -1
- package/dist/collection/utils/helpers.js +42 -2
- package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +2 -1
- package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
- package/dist/collection/utils/overlays.js +19 -110
- package/dist/collection/utils/test/playwright/generator.js +48 -23
- package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +24 -3
- package/dist/collection/utils/transition/ios.transition.js +1 -0
- package/dist/docs.json +7920 -359
- package/dist/esm/{animation-BvhAtgca.js → animation-DPqVg3gl.js} +1 -1
- package/dist/esm/{app-globals-CvLYUxE9.js → app-globals-dJs8dVUB.js} +1 -1
- package/dist/esm/{button-active-DBUPuLNw.js → button-active-BMINdWv6.js} +1 -1
- package/dist/esm/{capacitor-CFERIeaU.js → capacitor--DL1MVFW.js} +1 -1
- package/dist/esm/caret-down-D1t981Ih.js +6 -0
- package/dist/esm/caret-left-fIOYmaqA.js +6 -0
- package/dist/esm/caret-right-BYSs-jZz.js +6 -0
- package/dist/esm/{data-CKHMWxfe.js → data-slRmoEWk.js} +5 -5
- package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
- package/dist/esm/{framework-delegate-BLEBgH06.js → framework-delegate-C3AU0AA6.js} +4 -2
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-BWDWI-Xh.js} +1 -1
- package/dist/esm/{helpers-8KSQQGQy.js → helpers-CKng-4WP.js} +42 -3
- package/dist/esm/{index-CXSTcaAW.js → index-BwfAv3fK.js} +10 -10
- package/dist/esm/{index-7UbSlv7N.js → index-C21kdpyw.js} +1 -1
- package/dist/esm/{index-DV3sJJW8.js → index-COG0_eom.js} +1 -1
- package/dist/esm/{index-Dp7GXH1z.js → index-DLYqkEhn.js} +3 -3
- package/dist/esm/{index-C6WeRr09.js → index-jNq9q9I-.js} +3 -2
- package/dist/esm/index.js +10 -11
- package/dist/esm/{input-shims-C4KDnhxb.js → input-shims-Dt4HUCHS.js} +6 -5
- package/dist/esm/{input.utils-be4gBvVY.js → input.utils-D7U0b1bK.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +56 -27
- package/dist/esm/ion-action-sheet.entry.js +21 -18
- package/dist/esm/ion-alert.entry.js +22 -20
- package/dist/esm/ion-app_8.entry.js +244 -145
- package/dist/esm/ion-avatar_3.entry.js +125 -13
- package/dist/esm/ion-back-button.entry.js +29 -20
- package/dist/esm/ion-backdrop.entry.js +9 -6
- package/dist/esm/ion-breadcrumb_2.entry.js +53 -17
- package/dist/esm/ion-button_2.entry.js +43 -11
- package/dist/esm/ion-card_5.entry.js +53 -29
- package/dist/esm/ion-checkbox.entry.js +31 -13
- package/dist/esm/ion-chip.entry.js +49 -8
- package/dist/esm/ion-col_3.entry.js +13 -10
- package/dist/esm/ion-datetime-button.entry.js +11 -7
- package/dist/esm/ion-datetime_3.entry.js +116 -41
- package/dist/esm/ion-divider.entry.js +49 -0
- package/dist/esm/ion-fab_3.entry.js +43 -27
- package/dist/esm/ion-img.entry.js +7 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +89 -14
- package/dist/esm/ion-input-otp.entry.js +11 -7
- package/dist/esm/ion-input-password-toggle.entry.js +52 -14
- package/dist/esm/ion-input.entry.js +127 -91
- package/dist/esm/ion-item-option_3.entry.js +48 -19
- package/dist/esm/ion-item_8.entry.js +107 -47
- package/dist/esm/ion-loading.entry.js +17 -15
- package/dist/esm/ion-menu_3.entry.js +48 -27
- package/dist/esm/ion-modal.entry.js +56 -29
- package/dist/esm/ion-nav_2.entry.js +13 -10
- package/dist/esm/ion-picker-column-option.entry.js +12 -8
- package/dist/esm/ion-picker-column.entry.js +11 -47
- package/dist/esm/ion-picker.entry.js +9 -5
- package/dist/esm/ion-popover.entry.js +18 -16
- package/dist/esm/ion-progress-bar.entry.js +25 -7
- package/dist/esm/ion-radio_2.entry.js +22 -13
- package/dist/esm/ion-range.entry.js +14 -10
- package/dist/esm/ion-refresher_2.entry.js +37 -19
- package/dist/esm/ion-reorder_2.entry.js +38 -14
- package/dist/esm/ion-ripple-effect.entry.js +14 -6
- package/dist/esm/ion-route_4.entry.js +8 -7
- package/dist/esm/ion-searchbar.entry.js +137 -24
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +5 -2
- package/dist/esm/ion-segment_2.entry.js +21 -14
- package/dist/esm/ion-select-modal.entry.js +8 -9
- package/dist/esm/ion-select_3.entry.js +131 -40
- package/dist/esm/ion-spinner.entry.js +28 -6
- package/dist/esm/ion-split-pane.entry.js +11 -8
- package/dist/esm/ion-tab-bar_2.entry.js +65 -20
- package/dist/esm/ion-tab_2.entry.js +7 -6
- package/dist/esm/ion-text.entry.js +5 -5
- package/dist/esm/ion-textarea.entry.js +60 -74
- package/dist/esm/ion-toast.entry.js +40 -17
- package/dist/esm/ion-toggle.entry.js +79 -22
- package/dist/esm/ionic-global-Dtd5Ma5B.js +480 -0
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/{ios.transition-eAEkgVAv.js → ios.transition-CJcl_IUo.js} +6 -4
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-Ce5NGRb7.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-DP1KnX1o.js} +4 -3
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-CN0dsogH.js} +5 -3
- package/dist/esm/list-Dhi5xtNS.js +6 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-D8TeJ_Pz.js → md.transition-DUO570OK.js} +5 -4
- package/dist/esm/{notch-controller-lb417-kU.js → notch-controller-BZq2fbxL.js} +2 -2
- package/dist/esm/{overlays-ZX_4-t_r.js → overlays-B1-bMbOY.js} +22 -114
- package/dist/esm/{status-tap-pATNXEtr.js → status-tap-Bux-fh_w.js} +3 -2
- package/dist/esm/{swipe-back-B2YfOHRM.js → swipe-back-Dp-f6VSv.js} +2 -1
- package/dist/esm/x-BDqjX7Z_.js +6 -0
- package/dist/html.html-data.json +2511 -229
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-00239ebc.entry.js +4 -0
- package/dist/ionic/p-04b8cb11.entry.js +4 -0
- package/dist/ionic/p-083bdc4a.entry.js +4 -0
- package/dist/ionic/p-09ee42c7.entry.js +4 -0
- package/dist/ionic/p-0a973339.entry.js +4 -0
- package/dist/ionic/p-0b1386bf.entry.js +4 -0
- package/dist/ionic/p-0edc2fcf.entry.js +4 -0
- package/dist/ionic/p-123f6dde.entry.js +4 -0
- package/dist/ionic/p-1ac3754e.entry.js +4 -0
- package/dist/ionic/p-3610f001.entry.js +4 -0
- package/dist/ionic/p-361408bb.entry.js +4 -0
- package/dist/ionic/p-389093b6.entry.js +4 -0
- package/dist/ionic/p-3b1c39cf.entry.js +4 -0
- package/dist/ionic/p-47b803fc.entry.js +4 -0
- package/dist/ionic/{p-B1xocg0A.js → p-4ivCEBy1.js} +1 -1
- package/dist/ionic/p-637e497f.entry.js +4 -0
- package/dist/ionic/p-65d9c265.entry.js +4 -0
- package/dist/ionic/p-66b83d63.entry.js +4 -0
- package/dist/ionic/p-7918eeaa.entry.js +4 -0
- package/dist/ionic/p-7ead7a67.entry.js +4 -0
- package/dist/ionic/p-7f1c8070.entry.js +4 -0
- package/dist/ionic/p-80faabb9.entry.js +4 -0
- package/dist/ionic/p-8870c2f9.entry.js +4 -0
- package/dist/ionic/p-8fa42767.entry.js +4 -0
- package/dist/ionic/p-905f6505.entry.js +4 -0
- package/dist/ionic/p-907ac173.entry.js +4 -0
- package/dist/ionic/p-95621a36.entry.js +4 -0
- package/dist/ionic/p-97bf9127.entry.js +4 -0
- package/dist/ionic/p-9af1c2e0.entry.js +4 -0
- package/dist/ionic/p-9e575e4e.entry.js +4 -0
- package/dist/ionic/p-BDqjX7Z_.js +4 -0
- package/dist/ionic/p-BFFank6B.js +4 -0
- package/dist/ionic/{p-CWvl4RPO.js → p-BISSkhkA.js} +1 -1
- package/dist/ionic/p-BJGh_obi.js +4 -0
- package/dist/ionic/p-BYSs-jZz.js +4 -0
- package/dist/ionic/{p-CKvCXMs9.js → p-BYYLxYDJ.js} +1 -1
- package/dist/ionic/p-Bh0_z73h.js +4 -0
- package/dist/ionic/p-BpaeL4Lk.js +4 -0
- package/dist/ionic/{p-DiZPU8BH.js → p-BqMzjJ9X.js} +1 -1
- package/dist/ionic/p-CKq50gmC.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-COG0_eom.js} +1 -1
- package/dist/ionic/{p-C87oPMMF.js → p-CVVzZviS.js} +1 -1
- package/dist/ionic/p-CZEwJt85.js +4 -0
- package/dist/ionic/p-Cdv0TJ6-.js +4 -0
- package/dist/ionic/{p-BhNEp2QP.js → p-CjpktT3Z.js} +1 -1
- package/dist/ionic/p-CqYDGaCK.js +4 -0
- package/dist/ionic/p-D-m6MIML.js +4 -0
- package/dist/ionic/p-D1t981Ih.js +4 -0
- package/dist/ionic/{p-DCuOL88l.js → p-D8VpGXAu.js} +1 -1
- package/dist/ionic/p-DBzcL_sL.js +4 -0
- package/dist/ionic/p-DO7doFVM.js +4 -0
- package/dist/ionic/p-Dhi5xtNS.js +4 -0
- package/dist/ionic/p-DpBID_Du.js +4 -0
- package/dist/ionic/p-DuV7rU9I.js +4 -0
- package/dist/ionic/p-EG6i47Uw.js +4 -0
- package/dist/ionic/{p-D13Eaw-8.js → p-EwG_P2X9.js} +1 -1
- package/dist/ionic/p-Ex5J81sy.js +4 -0
- package/dist/ionic/{p-BHGXdud8.js → p-KY_2sl5b.js} +1 -1
- package/dist/ionic/p-a953afe2.entry.js +4 -0
- package/dist/ionic/p-ab387abd.entry.js +4 -0
- package/dist/ionic/p-abc60b26.entry.js +4 -0
- package/dist/ionic/p-b269fb6b.entry.js +4 -0
- package/dist/ionic/p-b8c602ec.entry.js +4 -0
- package/dist/ionic/p-c6887f5c.entry.js +4 -0
- package/dist/ionic/p-c847a353.entry.js +4 -0
- package/dist/ionic/p-c8eb678d.entry.js +4 -0
- package/dist/ionic/p-cff18cc5.entry.js +4 -0
- package/dist/ionic/p-d65a8d3e.entry.js +4 -0
- package/dist/ionic/p-d9525f67.entry.js +4 -0
- package/dist/ionic/p-db20a452.entry.js +4 -0
- package/dist/ionic/{p-7a53f04c.entry.js → p-dc66e8cc.entry.js} +1 -1
- package/dist/ionic/p-e0a689ea.entry.js +4 -0
- package/dist/ionic/p-e25b2e94.entry.js +4 -0
- package/dist/ionic/p-e53f3a62.entry.js +4 -0
- package/dist/ionic/p-e6caa048.entry.js +4 -0
- package/dist/ionic/p-ec96366b.entry.js +4 -0
- package/dist/ionic/p-ed071a41.entry.js +4 -0
- package/dist/ionic/p-eea0e705.entry.js +4 -0
- package/dist/ionic/p-f0e88837.entry.js +4 -0
- package/dist/ionic/p-f4d11cbb.entry.js +4 -0
- package/dist/ionic/p-fIOYmaqA.js +4 -0
- package/dist/ionic/p-fcba862e.entry.js +4 -0
- package/dist/ionic/p-ff010b26.entry.js +4 -0
- package/dist/ionic/p-vXpMhGrs.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +5 -3
- package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
- package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
- package/dist/types/components/alert/alert-interface.d.ts +3 -7
- package/dist/types/components/alert/alert.d.ts +3 -2
- package/dist/types/components/app/app.d.ts +4 -2
- package/dist/types/components/avatar/avatar.d.ts +32 -0
- package/dist/types/components/back-button/back-button.d.ts +2 -1
- package/dist/types/components/backdrop/backdrop.d.ts +4 -0
- package/dist/types/components/badge/badge.d.ts +34 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +19 -6
- package/dist/types/components/buttons/buttons.d.ts +5 -1
- package/dist/types/components/card/card.d.ts +8 -1
- package/dist/types/components/card-content/card-content.d.ts +2 -1
- package/dist/types/components/card-header/card-header.d.ts +3 -2
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
- package/dist/types/components/card-title/card-title.d.ts +2 -1
- package/dist/types/components/checkbox/checkbox.d.ts +14 -4
- package/dist/types/components/chip/chip.d.ts +26 -1
- package/dist/types/components/col/col.d.ts +4 -0
- package/dist/types/components/content/content.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +26 -1
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
- package/dist/types/components/divider/divider.d.ts +20 -0
- package/dist/types/components/fab/fab.d.ts +4 -0
- package/dist/types/components/fab-button/fab-button.d.ts +5 -3
- package/dist/types/components/fab-list/fab-list.d.ts +4 -0
- package/dist/types/components/footer/footer.d.ts +4 -3
- package/dist/types/components/grid/grid.d.ts +4 -0
- package/dist/types/components/header/header.d.ts +9 -3
- package/dist/types/components/img/img.d.ts +3 -0
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
- package/dist/types/components/input/input.d.ts +31 -14
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
- package/dist/types/components/item/item.d.ts +11 -4
- package/dist/types/components/item-divider/item-divider.d.ts +2 -1
- package/dist/types/components/item-group/item-group.d.ts +4 -0
- package/dist/types/components/item-option/item-option.d.ts +18 -1
- package/dist/types/components/item-options/item-options.d.ts +4 -0
- package/dist/types/components/item-sliding/item-sliding.d.ts +4 -0
- package/dist/types/components/label/label.d.ts +2 -1
- package/dist/types/components/list/list.d.ts +15 -1
- package/dist/types/components/list-header/list-header.d.ts +2 -1
- package/dist/types/components/loading/loading-interface.d.ts +2 -7
- package/dist/types/components/loading/loading.d.ts +3 -2
- package/dist/types/components/menu/menu.d.ts +3 -0
- package/dist/types/components/menu-button/menu-button.d.ts +3 -1
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +4 -7
- package/dist/types/components/modal/modal.d.ts +11 -1
- package/dist/types/components/nav/nav-interface.d.ts +9 -1
- package/dist/types/components/nav/nav.d.ts +5 -1
- package/dist/types/components/nav-link/nav-link.d.ts +4 -0
- package/dist/types/components/note/note.d.ts +2 -1
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/picker-column/picker-column.d.ts +2 -8
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
- package/dist/types/components/picker-legacy/picker.d.ts +2 -1
- package/dist/types/components/popover/popover-interface.d.ts +3 -6
- package/dist/types/components/popover/popover.d.ts +6 -5
- package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
- package/dist/types/components/radio/radio.d.ts +2 -1
- package/dist/types/components/radio-group/radio-group.d.ts +4 -0
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/refresher/refresher.d.ts +2 -1
- package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
- package/dist/types/components/reorder/reorder.d.ts +9 -0
- package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
- package/dist/types/components/route/route.d.ts +4 -0
- package/dist/types/components/router/router.d.ts +4 -0
- package/dist/types/components/router-link/router-link.d.ts +4 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
- package/dist/types/components/row/row.d.ts +4 -0
- package/dist/types/components/searchbar/searchbar.d.ts +51 -9
- package/dist/types/components/segment/segment.d.ts +2 -1
- package/dist/types/components/segment-button/segment-button.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +41 -13
- package/dist/types/components/select-option/select-option.d.ts +4 -0
- package/dist/types/components/select-popover/select-popover.d.ts +3 -0
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
- package/dist/types/components/spinner/spinner.d.ts +15 -0
- package/dist/types/components/split-pane/split-pane.d.ts +4 -0
- package/dist/types/components/tab/tab.d.ts +4 -0
- package/dist/types/components/tab-bar/tab-bar.d.ts +22 -2
- package/dist/types/components/tab-button/tab-button.d.ts +11 -1
- package/dist/types/components/tabs/tabs.d.ts +3 -0
- package/dist/types/components/text/text.d.ts +2 -1
- package/dist/types/components/textarea/textarea.d.ts +17 -13
- package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
- package/dist/types/components/title/title.d.ts +4 -0
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +3 -7
- package/dist/types/components/toast/toast.d.ts +19 -2
- package/dist/types/components/toggle/toggle.d.ts +15 -1
- package/dist/types/components/toolbar/toolbar.d.ts +20 -3
- package/dist/types/components.d.ts +1522 -197
- package/dist/types/global/ionic-global.d.ts +27 -2
- package/dist/types/interface.d.ts +3 -0
- package/dist/types/utils/config.d.ts +106 -2
- package/dist/types/utils/focus-visible.d.ts +13 -0
- package/dist/types/utils/helpers.d.ts +11 -0
- package/dist/types/utils/overlays-interface.d.ts +31 -1
- package/dist/types/utils/test/playwright/generator.d.ts +31 -2
- package/hydrate/index.js +2838 -1139
- package/hydrate/index.mjs +2838 -1139
- package/package.json +10 -5
- package/components/hardware-back-button.js +0 -115
- package/components/index9.js +0 -7
- package/dist/cjs/hardware-back-button-BxdNu76F.js +0 -121
- package/dist/cjs/index-DkNv4J_i.js +0 -10
- package/dist/cjs/ionic-global-UI5YPSi-.js +0 -151
- package/dist/esm/hardware-back-button-Dhbd-23H.js +0 -115
- package/dist/esm/index-ZjP4CjeZ.js +0 -7
- package/dist/esm/ionic-global-CTSyufhF.js +0 -146
- package/dist/ionic/p-0816f67c.entry.js +0 -4
- package/dist/ionic/p-0f396661.entry.js +0 -4
- package/dist/ionic/p-1191a2d9.entry.js +0 -4
- package/dist/ionic/p-148bdf18.entry.js +0 -4
- package/dist/ionic/p-16116947.entry.js +0 -4
- package/dist/ionic/p-19f80390.entry.js +0 -4
- package/dist/ionic/p-1a91f317.entry.js +0 -4
- package/dist/ionic/p-1bbd0a23.entry.js +0 -4
- package/dist/ionic/p-1d5b934a.entry.js +0 -4
- package/dist/ionic/p-29032e49.entry.js +0 -4
- package/dist/ionic/p-2cb0f39f.entry.js +0 -4
- package/dist/ionic/p-349fc921.entry.js +0 -4
- package/dist/ionic/p-3624b640.entry.js +0 -4
- package/dist/ionic/p-36a54836.entry.js +0 -4
- package/dist/ionic/p-39ed3212.entry.js +0 -4
- package/dist/ionic/p-40d56a51.entry.js +0 -4
- package/dist/ionic/p-4f2c5845.entry.js +0 -4
- package/dist/ionic/p-528af4e6.entry.js +0 -4
- package/dist/ionic/p-54dec9b1.entry.js +0 -4
- package/dist/ionic/p-5c976c00.entry.js +0 -4
- package/dist/ionic/p-6383afc2.entry.js +0 -4
- package/dist/ionic/p-7b12d853.entry.js +0 -4
- package/dist/ionic/p-7bac2c5f.entry.js +0 -4
- package/dist/ionic/p-7da05504.entry.js +0 -4
- package/dist/ionic/p-8cdb4ff5.entry.js +0 -4
- package/dist/ionic/p-8d96a0cd.entry.js +0 -4
- package/dist/ionic/p-8e2de06f.entry.js +0 -4
- package/dist/ionic/p-91d6ccb0.entry.js +0 -4
- package/dist/ionic/p-92e8f208.entry.js +0 -4
- package/dist/ionic/p-982fe1c4.entry.js +0 -4
- package/dist/ionic/p-9ddf2620.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-B5MDSrGg.js +0 -4
- package/dist/ionic/p-BB-JoKGB.js +0 -4
- package/dist/ionic/p-BmVRXR1y.js +0 -4
- package/dist/ionic/p-Br3vSlYh.js +0 -4
- package/dist/ionic/p-C-Cct-6D.js +0 -4
- package/dist/ionic/p-C4I6B3uV.js +0 -4
- package/dist/ionic/p-C8d2ebIg.js +0 -4
- package/dist/ionic/p-CIGNaXM1.js +0 -4
- package/dist/ionic/p-CSwZyt05.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-CvaZMP6T.js +0 -4
- package/dist/ionic/p-D2fQU_qK.js +0 -4
- package/dist/ionic/p-DAfH9Iif.js +0 -4
- package/dist/ionic/p-DJKvq7vb.js +0 -4
- package/dist/ionic/p-Dm_oBkW1.js +0 -4
- package/dist/ionic/p-LaGjiAVo.js +0 -4
- package/dist/ionic/p-ZjP4CjeZ.js +0 -4
- package/dist/ionic/p-a81be128.entry.js +0 -4
- package/dist/ionic/p-ab33ef20.entry.js +0 -4
- package/dist/ionic/p-ac434970.entry.js +0 -4
- package/dist/ionic/p-afeb9df6.entry.js +0 -4
- package/dist/ionic/p-bc9f9032.entry.js +0 -4
- package/dist/ionic/p-bf81a468.entry.js +0 -4
- package/dist/ionic/p-c0d58c8e.entry.js +0 -4
- package/dist/ionic/p-c575e7ce.entry.js +0 -4
- package/dist/ionic/p-cde6d39b.entry.js +0 -4
- package/dist/ionic/p-d04d66fc.entry.js +0 -4
- package/dist/ionic/p-d3df6032.entry.js +0 -4
- package/dist/ionic/p-dbba38cf.entry.js +0 -4
- package/dist/ionic/p-e6c3214c.entry.js +0 -4
- package/dist/ionic/p-e6c465ff.entry.js +0 -4
- package/dist/ionic/p-ec76fec4.entry.js +0 -4
- package/dist/ionic/p-ee2e35a6.entry.js +0 -4
- package/dist/ionic/p-f2884bc2.entry.js +0 -4
- package/dist/ionic/p-f456d176.entry.js +0 -4
- package/dist/ionic/p-f7db572a.entry.js +0 -4
- package/dist/ionic/p-f9eb54ee.entry.js +0 -4
- /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import xRegular from "@phosphor-icons/core/assets/regular/x.svg";
|
|
4
5
|
import { Build, Host, forceUpdate, h, } from "@stencil/core";
|
|
5
6
|
import { createNotchController } from "../../utils/forms/index";
|
|
6
7
|
import { inheritAriaAttributes, debounceEvent, inheritAttributes, componentOnReady } from "../../utils/helpers";
|
|
8
|
+
import { printIonWarning } from "../../utils/logging/index";
|
|
7
9
|
import { createSlotMutationController } from "../../utils/slot-mutation-controller";
|
|
8
10
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
9
11
|
import { closeCircle, closeSharp } from "ionicons/icons";
|
|
10
|
-
import {
|
|
12
|
+
import { config } from "../../global/config";
|
|
13
|
+
import { getIonTheme } from "../../global/ionic-global";
|
|
11
14
|
import { getCounterText } from "./input.utils";
|
|
12
15
|
/**
|
|
13
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines
|
|
16
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
17
|
+
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
14
18
|
*
|
|
15
19
|
* @slot label - The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)
|
|
16
20
|
* @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
|
|
@@ -39,10 +43,6 @@ export class Input {
|
|
|
39
43
|
* is applied in both cases.
|
|
40
44
|
*/
|
|
41
45
|
this.hasFocus = false;
|
|
42
|
-
/**
|
|
43
|
-
* Track validation state for proper aria-live announcements
|
|
44
|
-
*/
|
|
45
|
-
this.isInvalid = false;
|
|
46
46
|
/**
|
|
47
47
|
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
48
48
|
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
@@ -74,15 +74,6 @@ export class Input {
|
|
|
74
74
|
* If `true`, the user cannot interact with the input.
|
|
75
75
|
*/
|
|
76
76
|
this.disabled = false;
|
|
77
|
-
/**
|
|
78
|
-
* Where to place the label relative to the input.
|
|
79
|
-
* `"start"`: The label will appear to the left of the input in LTR and to the right in RTL.
|
|
80
|
-
* `"end"`: The label will appear to the right of the input in LTR and to the left in RTL.
|
|
81
|
-
* `"floating"`: The label will appear smaller and above the input when the input is focused or it has a value. Otherwise it will appear on top of the input.
|
|
82
|
-
* `"stacked"`: The label will appear smaller and above the input regardless even when the input is blurred or has no value.
|
|
83
|
-
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
84
|
-
*/
|
|
85
|
-
this.labelPlacement = 'start';
|
|
86
77
|
/**
|
|
87
78
|
* The name of the control, which is submitted with the form data.
|
|
88
79
|
*/
|
|
@@ -99,6 +90,11 @@ export class Input {
|
|
|
99
90
|
* If `true`, the element will have its spelling and grammar checked.
|
|
100
91
|
*/
|
|
101
92
|
this.spellcheck = false;
|
|
93
|
+
/**
|
|
94
|
+
* The size of the input. If "large", it will have an increased height. By default the
|
|
95
|
+
* size is medium. This property only applies to the `"ionic"` theme.
|
|
96
|
+
*/
|
|
97
|
+
this.size = 'medium';
|
|
102
98
|
/**
|
|
103
99
|
* The type of control to display. The default type is text.
|
|
104
100
|
*/
|
|
@@ -128,19 +124,6 @@ export class Input {
|
|
|
128
124
|
}
|
|
129
125
|
this.didInputClearOnEdit = false;
|
|
130
126
|
this.ionBlur.emit(ev);
|
|
131
|
-
/**
|
|
132
|
-
* Check validation state after blur to handle framework-managed classes.
|
|
133
|
-
* Frameworks like Angular update classes asynchronously, often using
|
|
134
|
-
* requestAnimationFrame or promises. Using setTimeout ensures we check
|
|
135
|
-
* after all microtasks and animation frames have completed.
|
|
136
|
-
*/
|
|
137
|
-
setTimeout(() => {
|
|
138
|
-
const newIsInvalid = this.checkValidationState();
|
|
139
|
-
if (this.isInvalid !== newIsInvalid) {
|
|
140
|
-
this.isInvalid = newIsInvalid;
|
|
141
|
-
forceUpdate(this);
|
|
142
|
-
}
|
|
143
|
-
}, 100);
|
|
144
127
|
};
|
|
145
128
|
this.onFocus = (ev) => {
|
|
146
129
|
this.hasFocus = true;
|
|
@@ -239,43 +222,14 @@ export class Input {
|
|
|
239
222
|
}
|
|
240
223
|
componentWillLoad() {
|
|
241
224
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type', 'dir']));
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
*/
|
|
246
|
-
checkValidationState() {
|
|
247
|
-
// Check for both Ionic and Angular validation classes on the element itself
|
|
248
|
-
// Angular applies ng-touched/ng-invalid directly to the host element with ngModel
|
|
249
|
-
const hasIonTouched = this.el.classList.contains('ion-touched');
|
|
250
|
-
const hasIonInvalid = this.el.classList.contains('ion-invalid');
|
|
251
|
-
const hasNgTouched = this.el.classList.contains('ng-touched');
|
|
252
|
-
const hasNgInvalid = this.el.classList.contains('ng-invalid');
|
|
253
|
-
// Return true if we have both touched and invalid states from either framework
|
|
254
|
-
const isTouched = hasIonTouched || hasNgTouched;
|
|
255
|
-
const isInvalid = hasIonInvalid || hasNgInvalid;
|
|
256
|
-
return isTouched && isInvalid;
|
|
225
|
+
if (this.labelPlacement === undefined) {
|
|
226
|
+
this.labelPlacement = getIonTheme(this) === 'ionic' ? ionicThemeDefaultLabelPlacement : 'start';
|
|
227
|
+
}
|
|
257
228
|
}
|
|
258
229
|
connectedCallback() {
|
|
259
230
|
const { el } = this;
|
|
260
231
|
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate(this));
|
|
261
232
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
262
|
-
// Watch for class changes to update validation state
|
|
263
|
-
if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
|
|
264
|
-
this.validationObserver = new MutationObserver(() => {
|
|
265
|
-
const newIsInvalid = this.checkValidationState();
|
|
266
|
-
if (this.isInvalid !== newIsInvalid) {
|
|
267
|
-
this.isInvalid = newIsInvalid;
|
|
268
|
-
// Force a re-render to update aria-describedby immediately
|
|
269
|
-
forceUpdate(this);
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
this.validationObserver.observe(el, {
|
|
273
|
-
attributes: true,
|
|
274
|
-
attributeFilter: ['class'],
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
// Always set initial state
|
|
278
|
-
this.isInvalid = this.checkValidationState();
|
|
279
233
|
this.debounceChanged();
|
|
280
234
|
if (Build.isBrowser) {
|
|
281
235
|
document.dispatchEvent(new CustomEvent('ionInputDidLoad', {
|
|
@@ -312,11 +266,6 @@ export class Input {
|
|
|
312
266
|
this.notchController.destroy();
|
|
313
267
|
this.notchController = undefined;
|
|
314
268
|
}
|
|
315
|
-
// Clean up validation observer to prevent memory leaks
|
|
316
|
-
if (this.validationObserver) {
|
|
317
|
-
this.validationObserver.disconnect();
|
|
318
|
-
this.validationObserver = undefined;
|
|
319
|
-
}
|
|
320
269
|
}
|
|
321
270
|
/**
|
|
322
271
|
* Sets focus on the native `input` in `ion-input`. Use this method instead of the global
|
|
@@ -378,6 +327,52 @@ export class Input {
|
|
|
378
327
|
getValue() {
|
|
379
328
|
return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();
|
|
380
329
|
}
|
|
330
|
+
getFill() {
|
|
331
|
+
const theme = getIonTheme(this);
|
|
332
|
+
const { fill } = this;
|
|
333
|
+
if (theme === 'ionic' && fill === undefined) {
|
|
334
|
+
return 'outline';
|
|
335
|
+
}
|
|
336
|
+
return fill;
|
|
337
|
+
}
|
|
338
|
+
getLabelPlacement() {
|
|
339
|
+
const theme = getIonTheme(this);
|
|
340
|
+
const { el, labelPlacement } = this;
|
|
341
|
+
if (theme === 'ionic' && labelPlacement !== 'stacked' && labelPlacement !== 'floating') {
|
|
342
|
+
printIonWarning(`The "${labelPlacement}" label placement is not supported in the ${theme} theme. The default value of "${ionicThemeDefaultLabelPlacement}" will be used instead.`, el);
|
|
343
|
+
return ionicThemeDefaultLabelPlacement;
|
|
344
|
+
}
|
|
345
|
+
return labelPlacement;
|
|
346
|
+
}
|
|
347
|
+
// TODO(FW-6201): Remove this method when size is supported in ios and md
|
|
348
|
+
getSize() {
|
|
349
|
+
const theme = getIonTheme(this);
|
|
350
|
+
const { size } = this;
|
|
351
|
+
if (theme !== 'ionic' && (size === 'large' || size === 'xlarge')) {
|
|
352
|
+
printIonWarning(`The "${size}" size is not supported in the ${theme} theme.`);
|
|
353
|
+
// Fallback to medium size, which is the default size for all themes.
|
|
354
|
+
return 'medium';
|
|
355
|
+
}
|
|
356
|
+
return size;
|
|
357
|
+
}
|
|
358
|
+
getShape() {
|
|
359
|
+
const theme = getIonTheme(this);
|
|
360
|
+
const { shape } = this;
|
|
361
|
+
// TODO(ROU-5475): Remove the check for `soft` when the shape is supported in ios and md.
|
|
362
|
+
if ((theme === 'ios' && shape === 'round') || (theme !== 'ionic' && shape === 'soft')) {
|
|
363
|
+
printIonWarning(`The "${shape}" shape is not supported in the ${theme} theme.`);
|
|
364
|
+
return undefined;
|
|
365
|
+
}
|
|
366
|
+
if (shape !== undefined) {
|
|
367
|
+
return shape;
|
|
368
|
+
}
|
|
369
|
+
// TODO(FW-6229): Update this when the default shape has been decided.
|
|
370
|
+
if (theme !== 'ionic') {
|
|
371
|
+
return undefined;
|
|
372
|
+
}
|
|
373
|
+
// Fallback to round shape, which is the default shape for the ionic theme.
|
|
374
|
+
return 'round';
|
|
375
|
+
}
|
|
381
376
|
checkClearOnEdit(ev) {
|
|
382
377
|
if (!this.shouldClearOnEdit()) {
|
|
383
378
|
return;
|
|
@@ -418,15 +413,15 @@ export class Input {
|
|
|
418
413
|
* Renders the helper text or error text values
|
|
419
414
|
*/
|
|
420
415
|
renderHintText() {
|
|
421
|
-
const { helperText, errorText, helperTextId, errorTextId
|
|
416
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
422
417
|
return [
|
|
423
|
-
h("div", { id: helperTextId, class: "helper-text"
|
|
424
|
-
h("div", { id: errorTextId, class: "error-text"
|
|
418
|
+
h("div", { id: helperTextId, class: "helper-text" }, helperText),
|
|
419
|
+
h("div", { id: errorTextId, class: "error-text" }, errorText),
|
|
425
420
|
];
|
|
426
421
|
}
|
|
427
422
|
getHintTextID() {
|
|
428
|
-
const {
|
|
429
|
-
if (
|
|
423
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
424
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
430
425
|
return errorTextId;
|
|
431
426
|
}
|
|
432
427
|
if (helperText) {
|
|
@@ -487,9 +482,9 @@ export class Input {
|
|
|
487
482
|
* when fill="outline".
|
|
488
483
|
*/
|
|
489
484
|
renderLabelContainer() {
|
|
490
|
-
const
|
|
491
|
-
const hasOutlineFill =
|
|
492
|
-
if (hasOutlineFill) {
|
|
485
|
+
const theme = getIonTheme(this);
|
|
486
|
+
const hasOutlineFill = this.fill === 'outline';
|
|
487
|
+
if (hasOutlineFill && theme === 'md') {
|
|
493
488
|
/**
|
|
494
489
|
* The outline fill has a special outline
|
|
495
490
|
* that appears around the input and the label.
|
|
@@ -506,19 +501,47 @@ export class Input {
|
|
|
506
501
|
];
|
|
507
502
|
}
|
|
508
503
|
/**
|
|
509
|
-
* If not using the outline style,
|
|
510
|
-
*
|
|
504
|
+
* If not using the outline style, OR if using the
|
|
505
|
+
* ionic theme, just render the label. For the ionic
|
|
506
|
+
* theme, the outline will be rendered elsewhere.
|
|
511
507
|
*/
|
|
512
508
|
return this.renderLabel();
|
|
513
509
|
}
|
|
510
|
+
/**
|
|
511
|
+
* Get the icon to use for the clear icon.
|
|
512
|
+
* If an icon is set on the component, use that.
|
|
513
|
+
* Otherwise, use the icon set in the config.
|
|
514
|
+
* If no icon is set in the config, use the default icon.
|
|
515
|
+
*
|
|
516
|
+
* @internal
|
|
517
|
+
*/
|
|
518
|
+
get inputClearIcon() {
|
|
519
|
+
// Return the icon if it is explicitly set
|
|
520
|
+
if (this.clearInputIcon != null) {
|
|
521
|
+
return this.clearInputIcon;
|
|
522
|
+
}
|
|
523
|
+
// Determine the theme and map to default icons
|
|
524
|
+
const theme = getIonTheme(this);
|
|
525
|
+
const defaultIcons = {
|
|
526
|
+
ios: closeCircle,
|
|
527
|
+
ionic: xRegular,
|
|
528
|
+
md: closeSharp,
|
|
529
|
+
};
|
|
530
|
+
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
531
|
+
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
532
|
+
// Return the configured input clear icon or the default icon
|
|
533
|
+
return config.get('inputClearIcon', defaultIcon);
|
|
534
|
+
}
|
|
514
535
|
render() {
|
|
515
|
-
const { disabled,
|
|
516
|
-
const
|
|
536
|
+
const { disabled, readonly, inputId, el, hasFocus, clearInput, inputClearIcon } = this;
|
|
537
|
+
const theme = getIonTheme(this);
|
|
517
538
|
const value = this.getValue();
|
|
539
|
+
const fill = this.getFill();
|
|
540
|
+
const size = this.getSize();
|
|
541
|
+
const shape = this.getShape();
|
|
518
542
|
const inItem = hostContext('ion-item', this.el);
|
|
519
|
-
const shouldRenderHighlight =
|
|
520
|
-
const
|
|
521
|
-
const clearIconData = clearInputIcon !== null && clearInputIcon !== void 0 ? clearInputIcon : defaultClearIcon;
|
|
543
|
+
const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
|
|
544
|
+
const labelPlacement = this.getLabelPlacement();
|
|
522
545
|
const hasValue = this.hasValue();
|
|
523
546
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
524
547
|
/**
|
|
@@ -539,38 +562,52 @@ export class Input {
|
|
|
539
562
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
540
563
|
*/
|
|
541
564
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
542
|
-
return (h(Host, { key: '
|
|
543
|
-
[
|
|
565
|
+
return (h(Host, { key: '3d133f890fe77981ed5fc6c2d4133b46b634053a', class: createColorClasses(this.color, {
|
|
566
|
+
[theme]: true,
|
|
544
567
|
'has-value': hasValue,
|
|
545
568
|
'has-focus': hasFocus,
|
|
546
569
|
'label-floating': labelShouldFloat,
|
|
547
570
|
[`input-fill-${fill}`]: fill !== undefined,
|
|
548
571
|
[`input-shape-${shape}`]: shape !== undefined,
|
|
572
|
+
[`input-size-${size}`]: true,
|
|
549
573
|
[`input-label-placement-${labelPlacement}`]: true,
|
|
550
574
|
'in-item': inItem,
|
|
551
575
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
552
576
|
'input-disabled': disabled,
|
|
553
|
-
|
|
577
|
+
'input-readonly': readonly,
|
|
578
|
+
}) }, h("label", { key: '4655a7eacb20f6aa64d4a53571f8b39be9ccffce', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'c15bec1f2e66e49a89da2b50bf39cc6d723a8c6b', class: "native-wrapper", onClick: this.onLabelClick },
|
|
579
|
+
/**
|
|
580
|
+
* For the ionic theme, we render the outline container here
|
|
581
|
+
* instead of higher up, so it can be positioned relative to
|
|
582
|
+
* the native wrapper instead of the <label> element or the
|
|
583
|
+
* entire component. This allows the label text to be positioned
|
|
584
|
+
* above the outline, while staying within the bounds of the
|
|
585
|
+
* <label> element, ensuring that clicking the label text
|
|
586
|
+
* focuses the input.
|
|
587
|
+
*/
|
|
588
|
+
theme === 'ionic' && h("div", { key: '49614da6105132d493ea3eeb80e93f4132835314', class: "input-outline" }), h("slot", { key: '9304fd0370251774ee68947f53c8cfd4bba6b9e8', name: "start" }), h("input", Object.assign({ key: '553d1ee78627fba7ebe75fe7788069514437390d', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (h("button", { key: '616db219da13bb16c383c527fa23ff3d79597447', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
554
589
|
/**
|
|
555
590
|
* This prevents mobile browsers from
|
|
556
591
|
* blurring the input when the clear
|
|
557
592
|
* button is activated.
|
|
558
593
|
*/
|
|
559
594
|
ev.preventDefault();
|
|
560
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
595
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { key: '5812593a1b72e3a0cf907eab0e110cd055750ab2', "aria-hidden": "true", icon: inputClearIcon }))), h("slot", { key: '11672f33c5f78ad185713f30fc18024cb08a2c64', name: "end" })), shouldRenderHighlight && h("div", { key: '271b2d34d23d37f354feed28cf8ef15c2a4583c3', class: "input-highlight" })), this.renderBottomContent()));
|
|
561
596
|
}
|
|
562
597
|
static get is() { return "ion-input"; }
|
|
563
598
|
static get encapsulation() { return "scoped"; }
|
|
564
599
|
static get originalStyleUrls() {
|
|
565
600
|
return {
|
|
566
601
|
"ios": ["input.ios.scss"],
|
|
567
|
-
"md": ["input.md.scss"]
|
|
602
|
+
"md": ["input.md.scss"],
|
|
603
|
+
"ionic": ["input.ionic.scss"]
|
|
568
604
|
};
|
|
569
605
|
}
|
|
570
606
|
static get styleUrls() {
|
|
571
607
|
return {
|
|
572
608
|
"ios": ["input.ios.css"],
|
|
573
|
-
"md": ["input.md.css"]
|
|
609
|
+
"md": ["input.md.css"],
|
|
610
|
+
"ionic": ["input.ionic.css"]
|
|
574
611
|
};
|
|
575
612
|
}
|
|
576
613
|
static get properties() {
|
|
@@ -626,7 +663,7 @@ export class Input {
|
|
|
626
663
|
"mutable": false,
|
|
627
664
|
"complexType": {
|
|
628
665
|
"original": "AutocompleteTypes",
|
|
629
|
-
"resolved": "\"name\" | \"
|
|
666
|
+
"resolved": "\"name\" | \"url\" | \"off\" | \"on\" | \"additional-name\" | \"address-level1\" | \"address-level2\" | \"address-level3\" | \"address-level4\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"cc-csc\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-family-name\" | \"cc-given-name\" | \"cc-name\" | \"cc-number\" | \"cc-type\" | \"country\" | \"country-name\" | \"current-password\" | \"family-name\" | \"given-name\" | \"honorific-prefix\" | \"honorific-suffix\" | \"new-password\" | \"one-time-code\" | \"organization\" | \"postal-code\" | \"street-address\" | \"transaction-amount\" | \"transaction-currency\" | \"username\" | \"email\" | \"tel\" | \"tel-area-code\" | \"tel-country-code\" | \"tel-extension\" | \"tel-local\" | \"tel-national\" | \"nickname\" | \"organization-title\" | \"cc-additional-name\" | \"language\" | \"bday\" | \"sex\" | \"impp\" | \"photo\"",
|
|
630
667
|
"references": {
|
|
631
668
|
"AutocompleteTypes": {
|
|
632
669
|
"location": "import",
|
|
@@ -872,7 +909,7 @@ export class Input {
|
|
|
872
909
|
"optional": true,
|
|
873
910
|
"docs": {
|
|
874
911
|
"tags": [],
|
|
875
|
-
"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
|
|
912
|
+
"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 when the theme is `\"md\"`."
|
|
876
913
|
},
|
|
877
914
|
"getter": false,
|
|
878
915
|
"setter": false,
|
|
@@ -938,22 +975,21 @@ export class Input {
|
|
|
938
975
|
"labelPlacement": {
|
|
939
976
|
"type": "string",
|
|
940
977
|
"attribute": "label-placement",
|
|
941
|
-
"mutable":
|
|
978
|
+
"mutable": true,
|
|
942
979
|
"complexType": {
|
|
943
980
|
"original": "'start' | 'end' | 'floating' | 'stacked' | 'fixed'",
|
|
944
|
-
"resolved": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\"",
|
|
981
|
+
"resolved": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\" | undefined",
|
|
945
982
|
"references": {}
|
|
946
983
|
},
|
|
947
984
|
"required": false,
|
|
948
|
-
"optional":
|
|
985
|
+
"optional": true,
|
|
949
986
|
"docs": {
|
|
950
987
|
"tags": [],
|
|
951
|
-
"text": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the input in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the input in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the input when the input is focused or it has a value. Otherwise it will appear on top of the input.\n`\"stacked\"`: The label will appear smaller and above the input regardless even when the input is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\")."
|
|
988
|
+
"text": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the input in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the input in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the input when the input is focused or it has a value. Otherwise it will appear on top of the input.\n`\"stacked\"`: The label will appear smaller and above the input regardless even when the input is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n\nDefaults to \"stacked\" for the ionic theme, or \"start\" for all other themes.\n\nIn the ionic theme, only the values \"stacked\" and \"floating\" are supported."
|
|
952
989
|
},
|
|
953
990
|
"getter": false,
|
|
954
991
|
"setter": false,
|
|
955
|
-
"reflect": false
|
|
956
|
-
"defaultValue": "'start'"
|
|
992
|
+
"reflect": false
|
|
957
993
|
},
|
|
958
994
|
"max": {
|
|
959
995
|
"type": "any",
|
|
@@ -1153,15 +1189,15 @@ export class Input {
|
|
|
1153
1189
|
"attribute": "shape",
|
|
1154
1190
|
"mutable": false,
|
|
1155
1191
|
"complexType": {
|
|
1156
|
-
"original": "'round'",
|
|
1157
|
-
"resolved": "\"round\" | undefined",
|
|
1192
|
+
"original": "'soft' | 'round' | 'rectangular'",
|
|
1193
|
+
"resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
|
|
1158
1194
|
"references": {}
|
|
1159
1195
|
},
|
|
1160
1196
|
"required": false,
|
|
1161
1197
|
"optional": true,
|
|
1162
1198
|
"docs": {
|
|
1163
1199
|
"tags": [],
|
|
1164
|
-
"text": "
|
|
1200
|
+
"text": "Set to `\"soft\"` for an input with slightly rounded corners, `\"round\"` for an input with fully\nrounded corners, or `\"rectangular\"` for an input without rounded corners.\nDefaults to `\"round\"` for the ionic theme, and `undefined` for all other themes.\nOnly applies when the fill is set to `\"solid\"` or `\"outline\"`."
|
|
1165
1201
|
},
|
|
1166
1202
|
"getter": false,
|
|
1167
1203
|
"setter": false,
|
|
@@ -1206,6 +1242,26 @@ export class Input {
|
|
|
1206
1242
|
"setter": false,
|
|
1207
1243
|
"reflect": false
|
|
1208
1244
|
},
|
|
1245
|
+
"size": {
|
|
1246
|
+
"type": "string",
|
|
1247
|
+
"attribute": "size",
|
|
1248
|
+
"mutable": false,
|
|
1249
|
+
"complexType": {
|
|
1250
|
+
"original": "'medium' | 'large' | 'xlarge'",
|
|
1251
|
+
"resolved": "\"large\" | \"medium\" | \"xlarge\" | undefined",
|
|
1252
|
+
"references": {}
|
|
1253
|
+
},
|
|
1254
|
+
"required": false,
|
|
1255
|
+
"optional": true,
|
|
1256
|
+
"docs": {
|
|
1257
|
+
"tags": [],
|
|
1258
|
+
"text": "The size of the input. If \"large\", it will have an increased height. By default the\nsize is medium. This property only applies to the `\"ionic\"` theme."
|
|
1259
|
+
},
|
|
1260
|
+
"getter": false,
|
|
1261
|
+
"setter": false,
|
|
1262
|
+
"reflect": false,
|
|
1263
|
+
"defaultValue": "'medium'"
|
|
1264
|
+
},
|
|
1209
1265
|
"type": {
|
|
1210
1266
|
"type": "string",
|
|
1211
1267
|
"attribute": "type",
|
|
@@ -1256,8 +1312,7 @@ export class Input {
|
|
|
1256
1312
|
}
|
|
1257
1313
|
static get states() {
|
|
1258
1314
|
return {
|
|
1259
|
-
"hasFocus": {}
|
|
1260
|
-
"isInvalid": {}
|
|
1315
|
+
"hasFocus": {}
|
|
1261
1316
|
};
|
|
1262
1317
|
}
|
|
1263
1318
|
static get events() {
|
|
@@ -1414,3 +1469,4 @@ export class Input {
|
|
|
1414
1469
|
}
|
|
1415
1470
|
}
|
|
1416
1471
|
let inputIds = 0;
|
|
1472
|
+
const ionicThemeDefaultLabelPlacement = 'stacked';
|