@ionic/core 8.2.2 → 8.2.3-dev.11718879673.1a3f486b
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 -8
- package/components/alert.js +14 -10
- package/components/backdrop.js +10 -6
- package/components/button.js +41 -12
- package/components/buttons.js +10 -6
- package/components/checkbox.js +26 -13
- package/components/data.js +4 -4
- package/components/index2.js +1 -2
- package/components/index4.js +8 -7
- package/components/index6.js +27 -30
- package/components/index7.js +124 -27
- package/components/index8.js +150 -111
- package/components/input-shims.js +1 -1
- package/components/input.utils.js +1 -1
- package/components/ion-accordion-group.js +9 -6
- package/components/ion-accordion.js +15 -9
- package/components/ion-app.js +5 -6
- package/components/ion-avatar.js +52 -3
- package/components/ion-back-button.js +15 -11
- package/components/ion-badge.js +42 -6
- package/components/ion-breadcrumb.js +16 -10
- package/components/ion-breadcrumbs.js +9 -5
- package/components/ion-card-content.js +9 -5
- package/components/ion-card-header.js +9 -5
- package/components/ion-card-subtitle.js +9 -5
- package/components/ion-card-title.js +9 -5
- package/components/ion-card.js +17 -9
- package/components/ion-chip.js +45 -8
- package/components/ion-col.js +5 -5
- package/components/ion-content.js +11 -11
- package/components/ion-datetime-button.js +9 -6
- package/components/ion-datetime.js +47 -20
- package/components/ion-fab-button.js +15 -9
- package/components/ion-fab-list.js +5 -5
- package/components/ion-fab.js +6 -6
- package/components/ion-footer.js +15 -11
- package/components/ion-grid.js +5 -5
- package/components/ion-header.js +16 -12
- package/components/ion-img.js +5 -2
- package/components/ion-infinite-scroll-content.js +12 -8
- package/components/ion-infinite-scroll.js +5 -5
- package/components/ion-input-password-toggle.js +7 -8
- package/components/ion-input.js +101 -20
- package/components/ion-item-divider.js +9 -5
- package/components/ion-item-group.js +9 -5
- package/components/ion-item-option.js +11 -7
- package/components/ion-item-options.js +9 -5
- package/components/ion-item-sliding.js +5 -5
- package/components/ion-loading.js +12 -8
- package/components/ion-menu-button.js +13 -9
- package/components/ion-menu-toggle.js +5 -5
- package/components/ion-menu.js +11 -7
- package/components/ion-modal.js +14 -11
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +7 -6
- package/components/ion-note.js +9 -5
- package/components/ion-picker-legacy.js +7 -8
- package/components/ion-progress-bar.js +10 -6
- package/components/ion-range.js +11 -8
- package/components/ion-refresher-content.js +9 -8
- package/components/ion-refresher.js +11 -7
- package/components/ion-reorder-group.js +5 -5
- package/components/ion-reorder.js +23 -5
- package/components/ion-router-link.js +6 -6
- package/components/ion-router-outlet.js +2 -2
- package/components/ion-row.js +5 -2
- package/components/ion-searchbar.js +62 -16
- package/components/ion-segment-button.js +12 -8
- package/components/ion-segment.js +9 -5
- package/components/ion-select-option.js +5 -2
- package/components/ion-select.js +67 -28
- package/components/ion-skeleton-text.js +5 -5
- package/components/ion-split-pane.js +12 -8
- package/components/ion-tab-bar.js +9 -5
- package/components/ion-tab-button.js +11 -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 +13 -9
- package/components/ion-thumbnail.js +5 -2
- package/components/ion-title.js +9 -5
- package/components/ion-toast.js +13 -9
- package/components/ion-toggle.js +56 -18
- package/components/ion-toolbar.js +11 -7
- package/components/ionic-global.js +191 -14
- package/components/ios.transition.js +1 -0
- package/components/item.js +17 -11
- package/components/label.js +9 -5
- package/components/list-header.js +9 -5
- package/components/list.js +10 -6
- package/components/overlays.js +1 -2
- package/components/picker-column-option.js +9 -5
- package/components/picker-column.js +7 -7
- package/components/picker-column2.js +4 -4
- package/components/picker.js +8 -4
- package/components/popover.js +11 -8
- package/components/radio-group.js +5 -3
- package/components/radio.js +12 -8
- package/components/ripple-effect.js +5 -5
- package/components/select-popover.js +9 -2
- package/components/spinner.js +6 -6
- package/components/status-tap.js +1 -1
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css.map +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.map +1 -1
- package/dist/cjs/{app-globals-64aa7919.js → app-globals-5b0a3f95.js} +1 -1
- package/dist/cjs/{data-21dc0f81.js → data-7d67d1e3.js} +6 -6
- package/dist/cjs/{hardware-back-button-9931602c.js → hardware-back-button-a90bf4cd.js} +1 -1
- package/dist/cjs/{index-63e64bb7.js → index-59095e03.js} +13 -12
- package/dist/cjs/{index-8a653282.js → index-71f7488c.js} +7 -8
- package/dist/cjs/{index-5b6a7459.js → index-ca6de37f.js} +2 -2
- package/dist/cjs/index.cjs.js +7 -8
- package/dist/cjs/{input-shims-9e59ef62.js → input-shims-58aadbb2.js} +3 -2
- package/dist/cjs/{input.utils-611cde0b.js → input.utils-d9907cfc.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +23 -14
- package/dist/cjs/ion-action-sheet.cjs.entry.js +15 -11
- package/dist/cjs/ion-alert.cjs.entry.js +16 -13
- package/dist/cjs/ion-app_8.cjs.entry.js +87 -68
- package/dist/cjs/ion-avatar_3.cjs.entry.js +90 -7
- package/dist/cjs/ion-back-button.cjs.entry.js +14 -10
- package/dist/cjs/ion-backdrop.cjs.entry.js +10 -6
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +23 -13
- package/dist/cjs/ion-button_2.cjs.entry.js +44 -15
- package/dist/cjs/ion-card_5.cjs.entry.js +48 -25
- package/dist/cjs/ion-checkbox.cjs.entry.js +23 -12
- package/dist/cjs/ion-chip.cjs.entry.js +42 -7
- package/dist/cjs/ion-col_3.cjs.entry.js +13 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -11
- package/dist/cjs/ion-datetime_3.cjs.entry.js +135 -108
- package/dist/cjs/ion-fab_3.cjs.entry.js +23 -17
- package/dist/cjs/ion-img.cjs.entry.js +5 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +16 -13
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -10
- package/dist/cjs/ion-input.cjs.entry.js +99 -20
- package/dist/cjs/ion-item-option_3.cjs.entry.js +23 -16
- package/dist/cjs/ion-item_8.cjs.entry.js +69 -39
- package/dist/cjs/ion-loading.cjs.entry.js +14 -11
- package/dist/cjs/ion-menu_3.cjs.entry.js +29 -22
- package/dist/cjs/ion-modal.cjs.entry.js +22 -19
- package/dist/cjs/ion-nav_2.cjs.entry.js +9 -8
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +9 -5
- package/dist/cjs/ion-picker-column.cjs.entry.js +7 -7
- package/dist/cjs/ion-picker.cjs.entry.js +8 -4
- package/dist/cjs/ion-popover.cjs.entry.js +17 -14
- package/dist/cjs/ion-progress-bar.cjs.entry.js +10 -6
- package/dist/cjs/ion-radio_2.cjs.entry.js +16 -10
- package/dist/cjs/ion-range.cjs.entry.js +16 -13
- package/dist/cjs/ion-refresher_2.cjs.entry.js +18 -14
- package/dist/cjs/ion-reorder_2.cjs.entry.js +26 -9
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +5 -5
- package/dist/cjs/ion-route_4.cjs.entry.js +6 -6
- package/dist/cjs/ion-searchbar.cjs.entry.js +61 -15
- package/dist/cjs/ion-segment_2.cjs.entry.js +20 -12
- package/dist/cjs/ion-select_3.cjs.entry.js +80 -32
- package/dist/cjs/ion-spinner.cjs.entry.js +6 -6
- package/dist/cjs/ion-split-pane.cjs.entry.js +12 -8
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +19 -11
- package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-text.cjs.entry.js +5 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +14 -11
- package/dist/cjs/ion-toast.cjs.entry.js +36 -32
- package/dist/cjs/ion-toggle.cjs.entry.js +55 -17
- package/dist/cjs/ionic-global-2bd379ad.js +418 -0
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-d94b6863.js → ios.transition-4a91b726.js} +3 -3
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-297be114.js → md.transition-1d783fa9.js} +2 -3
- package/dist/cjs/{overlays-569f7878.js → overlays-0c0d0193.js} +3 -4
- package/dist/cjs/{status-tap-607c6244.js → status-tap-87959a2f.js} +2 -2
- package/dist/collection/components/accordion/accordion.ios.css +12 -0
- package/dist/collection/components/accordion/accordion.js +19 -15
- package/dist/collection/components/accordion/accordion.md.css +6 -0
- package/dist/collection/components/accordion-group/accordion-group.ios.css +12 -0
- package/dist/collection/components/accordion-group/accordion-group.js +11 -8
- package/dist/collection/components/accordion-group/accordion-group.md.css +18 -0
- package/dist/collection/components/action-sheet/action-sheet.ios.css +18 -6
- package/dist/collection/components/action-sheet/action-sheet.js +14 -10
- 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 +15 -12
- package/dist/collection/components/alert/alert.md.css +19 -1
- package/dist/collection/components/app/app.js +8 -4
- package/dist/collection/components/avatar/avatar.ionic.css +255 -0
- package/dist/collection/components/avatar/avatar.ios.css +12 -0
- package/dist/collection/components/avatar/avatar.js +92 -4
- package/dist/collection/components/avatar/avatar.md.css +12 -0
- package/dist/collection/components/avatar/test/shape/avatar.e2e.js +134 -0
- package/dist/collection/components/avatar/test/size/avatar.e2e.js +147 -0
- package/dist/collection/components/back-button/back-button.ios.css +60 -48
- package/dist/collection/components/back-button/back-button.js +14 -11
- package/dist/collection/components/back-button/back-button.md.css +60 -48
- package/dist/collection/components/backdrop/backdrop.ios.css +13 -1
- package/dist/collection/components/backdrop/backdrop.js +12 -6
- package/dist/collection/components/backdrop/backdrop.md.css +13 -1
- package/dist/collection/components/badge/badge.ionic.css +256 -0
- package/dist/collection/components/badge/badge.ios.css +12 -0
- package/dist/collection/components/badge/badge.js +75 -8
- package/dist/collection/components/badge/badge.md.css +12 -0
- package/dist/collection/components/badge/test/shape/badge.e2e.js +84 -0
- package/dist/collection/components/badge/test/size/badge.e2e.js +96 -0
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js +16 -10
- 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 +417 -0
- package/dist/collection/components/button/button.ios.css +42 -16
- package/dist/collection/components/button/button.js +46 -17
- package/dist/collection/components/button/button.md.css +33 -20
- package/dist/collection/components/button/test/clear/button.e2e.js +6 -3
- package/dist/collection/components/button/test/outline/button.e2e.js +1 -0
- package/dist/collection/components/button/test/shape/button.e2e.js +250 -0
- package/dist/collection/components/button/test/size/button.e2e.js +18 -1
- package/dist/collection/components/button/test/states/button.e2e.js +51 -0
- package/dist/collection/components/buttons/buttons.ios.css +22 -4
- package/dist/collection/components/buttons/buttons.js +14 -8
- package/dist/collection/components/buttons/buttons.md.css +18 -0
- package/dist/collection/components/card/card.ionic.css +88 -0
- package/dist/collection/components/card/card.ios.css +30 -4
- package/dist/collection/components/card/card.js +34 -10
- package/dist/collection/components/card/card.md.css +30 -4
- package/dist/collection/components/card/test/shape/card.e2e.js +40 -0
- package/dist/collection/components/card-content/card-content.ios.css +12 -0
- package/dist/collection/components/card-content/card-content.js +11 -8
- package/dist/collection/components/card-content/card-content.md.css +12 -0
- package/dist/collection/components/card-header/card-header.ios.css +12 -0
- package/dist/collection/components/card-header/card-header.js +12 -9
- package/dist/collection/components/card-header/card-header.md.css +12 -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 +12 -0
- package/dist/collection/components/card-title/card-title.js +11 -8
- package/dist/collection/components/card-title/card-title.md.css +12 -0
- package/dist/collection/components/checkbox/checkbox.ionic.css +391 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +20 -2
- package/dist/collection/components/checkbox/checkbox.js +59 -14
- package/dist/collection/components/checkbox/checkbox.md.css +21 -3
- package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +66 -1
- package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +1 -1
- package/dist/collection/components/checkbox/test/states/checkbox.e2e.js +32 -1
- package/dist/collection/components/chip/chip.ionic.css +141 -0
- package/dist/collection/components/chip/chip.ios.css +20 -1
- package/dist/collection/components/chip/chip.js +77 -8
- package/dist/collection/components/chip/chip.md.css +20 -1
- package/dist/collection/components/chip/test/shape/chip.e2e.js +39 -0
- package/dist/collection/components/chip/test/size/chip.e2e.js +26 -0
- package/dist/collection/components/chip/test/states/chip.e2e.js +16 -0
- 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 +13 -10
- package/dist/collection/components/datetime/datetime.ios.css +15 -3
- package/dist/collection/components/datetime/datetime.js +47 -19
- package/dist/collection/components/datetime/datetime.md.css +15 -3
- package/dist/collection/components/datetime/utils/data.js +3 -3
- 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/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 +19 -14
- 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 +17 -14
- 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 +80 -0
- package/dist/collection/components/header/header.ios.css +25 -10
- package/dist/collection/components/header/header.js +17 -14
- package/dist/collection/components/header/header.md.css +23 -8
- package/dist/collection/components/header/test/basic/header.e2e.js +17 -8
- package/dist/collection/components/img/img.js +8 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +8 -4
- 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 +1031 -0
- package/dist/collection/components/input/input.ios.css +21 -2
- package/dist/collection/components/input/input.js +127 -29
- package/dist/collection/components/input/input.md.css +43 -4
- package/dist/collection/components/input/test/basic/input.e2e.js +66 -0
- package/dist/collection/components/input/test/bottom-content/input.e2e.js +24 -5
- package/dist/collection/components/input/test/fill/input.e2e.js +37 -39
- package/dist/collection/components/input/test/highlight/input.e2e.js +94 -0
- package/dist/collection/components/input/test/shape/input.e2e.js +165 -0
- package/dist/collection/components/input/test/size/input.e2e.js +164 -0
- package/dist/collection/components/input/test/slot/input.e2e.js +14 -0
- package/dist/collection/components/input/test/states/input.e2e.js +173 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +6 -5
- package/dist/collection/components/item/item.ionic.css +169 -0
- package/dist/collection/components/item/item.ios.css +20 -8
- package/dist/collection/components/item/item.js +21 -16
- package/dist/collection/components/item/item.md.css +31 -7
- package/dist/collection/components/item/test/disabled/item.e2e.js +1 -1
- package/dist/collection/components/item/test/states/item.e2e.js +1 -1
- 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.ios.css +14 -2
- package/dist/collection/components/item-option/item-option.js +11 -8
- package/dist/collection/components/item-option/item-option.md.css +14 -2
- package/dist/collection/components/item-options/item-options.ios.css +18 -0
- package/dist/collection/components/item-options/item-options.js +13 -7
- package/dist/collection/components/item-options/item-options.md.css +18 -0
- 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.ios.css +18 -0
- package/dist/collection/components/list/list.js +12 -9
- package/dist/collection/components/list/list.md.css +18 -0
- package/dist/collection/components/list-header/list-header.ios.css +18 -0
- package/dist/collection/components/list-header/list-header.js +11 -8
- package/dist/collection/components/list-header/list-header.md.css +18 -0
- package/dist/collection/components/loading/loading.ios.css +13 -1
- package/dist/collection/components/loading/loading.js +13 -10
- package/dist/collection/components/loading/loading.md.css +13 -1
- package/dist/collection/components/menu/menu.ios.css +15 -3
- package/dist/collection/components/menu/menu.js +12 -7
- package/dist/collection/components/menu/menu.md.css +15 -3
- package/dist/collection/components/menu-button/menu-button.ios.css +16 -4
- package/dist/collection/components/menu-button/menu-button.js +12 -9
- package/dist/collection/components/menu-button/menu-button.md.css +17 -5
- package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
- package/dist/collection/components/modal/modal.ios.css +14 -2
- package/dist/collection/components/modal/modal.js +13 -10
- package/dist/collection/components/modal/modal.md.css +14 -2
- 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 -7
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
- package/dist/collection/components/picker-legacy/picker.js +7 -6
- package/dist/collection/components/picker-legacy/picker.md.css +13 -1
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
- package/dist/collection/components/popover/popover.ios.css +13 -1
- package/dist/collection/components/popover/popover.js +15 -12
- package/dist/collection/components/popover/popover.md.css +13 -1
- package/dist/collection/components/progress-bar/progress-bar.ios.css +8 -2
- package/dist/collection/components/progress-bar/progress-bar.js +10 -7
- package/dist/collection/components/progress-bar/progress-bar.md.css +8 -2
- package/dist/collection/components/radio/radio.ios.css +20 -2
- package/dist/collection/components/radio/radio.js +12 -9
- package/dist/collection/components/radio/radio.md.css +20 -2
- package/dist/collection/components/radio-group/radio-group.js +9 -3
- package/dist/collection/components/range/range.ios.css +12 -0
- package/dist/collection/components/range/range.js +12 -9
- package/dist/collection/components/range/range.md.css +12 -0
- 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 +12 -7
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +26 -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 +7 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +8 -4
- 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 +5 -2
- package/dist/collection/components/row/row.css +12 -0
- package/dist/collection/components/row/row.js +9 -2
- package/dist/collection/components/searchbar/searchbar.ios.css +14 -2
- package/dist/collection/components/searchbar/searchbar.js +68 -24
- package/dist/collection/components/searchbar/searchbar.md.css +14 -2
- package/dist/collection/components/segment/segment.ios.css +18 -0
- package/dist/collection/components/segment/segment.js +11 -8
- package/dist/collection/components/segment/segment.md.css +18 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +16 -4
- package/dist/collection/components/segment-button/segment-button.js +12 -9
- package/dist/collection/components/segment-button/segment-button.md.css +18 -6
- package/dist/collection/components/select/select.ios.css +22 -3
- package/dist/collection/components/select/select.js +70 -31
- package/dist/collection/components/select/select.md.css +38 -5
- 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 +6 -0
- package/dist/collection/components/spinner/spinner.js +10 -6
- 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 +163 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +18 -0
- package/dist/collection/components/tab-bar/tab-bar.js +12 -9
- package/dist/collection/components/tab-bar/tab-bar.md.css +18 -0
- package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +34 -0
- package/dist/collection/components/tab-button/tab-button.ionic.css +264 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +15 -3
- package/dist/collection/components/tab-button/tab-button.js +11 -8
- package/dist/collection/components/tab-button/tab-button.md.css +15 -3
- 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.ios.css +26 -1
- package/dist/collection/components/textarea/textarea.js +15 -12
- package/dist/collection/components/textarea/textarea.md.css +39 -2
- package/dist/collection/components/thumbnail/thumbnail.css +6 -0
- package/dist/collection/components/thumbnail/thumbnail.js +9 -2
- package/dist/collection/components/title/title.ios.css +6 -0
- package/dist/collection/components/title/title.js +13 -7
- package/dist/collection/components/title/title.md.css +6 -0
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ios.css +12 -0
- package/dist/collection/components/toast/toast.js +15 -11
- package/dist/collection/components/toast/toast.md.css +12 -0
- package/dist/collection/components/toggle/toggle.ios.css +23 -2
- package/dist/collection/components/toggle/toggle.js +55 -18
- package/dist/collection/components/toggle/toggle.md.css +20 -2
- package/dist/collection/components/toolbar/toolbar.ios.css +14 -2
- package/dist/collection/components/toolbar/toolbar.js +13 -10
- package/dist/collection/components/toolbar/toolbar.md.css +14 -2
- package/dist/collection/css/test/link/basic/link.e2e.js +35 -0
- package/dist/collection/css/test/{a11y → typography/a11y}/typography.e2e.js +1 -1
- package/dist/collection/css/test/typography/basic/typography.e2e.js +14 -0
- package/dist/collection/global/ionic-global.js +161 -13
- package/dist/collection/global/test/ionic-global.spec.js +109 -0
- package/dist/collection/themes/{test → native/test}/colors/theme.e2e.js +1 -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/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 +13 -1
- package/dist/collection/utils/transition/ios.transition.js +1 -0
- package/dist/docs.json +6439 -325
- package/dist/esm/{app-globals-232dc3ed.js → app-globals-1fabe499.js} +1 -1
- package/dist/esm/{button-active-f7898f4b.js → button-active-367a8e84.js} +1 -1
- package/dist/esm/{data-ae11fd43.js → data-63b889c5.js} +4 -4
- package/dist/esm/{hardware-back-button-7f93f261.js → hardware-back-button-2da817f5.js} +2 -2
- package/dist/esm/{index-5cc724f3.js → index-00b4cca5.js} +1 -1
- package/dist/esm/{index-c71c5417.js → index-3321c202.js} +1 -1
- package/dist/esm/{index-92f14156.js → index-33a3d901.js} +4 -5
- package/dist/esm/{index-c8c3afda.js → index-44013081.js} +9 -8
- package/dist/esm/index.js +8 -9
- package/dist/esm/{input-shims-0314bbe5.js → input-shims-c142630d.js} +3 -2
- package/dist/esm/{input.utils-09c71bc7.js → input.utils-68c66dbc.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +23 -14
- package/dist/esm/ion-action-sheet.entry.js +17 -13
- package/dist/esm/ion-alert.entry.js +18 -15
- package/dist/esm/ion-app_8.entry.js +77 -58
- package/dist/esm/ion-avatar_3.entry.js +91 -8
- package/dist/esm/ion-back-button.entry.js +15 -11
- package/dist/esm/ion-backdrop.entry.js +11 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +24 -14
- package/dist/esm/ion-button_2.entry.js +42 -13
- package/dist/esm/ion-card_5.entry.js +49 -26
- package/dist/esm/ion-checkbox.entry.js +24 -13
- package/dist/esm/ion-chip.entry.js +43 -8
- package/dist/esm/ion-col_3.entry.js +14 -11
- package/dist/esm/ion-datetime-button.entry.js +11 -8
- package/dist/esm/ion-datetime_3.entry.js +60 -33
- package/dist/esm/ion-fab_3.entry.js +24 -18
- package/dist/esm/ion-img.entry.js +6 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +17 -14
- package/dist/esm/ion-input-password-toggle.entry.js +7 -8
- package/dist/esm/ion-input.entry.js +100 -21
- package/dist/esm/ion-item-option_3.entry.js +24 -17
- package/dist/esm/ion-item_8.entry.js +70 -40
- package/dist/esm/ion-loading.entry.js +15 -12
- package/dist/esm/ion-menu_3.entry.js +30 -23
- package/dist/esm/ion-modal.entry.js +18 -15
- package/dist/esm/ion-nav_2.entry.js +10 -9
- package/dist/esm/ion-picker-column-option.entry.js +10 -6
- package/dist/esm/ion-picker-column.entry.js +8 -8
- package/dist/esm/ion-picker.entry.js +9 -5
- package/dist/esm/ion-popover.entry.js +15 -12
- package/dist/esm/ion-progress-bar.entry.js +11 -7
- package/dist/esm/ion-radio_2.entry.js +17 -11
- package/dist/esm/ion-range.entry.js +12 -9
- package/dist/esm/ion-refresher_2.entry.js +19 -15
- package/dist/esm/ion-reorder_2.entry.js +27 -10
- package/dist/esm/ion-ripple-effect.entry.js +6 -6
- package/dist/esm/ion-route_4.entry.js +7 -7
- package/dist/esm/ion-searchbar.entry.js +62 -16
- package/dist/esm/ion-segment_2.entry.js +21 -13
- package/dist/esm/ion-select_3.entry.js +81 -33
- package/dist/esm/ion-spinner.entry.js +7 -7
- package/dist/esm/ion-split-pane.entry.js +13 -9
- package/dist/esm/ion-tab-bar_2.entry.js +20 -12
- package/dist/esm/ion-tab_2.entry.js +5 -5
- package/dist/esm/ion-text.entry.js +6 -6
- package/dist/esm/ion-textarea.entry.js +15 -12
- package/dist/esm/ion-toast.entry.js +16 -12
- package/dist/esm/ion-toggle.entry.js +56 -18
- package/dist/esm/ionic-global-be8fa30a.js +408 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-2f45f5c1.js → ios.transition-688eab99.js} +4 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-6fcc955f.js → md.transition-0540d1d2.js} +3 -4
- package/dist/esm/{overlays-0d212972.js → overlays-a0e93007.js} +2 -3
- package/dist/esm/{status-tap-53150009.js → status-tap-8d02be66.js} +3 -3
- package/dist/esm-es5/app-globals-1fabe499.js +4 -0
- package/dist/esm-es5/{button-active-f7898f4b.js → button-active-367a8e84.js} +1 -1
- package/dist/esm-es5/data-63b889c5.js +4 -0
- package/dist/esm-es5/{hardware-back-button-7f93f261.js → hardware-back-button-2da817f5.js} +1 -1
- package/dist/esm-es5/index-00b4cca5.js +4 -0
- package/dist/esm-es5/{index-c71c5417.js → index-3321c202.js} +1 -1
- package/dist/esm-es5/index-33a3d901.js +4 -0
- package/dist/esm-es5/index-44013081.js +4 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-c142630d.js +4 -0
- package/dist/esm-es5/input.utils-68c66dbc.js +4 -0
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic-global-be8fa30a.js +4 -0
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/ios.transition-688eab99.js +4 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-0540d1d2.js +4 -0
- package/dist/esm-es5/overlays-a0e93007.js +4 -0
- package/dist/esm-es5/status-tap-8d02be66.js +4 -0
- package/dist/html.html-data.json +2054 -100
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/p-0116d120.entry.js +4 -0
- package/dist/ionic/p-01ae1aa0.entry.js +4 -0
- package/dist/ionic/p-021bee2f.system.entry.js +4 -0
- package/dist/ionic/p-036d86ec.system.entry.js +4 -0
- package/dist/ionic/p-0a93c048.system.js +4 -0
- package/dist/ionic/p-1219eea0.system.entry.js +4 -0
- package/dist/ionic/{p-bbc5329a.system.entry.js → p-128f0f15.system.entry.js} +2 -2
- package/dist/ionic/p-12c07c03.system.entry.js +4 -0
- package/dist/ionic/p-132e1004.entry.js +4 -0
- package/dist/ionic/{p-395a0dd7.js → p-15901e6c.js} +1 -1
- package/dist/ionic/{p-9ea607bd.system.js → p-1b75a2d2.system.js} +2 -2
- package/dist/ionic/p-1d548fea.system.entry.js +4 -0
- package/dist/ionic/p-1dbb7fa3.entry.js +4 -0
- package/dist/ionic/{p-a688052d.system.js → p-1ecfe64f.system.js} +1 -1
- package/dist/ionic/p-22fef691.js +4 -0
- package/dist/ionic/p-24592a4d.system.entry.js +4 -0
- package/dist/ionic/p-24d2aea3.entry.js +4 -0
- package/dist/ionic/p-27e42c9e.system.js +4 -0
- package/dist/ionic/p-28a10445.system.js +4 -0
- package/dist/ionic/{p-0c06e09b.system.js → p-2ac68c59.system.js} +1 -1
- package/dist/ionic/{p-c350c8f8.system.entry.js → p-2d618ba6.system.entry.js} +1 -1
- package/dist/ionic/{p-99a4d7c7.system.js → p-2df16673.system.js} +2 -2
- package/dist/ionic/{p-06e58c4e.js → p-2fa9c16c.js} +1 -1
- package/dist/ionic/{p-ea4f2b31.entry.js → p-2fdc82b4.entry.js} +1 -1
- package/dist/ionic/p-302c9c7a.system.entry.js +4 -0
- package/dist/ionic/p-30b49657.system.entry.js +4 -0
- package/dist/ionic/p-350462f9.system.entry.js +4 -0
- package/dist/ionic/p-359afeb0.system.entry.js +4 -0
- package/dist/ionic/p-37e801db.entry.js +4 -0
- package/dist/ionic/{p-60eb4c0d.system.entry.js → p-3862d08b.system.entry.js} +1 -1
- package/dist/ionic/p-3b989be4.entry.js +4 -0
- package/dist/ionic/p-3c031826.system.entry.js +4 -0
- package/dist/ionic/p-3c18022f.entry.js +4 -0
- package/dist/ionic/p-3c6eae03.system.entry.js +4 -0
- package/dist/ionic/p-3cccd1c7.system.entry.js +4 -0
- package/dist/ionic/p-3d25c6d9.entry.js +4 -0
- package/dist/ionic/p-3e2568b9.system.js +4 -0
- package/dist/ionic/p-3e9a1680.js +4 -0
- package/dist/ionic/{p-ac34105e.entry.js → p-4058051c.entry.js} +1 -1
- package/dist/ionic/{p-266db4b6.entry.js → p-4079d071.entry.js} +1 -1
- package/dist/ionic/p-40c14f53.system.entry.js +4 -0
- package/dist/ionic/{p-f3ff1e58.entry.js → p-41c9fb60.entry.js} +1 -1
- package/dist/ionic/p-42452dc9.entry.js +4 -0
- package/dist/ionic/p-42816eab.entry.js +4 -0
- package/dist/ionic/p-42bb5ed7.system.entry.js +4 -0
- package/dist/ionic/p-44314b44.system.entry.js +4 -0
- package/dist/ionic/p-479bec54.entry.js +4 -0
- package/dist/ionic/{p-e6964b3a.js → p-493a4548.js} +1 -1
- package/dist/ionic/p-49fee3a3.entry.js +4 -0
- package/dist/ionic/p-4b9c6418.system.entry.js +4 -0
- package/dist/ionic/p-4d6c2031.system.entry.js +4 -0
- package/dist/ionic/p-4ec67d0a.entry.js +4 -0
- package/dist/ionic/p-546438d8.js +4 -0
- package/dist/ionic/p-563a8d3b.entry.js +4 -0
- package/dist/ionic/p-56c72f65.system.entry.js +4 -0
- package/dist/ionic/p-59cd0dd7.system.entry.js +4 -0
- package/dist/ionic/p-61ddbdb9.entry.js +4 -0
- package/dist/ionic/{p-44c6eb74.js → p-644c505f.js} +1 -1
- package/dist/ionic/p-645a7748.entry.js +4 -0
- package/dist/ionic/{p-d60342e3.js → p-6649365e.js} +1 -1
- package/dist/ionic/p-6746c32a.entry.js +4 -0
- package/dist/ionic/{p-eb8098d5.system.entry.js → p-67f85d9a.system.entry.js} +1 -1
- package/dist/ionic/p-6c57ed08.js +4 -0
- package/dist/ionic/p-6daa3633.entry.js +4 -0
- package/dist/ionic/p-72e98815.system.js +4 -0
- package/dist/ionic/p-752e285d.entry.js +4 -0
- package/dist/ionic/p-79113968.js +4 -0
- package/dist/ionic/p-7b590e46.system.js +4 -0
- package/dist/ionic/p-7b914bfb.entry.js +4 -0
- package/dist/ionic/p-7bf2087e.entry.js +4 -0
- package/dist/ionic/p-7dad531c.system.entry.js +4 -0
- package/dist/ionic/p-7f5f8a14.entry.js +4 -0
- package/dist/ionic/p-82df3737.system.entry.js +4 -0
- package/dist/ionic/p-87e823ce.js +4 -0
- package/dist/ionic/p-89efe86f.entry.js +4 -0
- package/dist/ionic/p-8a04868b.system.entry.js +4 -0
- package/dist/ionic/p-8ac5efa9.entry.js +4 -0
- package/dist/ionic/p-8ed0cef4.system.entry.js +4 -0
- package/dist/ionic/p-90027267.system.js +4 -0
- package/dist/ionic/p-935801cc.entry.js +4 -0
- package/dist/ionic/p-96f109ca.entry.js +4 -0
- package/dist/ionic/p-9771abb4.entry.js +4 -0
- package/dist/ionic/p-9b925d37.system.entry.js +4 -0
- package/dist/ionic/p-9ead4417.js +4 -0
- package/dist/ionic/p-a06d7e6a.system.js +4 -0
- package/dist/ionic/{p-5d6e77bd.system.entry.js → p-a2b60239.system.entry.js} +1 -1
- package/dist/ionic/p-a3b856e6.system.entry.js +4 -0
- package/dist/ionic/{p-00333e13.js → p-a42e4adb.js} +1 -1
- package/dist/ionic/p-ada5e8bb.entry.js +4 -0
- package/dist/ionic/{p-9286b16d.system.entry.js → p-b5cc6e57.system.entry.js} +2 -2
- package/dist/ionic/p-bab398d1.entry.js +4 -0
- package/dist/ionic/p-bb7162de.system.js +4 -0
- package/dist/ionic/p-bedf240b.entry.js +4 -0
- package/dist/ionic/p-bee73070.entry.js +4 -0
- package/dist/ionic/{p-13260c59.entry.js → p-c23822f8.entry.js} +1 -1
- package/dist/ionic/p-c24b81cc.entry.js +4 -0
- package/dist/ionic/p-c374ab05.system.js +4 -0
- package/dist/ionic/{p-1de7f9e4.entry.js → p-c47b75e3.entry.js} +1 -1
- package/dist/ionic/p-c79decb5.system.entry.js +4 -0
- package/dist/ionic/p-ca5aaed3.system.entry.js +4 -0
- package/dist/ionic/p-cce8c245.entry.js +4 -0
- package/dist/ionic/{p-96cc4814.js → p-cd99310b.js} +1 -1
- package/dist/ionic/p-cdc9a11c.system.entry.js +4 -0
- package/dist/ionic/p-d281c150.system.entry.js +4 -0
- package/dist/ionic/p-d2a580db.entry.js +4 -0
- package/dist/ionic/p-d4f55a93.entry.js +4 -0
- package/dist/ionic/p-d5fc7d63.entry.js +4 -0
- package/dist/ionic/{p-f687573e.system.js → p-d98a1d99.system.js} +1 -1
- package/dist/ionic/p-db08a2d0.system.entry.js +4 -0
- package/dist/ionic/p-db3f14c1.system.entry.js +4 -0
- package/dist/ionic/p-db8fac3d.system.entry.js +4 -0
- package/dist/ionic/p-dc60009b.system.entry.js +4 -0
- package/dist/ionic/p-dc8a3888.entry.js +4 -0
- package/dist/ionic/p-e2313846.entry.js +4 -0
- package/dist/ionic/{p-e6a47e94.entry.js → p-e59d16bd.entry.js} +1 -1
- package/dist/ionic/{p-8d3e57a0.system.entry.js → p-e7e3ba54.system.entry.js} +1 -1
- package/dist/ionic/p-e8aa220a.js +4 -0
- package/dist/ionic/p-e900eba2.system.entry.js +4 -0
- package/dist/ionic/p-ea8c8541.system.entry.js +4 -0
- package/dist/ionic/p-ebc71ff5.system.entry.js +4 -0
- package/dist/ionic/p-f0fab903.system.entry.js +4 -0
- package/dist/ionic/p-f621b019.entry.js +4 -0
- package/dist/ionic/{p-6ad705f8.system.js → p-fa019443.system.js} +1 -1
- package/dist/ionic/p-fb17d462.entry.js +4 -0
- package/dist/ionic/p-fb8ecdb4.system.entry.js +4 -0
- package/dist/ionic/p-fc0922fa.system.entry.js +4 -0
- package/dist/ionic/{p-7a43878b.system.js → p-fc9f9e4d.system.js} +1 -1
- package/dist/ionic/p-fcb1218a.system.entry.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +3 -2
- package/dist/types/components/accordion-group/accordion-group.d.ts +2 -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 -0
- package/dist/types/components/avatar/avatar.d.ts +25 -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 +23 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +15 -4
- 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 +19 -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 +18 -1
- package/dist/types/components/datetime/utils/data.d.ts +3 -3
- package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
- package/dist/types/components/fab/fab.d.ts +4 -0
- package/dist/types/components/fab-button/fab-button.d.ts +4 -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 +4 -3
- package/dist/types/components/img/img.d.ts +3 -0
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +4 -0
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
- package/dist/types/components/input/input.d.ts +31 -5
- package/dist/types/components/item/item.d.ts +5 -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 +2 -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 +2 -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 +2 -1
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
- package/dist/types/components/modal/modal-interface.d.ts +3 -7
- package/dist/types/components/modal/modal.d.ts +2 -1
- package/dist/types/components/nav/nav-interface.d.ts +9 -1
- package/dist/types/components/nav/nav.d.ts +5 -1
- package/dist/types/components/nav-link/nav-link.d.ts +4 -0
- package/dist/types/components/note/note.d.ts +2 -1
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/picker-column/picker-column.d.ts +2 -1
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
- package/dist/types/components/picker-legacy/picker.d.ts +2 -1
- package/dist/types/components/popover/popover-interface.d.ts +3 -6
- package/dist/types/components/popover/popover.d.ts +6 -5
- package/dist/types/components/progress-bar/progress-bar.d.ts +2 -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 +11 -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 +27 -8
- 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 +24 -5
- 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 +4 -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 +3 -2
- package/dist/types/components/tab-button/tab-button.d.ts +2 -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 +3 -2
- 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 +3 -2
- package/dist/types/components/toggle/toggle.d.ts +19 -1
- package/dist/types/components/toolbar/toolbar.d.ts +4 -3
- package/dist/types/components.d.ts +1278 -174
- package/dist/types/global/ionic-global.d.ts +25 -2
- package/dist/types/interface.d.ts +3 -0
- package/dist/types/utils/config.d.ts +99 -2
- 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 +1564 -615
- package/package.json +7 -4
- package/components/index9.js +0 -167
- package/dist/cjs/index-5915f9b3.js +0 -38
- package/dist/cjs/ionic-global-46459c38.js +0 -237
- package/dist/collection/components/button/test/round/button.e2e.js +0 -52
- package/dist/esm/index-9b0d46f4.js +0 -34
- package/dist/esm/ionic-global-b9c0d1da.js +0 -231
- package/dist/esm-es5/app-globals-232dc3ed.js +0 -4
- package/dist/esm-es5/data-ae11fd43.js +0 -4
- package/dist/esm-es5/index-5cc724f3.js +0 -4
- package/dist/esm-es5/index-92f14156.js +0 -4
- package/dist/esm-es5/index-9b0d46f4.js +0 -4
- package/dist/esm-es5/index-c8c3afda.js +0 -4
- package/dist/esm-es5/input-shims-0314bbe5.js +0 -4
- package/dist/esm-es5/input.utils-09c71bc7.js +0 -4
- package/dist/esm-es5/ionic-global-b9c0d1da.js +0 -4
- package/dist/esm-es5/ios.transition-2f45f5c1.js +0 -4
- package/dist/esm-es5/md.transition-6fcc955f.js +0 -4
- package/dist/esm-es5/overlays-0d212972.js +0 -4
- package/dist/esm-es5/status-tap-53150009.js +0 -4
- package/dist/ionic/p-05bbe79d.entry.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-0769896d.system.entry.js +0 -4
- package/dist/ionic/p-13d3abce.system.entry.js +0 -4
- package/dist/ionic/p-1731ab58.system.entry.js +0 -4
- package/dist/ionic/p-17c10451.system.entry.js +0 -4
- package/dist/ionic/p-184fc032.system.js +0 -4
- package/dist/ionic/p-18fd2107.entry.js +0 -4
- package/dist/ionic/p-1a0848af.system.entry.js +0 -4
- package/dist/ionic/p-1cebad78.system.entry.js +0 -4
- package/dist/ionic/p-1e2b2b60.entry.js +0 -4
- package/dist/ionic/p-2690b1de.js +0 -4
- package/dist/ionic/p-26e469a2.system.entry.js +0 -4
- package/dist/ionic/p-2b13fb8c.entry.js +0 -4
- package/dist/ionic/p-2e7673a0.system.entry.js +0 -4
- package/dist/ionic/p-3886b5d0.entry.js +0 -4
- package/dist/ionic/p-38c67b66.system.entry.js +0 -4
- package/dist/ionic/p-3a0091c2.system.entry.js +0 -4
- package/dist/ionic/p-3b199ab6.entry.js +0 -4
- package/dist/ionic/p-3c1b674f.entry.js +0 -4
- package/dist/ionic/p-3dba7283.entry.js +0 -4
- package/dist/ionic/p-3ea44c31.system.entry.js +0 -4
- package/dist/ionic/p-418ad596.entry.js +0 -4
- package/dist/ionic/p-4c3d1c73.entry.js +0 -4
- package/dist/ionic/p-4d6b6aef.system.entry.js +0 -4
- package/dist/ionic/p-4d7ab66a.system.entry.js +0 -4
- package/dist/ionic/p-4f610234.entry.js +0 -4
- package/dist/ionic/p-52df00b5.entry.js +0 -4
- package/dist/ionic/p-56cb7d41.entry.js +0 -4
- package/dist/ionic/p-591528fc.entry.js +0 -4
- package/dist/ionic/p-5b121ea3.system.entry.js +0 -4
- package/dist/ionic/p-5bbd2b10.entry.js +0 -4
- package/dist/ionic/p-5c22c8fa.system.js +0 -4
- package/dist/ionic/p-5f2dc7f9.entry.js +0 -4
- package/dist/ionic/p-6017cbeb.system.js +0 -4
- package/dist/ionic/p-6167004c.system.entry.js +0 -4
- package/dist/ionic/p-617caf82.entry.js +0 -4
- package/dist/ionic/p-624e1ca6.system.js +0 -4
- package/dist/ionic/p-646d46b1.entry.js +0 -4
- package/dist/ionic/p-64e15640.system.entry.js +0 -4
- package/dist/ionic/p-65fd47cb.system.entry.js +0 -4
- package/dist/ionic/p-66621486.system.entry.js +0 -4
- package/dist/ionic/p-666583e1.system.entry.js +0 -4
- package/dist/ionic/p-68e5bec9.system.entry.js +0 -4
- package/dist/ionic/p-68f01c55.system.entry.js +0 -4
- package/dist/ionic/p-6c76eff8.system.entry.js +0 -4
- package/dist/ionic/p-6cf5d476.system.js +0 -4
- package/dist/ionic/p-6ee1e402.system.js +0 -4
- package/dist/ionic/p-705c21cb.system.entry.js +0 -4
- package/dist/ionic/p-72ee2cd6.entry.js +0 -4
- package/dist/ionic/p-733db888.entry.js +0 -4
- package/dist/ionic/p-738cb3bd.entry.js +0 -4
- package/dist/ionic/p-75cb6744.system.js +0 -4
- package/dist/ionic/p-796cfde4.entry.js +0 -4
- package/dist/ionic/p-7a86bd75.js +0 -4
- package/dist/ionic/p-7f84a4c8.system.entry.js +0 -4
- package/dist/ionic/p-8ee5c5bf.js +0 -4
- package/dist/ionic/p-943bc98f.system.entry.js +0 -4
- package/dist/ionic/p-94953ea1.system.entry.js +0 -4
- package/dist/ionic/p-94c6f6ab.system.entry.js +0 -4
- package/dist/ionic/p-9690c79d.system.entry.js +0 -4
- package/dist/ionic/p-98f199c6.system.entry.js +0 -4
- package/dist/ionic/p-9f5f3485.js +0 -4
- package/dist/ionic/p-a07f9cb7.system.entry.js +0 -4
- package/dist/ionic/p-a3aaeca8.system.entry.js +0 -4
- package/dist/ionic/p-ab27a195.system.entry.js +0 -4
- package/dist/ionic/p-af9d3f33.entry.js +0 -4
- package/dist/ionic/p-b1e856df.entry.js +0 -4
- package/dist/ionic/p-b6fe4a42.entry.js +0 -4
- package/dist/ionic/p-b7fa6074.js +0 -4
- package/dist/ionic/p-b9fcfe50.system.js +0 -4
- package/dist/ionic/p-c1859486.system.js +0 -4
- package/dist/ionic/p-c5477854.system.entry.js +0 -4
- package/dist/ionic/p-c91c13d2.js +0 -4
- package/dist/ionic/p-cb5d9dd4.entry.js +0 -4
- package/dist/ionic/p-ccab4d05.system.entry.js +0 -4
- package/dist/ionic/p-cdddc32e.entry.js +0 -4
- package/dist/ionic/p-d2293261.system.entry.js +0 -4
- package/dist/ionic/p-d2753e35.js +0 -4
- package/dist/ionic/p-d2db72d1.entry.js +0 -4
- package/dist/ionic/p-d529141b.entry.js +0 -4
- package/dist/ionic/p-d5f62e4e.entry.js +0 -4
- package/dist/ionic/p-d7b97091.entry.js +0 -4
- package/dist/ionic/p-d820d1f1.entry.js +0 -4
- package/dist/ionic/p-d9e26540.system.entry.js +0 -4
- package/dist/ionic/p-da0001cd.system.entry.js +0 -4
- package/dist/ionic/p-dbee9e95.system.entry.js +0 -4
- package/dist/ionic/p-df3ebee9.system.entry.js +0 -4
- package/dist/ionic/p-df4bdf05.entry.js +0 -4
- package/dist/ionic/p-dfb78785.system.js +0 -4
- package/dist/ionic/p-e08fb9c2.system.entry.js +0 -4
- package/dist/ionic/p-e12d7323.entry.js +0 -4
- package/dist/ionic/p-e4587da1.js +0 -4
- package/dist/ionic/p-eaed7394.entry.js +0 -4
- package/dist/ionic/p-ecf5f3e0.entry.js +0 -4
- package/dist/ionic/p-ed72bc6c.system.entry.js +0 -4
- package/dist/ionic/p-ef1c5743.entry.js +0 -4
- package/dist/ionic/p-f181073a.entry.js +0 -4
- package/dist/ionic/p-f52c2d9a.entry.js +0 -4
- package/dist/ionic/p-f654e4df.entry.js +0 -4
- package/dist/ionic/p-fa2abaef.entry.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a pixels given value into rem
|
|
3
|
+
*
|
|
4
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
5
|
+
* @param context (optional) - Baseline value
|
|
6
|
+
*/
|
|
1
7
|
/**
|
|
2
8
|
* Convert a font size to a dynamic font size.
|
|
3
9
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -73,6 +79,7 @@
|
|
|
73
79
|
* @prop --highlight-color-focused: The color of the highlight on the input when focused
|
|
74
80
|
* @prop --highlight-color-valid: The color of the highlight on the input when valid
|
|
75
81
|
* @prop --highlight-color-invalid: The color of the highlight on the input when invalid
|
|
82
|
+
* @prop --text-color-invalid: The color of the error text on the input when invalid. Only applies to ionic theme.
|
|
76
83
|
*
|
|
77
84
|
* @prop --border-color: Color of the border below the input when using helper text, error text, or counter
|
|
78
85
|
* @prop --border-radius: Radius of the input. A large radius may display unevenly when using fill="outline"; if needed, use shape="round" instead or increase --padding-start.
|
|
@@ -135,18 +142,18 @@
|
|
|
135
142
|
padding-right: 0;
|
|
136
143
|
padding-top: 0;
|
|
137
144
|
padding-bottom: 0;
|
|
145
|
+
color: inherit;
|
|
138
146
|
font-family: inherit;
|
|
139
147
|
font-size: inherit;
|
|
140
148
|
font-style: inherit;
|
|
141
149
|
font-weight: inherit;
|
|
142
150
|
letter-spacing: inherit;
|
|
151
|
+
text-align: inherit;
|
|
143
152
|
text-decoration: inherit;
|
|
144
153
|
text-indent: inherit;
|
|
145
154
|
text-overflow: inherit;
|
|
146
155
|
text-transform: inherit;
|
|
147
|
-
text-align: inherit;
|
|
148
156
|
white-space: inherit;
|
|
149
|
-
color: inherit;
|
|
150
157
|
display: inline-block;
|
|
151
158
|
position: relative;
|
|
152
159
|
flex: 1;
|
|
@@ -606,6 +613,12 @@
|
|
|
606
613
|
display: none;
|
|
607
614
|
}
|
|
608
615
|
|
|
616
|
+
/**
|
|
617
|
+
* Convert a pixels given value into rem
|
|
618
|
+
*
|
|
619
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
620
|
+
* @param context (optional) - Baseline value
|
|
621
|
+
*/
|
|
609
622
|
/**
|
|
610
623
|
* Convert a font size to a dynamic font size.
|
|
611
624
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -661,6 +674,12 @@
|
|
|
661
674
|
* }
|
|
662
675
|
* }
|
|
663
676
|
*/
|
|
677
|
+
/**
|
|
678
|
+
* Convert a pixels given value into rem
|
|
679
|
+
*
|
|
680
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
681
|
+
* @param context (optional) - Baseline value
|
|
682
|
+
*/
|
|
664
683
|
/**
|
|
665
684
|
* Convert a font size to a dynamic font size.
|
|
666
685
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
import { Build, Host, forceUpdate, h } from "@stencil/core";
|
|
5
5
|
import { createNotchController } from "../../utils/forms/index";
|
|
6
6
|
import { inheritAriaAttributes, debounceEvent, inheritAttributes, componentOnReady } from "../../utils/helpers";
|
|
7
|
+
import { printIonWarning } from "../../utils/logging/index";
|
|
7
8
|
import { createSlotMutationController } from "../../utils/slot-mutation-controller";
|
|
8
9
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
9
10
|
import { closeCircle, closeSharp } from "ionicons/icons";
|
|
10
|
-
import {
|
|
11
|
+
import { config } from "../../global/config";
|
|
12
|
+
import { getIonTheme } from "../../global/ionic-global";
|
|
11
13
|
import { getCounterText } from "./input.utils";
|
|
12
14
|
/**
|
|
13
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines
|
|
15
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
16
|
+
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
14
17
|
*
|
|
15
18
|
* @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
19
|
* @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
|
|
@@ -93,7 +96,7 @@ export class Input {
|
|
|
93
96
|
this.inputmode = undefined;
|
|
94
97
|
this.helperText = undefined;
|
|
95
98
|
this.label = undefined;
|
|
96
|
-
this.labelPlacement =
|
|
99
|
+
this.labelPlacement = undefined;
|
|
97
100
|
this.max = undefined;
|
|
98
101
|
this.maxlength = undefined;
|
|
99
102
|
this.min = undefined;
|
|
@@ -107,6 +110,7 @@ export class Input {
|
|
|
107
110
|
this.shape = undefined;
|
|
108
111
|
this.spellcheck = false;
|
|
109
112
|
this.step = undefined;
|
|
113
|
+
this.size = 'medium';
|
|
110
114
|
this.type = 'text';
|
|
111
115
|
this.value = '';
|
|
112
116
|
}
|
|
@@ -149,6 +153,9 @@ export class Input {
|
|
|
149
153
|
}
|
|
150
154
|
componentWillLoad() {
|
|
151
155
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type']));
|
|
156
|
+
if (this.labelPlacement === undefined) {
|
|
157
|
+
this.labelPlacement = getIonTheme(this) === 'ionic' ? ionicThemeDefaultLabelPlacement : 'start';
|
|
158
|
+
}
|
|
152
159
|
}
|
|
153
160
|
connectedCallback() {
|
|
154
161
|
const { el } = this;
|
|
@@ -251,6 +258,44 @@ export class Input {
|
|
|
251
258
|
getValue() {
|
|
252
259
|
return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();
|
|
253
260
|
}
|
|
261
|
+
getLabelPlacement() {
|
|
262
|
+
const theme = getIonTheme(this);
|
|
263
|
+
const { el, labelPlacement } = this;
|
|
264
|
+
if (theme === 'ionic' && labelPlacement !== 'stacked' && labelPlacement !== 'floating') {
|
|
265
|
+
printIonWarning(`The "${labelPlacement}" label placement is not supported in the ${theme} theme. The default value of "${ionicThemeDefaultLabelPlacement}" will be used instead.`, el);
|
|
266
|
+
return ionicThemeDefaultLabelPlacement;
|
|
267
|
+
}
|
|
268
|
+
return labelPlacement;
|
|
269
|
+
}
|
|
270
|
+
// TODO(FW-6201): Remove this method when size is supported in ios and md
|
|
271
|
+
getSize() {
|
|
272
|
+
const theme = getIonTheme(this);
|
|
273
|
+
const { size } = this;
|
|
274
|
+
if (theme !== 'ionic' && (size === 'large' || size === 'xlarge')) {
|
|
275
|
+
printIonWarning(`The "${size}" size is not supported in the ${theme} theme.`);
|
|
276
|
+
// Fallback to medium size, which is the default size for all themes.
|
|
277
|
+
return 'medium';
|
|
278
|
+
}
|
|
279
|
+
return size;
|
|
280
|
+
}
|
|
281
|
+
getShape() {
|
|
282
|
+
const theme = getIonTheme(this);
|
|
283
|
+
const { shape } = this;
|
|
284
|
+
// TODO(ROU-5475): Remove the check for `soft` when the shape is supported in ios and md.
|
|
285
|
+
if ((theme === 'ios' && shape === 'round') || (theme !== 'ionic' && shape === 'soft')) {
|
|
286
|
+
printIonWarning(`The "${shape}" shape is not supported in the ${theme} theme.`);
|
|
287
|
+
return undefined;
|
|
288
|
+
}
|
|
289
|
+
if (shape !== undefined) {
|
|
290
|
+
return shape;
|
|
291
|
+
}
|
|
292
|
+
// TODO(FW-6229): Update this when the default shape has been decided.
|
|
293
|
+
if (theme !== 'ionic') {
|
|
294
|
+
return undefined;
|
|
295
|
+
}
|
|
296
|
+
// Fallback to round shape, which is the default shape for the ionic theme.
|
|
297
|
+
return 'round';
|
|
298
|
+
}
|
|
254
299
|
checkClearOnEdit(ev) {
|
|
255
300
|
if (!this.shouldClearOnEdit()) {
|
|
256
301
|
return;
|
|
@@ -347,9 +392,9 @@ export class Input {
|
|
|
347
392
|
* when fill="outline".
|
|
348
393
|
*/
|
|
349
394
|
renderLabelContainer() {
|
|
350
|
-
const
|
|
351
|
-
const hasOutlineFill =
|
|
352
|
-
if (hasOutlineFill) {
|
|
395
|
+
const theme = getIonTheme(this);
|
|
396
|
+
const hasOutlineFill = this.fill === 'outline';
|
|
397
|
+
if (hasOutlineFill && theme === 'md') {
|
|
353
398
|
/**
|
|
354
399
|
* The outline fill has a special outline
|
|
355
400
|
* that appears around the input and the label.
|
|
@@ -366,19 +411,40 @@ export class Input {
|
|
|
366
411
|
];
|
|
367
412
|
}
|
|
368
413
|
/**
|
|
369
|
-
* If not using the outline style,
|
|
370
|
-
*
|
|
414
|
+
* If not using the outline style, OR if using the
|
|
415
|
+
* ionic theme, just render the label. For the ionic
|
|
416
|
+
* theme, the outline will be rendered elsewhere.
|
|
371
417
|
*/
|
|
372
418
|
return this.renderLabel();
|
|
373
419
|
}
|
|
420
|
+
/**
|
|
421
|
+
* Get the icon to use for the clear icon.
|
|
422
|
+
* If an icon is set on the component, use that.
|
|
423
|
+
* Otherwise, use the icon set in the config.
|
|
424
|
+
* If no icon is set in the config, use the default icon.
|
|
425
|
+
*
|
|
426
|
+
* @internal
|
|
427
|
+
* @returns {string} The icon to use for the clear icon.
|
|
428
|
+
*/
|
|
429
|
+
get inputClearIcon() {
|
|
430
|
+
const theme = getIonTheme(this);
|
|
431
|
+
const defaultClearIcon = theme === 'ios' ? closeCircle : closeSharp;
|
|
432
|
+
const icon = this.clearInputIcon;
|
|
433
|
+
if (icon !== undefined) {
|
|
434
|
+
// Icon is set on the component.
|
|
435
|
+
return icon;
|
|
436
|
+
}
|
|
437
|
+
return config.get('inputClearIcon', defaultClearIcon);
|
|
438
|
+
}
|
|
374
439
|
render() {
|
|
375
|
-
const { disabled, fill, readonly,
|
|
376
|
-
const
|
|
440
|
+
const { disabled, fill, readonly, inputId, el, hasFocus, clearInput, inputClearIcon } = this;
|
|
441
|
+
const theme = getIonTheme(this);
|
|
377
442
|
const value = this.getValue();
|
|
443
|
+
const size = this.getSize();
|
|
444
|
+
const shape = this.getShape();
|
|
378
445
|
const inItem = hostContext('ion-item', this.el);
|
|
379
|
-
const shouldRenderHighlight =
|
|
380
|
-
const
|
|
381
|
-
const clearIconData = clearInputIcon !== null && clearInputIcon !== void 0 ? clearInputIcon : defaultClearIcon;
|
|
446
|
+
const shouldRenderHighlight = (theme === 'md' || theme === 'ionic') && fill !== 'outline' && !inItem;
|
|
447
|
+
const labelPlacement = this.getLabelPlacement();
|
|
382
448
|
const hasValue = this.hasValue();
|
|
383
449
|
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
384
450
|
/**
|
|
@@ -399,18 +465,30 @@ export class Input {
|
|
|
399
465
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
400
466
|
*/
|
|
401
467
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
402
|
-
return (h(Host, { key: '
|
|
403
|
-
[
|
|
468
|
+
return (h(Host, { key: 'f5c126fcd87a30885bc624b39c3ad46efa1717f3', class: createColorClasses(this.color, {
|
|
469
|
+
[theme]: true,
|
|
404
470
|
'has-value': hasValue,
|
|
405
471
|
'has-focus': hasFocus,
|
|
406
472
|
'label-floating': labelShouldFloat,
|
|
407
473
|
[`input-fill-${fill}`]: fill !== undefined,
|
|
408
474
|
[`input-shape-${shape}`]: shape !== undefined,
|
|
475
|
+
[`input-size-${size}`]: true,
|
|
409
476
|
[`input-label-placement-${labelPlacement}`]: true,
|
|
410
477
|
'in-item': inItem,
|
|
411
478
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
412
479
|
'input-disabled': disabled,
|
|
413
|
-
|
|
480
|
+
'input-readonly': readonly,
|
|
481
|
+
}) }, h("label", { key: '350594ad2c6a512616d4a49a328c407ff18c6933', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: 'bfd407e6b4ce04f70531ab368f24ff7005004c78', class: "native-wrapper" },
|
|
482
|
+
/**
|
|
483
|
+
* For the ionic theme, we render the outline container here
|
|
484
|
+
* instead of higher up, so it can be positioned relative to
|
|
485
|
+
* the native wrapper instead of the <label> element or the
|
|
486
|
+
* entire component. This allows the label text to be positioned
|
|
487
|
+
* above the outline, while staying within the bounds of the
|
|
488
|
+
* <label> element, ensuring that clicking the label text
|
|
489
|
+
* focuses the input.
|
|
490
|
+
*/
|
|
491
|
+
theme === 'ionic' && fill === 'outline' && h("div", { key: 'ce9a9c1be75fdb7db26c6896fef7540b5095066f', class: "input-outline" }), h("slot", { key: '0bb13e899d99e049aa8abfaa37368ea564ef9f60', name: "start" }), h("input", Object.assign({ key: '09aa379cebd047867a5e147866dd159f6b2d03ab', 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 }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (h("button", { key: '39c27ad8c71f8c87617fedd9b7fc22d67e6b3c43', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
414
492
|
/**
|
|
415
493
|
* This prevents mobile browsers from
|
|
416
494
|
* blurring the input when the clear
|
|
@@ -425,20 +503,22 @@ export class Input {
|
|
|
425
503
|
* for screen readers as it means users would be unable to swipe past the clear button.
|
|
426
504
|
*/
|
|
427
505
|
ev.stopPropagation();
|
|
428
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
506
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { key: '1f820cc16d73a79a056132595b299b8eeda59aee', "aria-hidden": "true", icon: inputClearIcon }))), h("slot", { key: '7830b2e2f67aa96238a514d1c3d701dd7ee17929', name: "end" })), shouldRenderHighlight && h("div", { key: '81ba6e5c63b3d9f025f689455b7b9442043ae6a3', class: "input-highlight" })), this.renderBottomContent()));
|
|
429
507
|
}
|
|
430
508
|
static get is() { return "ion-input"; }
|
|
431
509
|
static get encapsulation() { return "scoped"; }
|
|
432
510
|
static get originalStyleUrls() {
|
|
433
511
|
return {
|
|
434
512
|
"ios": ["input.ios.scss"],
|
|
435
|
-
"md": ["input.md.scss"]
|
|
513
|
+
"md": ["input.md.scss"],
|
|
514
|
+
"ionic": ["input.ionic.scss"]
|
|
436
515
|
};
|
|
437
516
|
}
|
|
438
517
|
static get styleUrls() {
|
|
439
518
|
return {
|
|
440
519
|
"ios": ["input.ios.css"],
|
|
441
|
-
"md": ["input.md.css"]
|
|
520
|
+
"md": ["input.md.css"],
|
|
521
|
+
"ionic": ["input.ionic.css"]
|
|
442
522
|
};
|
|
443
523
|
}
|
|
444
524
|
static get properties() {
|
|
@@ -710,7 +790,7 @@ export class Input {
|
|
|
710
790
|
"optional": true,
|
|
711
791
|
"docs": {
|
|
712
792
|
"tags": [],
|
|
713
|
-
"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
|
|
793
|
+
"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\"`."
|
|
714
794
|
},
|
|
715
795
|
"attribute": "fill",
|
|
716
796
|
"reflect": false
|
|
@@ -768,21 +848,20 @@ export class Input {
|
|
|
768
848
|
},
|
|
769
849
|
"labelPlacement": {
|
|
770
850
|
"type": "string",
|
|
771
|
-
"mutable":
|
|
851
|
+
"mutable": true,
|
|
772
852
|
"complexType": {
|
|
773
853
|
"original": "'start' | 'end' | 'floating' | 'stacked' | 'fixed'",
|
|
774
|
-
"resolved": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\"",
|
|
854
|
+
"resolved": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\" | undefined",
|
|
775
855
|
"references": {}
|
|
776
856
|
},
|
|
777
857
|
"required": false,
|
|
778
|
-
"optional":
|
|
858
|
+
"optional": true,
|
|
779
859
|
"docs": {
|
|
780
860
|
"tags": [],
|
|
781
|
-
"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 (\"...\")."
|
|
861
|
+
"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."
|
|
782
862
|
},
|
|
783
863
|
"attribute": "label-placement",
|
|
784
|
-
"reflect": false
|
|
785
|
-
"defaultValue": "'start'"
|
|
864
|
+
"reflect": false
|
|
786
865
|
},
|
|
787
866
|
"max": {
|
|
788
867
|
"type": "any",
|
|
@@ -961,15 +1040,15 @@ export class Input {
|
|
|
961
1040
|
"type": "string",
|
|
962
1041
|
"mutable": false,
|
|
963
1042
|
"complexType": {
|
|
964
|
-
"original": "'round'",
|
|
965
|
-
"resolved": "\"round\" | undefined",
|
|
1043
|
+
"original": "'soft' | 'round' | 'rectangular'",
|
|
1044
|
+
"resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
|
|
966
1045
|
"references": {}
|
|
967
1046
|
},
|
|
968
1047
|
"required": false,
|
|
969
1048
|
"optional": true,
|
|
970
1049
|
"docs": {
|
|
971
1050
|
"tags": [],
|
|
972
|
-
"text": "
|
|
1051
|
+
"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\"`."
|
|
973
1052
|
},
|
|
974
1053
|
"attribute": "shape",
|
|
975
1054
|
"reflect": false
|
|
@@ -1009,6 +1088,24 @@ export class Input {
|
|
|
1009
1088
|
"attribute": "step",
|
|
1010
1089
|
"reflect": false
|
|
1011
1090
|
},
|
|
1091
|
+
"size": {
|
|
1092
|
+
"type": "string",
|
|
1093
|
+
"mutable": false,
|
|
1094
|
+
"complexType": {
|
|
1095
|
+
"original": "'medium' | 'large' | 'xlarge'",
|
|
1096
|
+
"resolved": "\"large\" | \"medium\" | \"xlarge\" | undefined",
|
|
1097
|
+
"references": {}
|
|
1098
|
+
},
|
|
1099
|
+
"required": false,
|
|
1100
|
+
"optional": true,
|
|
1101
|
+
"docs": {
|
|
1102
|
+
"tags": [],
|
|
1103
|
+
"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."
|
|
1104
|
+
},
|
|
1105
|
+
"attribute": "size",
|
|
1106
|
+
"reflect": false,
|
|
1107
|
+
"defaultValue": "'medium'"
|
|
1108
|
+
},
|
|
1012
1109
|
"type": {
|
|
1013
1110
|
"type": "string",
|
|
1014
1111
|
"mutable": false,
|
|
@@ -1200,3 +1297,4 @@ export class Input {
|
|
|
1200
1297
|
}
|
|
1201
1298
|
}
|
|
1202
1299
|
let inputIds = 0;
|
|
1300
|
+
const ionicThemeDefaultLabelPlacement = 'stacked';
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a pixels given value into rem
|
|
3
|
+
*
|
|
4
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
5
|
+
* @param context (optional) - Baseline value
|
|
6
|
+
*/
|
|
1
7
|
/**
|
|
2
8
|
* Convert a font size to a dynamic font size.
|
|
3
9
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -73,6 +79,7 @@
|
|
|
73
79
|
* @prop --highlight-color-focused: The color of the highlight on the input when focused
|
|
74
80
|
* @prop --highlight-color-valid: The color of the highlight on the input when valid
|
|
75
81
|
* @prop --highlight-color-invalid: The color of the highlight on the input when invalid
|
|
82
|
+
* @prop --text-color-invalid: The color of the error text on the input when invalid. Only applies to ionic theme.
|
|
76
83
|
*
|
|
77
84
|
* @prop --border-color: Color of the border below the input when using helper text, error text, or counter
|
|
78
85
|
* @prop --border-radius: Radius of the input. A large radius may display unevenly when using fill="outline"; if needed, use shape="round" instead or increase --padding-start.
|
|
@@ -135,18 +142,18 @@
|
|
|
135
142
|
padding-right: 0;
|
|
136
143
|
padding-top: 0;
|
|
137
144
|
padding-bottom: 0;
|
|
145
|
+
color: inherit;
|
|
138
146
|
font-family: inherit;
|
|
139
147
|
font-size: inherit;
|
|
140
148
|
font-style: inherit;
|
|
141
149
|
font-weight: inherit;
|
|
142
150
|
letter-spacing: inherit;
|
|
151
|
+
text-align: inherit;
|
|
143
152
|
text-decoration: inherit;
|
|
144
153
|
text-indent: inherit;
|
|
145
154
|
text-overflow: inherit;
|
|
146
155
|
text-transform: inherit;
|
|
147
|
-
text-align: inherit;
|
|
148
156
|
white-space: inherit;
|
|
149
|
-
color: inherit;
|
|
150
157
|
display: inline-block;
|
|
151
158
|
position: relative;
|
|
152
159
|
flex: 1;
|
|
@@ -606,6 +613,12 @@
|
|
|
606
613
|
display: none;
|
|
607
614
|
}
|
|
608
615
|
|
|
616
|
+
/**
|
|
617
|
+
* Convert a pixels given value into rem
|
|
618
|
+
*
|
|
619
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
620
|
+
* @param context (optional) - Baseline value
|
|
621
|
+
*/
|
|
609
622
|
/**
|
|
610
623
|
* Convert a font size to a dynamic font size.
|
|
611
624
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -661,6 +674,12 @@
|
|
|
661
674
|
* }
|
|
662
675
|
* }
|
|
663
676
|
*/
|
|
677
|
+
/**
|
|
678
|
+
* Convert a pixels given value into rem
|
|
679
|
+
*
|
|
680
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
681
|
+
* @param context (optional) - Baseline value
|
|
682
|
+
*/
|
|
664
683
|
/**
|
|
665
684
|
* Convert a font size to a dynamic font size.
|
|
666
685
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -716,6 +735,12 @@
|
|
|
716
735
|
* }
|
|
717
736
|
* }
|
|
718
737
|
*/
|
|
738
|
+
/**
|
|
739
|
+
* Convert a pixels given value into rem
|
|
740
|
+
*
|
|
741
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
742
|
+
* @param context (optional) - Baseline value
|
|
743
|
+
*/
|
|
719
744
|
/**
|
|
720
745
|
* Convert a font size to a dynamic font size.
|
|
721
746
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -841,6 +866,12 @@
|
|
|
841
866
|
max-width: calc(100% / 0.75);
|
|
842
867
|
}
|
|
843
868
|
|
|
869
|
+
/**
|
|
870
|
+
* Convert a pixels given value into rem
|
|
871
|
+
*
|
|
872
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
873
|
+
* @param context (optional) - Baseline value
|
|
874
|
+
*/
|
|
844
875
|
/**
|
|
845
876
|
* Convert a font size to a dynamic font size.
|
|
846
877
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -997,7 +1028,9 @@
|
|
|
997
1028
|
* Label text should not extend
|
|
998
1029
|
* beyond the bounds of the input.
|
|
999
1030
|
*/
|
|
1000
|
-
max-width: calc(
|
|
1031
|
+
max-width: calc(
|
|
1032
|
+
(100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75
|
|
1033
|
+
);
|
|
1001
1034
|
}
|
|
1002
1035
|
|
|
1003
1036
|
/**
|
|
@@ -1014,8 +1047,8 @@
|
|
|
1014
1047
|
}
|
|
1015
1048
|
|
|
1016
1049
|
:host(.input-fill-outline) .input-outline-container {
|
|
1017
|
-
left: 0;
|
|
1018
1050
|
right: 0;
|
|
1051
|
+
left: 0;
|
|
1019
1052
|
top: 0;
|
|
1020
1053
|
bottom: 0;
|
|
1021
1054
|
display: flex;
|
|
@@ -1122,6 +1155,12 @@
|
|
|
1122
1155
|
border-top: none;
|
|
1123
1156
|
}
|
|
1124
1157
|
|
|
1158
|
+
/**
|
|
1159
|
+
* Convert a pixels given value into rem
|
|
1160
|
+
*
|
|
1161
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
1162
|
+
* @param context (optional) - Baseline value
|
|
1163
|
+
*/
|
|
1125
1164
|
/**
|
|
1126
1165
|
* Convert a font size to a dynamic font size.
|
|
1127
1166
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -100,3 +100,69 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
|
|
|
100
100
|
});
|
|
101
101
|
});
|
|
102
102
|
});
|
|
103
|
+
configs({ modes: ['ionic-md'] }).forEach(({ title, screenshot, config }) => {
|
|
104
|
+
test.describe(title('input: clear button in ionic theme, visual checks'), () => {
|
|
105
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
106
|
+
await page.setContent(`
|
|
107
|
+
<ion-input
|
|
108
|
+
label="Label"
|
|
109
|
+
label-placement="stacked"
|
|
110
|
+
clear-input="true"
|
|
111
|
+
value="Text"
|
|
112
|
+
></ion-input>
|
|
113
|
+
`, config);
|
|
114
|
+
const input = page.locator('ion-input');
|
|
115
|
+
await input.evaluate((el) => el.setFocus());
|
|
116
|
+
await page.waitForChanges();
|
|
117
|
+
await expect(input).toHaveScreenshot(screenshot(`input-with-clear-button`));
|
|
118
|
+
});
|
|
119
|
+
test('should not have visual regressions when clear button is focused', async ({ page, pageUtils }) => {
|
|
120
|
+
// extra padding around input ensures focus ring doesn't get cut off at screenshot edges
|
|
121
|
+
await page.setContent(`
|
|
122
|
+
<style>
|
|
123
|
+
#container {
|
|
124
|
+
padding: 10px;
|
|
125
|
+
}
|
|
126
|
+
</style>
|
|
127
|
+
|
|
128
|
+
<div id="container">
|
|
129
|
+
<ion-input
|
|
130
|
+
label="Label"
|
|
131
|
+
label-placement="stacked"
|
|
132
|
+
clear-input="true"
|
|
133
|
+
value="Text"
|
|
134
|
+
></ion-input>
|
|
135
|
+
</div>
|
|
136
|
+
`, config);
|
|
137
|
+
const input = page.locator('ion-input');
|
|
138
|
+
await input.evaluate((el) => el.setFocus());
|
|
139
|
+
await page.waitForChanges();
|
|
140
|
+
await pageUtils.pressKeys('Tab');
|
|
141
|
+
const container = page.locator('#container');
|
|
142
|
+
await expect(container).toHaveScreenshot(screenshot(`input-clear-button-focused`));
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
configs({ modes: ['ionic-md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
147
|
+
test.describe(title('input: clear button in ionic theme, functionality checks'), () => {
|
|
148
|
+
test('should show clear button when any part of input is focused', async ({ page, pageUtils }) => {
|
|
149
|
+
await page.setContent(`
|
|
150
|
+
<ion-input
|
|
151
|
+
label="Label"
|
|
152
|
+
label-placement="stacked"
|
|
153
|
+
clear-input="true"
|
|
154
|
+
value="Text"
|
|
155
|
+
></ion-input>
|
|
156
|
+
`, config);
|
|
157
|
+
const input = page.locator('ion-input');
|
|
158
|
+
const clearButton = input.locator('.input-clear-icon');
|
|
159
|
+
await expect(clearButton).not.toBeVisible();
|
|
160
|
+
await input.evaluate((el) => el.setFocus());
|
|
161
|
+
await expect(clearButton).toBeVisible();
|
|
162
|
+
// ensure blurring native input doesn't immediately hide clear button
|
|
163
|
+
await pageUtils.pressKeys('Tab');
|
|
164
|
+
await expect(clearButton).toBeFocused();
|
|
165
|
+
await expect(clearButton).toBeVisible();
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from "@playwright/test";
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
-
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
6
|
+
configs({ directions: ['ltr'], modes: ['md', 'ios'] }).forEach(({ title, screenshot, config }) => {
|
|
7
7
|
test.describe(title('input: bottom content'), () => {
|
|
8
8
|
test('entire input component should render correctly with no fill', async ({ page }) => {
|
|
9
9
|
await page.setContent(`
|
|
@@ -28,6 +28,24 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
|
+
configs({ directions: ['ltr'], modes: ['ionic-md'] }).forEach(({ title, screenshot, config }) => {
|
|
32
|
+
test.describe(title('input: bottom content'), () => {
|
|
33
|
+
test('entire input component should render correctly with no fill', async ({ page }) => {
|
|
34
|
+
await page.setContent(`
|
|
35
|
+
<ion-input value="hi@ionic.io" label="Email" helper-text="Enter an email" maxlength="20" counter="true"></ion-input>
|
|
36
|
+
`, config);
|
|
37
|
+
const input = page.locator('ion-input');
|
|
38
|
+
await expect(input).toHaveScreenshot(screenshot(`input-full-bottom-no-fill`));
|
|
39
|
+
});
|
|
40
|
+
test('entire input component should render correctly with outline fill', async ({ page }) => {
|
|
41
|
+
await page.setContent(`
|
|
42
|
+
<ion-input fill="outline" value="hi@ionic.io" label="Email" helper-text="Enter an email" maxlength="20" counter="true"></ion-input>
|
|
43
|
+
`, config);
|
|
44
|
+
const input = page.locator('ion-input');
|
|
45
|
+
await expect(input).toHaveScreenshot(screenshot(`input-full-bottom-outline`));
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
31
49
|
/**
|
|
32
50
|
* Rendering is the same across modes
|
|
33
51
|
*/
|
|
@@ -43,7 +61,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
43
61
|
/**
|
|
44
62
|
* Rendering is the same across modes
|
|
45
63
|
*/
|
|
46
|
-
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
64
|
+
configs({ modes: ['md', 'ionic-md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
47
65
|
test.describe(title('input: hint text'), () => {
|
|
48
66
|
test.describe('input: hint text functionality', () => {
|
|
49
67
|
test('helper text should be visible initially', async ({ page }) => {
|
|
@@ -62,17 +80,18 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
|
|
|
62
80
|
await expect(errorText).toBeVisible();
|
|
63
81
|
await expect(errorText).toHaveText('my error');
|
|
64
82
|
});
|
|
65
|
-
test('error text should change when variable is customized', async ({ page }) => {
|
|
83
|
+
test('error text and highlight should change when variable is customized', async ({ page }) => {
|
|
66
84
|
await page.setContent(`
|
|
67
85
|
<style>
|
|
68
86
|
ion-input.custom-input {
|
|
69
87
|
--highlight-color-invalid: purple;
|
|
88
|
+
--text-color-invalid: purple; /* ionic only */
|
|
70
89
|
}
|
|
71
90
|
</style>
|
|
72
91
|
<ion-input class="ion-invalid ion-touched custom-input" label="my label" error-text="my error"></ion-input>
|
|
73
92
|
`, config);
|
|
74
|
-
const
|
|
75
|
-
await expect(
|
|
93
|
+
const bottomEl = page.locator('ion-input .input-bottom');
|
|
94
|
+
await expect(bottomEl).toHaveScreenshot(screenshot(`input-error-custom-color`));
|
|
76
95
|
});
|
|
77
96
|
});
|
|
78
97
|
test.describe('input: hint text rendering', () => {
|