voyager-ionic-core 8.8.17 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +1 -1
- package/components/ion-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-route-redirect.js +1 -1
- package/components/ion-route.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/components/p-1sJ0ZDPe.js +4 -0
- package/components/p-5ldEpNdG.js +4 -0
- package/components/p-6ZLn6K5e.js +4 -0
- package/components/p-B4lxwJ8N.js +4 -0
- package/components/{p-rCa2eL0j.js → p-BF48Oc0v.js} +1 -1
- package/components/p-BJr2B5hZ.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BNBnVi_1.js +4 -0
- package/components/{p-ChIZKXUu.js → p-BQyuFxYc.js} +1 -1
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-BT9-hMMz.js +4 -0
- package/components/p-BWoa-cki.js +4 -0
- package/components/p-BYJRZKHa.js +4 -0
- package/components/p-B_gJaBk0.js +4 -0
- package/components/p-BgkOsq-d.js +4 -0
- package/components/p-BhamHSw3.js +4 -0
- package/components/p-Bi-it1EH.js +4 -0
- package/components/p-C-NbvXu4.js +4 -0
- package/components/p-C0493tbX.js +4 -0
- package/components/p-C09TXohi.js +4 -0
- package/components/p-C4VpVfrJ.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CG_zZq_I.js +4 -0
- package/components/{p-B9jFTlwE.js → p-CJgnoKcN.js} +1 -1
- package/components/p-CMRYD_yR.js +4 -0
- package/components/{p-BMI53wYL.js → p-CNLioZ3B.js} +1 -1
- package/components/{p--JUspHvy.js → p-COO0eJOA.js} +1 -1
- package/components/p-CWAks_S_.js +4 -0
- package/{dist/ionic/p-KjNvRoEp.js → components/p-Cd1WaN-0.js} +1 -1
- package/components/p-CqbGBmqb.js +4 -0
- package/components/p-CrAKlX71.js +4 -0
- package/components/p-Cw6WocLJ.js +4 -0
- package/components/p-D0YpjgON.js +4 -0
- package/components/{p-DJZp0KTQ.js → p-D5w_FlVa.js} +1 -1
- package/components/p-D7-vHX0A.js +4 -0
- package/components/p-D7wDJdFn.js +4 -0
- package/components/p-DFLJvuRK.js +4 -0
- package/components/p-DGPjJNOU.js +4 -0
- package/components/p-DJR0R0e1.js +4 -0
- package/components/p-DL13ieTa.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-DM1gJSMP.js} +1 -1
- package/components/p-DMBiAyOR.js +4 -0
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-DZRZic9C.js +4 -0
- package/components/{p-C_hpsif8.js → p-DhNuxvJH.js} +1 -1
- package/components/p-DiuOa1vw.js +4 -0
- package/components/p-Dj40C8gm.js +4 -0
- package/components/p-Djmz-ssp.js +4 -0
- package/components/p-DnBNYc7u.js +4 -0
- package/components/p-DngGb-NV.js +4 -0
- package/components/p-Dojwmvde.js +4 -0
- package/components/p-DwSXbQSz.js +4 -0
- package/components/p-DxhHlJln.js +4 -0
- package/components/{p-DqZAXv2t.js → p-GGbIHyEF.js} +1 -1
- package/components/{p-j5IxBIan.js → p-Hp8t4RMX.js} +1 -1
- package/components/p-M34T2gyX.js +4 -0
- package/components/p-TWw4e4sO.js +4 -0
- package/components/{p-Cfx4M1Bn.js → p-YjMkHuvH.js} +1 -1
- package/components/p-byZM6qHV.js +4 -0
- package/components/p-cEN43Ahr.js +4 -0
- package/components/p-qAXsfUff.js +4 -0
- package/dist/cjs/{animation-BJq0kcy2.js → animation-Kd1N7WTN.js} +4 -4
- package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-b1G4t26O.js} +1 -1
- package/dist/cjs/{button-active-0mPOKmV2.js → button-active-CQCFubJJ.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/dir-zwDPRE5K.js +30 -0
- package/dist/cjs/{format-PxvGiOik.js → format-bHU8N1g5.js} +40 -30
- package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-d-fWfeI6.js} +5 -7
- package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-CeJslptU.js} +1 -2
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
- package/dist/cjs/{hardware-back-button-iUuF_76h.js → hardware-back-button-Bu4Dzw8l.js} +4 -4
- package/dist/cjs/{helpers-Cv23MFHM.js → helpers-7wzdhdeg.js} +15 -11
- package/dist/cjs/index-BbqUBe2T.js +429 -0
- package/dist/cjs/{index-D81eLYUM.js → index-C74Q3t6a.js} +3 -2
- package/dist/cjs/{index-BERfRao3.js → index-CQfEIyLK.js} +5 -5
- package/dist/cjs/{index-aC4x3Fk3.js → index-DFNrCX7M.js} +6 -7
- package/dist/cjs/{index-CAvQ7Tka.js → index-DRPqwSvU.js} +13 -30
- package/dist/cjs/{index-Ct7gcRif.js → index-DXoo08JC.js} +321 -26
- package/dist/cjs/{index-CIrkNXqJ.js → index-DtvKGwdh.js} +34 -2
- package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
- package/dist/cjs/index.cjs.js +19 -18
- package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-VJIiKBKv.js} +10 -11
- package/dist/cjs/input.utils-EHVE2RK_.js +35 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +12 -12
- package/dist/cjs/ion-action-sheet.cjs.entry.js +92 -44
- package/dist/cjs/ion-alert.cjs.entry.js +144 -65
- package/dist/cjs/ion-app_8.cjs.entry.js +112 -40
- package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +6 -5
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -7
- package/dist/cjs/ion-button_2.cjs.entry.js +12 -8
- package/dist/cjs/ion-card_5.cjs.entry.js +6 -5
- package/dist/cjs/ion-checkbox.cjs.entry.js +10 -7
- package/dist/cjs/ion-chip.cjs.entry.js +3 -3
- package/dist/cjs/ion-col_3.cjs.entry.js +10 -6
- package/dist/cjs/ion-datetime-button.cjs.entry.js +22 -25
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +182 -746
- package/dist/cjs/ion-fab_3.cjs.entry.js +7 -6
- package/dist/cjs/ion-img.cjs.entry.js +7 -4
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +8 -6
- package/dist/cjs/ion-input-otp.cjs.entry.js +20 -29
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -10
- package/dist/cjs/ion-input.cjs.entry.js +58 -70
- package/dist/cjs/ion-item-option_3.cjs.entry.js +21 -24
- package/dist/cjs/ion-item_8.cjs.entry.js +38 -34
- package/dist/cjs/ion-loading.cjs.entry.js +29 -15
- package/dist/cjs/ion-menu_3.cjs.entry.js +23 -24
- package/dist/cjs/ion-modal.cjs.entry.js +283 -161
- package/dist/cjs/ion-nav_2.cjs.entry.js +30 -138
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -13
- package/dist/cjs/ion-picker-column.cjs.entry.js +218 -62
- package/dist/cjs/ion-picker.cjs.entry.js +4 -4
- package/dist/cjs/ion-popover.cjs.entry.js +50 -30
- package/dist/cjs/ion-progress-bar.cjs.entry.js +6 -5
- package/dist/cjs/ion-radio_2.cjs.entry.js +12 -11
- package/dist/cjs/ion-range.cjs.entry.js +30 -25
- package/dist/cjs/ion-refresher_2.cjs.entry.js +34 -26
- package/dist/cjs/ion-reorder_2.cjs.entry.js +10 -9
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
- package/dist/cjs/ion-route_4.cjs.entry.js +36 -30
- package/dist/cjs/ion-searchbar.cjs.entry.js +27 -22
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +5 -6
- package/dist/cjs/ion-segment_2.cjs.entry.js +30 -26
- package/dist/cjs/ion-select-modal.cjs.entry.js +93 -38
- package/dist/cjs/ion-select_3.cjs.entry.js +495 -126
- package/dist/cjs/ion-spinner.cjs.entry.js +5 -6
- package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +15 -12
- package/dist/cjs/ion-tab_2.cjs.entry.js +8 -8
- package/dist/cjs/ion-text.cjs.entry.js +5 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +56 -65
- package/dist/cjs/ion-toast.cjs.entry.js +26 -21
- package/dist/cjs/ion-toggle.cjs.entry.js +15 -13
- package/dist/cjs/{ionic-global-B-cA6LkY.js → ionic-global-CYJNT-2P.js} +13 -8
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-DYGiD6gM.js} +14 -17
- package/dist/cjs/{item-multiple-inputs-D-gyg57c.js → item-multiple-inputs-Dv6qrMhm.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-B8-wBZqt.js → md.transition-CrSkaoz6.js} +8 -8
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-DdtIYQUH.js → overlays-BR21NUIG.js} +98 -58
- package/dist/cjs/select-option-render-CrbLc-1j.js +123 -0
- package/dist/cjs/slot-mutation-controller-D6IjSEIh.js +397 -0
- package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-CNP5eD1R.js} +4 -3
- package/dist/cjs/{swipe-back-CCMaNiP2.js → swipe-back-CSIJQfu5.js} +5 -5
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
- package/dist/collection/collection-manifest.json +7 -11
- package/dist/collection/components/accordion/accordion.js +5 -6
- package/dist/collection/components/accordion-group/accordion-group.js +2 -2
- package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
- package/dist/collection/components/action-sheet/action-sheet.js +77 -31
- package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
- package/dist/collection/components/alert/alert.ios.css +279 -10
- package/dist/collection/components/alert/alert.js +127 -50
- package/dist/collection/components/alert/alert.md.css +268 -20
- package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
- package/dist/collection/components/button/button.js +5 -2
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +4 -2
- package/dist/collection/components/col/col.js +7 -3
- package/dist/collection/components/content/content.js +56 -6
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +146 -77
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime/utils/data.js +13 -14
- package/dist/collection/components/datetime/utils/format.js +21 -11
- package/dist/collection/components/datetime/utils/manipulation.js +8 -8
- package/dist/collection/components/datetime/utils/parse.js +10 -10
- package/dist/collection/components/datetime/utils/state.js +8 -2
- package/dist/collection/components/datetime/utils/validate.js +4 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +15 -20
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/fab-button/fab-button.js +1 -1
- package/dist/collection/components/footer/footer.js +1 -1
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/img/img.js +6 -1
- package/dist/collection/components/input/input.ios.css +57 -26
- package/dist/collection/components/input/input.js +51 -64
- package/dist/collection/components/input/input.md.css +79 -43
- package/dist/collection/components/input-otp/input-otp.js +15 -24
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -6
- package/dist/collection/components/item/item.js +19 -16
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +12 -16
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/list/list.js +2 -2
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +17 -5
- package/dist/collection/components/menu/menu.js +6 -8
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/animations/ios.enter.js +1 -1
- package/dist/collection/components/modal/animations/md.enter.js +1 -1
- package/dist/collection/components/modal/gestures/sheet.js +42 -34
- package/dist/collection/components/modal/gestures/swipe-to-close.js +18 -35
- package/dist/collection/components/modal/gestures/utils.js +17 -0
- package/dist/collection/components/modal/modal.js +146 -65
- package/dist/collection/components/modal/safe-area-utils.js +39 -5
- package/dist/collection/components/nav/nav.js +24 -235
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker/picker.js +1 -2
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +212 -58
- package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/animations/ios.enter.js +1 -2
- package/dist/collection/components/popover/animations/md.enter.js +1 -2
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +32 -9
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/popover/utils.js +4 -6
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +5 -5
- package/dist/collection/components/radio-group/radio-group.js +2 -2
- package/dist/collection/components/range/range.js +24 -19
- package/dist/collection/components/refresher/refresher.js +19 -13
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/route/route.js +1 -1
- package/dist/collection/components/router/router.js +2 -6
- package/dist/collection/components/router/utils/dom.js +25 -7
- package/dist/collection/components/router/utils/matching.js +6 -9
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +0 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +49 -10
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +25 -20
- package/dist/collection/components/segment/segment.js +9 -11
- package/dist/collection/components/segment-button/segment-button.js +15 -9
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +3 -4
- package/dist/collection/components/select/select.ios.css +96 -69
- package/dist/collection/components/select/select.js +405 -92
- package/dist/collection/components/select/select.md.css +118 -85
- package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
- package/dist/collection/components/select-modal/select-modal.js +80 -27
- package/dist/collection/components/select-modal/select-modal.md.css +164 -0
- package/dist/collection/components/select-option/select-option.js +67 -3
- package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
- package/dist/collection/components/select-popover/select-popover.js +78 -26
- package/dist/collection/components/select-popover/select-popover.md.css +164 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +2 -3
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +6 -4
- package/dist/collection/components/tabs/tabs.js +2 -3
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.ios.css +94 -62
- package/dist/collection/components/textarea/textarea.js +47 -57
- package/dist/collection/components/textarea/textarea.md.css +103 -77
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +12 -9
- package/dist/collection/components/toggle/toggle.js +6 -4
- package/dist/collection/components/toolbar/toolbar.js +7 -4
- package/dist/collection/global/config.js +3 -3
- package/dist/collection/global/ionic-global.js +8 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +5 -4
- package/dist/collection/utils/content/index.js +30 -0
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +3 -3
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/forms/start-container-controller.js +132 -0
- package/dist/collection/utils/framework-delegate.js +4 -6
- package/dist/collection/utils/gesture/gesture-controller.js +1 -2
- package/dist/collection/utils/gesture/index.js +10 -2
- package/dist/collection/utils/gesture/listener.js +4 -27
- package/dist/collection/utils/hardware-back-button.js +3 -3
- package/dist/collection/utils/helpers.js +14 -10
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
- package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
- package/dist/collection/utils/keyboard/keyboard.js +1 -1
- package/dist/collection/utils/logging/index.js +23 -4
- package/dist/collection/utils/menu-controller/index.js +1 -2
- package/dist/collection/utils/native/haptic.js +2 -3
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +87 -48
- package/dist/collection/utils/platform.js +4 -5
- package/dist/collection/utils/rtl/dir.js +17 -7
- package/dist/collection/utils/sanitization/index.js +275 -20
- package/dist/collection/utils/select-option-render.js +118 -0
- package/dist/collection/utils/slot-mutation-controller.js +1 -2
- package/dist/collection/utils/test/late-props/late-props.js +69 -0
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/detach-reattach.js +23 -0
- package/dist/collection/utils/test/playwright/drag-element.js +2 -3
- package/dist/collection/utils/test/playwright/generator.js +3 -4
- package/dist/collection/utils/test/playwright/index.js +1 -0
- package/dist/collection/utils/test/playwright/page/event-spy.js +2 -4
- package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
- package/dist/collection/utils/test/press-keys.js +6 -16
- package/dist/collection/utils/theme.js +6 -1
- package/dist/collection/utils/transition/ios.transition.js +9 -13
- package/dist/collection/utils/transition/md.transition.js +3 -4
- package/dist/docs.json +933 -1402
- package/dist/esm/{animation-DLJpuoEz.js → animation-BFNVlYum.js} +4 -4
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-BgX0BGL1.js} +1 -1
- package/dist/esm/{button-active-BSpTQmS9.js → button-active-BfOvDr3b.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/dir-Dojwmvde.js +28 -0
- package/dist/esm/{format-CAmvpAez.js → format-DDFE9jM5.js} +41 -31
- package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BwNhx9NR.js} +5 -7
- package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-B_gJaBk0.js} +1 -2
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
- package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-DmkiRgOT.js} +4 -4
- package/dist/esm/{helpers-HEqiOzXb.js → helpers-BSmc0nst.js} +15 -11
- package/dist/esm/{index-CfgBF1SE.js → index-BmLuEdV7.js} +13 -30
- package/dist/esm/{index-Q6UPU0Ay.js → index-BuPaALjU.js} +6 -7
- package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
- package/dist/esm/{index-MEDq2S8l.js → index-C1b9CLFg.js} +33 -3
- package/dist/esm/{index-tcQvqkiX.js → index-C23AVPx9.js} +303 -26
- package/dist/esm/{index-BRHzoo00.js → index-CJln0gS3.js} +3 -2
- package/dist/esm/index-CqoUoxgG.js +423 -0
- package/dist/esm/{index-B_dQk_WE.js → index-DnA_7Bnx.js} +5 -5
- package/dist/esm/index.js +17 -15
- package/dist/esm/{input-shims-D10mwcw1.js → input-shims-Dqk-Ou25.js} +10 -11
- package/dist/esm/input.utils-rqoH22pW.js +33 -0
- package/dist/esm/ion-accordion_2.entry.js +12 -12
- package/dist/esm/ion-action-sheet.entry.js +92 -44
- package/dist/esm/ion-alert.entry.js +143 -64
- package/dist/esm/ion-app_8.entry.js +112 -40
- package/dist/esm/ion-avatar_3.entry.js +4 -4
- package/dist/esm/ion-back-button.entry.js +6 -5
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +8 -7
- package/dist/esm/ion-button_2.entry.js +12 -8
- package/dist/esm/ion-card_5.entry.js +6 -5
- package/dist/esm/ion-checkbox.entry.js +10 -7
- package/dist/esm/ion-chip.entry.js +3 -3
- package/dist/esm/ion-col_3.entry.js +10 -6
- package/dist/esm/ion-datetime-button.entry.js +22 -25
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +183 -745
- package/dist/esm/ion-fab_3.entry.js +7 -6
- package/dist/esm/ion-img.entry.js +7 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +7 -5
- package/dist/esm/ion-input-otp.entry.js +20 -29
- package/dist/esm/ion-input-password-toggle.entry.js +9 -10
- package/dist/esm/ion-input.entry.js +56 -68
- package/dist/esm/ion-item-option_3.entry.js +21 -24
- package/dist/esm/ion-item_8.entry.js +38 -34
- package/dist/esm/ion-loading.entry.js +28 -14
- package/dist/esm/ion-menu_3.entry.js +23 -24
- package/dist/esm/ion-modal.entry.js +271 -149
- package/dist/esm/ion-nav_2.entry.js +30 -138
- package/dist/esm/ion-picker-column-option.entry.js +8 -13
- package/dist/esm/ion-picker-column.entry.js +218 -62
- package/dist/esm/ion-picker.entry.js +4 -4
- package/dist/esm/ion-popover.entry.js +50 -30
- package/dist/esm/ion-progress-bar.entry.js +6 -5
- package/dist/esm/ion-radio_2.entry.js +12 -11
- package/dist/esm/ion-range.entry.js +30 -25
- package/dist/esm/ion-refresher_2.entry.js +32 -24
- package/dist/esm/ion-reorder_2.entry.js +10 -9
- package/dist/esm/ion-ripple-effect.entry.js +3 -3
- package/dist/esm/ion-route_4.entry.js +36 -30
- package/dist/esm/ion-searchbar.entry.js +27 -22
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +5 -6
- package/dist/esm/ion-segment_2.entry.js +30 -26
- package/dist/esm/ion-select-modal.entry.js +93 -38
- package/dist/esm/ion-select_3.entry.js +495 -126
- package/dist/esm/ion-spinner.entry.js +5 -6
- package/dist/esm/ion-split-pane.entry.js +4 -4
- package/dist/esm/ion-tab-bar_2.entry.js +15 -12
- package/dist/esm/ion-tab_2.entry.js +8 -8
- package/dist/esm/ion-text.entry.js +5 -5
- package/dist/esm/ion-textarea.entry.js +55 -64
- package/dist/esm/ion-toast.entry.js +25 -20
- package/dist/esm/ion-toggle.entry.js +15 -13
- package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-ZXjCXKH0.js} +13 -8
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CWAgfQ1r.js} +14 -17
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-DZnIiOO_.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-D0msQmzI.js → md.transition-ZuqDDdDW.js} +8 -8
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-DKE0DgvE.js} +97 -58
- package/dist/esm/select-option-render-1W6W9pbC.js +121 -0
- package/dist/esm/slot-mutation-controller-B5NpUZ-N.js +393 -0
- package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-Cv9gb3ja.js} +4 -3
- package/dist/esm/{swipe-back-ZUWwA-KF.js → swipe-back-De5HlmeM.js} +5 -5
- package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
- package/dist/html.html-data.json +54 -82
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-06c6b540.entry.js +4 -0
- package/dist/ionic/p-099b7f9f.entry.js +4 -0
- package/dist/ionic/p-0dcb7bb6.entry.js +4 -0
- package/dist/ionic/p-1347880c.entry.js +4 -0
- package/dist/ionic/p-191a651e.entry.js +4 -0
- package/dist/ionic/p-1f24cb24.entry.js +4 -0
- package/dist/ionic/p-271c3640.entry.js +4 -0
- package/dist/ionic/p-2c52fe3e.entry.js +4 -0
- package/dist/ionic/p-2ea4bb36.entry.js +4 -0
- package/dist/ionic/p-338a02e0.entry.js +4 -0
- package/dist/ionic/p-38b9375b.entry.js +4 -0
- package/dist/ionic/p-3bba83ee.entry.js +4 -0
- package/dist/ionic/p-4712a8a9.entry.js +4 -0
- package/dist/ionic/p-4c3e50f8.entry.js +4 -0
- package/dist/ionic/p-4e2fef42.entry.js +4 -0
- package/dist/ionic/p-54cbb0a7.entry.js +4 -0
- package/dist/ionic/{p-2bb2cb18.entry.js → p-561af487.entry.js} +1 -1
- package/dist/ionic/p-5906ea6f.entry.js +4 -0
- package/dist/ionic/p-5cc09b40.entry.js +4 -0
- package/dist/ionic/p-5d9094ac.entry.js +4 -0
- package/dist/ionic/p-612ea3b1.entry.js +4 -0
- package/dist/ionic/p-66f150ec.entry.js +4 -0
- package/dist/ionic/p-68cc89a6.entry.js +4 -0
- package/dist/ionic/{p-dfa8d673.entry.js → p-6e386853.entry.js} +1 -1
- package/dist/ionic/p-77c96e08.entry.js +4 -0
- package/dist/ionic/p-7bfeccb3.entry.js +4 -0
- package/dist/ionic/p-7e394cc3.entry.js +4 -0
- package/dist/ionic/{p-0fa9c382.entry.js → p-7fbb3319.entry.js} +1 -1
- package/dist/ionic/p-837db1b9.entry.js +4 -0
- package/dist/ionic/p-85599fe3.entry.js +4 -0
- package/dist/ionic/p-8b80d9f9.entry.js +4 -0
- package/dist/ionic/p-90f50a65.entry.js +4 -0
- package/dist/ionic/p-9595e305.entry.js +4 -0
- package/dist/ionic/p-9c5f2691.entry.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BY6BzzPF.js +4 -0
- package/dist/ionic/p-B_gJaBk0.js +4 -0
- package/dist/ionic/p-BaeKWZ-a.js +4 -0
- package/dist/ionic/p-Bd72UYI2.js +4 -0
- package/dist/ionic/p-BgOvhHy_.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/p-BijjLYjT.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-C23AVPx9.js +6 -0
- package/dist/ionic/p-C8XilMh0.js +4 -0
- package/dist/ionic/p-CER8qW8Y.js +4 -0
- package/dist/ionic/p-CFuOr1Tu.js +4 -0
- package/dist/ionic/p-CM5OBjTW.js +4 -0
- package/dist/ionic/p-CMZYmFb4.js +4 -0
- package/dist/ionic/p-CkxVYPtX.js +4 -0
- package/dist/ionic/p-CmXuiRT6.js +4 -0
- package/dist/ionic/p-D0YpjgON.js +4 -0
- package/dist/ionic/p-D4OrdtJf.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D6rHcCvc.js +4 -0
- package/dist/ionic/p-DLM95R4x.js +4 -0
- package/dist/ionic/p-DTxBioUO.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-DYUjHcuH.js +4 -0
- package/{components/p-BkKAANMJ.js → dist/ionic/p-DZ6Hmc-8.js} +1 -1
- package/dist/ionic/p-D_gb-kdd.js +4 -0
- package/dist/ionic/p-DajLgJ4d.js +4 -0
- package/dist/ionic/p-Do3zTvCA.js +4 -0
- package/dist/ionic/p-Dojwmvde.js +4 -0
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-a1cc2861.entry.js +4 -0
- package/dist/ionic/p-a20a2ebe.entry.js +4 -0
- package/dist/ionic/p-a8ff2489.entry.js +4 -0
- package/dist/ionic/p-b3532b8d.entry.js +4 -0
- package/dist/ionic/p-b80c86c4.entry.js +4 -0
- package/dist/ionic/p-b9b4e85d.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c57fc396.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-ca1b8865.entry.js} +1 -1
- package/dist/ionic/p-cc4320d3.entry.js +4 -0
- package/dist/ionic/p-d6755739.entry.js +4 -0
- package/dist/ionic/p-d8c138d9.entry.js +4 -0
- package/dist/ionic/p-db449915.entry.js +4 -0
- package/dist/ionic/p-dd01be0a.entry.js +4 -0
- package/dist/ionic/p-ec00fd0d.entry.js +4 -0
- package/dist/ionic/p-ee09ac9d.entry.js +4 -0
- package/dist/ionic/{p-37e720da.entry.js → p-efc0cf82.entry.js} +1 -1
- package/dist/ionic/p-f0fb23c1.entry.js +4 -0
- package/dist/ionic/p-f83b3e0c.entry.js +4 -0
- package/dist/ionic/p-fU3rOYad.js +4 -0
- package/dist/ionic/p-zWf7R2xV.js +4 -0
- package/dist/types/components/action-sheet/action-sheet.d.ts +10 -0
- package/dist/types/components/alert/alert.d.ts +7 -0
- package/dist/types/components/content/content.d.ts +12 -0
- package/dist/types/components/datetime/datetime.d.ts +5 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +12 -6
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -0
- package/dist/types/components/modal/gestures/utils.d.ts +11 -0
- package/dist/types/components/modal/modal-interface.d.ts +9 -0
- package/dist/types/components/modal/modal.d.ts +25 -7
- package/dist/types/components/modal/safe-area-utils.d.ts +6 -0
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/picker-column/picker-column.d.ts +42 -0
- package/dist/types/components/range/range.d.ts +4 -1
- package/dist/types/components/refresher/refresher.d.ts +7 -0
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +30 -6
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components/textarea/textarea.d.ts +12 -5
- package/dist/types/components.d.ts +79 -316
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/stencil-public-runtime.d.ts +12 -0
- package/dist/types/utils/config.d.ts +1 -8
- package/dist/types/utils/content/index.d.ts +12 -0
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
- package/dist/types/utils/helpers.d.ts +8 -5
- package/dist/types/utils/logging/index.d.ts +2 -1
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +20 -9
- package/dist/types/utils/rtl/dir.d.ts +10 -4
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/dist/types/utils/test/playwright/detach-reattach.d.ts +13 -0
- package/dist/types/utils/test/playwright/index.d.ts +1 -0
- package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
- package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
- package/hydrate/index.js +2996 -2155
- package/hydrate/index.mjs +2996 -2155
- package/loader/index.d.ts +1 -1
- package/package.json +57 -13
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-A3O24YmY.js +0 -4
- package/components/p-ABkNVeU9.js +0 -4
- package/components/p-B-JJgYSG.js +0 -4
- package/components/p-BB42Mlnr.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BlIAuGv2.js +0 -4
- package/components/p-Bnsn6KaP.js +0 -4
- package/components/p-BsBCoGa-.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-C53feagD.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CQGnMY3n.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-C_xFdyXe.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-CkMSOsFF.js +0 -4
- package/components/p-Cl0B-RWe.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-CsNJ1ULL.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-CzCbeKys.js +0 -4
- package/components/p-D-aHdMxW.js +0 -4
- package/components/p-D0d8qTwj.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D3xo7hqU.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DCnGU1fF.js +0 -4
- package/components/p-DGZpx6KJ.js +0 -4
- package/components/p-DGvrK8dD.js +0 -4
- package/components/p-DHTSTb52.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DRugphUN.js +0 -4
- package/components/p-DV5mPYQS.js +0 -4
- package/components/p-DWkAgceV.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-KEFO0w3i.js +0 -4
- package/components/p-Osve4qkc.js +0 -4
- package/components/p-SLS1rDZM.js +0 -4
- package/components/p-VWbRkLT7.js +0 -4
- package/components/p-aJ6PBUvj.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-oD4kcBRX.js +0 -4
- package/components/p-scxfI1Dd.js +0 -4
- package/components/p-yzCsOZE2.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/cjs/dir-Cn0z1rJH.js +0 -20
- package/dist/cjs/input.utils-DetjmtH2.js +0 -150
- package/dist/cjs/notch-controller-18PzRGXd.js +0 -155
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/esm/dir-C53feagD.js +0 -18
- package/dist/esm/input.utils-Y6NgW8bw.js +0 -147
- package/dist/esm/notch-controller-DKDjU_O7.js +0 -153
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0dc33652.entry.js +0 -4
- package/dist/ionic/p-10e833ef.entry.js +0 -4
- package/dist/ionic/p-20b1a044.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-2394a9a6.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2a05aa64.entry.js +0 -4
- package/dist/ionic/p-2b204c59.entry.js +0 -4
- package/dist/ionic/p-2fa58e80.entry.js +0 -4
- package/dist/ionic/p-3353c229.entry.js +0 -4
- package/dist/ionic/p-33704f20.entry.js +0 -4
- package/dist/ionic/p-34586ead.entry.js +0 -4
- package/dist/ionic/p-390ca786.entry.js +0 -4
- package/dist/ionic/p-3ae5f277.entry.js +0 -4
- package/dist/ionic/p-4654ae1c.entry.js +0 -4
- package/dist/ionic/p-4745f534.entry.js +0 -4
- package/dist/ionic/p-4858af1f.entry.js +0 -4
- package/dist/ionic/p-4ac4f3d6.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4e92a11f.entry.js +0 -4
- package/dist/ionic/p-5018dfc8.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5eb8e86d.entry.js +0 -4
- package/dist/ionic/p-65ebdf1b.entry.js +0 -4
- package/dist/ionic/p-75dc25ba.entry.js +0 -4
- package/dist/ionic/p-7c319341.entry.js +0 -4
- package/dist/ionic/p-829367ed.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-874b4bd8.entry.js +0 -4
- package/dist/ionic/p-8eb8ee76.entry.js +0 -4
- package/dist/ionic/p-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9f1103ce.entry.js +0 -4
- package/dist/ionic/p-9f9db3a2.entry.js +0 -4
- package/dist/ionic/p-BGqMS-oh.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-C53feagD.js +0 -4
- package/dist/ionic/p-CFlfIb2g.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-Cl0B-RWe.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-CwdymDLH.js +0 -4
- package/dist/ionic/p-Cx3IXROA.js +0 -4
- package/dist/ionic/p-D-3ycHmd.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-DC3RagnA.js +0 -4
- package/dist/ionic/p-DIuEbVLu.js +0 -4
- package/dist/ionic/p-DSG2s2Eb.js +0 -4
- package/dist/ionic/p-Dfbt-q2k.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DoJvtrbw.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-VAemlbDS.js +0 -4
- package/dist/ionic/p-Wk5HzclC.js +0 -4
- package/dist/ionic/p-a3bdcae6.entry.js +0 -4
- package/dist/ionic/p-aaeedb6b.entry.js +0 -4
- package/dist/ionic/p-bfc9bb0f.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ca2ab74d.entry.js +0 -4
- package/dist/ionic/p-d889ff6d.entry.js +0 -4
- package/dist/ionic/p-e0be05c5.entry.js +0 -4
- package/dist/ionic/p-ef4c3bee.entry.js +0 -4
- package/dist/ionic/p-fd7eebc4.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- package/dist/ionic/p-viFHDgRs.js +0 -4
- package/dist/ionic/p-xWb6fgfq.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
- /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
|
@@ -206,12 +206,6 @@
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
.input-clear-icon {
|
|
209
|
-
-webkit-margin-start: auto;
|
|
210
|
-
margin-inline-start: auto;
|
|
211
|
-
-webkit-margin-end: auto;
|
|
212
|
-
margin-inline-end: auto;
|
|
213
|
-
margin-top: auto;
|
|
214
|
-
margin-bottom: auto;
|
|
215
209
|
padding-left: 0;
|
|
216
210
|
padding-right: 0;
|
|
217
211
|
padding-top: 0;
|
|
@@ -269,14 +263,47 @@
|
|
|
269
263
|
line-height: normal;
|
|
270
264
|
}
|
|
271
265
|
|
|
266
|
+
.input-control {
|
|
267
|
+
display: flex;
|
|
268
|
+
flex-grow: 1;
|
|
269
|
+
width: 100%;
|
|
270
|
+
/**
|
|
271
|
+
* Allows the control to shrink below the label and input's intrinsic
|
|
272
|
+
* width, preventing the start and end slots from being pushed outside
|
|
273
|
+
* the wrapper. The label and input truncate independently, so it can
|
|
274
|
+
* use whatever space remains after accounting for the slots.
|
|
275
|
+
*/
|
|
276
|
+
min-width: 0;
|
|
277
|
+
}
|
|
278
|
+
|
|
272
279
|
.native-wrapper {
|
|
273
280
|
display: flex;
|
|
274
281
|
position: relative;
|
|
275
282
|
flex-grow: 1;
|
|
276
|
-
align-items: center;
|
|
277
283
|
width: 100%;
|
|
278
284
|
}
|
|
279
285
|
|
|
286
|
+
/**
|
|
287
|
+
* When the label sits beside the input, the label should size to its content
|
|
288
|
+
* and the input should take the remaining space. A zero flex basis prevents
|
|
289
|
+
* the input from requesting its full width and forcing the label to shrink.
|
|
290
|
+
* Stacked and floating placements use a column layout, so their flex basis
|
|
291
|
+
* controls height instead and does not need to be overridden.
|
|
292
|
+
*/
|
|
293
|
+
:host(.input-label-placement-start) .native-wrapper,
|
|
294
|
+
:host(.input-label-placement-end) .native-wrapper,
|
|
295
|
+
:host(.input-label-placement-fixed) .native-wrapper {
|
|
296
|
+
flex: 1 1 0;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.input-start,
|
|
300
|
+
.input-end {
|
|
301
|
+
display: flex;
|
|
302
|
+
position: relative;
|
|
303
|
+
flex-shrink: 0;
|
|
304
|
+
align-items: center;
|
|
305
|
+
}
|
|
306
|
+
|
|
280
307
|
:host(.ion-touched.ion-invalid) {
|
|
281
308
|
--highlight-color: var(--highlight-color-invalid);
|
|
282
309
|
}
|
|
@@ -377,6 +404,12 @@
|
|
|
377
404
|
*/
|
|
378
405
|
display: flex;
|
|
379
406
|
align-items: center;
|
|
407
|
+
/**
|
|
408
|
+
* Allows the label to shrink below its intrinsic content width.
|
|
409
|
+
* Without this the label keeps its full width and can push the
|
|
410
|
+
* input and end slot outside the wrapper.
|
|
411
|
+
*/
|
|
412
|
+
min-width: 0;
|
|
380
413
|
/**
|
|
381
414
|
* Label text should not extend
|
|
382
415
|
* beyond the bounds of the input.
|
|
@@ -395,6 +428,18 @@
|
|
|
395
428
|
pointer-events: none;
|
|
396
429
|
}
|
|
397
430
|
|
|
431
|
+
/**
|
|
432
|
+
* When start/end slots are added or removed, we temporarily
|
|
433
|
+
* disable the label transition to prevent the floating label
|
|
434
|
+
* from animating as its position is adjusted.
|
|
435
|
+
*
|
|
436
|
+
* This class is applied by the start container controller, so
|
|
437
|
+
* renaming it here requires renaming it there too.
|
|
438
|
+
*/
|
|
439
|
+
:host(.skip-label-transition) .label-text-wrapper {
|
|
440
|
+
transition: none;
|
|
441
|
+
}
|
|
442
|
+
|
|
398
443
|
/**
|
|
399
444
|
* We need to use two elements instead of
|
|
400
445
|
* one. The .label-text-wrapper is responsible
|
|
@@ -438,7 +483,7 @@
|
|
|
438
483
|
* Label is on the left of the input in LTR and
|
|
439
484
|
* on the right in RTL.
|
|
440
485
|
*/
|
|
441
|
-
:host(.input-label-placement-start) .input-
|
|
486
|
+
:host(.input-label-placement-start) .input-control {
|
|
442
487
|
flex-direction: row;
|
|
443
488
|
}
|
|
444
489
|
|
|
@@ -460,7 +505,7 @@
|
|
|
460
505
|
* Label is on the right of the input in LTR and
|
|
461
506
|
* on the left in RTL.
|
|
462
507
|
*/
|
|
463
|
-
:host(.input-label-placement-end) .input-
|
|
508
|
+
:host(.input-label-placement-end) .input-control {
|
|
464
509
|
flex-direction: row-reverse;
|
|
465
510
|
}
|
|
466
511
|
|
|
@@ -508,10 +553,9 @@
|
|
|
508
553
|
* Floating: Label sits over the input when the input has no
|
|
509
554
|
* value and is blurred. Label sits above the input and is scaled
|
|
510
555
|
* down when the input is focused or has a value.
|
|
511
|
-
*
|
|
512
556
|
*/
|
|
513
|
-
:host(.input-label-placement-stacked) .input-
|
|
514
|
-
:host(.input-label-placement-floating) .input-
|
|
557
|
+
:host(.input-label-placement-stacked) .input-control,
|
|
558
|
+
:host(.input-label-placement-floating) .input-control {
|
|
515
559
|
flex-direction: column;
|
|
516
560
|
align-items: start;
|
|
517
561
|
}
|
|
@@ -542,18 +586,6 @@
|
|
|
542
586
|
}
|
|
543
587
|
}
|
|
544
588
|
|
|
545
|
-
/**
|
|
546
|
-
* Ensures the input does not
|
|
547
|
-
* overlap the label.
|
|
548
|
-
*/
|
|
549
|
-
:host(.input-label-placement-stacked) input,
|
|
550
|
-
:host(.input-label-placement-floating) input {
|
|
551
|
-
margin-left: 0;
|
|
552
|
-
margin-right: 0;
|
|
553
|
-
margin-top: 1px;
|
|
554
|
-
margin-bottom: 0;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
589
|
/**
|
|
558
590
|
* This makes the label sit over the input
|
|
559
591
|
* when the input is blurred and has no value.
|
|
@@ -725,8 +757,7 @@
|
|
|
725
757
|
}
|
|
726
758
|
|
|
727
759
|
.input-clear-icon ion-icon {
|
|
728
|
-
|
|
729
|
-
height: 18px;
|
|
760
|
+
font-size: 18px;
|
|
730
761
|
}
|
|
731
762
|
|
|
732
763
|
:host(.input-disabled) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Build, Host, forceUpdate, h, } from "@stencil/core";
|
|
5
|
-
import { createNotchController, checkInvalidState } from "../../utils/forms/index";
|
|
5
|
+
import { createNotchController, createStartContainerController, checkInvalidState } from "../../utils/forms/index";
|
|
6
6
|
import { inheritAriaAttributes, debounceEvent, inheritAttributes, componentOnReady } from "../../utils/helpers";
|
|
7
7
|
import { createSlotMutationController } from "../../utils/slot-mutation-controller";
|
|
8
8
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
@@ -56,7 +56,7 @@ export class Input {
|
|
|
56
56
|
/**
|
|
57
57
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
58
58
|
*/
|
|
59
|
-
this.autocorrect =
|
|
59
|
+
this.autocorrect = false;
|
|
60
60
|
/**
|
|
61
61
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
62
62
|
*
|
|
@@ -155,13 +155,18 @@ export class Input {
|
|
|
155
155
|
this.emitInputChange(ev);
|
|
156
156
|
};
|
|
157
157
|
/**
|
|
158
|
-
* Stops propagation
|
|
159
|
-
*
|
|
158
|
+
* Stops propagation for clicks on the input's own content (label text,
|
|
159
|
+
* input field) to prevent double-click events. Allows clicks on slotted
|
|
160
|
+
* content to propagate so event delegation works for parent handlers.
|
|
161
|
+
*
|
|
162
|
+
* Only slots belonging directly to this input should be considered.
|
|
163
|
+
* The input itself may have a slot attribute when placed in an item
|
|
164
|
+
* or toolbar, which does not make its content slotted content.
|
|
160
165
|
*/
|
|
161
166
|
this.onLabelClick = (ev) => {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
if (
|
|
167
|
+
const target = ev.target;
|
|
168
|
+
const slotted = target.closest('[slot="start"], [slot="end"]');
|
|
169
|
+
if (slotted === null || slotted === this.el || !this.el.contains(slotted)) {
|
|
165
170
|
ev.stopPropagation();
|
|
166
171
|
}
|
|
167
172
|
};
|
|
@@ -172,7 +177,7 @@ export class Input {
|
|
|
172
177
|
* If debounce is undefined, we have to manually revert the ionInput emitter in case
|
|
173
178
|
* debounce used to be set to a number. Otherwise, the event would stay debounced.
|
|
174
179
|
*/
|
|
175
|
-
this.ionInput = debounce === undefined ? originalIonInput
|
|
180
|
+
this.ionInput = debounce === undefined ? originalIonInput ?? ionInput : debounceEvent(ionInput, debounce);
|
|
176
181
|
}
|
|
177
182
|
/**
|
|
178
183
|
* Whenever the type on the input changes we need
|
|
@@ -211,7 +216,10 @@ export class Input {
|
|
|
211
216
|
* to the inner `<input>` element.
|
|
212
217
|
*/
|
|
213
218
|
onDirChanged(newValue) {
|
|
214
|
-
this.inheritedAttributes =
|
|
219
|
+
this.inheritedAttributes = {
|
|
220
|
+
...this.inheritedAttributes,
|
|
221
|
+
dir: newValue,
|
|
222
|
+
};
|
|
215
223
|
forceUpdate(this);
|
|
216
224
|
}
|
|
217
225
|
/**
|
|
@@ -226,16 +234,24 @@ export class Input {
|
|
|
226
234
|
}
|
|
227
235
|
}
|
|
228
236
|
componentWillLoad() {
|
|
229
|
-
this.inheritedAttributes =
|
|
237
|
+
this.inheritedAttributes = {
|
|
238
|
+
...inheritAriaAttributes(this.el),
|
|
239
|
+
...inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type', 'dir']),
|
|
240
|
+
};
|
|
230
241
|
}
|
|
231
242
|
connectedCallback() {
|
|
232
243
|
const { el } = this;
|
|
233
244
|
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => {
|
|
245
|
+
this.startContainerController?.calculateStartContainerWidth();
|
|
234
246
|
this.setSlottedLabelId();
|
|
235
247
|
forceUpdate(this);
|
|
236
248
|
});
|
|
237
249
|
this.setSlottedLabelId();
|
|
238
250
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
251
|
+
this.startContainerController = createStartContainerController(el, () => this.startContainerEl, () => {
|
|
252
|
+
return Build.isBrowser && getIonMode(this) === 'md' && this.fill === 'outline';
|
|
253
|
+
});
|
|
254
|
+
this.startContainerController.calculateStartContainerWidth();
|
|
239
255
|
// Watch for class changes to update validation state
|
|
240
256
|
if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
|
|
241
257
|
this.validationObserver = new MutationObserver(() => {
|
|
@@ -272,8 +288,8 @@ export class Input {
|
|
|
272
288
|
this.debounceChanged();
|
|
273
289
|
}
|
|
274
290
|
componentDidRender() {
|
|
275
|
-
|
|
276
|
-
|
|
291
|
+
this.notchController?.calculateNotchWidth();
|
|
292
|
+
this.startContainerController?.calculateStartContainerWidth();
|
|
277
293
|
}
|
|
278
294
|
disconnectedCallback() {
|
|
279
295
|
if (Build.isBrowser) {
|
|
@@ -289,6 +305,10 @@ export class Input {
|
|
|
289
305
|
this.notchController.destroy();
|
|
290
306
|
this.notchController = undefined;
|
|
291
307
|
}
|
|
308
|
+
if (this.startContainerController) {
|
|
309
|
+
this.startContainerController.destroy();
|
|
310
|
+
this.startContainerController = undefined;
|
|
311
|
+
}
|
|
292
312
|
// Clean up validation observer to prevent memory leaks
|
|
293
313
|
if (this.validationObserver) {
|
|
294
314
|
this.validationObserver.disconnect();
|
|
@@ -465,14 +485,13 @@ export class Input {
|
|
|
465
485
|
* or undefined if aria-label is explicitly set (to avoid conflicts).
|
|
466
486
|
*/
|
|
467
487
|
getLabelledById() {
|
|
468
|
-
var _a;
|
|
469
488
|
if (this.inheritedAttributes['aria-label']) {
|
|
470
489
|
return undefined;
|
|
471
490
|
}
|
|
472
491
|
if (this.label !== undefined) {
|
|
473
492
|
return this.labelTextId;
|
|
474
493
|
}
|
|
475
|
-
return
|
|
494
|
+
return this.labelSlot?.id || undefined;
|
|
476
495
|
}
|
|
477
496
|
/**
|
|
478
497
|
* Returns `true` if label content is provided
|
|
@@ -484,63 +503,31 @@ export class Input {
|
|
|
484
503
|
return this.label !== undefined || this.labelSlot !== null;
|
|
485
504
|
}
|
|
486
505
|
/**
|
|
487
|
-
* Renders the border
|
|
488
|
-
* when fill="outline".
|
|
506
|
+
* Renders the outline border with a notch for the label.
|
|
489
507
|
*/
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
* The outline fill has a special outline
|
|
496
|
-
* that appears around the input and the label.
|
|
497
|
-
* Certain stacked and floating label placements cause the
|
|
498
|
-
* label to translate up and create a "cut out"
|
|
499
|
-
* inside of that border by using the notch-spacer element.
|
|
500
|
-
*/
|
|
501
|
-
return [
|
|
502
|
-
h("div", { class: "input-outline-container" }, h("div", { class: "input-outline-start" }), h("div", { class: {
|
|
503
|
-
'input-outline-notch': true,
|
|
504
|
-
'input-outline-notch-hidden': !this.hasLabel,
|
|
505
|
-
} }, h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), h("div", { class: "input-outline-end" })),
|
|
506
|
-
this.renderLabel(),
|
|
507
|
-
];
|
|
508
|
-
}
|
|
509
|
-
/**
|
|
510
|
-
* If not using the outline style,
|
|
511
|
-
* we can render just the label.
|
|
512
|
-
*/
|
|
513
|
-
return this.renderLabel();
|
|
508
|
+
renderOutlineContainer() {
|
|
509
|
+
return (h("div", { class: "input-outline-container" }, h("div", { class: "input-outline-start" }), h("div", { class: {
|
|
510
|
+
'input-outline-notch': true,
|
|
511
|
+
'input-outline-notch-hidden': !this.hasLabel,
|
|
512
|
+
} }, h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), h("div", { class: "input-outline-end" })));
|
|
514
513
|
}
|
|
515
514
|
render() {
|
|
516
|
-
const { disabled, fill, readonly, shape, inputId, labelPlacement,
|
|
515
|
+
const { disabled, fill, readonly, shape, inputId, labelPlacement, hasFocus, clearInputIcon } = this;
|
|
517
516
|
const mode = getIonMode(this);
|
|
518
517
|
const value = this.getValue();
|
|
519
518
|
const inItem = hostContext('ion-item', this.el);
|
|
520
519
|
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
521
520
|
const defaultClearIcon = mode === 'ios' ? closeCircle : closeSharp;
|
|
522
|
-
const clearIconData = clearInputIcon
|
|
521
|
+
const clearIconData = clearInputIcon ?? defaultClearIcon;
|
|
523
522
|
const hasValue = this.hasValue();
|
|
524
|
-
const
|
|
523
|
+
const hasOutlineFill = mode === 'md' && fill === 'outline';
|
|
525
524
|
/**
|
|
526
525
|
* If the label is stacked, it should always sit above the input.
|
|
527
526
|
* For floating labels, the label should move above the input if
|
|
528
|
-
* the input has a value
|
|
529
|
-
* the start or end slot.
|
|
530
|
-
*
|
|
531
|
-
* If there is content in the start slot, the label would overlap
|
|
532
|
-
* it if not forced to float. This is also applied to the end slot
|
|
533
|
-
* because with the default or solid fills, the input is not
|
|
534
|
-
* vertically centered in the container, but the label is. This
|
|
535
|
-
* causes the slots and label to appear vertically offset from each
|
|
536
|
-
* other when the label isn't floating above the input. This doesn't
|
|
537
|
-
* apply to the outline fill, but this was not accounted for to keep
|
|
538
|
-
* things consistent.
|
|
539
|
-
*
|
|
540
|
-
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
527
|
+
* the input has a value or is focused.
|
|
541
528
|
*/
|
|
542
|
-
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus
|
|
543
|
-
return (h(Host, { key: '
|
|
529
|
+
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus));
|
|
530
|
+
return (h(Host, { key: '9e9495b8f962372d526343ff76b80fb9700fce19', class: createColorClasses(this.color, {
|
|
544
531
|
[mode]: true,
|
|
545
532
|
'has-value': hasValue,
|
|
546
533
|
'has-focus': hasFocus,
|
|
@@ -551,14 +538,14 @@ export class Input {
|
|
|
551
538
|
'in-item': inItem,
|
|
552
539
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
553
540
|
'input-disabled': disabled,
|
|
554
|
-
}) }, h("label", { key: '
|
|
541
|
+
}) }, h("label", { key: '7121f34ed782caf7a7b82703b94fc9d6c78ce5ba', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, hasOutlineFill && this.renderOutlineContainer(), h("div", { key: '0c1f8526d86c8a2433c23873fa64b1edc0eafe29', class: "input-start", ref: (el) => (this.startContainerEl = el) }, h("slot", { key: 'a50323fde0fb12997c2324eded132908680ea450', name: "start" })), h("div", { key: '626360c4e115a5286baab49680b2a02cd39614c8', class: "input-control" }, this.renderLabel(), h("div", { key: '1cefd9d8cd6ed96fab7b58237f8f8b0c5e1be92e', class: "native-wrapper", onClick: this.onLabelClick }, h("input", { key: '3dee5302f3a685a848fedd7e1face5095e3ac64b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', 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.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById(), ...this.inheritedAttributes }))), h("div", { key: '39fff82e00e63963fe5f17794900ace2a3faa208', class: "input-end" }, this.clearInput && !readonly && !disabled && (h("button", { key: '1fa86fdb5baf4a7cd531ee0fe767a42b44fb33fc', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
555
542
|
/**
|
|
556
543
|
* This prevents mobile browsers from
|
|
557
544
|
* blurring the input when the clear
|
|
558
545
|
* button is activated.
|
|
559
546
|
*/
|
|
560
547
|
ev.preventDefault();
|
|
561
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
548
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { key: 'ced39304f97e56870f7480afa025ffe232010cfb', "aria-hidden": "true", icon: clearIconData }))), h("slot", { key: 'f4098769eef1cc5aa2074c369f757ccb94a98e1c', name: "end" })), shouldRenderHighlight && h("div", { key: '258fe6ff8f9f57836f2a3a0b6163bd2b7dbf0699', class: "input-highlight" })), this.renderBottomContent()));
|
|
562
549
|
}
|
|
563
550
|
static get is() { return "ion-input"; }
|
|
564
551
|
static get encapsulation() { return "scoped"; }
|
|
@@ -650,11 +637,11 @@ export class Input {
|
|
|
650
637
|
"defaultValue": "'off'"
|
|
651
638
|
},
|
|
652
639
|
"autocorrect": {
|
|
653
|
-
"type": "
|
|
640
|
+
"type": "boolean",
|
|
654
641
|
"mutable": false,
|
|
655
642
|
"complexType": {
|
|
656
|
-
"original": "
|
|
657
|
-
"resolved": "
|
|
643
|
+
"original": "boolean",
|
|
644
|
+
"resolved": "boolean",
|
|
658
645
|
"references": {}
|
|
659
646
|
},
|
|
660
647
|
"required": false,
|
|
@@ -667,7 +654,7 @@ export class Input {
|
|
|
667
654
|
"setter": false,
|
|
668
655
|
"reflect": false,
|
|
669
656
|
"attribute": "autocorrect",
|
|
670
|
-
"defaultValue": "
|
|
657
|
+
"defaultValue": "false"
|
|
671
658
|
},
|
|
672
659
|
"autofocus": {
|
|
673
660
|
"type": "boolean",
|
|
@@ -206,12 +206,6 @@
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
.input-clear-icon {
|
|
209
|
-
-webkit-margin-start: auto;
|
|
210
|
-
margin-inline-start: auto;
|
|
211
|
-
-webkit-margin-end: auto;
|
|
212
|
-
margin-inline-end: auto;
|
|
213
|
-
margin-top: auto;
|
|
214
|
-
margin-bottom: auto;
|
|
215
209
|
padding-left: 0;
|
|
216
210
|
padding-right: 0;
|
|
217
211
|
padding-top: 0;
|
|
@@ -269,14 +263,47 @@
|
|
|
269
263
|
line-height: normal;
|
|
270
264
|
}
|
|
271
265
|
|
|
266
|
+
.input-control {
|
|
267
|
+
display: flex;
|
|
268
|
+
flex-grow: 1;
|
|
269
|
+
width: 100%;
|
|
270
|
+
/**
|
|
271
|
+
* Allows the control to shrink below the label and input's intrinsic
|
|
272
|
+
* width, preventing the start and end slots from being pushed outside
|
|
273
|
+
* the wrapper. The label and input truncate independently, so it can
|
|
274
|
+
* use whatever space remains after accounting for the slots.
|
|
275
|
+
*/
|
|
276
|
+
min-width: 0;
|
|
277
|
+
}
|
|
278
|
+
|
|
272
279
|
.native-wrapper {
|
|
273
280
|
display: flex;
|
|
274
281
|
position: relative;
|
|
275
282
|
flex-grow: 1;
|
|
276
|
-
align-items: center;
|
|
277
283
|
width: 100%;
|
|
278
284
|
}
|
|
279
285
|
|
|
286
|
+
/**
|
|
287
|
+
* When the label sits beside the input, the label should size to its content
|
|
288
|
+
* and the input should take the remaining space. A zero flex basis prevents
|
|
289
|
+
* the input from requesting its full width and forcing the label to shrink.
|
|
290
|
+
* Stacked and floating placements use a column layout, so their flex basis
|
|
291
|
+
* controls height instead and does not need to be overridden.
|
|
292
|
+
*/
|
|
293
|
+
:host(.input-label-placement-start) .native-wrapper,
|
|
294
|
+
:host(.input-label-placement-end) .native-wrapper,
|
|
295
|
+
:host(.input-label-placement-fixed) .native-wrapper {
|
|
296
|
+
flex: 1 1 0;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.input-start,
|
|
300
|
+
.input-end {
|
|
301
|
+
display: flex;
|
|
302
|
+
position: relative;
|
|
303
|
+
flex-shrink: 0;
|
|
304
|
+
align-items: center;
|
|
305
|
+
}
|
|
306
|
+
|
|
280
307
|
:host(.ion-touched.ion-invalid) {
|
|
281
308
|
--highlight-color: var(--highlight-color-invalid);
|
|
282
309
|
}
|
|
@@ -377,6 +404,12 @@
|
|
|
377
404
|
*/
|
|
378
405
|
display: flex;
|
|
379
406
|
align-items: center;
|
|
407
|
+
/**
|
|
408
|
+
* Allows the label to shrink below its intrinsic content width.
|
|
409
|
+
* Without this the label keeps its full width and can push the
|
|
410
|
+
* input and end slot outside the wrapper.
|
|
411
|
+
*/
|
|
412
|
+
min-width: 0;
|
|
380
413
|
/**
|
|
381
414
|
* Label text should not extend
|
|
382
415
|
* beyond the bounds of the input.
|
|
@@ -395,6 +428,18 @@
|
|
|
395
428
|
pointer-events: none;
|
|
396
429
|
}
|
|
397
430
|
|
|
431
|
+
/**
|
|
432
|
+
* When start/end slots are added or removed, we temporarily
|
|
433
|
+
* disable the label transition to prevent the floating label
|
|
434
|
+
* from animating as its position is adjusted.
|
|
435
|
+
*
|
|
436
|
+
* This class is applied by the start container controller, so
|
|
437
|
+
* renaming it here requires renaming it there too.
|
|
438
|
+
*/
|
|
439
|
+
:host(.skip-label-transition) .label-text-wrapper {
|
|
440
|
+
transition: none;
|
|
441
|
+
}
|
|
442
|
+
|
|
398
443
|
/**
|
|
399
444
|
* We need to use two elements instead of
|
|
400
445
|
* one. The .label-text-wrapper is responsible
|
|
@@ -438,7 +483,7 @@
|
|
|
438
483
|
* Label is on the left of the input in LTR and
|
|
439
484
|
* on the right in RTL.
|
|
440
485
|
*/
|
|
441
|
-
:host(.input-label-placement-start) .input-
|
|
486
|
+
:host(.input-label-placement-start) .input-control {
|
|
442
487
|
flex-direction: row;
|
|
443
488
|
}
|
|
444
489
|
|
|
@@ -460,7 +505,7 @@
|
|
|
460
505
|
* Label is on the right of the input in LTR and
|
|
461
506
|
* on the left in RTL.
|
|
462
507
|
*/
|
|
463
|
-
:host(.input-label-placement-end) .input-
|
|
508
|
+
:host(.input-label-placement-end) .input-control {
|
|
464
509
|
flex-direction: row-reverse;
|
|
465
510
|
}
|
|
466
511
|
|
|
@@ -508,10 +553,9 @@
|
|
|
508
553
|
* Floating: Label sits over the input when the input has no
|
|
509
554
|
* value and is blurred. Label sits above the input and is scaled
|
|
510
555
|
* down when the input is focused or has a value.
|
|
511
|
-
*
|
|
512
556
|
*/
|
|
513
|
-
:host(.input-label-placement-stacked) .input-
|
|
514
|
-
:host(.input-label-placement-floating) .input-
|
|
557
|
+
:host(.input-label-placement-stacked) .input-control,
|
|
558
|
+
:host(.input-label-placement-floating) .input-control {
|
|
515
559
|
flex-direction: column;
|
|
516
560
|
align-items: start;
|
|
517
561
|
}
|
|
@@ -542,18 +586,6 @@
|
|
|
542
586
|
}
|
|
543
587
|
}
|
|
544
588
|
|
|
545
|
-
/**
|
|
546
|
-
* Ensures the input does not
|
|
547
|
-
* overlap the label.
|
|
548
|
-
*/
|
|
549
|
-
:host(.input-label-placement-stacked) input,
|
|
550
|
-
:host(.input-label-placement-floating) input {
|
|
551
|
-
margin-left: 0;
|
|
552
|
-
margin-right: 0;
|
|
553
|
-
margin-top: 1px;
|
|
554
|
-
margin-bottom: 0;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
589
|
/**
|
|
558
590
|
* This makes the label sit over the input
|
|
559
591
|
* when the input is blurred and has no value.
|
|
@@ -906,6 +938,14 @@
|
|
|
906
938
|
--border-radius: 4px;
|
|
907
939
|
--padding-start: 16px;
|
|
908
940
|
--padding-end: 16px;
|
|
941
|
+
/**
|
|
942
|
+
* The measured width of the start container, as a negative offset
|
|
943
|
+
* in LTR and a positive one in RTL. Written to the host by the
|
|
944
|
+
* start container controller, so renaming it here requires renaming
|
|
945
|
+
* it there too. Declared with a default so the label is positioned
|
|
946
|
+
* correctly before the first measurement runs.
|
|
947
|
+
*/
|
|
948
|
+
--internal-start-container-adjustment: 0px;
|
|
909
949
|
min-height: 56px;
|
|
910
950
|
}
|
|
911
951
|
|
|
@@ -960,15 +1000,25 @@
|
|
|
960
1000
|
border-bottom: none;
|
|
961
1001
|
}
|
|
962
1002
|
|
|
1003
|
+
/**
|
|
1004
|
+
* The resting label is positioned relative to the control so it can size to
|
|
1005
|
+
* the space between the start and end slots. When floating, the label needs
|
|
1006
|
+
* to escape the control and position itself relative to the wrapper instead.
|
|
1007
|
+
*/
|
|
1008
|
+
:host(.input-fill-outline:not(.label-floating)) .input-control {
|
|
1009
|
+
position: relative;
|
|
1010
|
+
}
|
|
1011
|
+
|
|
963
1012
|
:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper,
|
|
964
1013
|
:host(.input-fill-outline.input-label-placement-floating) .label-text-wrapper {
|
|
965
1014
|
transform-origin: left top;
|
|
966
1015
|
position: absolute;
|
|
967
1016
|
/**
|
|
968
|
-
*
|
|
969
|
-
*
|
|
1017
|
+
* While resting this is the width of the text input, which already
|
|
1018
|
+
* excludes the start and end slots. Once the label floats the
|
|
1019
|
+
* containing block becomes the wrapper and the rule below takes over.
|
|
970
1020
|
*/
|
|
971
|
-
max-width:
|
|
1021
|
+
max-width: 100%;
|
|
972
1022
|
}
|
|
973
1023
|
:host-context([dir=rtl]):host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper, :host-context([dir=rtl]).input-fill-outline.input-label-placement-stacked .label-text-wrapper, :host-context([dir=rtl]):host(.input-fill-outline.input-label-placement-floating) .label-text-wrapper, :host-context([dir=rtl]).input-fill-outline.input-label-placement-floating .label-text-wrapper {
|
|
974
1024
|
transform-origin: right top;
|
|
@@ -993,7 +1043,7 @@
|
|
|
993
1043
|
* This makes the label sit above the input.
|
|
994
1044
|
*/
|
|
995
1045
|
:host(.label-floating.input-fill-outline) .label-text-wrapper {
|
|
996
|
-
transform:
|
|
1046
|
+
transform: translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);
|
|
997
1047
|
margin-left: 0;
|
|
998
1048
|
margin-right: 0;
|
|
999
1049
|
margin-top: 0;
|
|
@@ -1005,19 +1055,6 @@
|
|
|
1005
1055
|
max-width: calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75);
|
|
1006
1056
|
}
|
|
1007
1057
|
|
|
1008
|
-
/**
|
|
1009
|
-
* This ensures that the input does not
|
|
1010
|
-
* overlap the floating label while still
|
|
1011
|
-
* remaining visually centered.
|
|
1012
|
-
*/
|
|
1013
|
-
:host(.input-fill-outline.input-label-placement-stacked) input,
|
|
1014
|
-
:host(.input-fill-outline.input-label-placement-floating) input {
|
|
1015
|
-
margin-left: 0;
|
|
1016
|
-
margin-right: 0;
|
|
1017
|
-
margin-top: 6px;
|
|
1018
|
-
margin-bottom: 6px;
|
|
1019
|
-
}
|
|
1020
|
-
|
|
1021
1058
|
:host(.input-fill-outline) .input-outline-container {
|
|
1022
1059
|
left: 0;
|
|
1023
1060
|
right: 0;
|
|
@@ -1190,8 +1227,7 @@
|
|
|
1190
1227
|
}
|
|
1191
1228
|
|
|
1192
1229
|
.input-clear-icon ion-icon {
|
|
1193
|
-
|
|
1194
|
-
height: 22px;
|
|
1230
|
+
font-size: 22px;
|
|
1195
1231
|
}
|
|
1196
1232
|
|
|
1197
1233
|
:host(.input-disabled) {
|