@ionic/core 8.8.19-dev.11787007863.1976a30e → 8.8.19-dev.11787083540.1511caf2
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-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +4 -0
- package/components/ion-picker-legacy.d.ts +11 -0
- package/components/ion-picker-legacy.js +4 -0
- 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-DV85C0e0.js → p--JUspHvy.js} +1 -1
- package/components/p-0LM2oPMC.js +4 -0
- package/components/{p-_0JhwClE.js → p-6J0vc7Z8.js} +1 -1
- package/components/p-9GFIh9p1.js +4 -0
- package/components/p-B21528L5.js +4 -0
- package/components/p-B2nSfLHH.js +4 -0
- package/components/p-B3qf4bEn.js +4 -0
- package/components/p-B9jFTlwE.js +4 -0
- package/components/p-BDd9Zrb9.js +4 -0
- package/components/p-BLmJ0zRm.js +4 -0
- package/components/p-BMYNBJgf.js +4 -0
- package/components/p-BRYd8D-I.js +4 -0
- package/components/p-BSEgsdFI.js +4 -0
- package/components/p-BTEOs1at.js +4 -0
- package/components/p-BTJrYwxN.js +4 -0
- package/components/p-BV-zKay-.js +4 -0
- package/components/p-BYRVyMu9.js +4 -0
- package/components/{p-DwpKZ6rl.js → p-BkKAANMJ.js} +1 -1
- package/components/p-Bmq8qlkW.js +4 -0
- package/components/p-BuxQcfHK.js +4 -0
- package/components/p-Bz0dSlXZ.js +4 -0
- package/components/p-C7II1iDj.js +4 -0
- package/components/p-CHqRYvYm.js +4 -0
- package/components/p-CSZf8_j0.js +4 -0
- package/components/p-CTdRooFV.js +4 -0
- package/components/p-Cf2jSDS8.js +4 -0
- package/components/p-Cfx4M1Bn.js +4 -0
- package/components/p-CgkrslTX.js +4 -0
- package/components/p-CiCzYG2V.js +4 -0
- package/{dist/ionic/p-BkfAWuv6.js → components/p-Ck0lEczL.js} +1 -1
- package/components/p-CmR5uXej.js +4 -0
- package/components/p-CniZht3v.js +4 -0
- package/components/p-CsaojgEs.js +4 -0
- package/components/p-CtWGkNnJ.js +4 -0
- package/components/p-D13Eaw-8.js +4 -0
- package/components/p-D4FYu-4R.js +4 -0
- package/components/p-D6Ynv7Xh.js +4 -0
- package/components/p-DARjq3GM.js +4 -0
- package/components/p-DEZ2myA3.js +4 -0
- package/components/p-DOFCbuQR.js +4 -0
- package/components/p-DVe41iHI.js +4 -0
- package/components/p-DX5m9g56.js +4 -0
- package/components/p-DboHi2CL.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/p-DmzFY5IC.js +4 -0
- package/components/{p-ryyf_ItD.js → p-DqLB8yFQ.js} +1 -1
- package/components/p-DqZAXv2t.js +4 -0
- package/components/p-Dv8w0kqz.js +4 -0
- package/components/p-Dw7GNDKq.js +4 -0
- package/components/p-Dww01PNs.js +4 -0
- package/components/p-Gy276IJk.js +4 -0
- package/components/p-ZzLXTvyt.js +4 -0
- package/components/p-cyNmxje6.js +4 -0
- package/components/p-j5IxBIan.js +4 -0
- package/components/p-k_E4tX5Z.js +4 -0
- package/components/p-lVAbdiAu.js +4 -0
- package/components/p-o8OKV5aD.js +4 -0
- package/components/{p-30_sZS2V.js → p-qMmFisyx.js} +1 -1
- package/components/p-rCa2eL0j.js +4 -0
- package/dist/cjs/{animation-C0mOHzej.js → animation-Ch16T-Nb.js} +4 -4
- package/dist/cjs/{app-globals-BREG4twP.js → app-globals-Dd89e0MR.js} +1 -1
- package/dist/cjs/{button-active-BKj1rdFx.js → button-active-AWp_ygDP.js} +3 -3
- package/dist/cjs/config-D6C-KlA9.js +201 -0
- package/dist/cjs/dir-DD0jPVH3.js +31 -0
- package/dist/cjs/{format-pp0Du3K-.js → format-BUFWn4Bn.js} +30 -40
- package/dist/cjs/{framework-delegate-NTLQ5YzV.js → framework-delegate-CEzl4MEA.js} +7 -5
- package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-dtqlP_q4.js} +8 -15
- package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-ClPPQ_PS.js} +3 -2
- package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-CXmUnTJC.js} +4 -4
- package/dist/cjs/{helpers-CaLhEmTE.js → helpers-DdZyl6WL.js} +15 -11
- package/dist/cjs/{index-P1nQxrpZ.js → index-BJ2-LydH.js} +7 -36
- package/dist/cjs/{index-uvry__L4.js → index-BfaXsATC.js} +14 -31
- package/dist/cjs/{index-D48vawBq.js → index-CD92bI7B.js} +2 -2
- package/dist/cjs/{index-Ck9advCT.js → index-CukZnH1U.js} +5 -5
- package/dist/cjs/{index-D2X6b92x.js → index-DOiZqxWZ.js} +7 -6
- package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
- package/dist/cjs/{index-BlshL9ib.js → index-MWAIyVLl.js} +3 -2
- package/dist/cjs/index.cjs.js +19 -18
- package/dist/cjs/{input-shims-DvHAFqiP.js → input-shims-CPKgrIe3.js} +12 -9
- package/dist/cjs/input.utils-DQaUGGed.js +150 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +341 -368
- package/dist/cjs/ion-action-sheet.cjs.entry.js +77 -187
- package/dist/cjs/ion-alert.cjs.entry.js +112 -273
- package/dist/cjs/ion-app_8.cjs.entry.js +190 -307
- package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -10
- package/dist/cjs/ion-back-button.cjs.entry.js +24 -47
- package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +122 -199
- package/dist/cjs/ion-button_2.cjs.entry.js +67 -138
- package/dist/cjs/ion-card_5.cjs.entry.js +31 -82
- package/dist/cjs/ion-checkbox.cjs.entry.js +102 -152
- package/dist/cjs/ion-chip.cjs.entry.js +11 -17
- package/dist/cjs/ion-col_3.cjs.entry.js +10 -134
- package/dist/cjs/ion-datetime-button.cjs.entry.js +242 -253
- package/dist/cjs/ion-datetime_3.cjs.entry.js +3167 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +82 -139
- package/dist/cjs/ion-img.cjs.entry.js +13 -34
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +73 -100
- package/dist/cjs/ion-input-otp.cjs.entry.js +372 -435
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +22 -36
- package/dist/cjs/ion-input.cjs.entry.js +212 -343
- package/dist/cjs/ion-item-option_3.cjs.entry.js +55 -94
- package/dist/cjs/ion-item_8.cjs.entry.js +93 -191
- package/dist/cjs/ion-loading.cjs.entry.js +61 -146
- package/dist/cjs/ion-menu_3.cjs.entry.js +109 -170
- package/dist/cjs/ion-modal.cjs.entry.js +262 -455
- package/dist/cjs/ion-nav_2.cjs.entry.js +159 -101
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +34 -37
- package/dist/cjs/ion-picker-column.cjs.entry.js +406 -417
- package/dist/cjs/ion-picker.cjs.entry.js +393 -401
- package/dist/cjs/ion-popover.cjs.entry.js +206 -319
- package/dist/cjs/ion-progress-bar.cjs.entry.js +26 -31
- package/dist/cjs/ion-radio_2.cjs.entry.js +135 -207
- package/dist/cjs/ion-range.cjs.entry.js +237 -302
- package/dist/cjs/ion-refresher_2.cjs.entry.js +94 -165
- package/dist/cjs/ion-reorder_2.cjs.entry.js +24 -53
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +72 -175
- package/dist/cjs/ion-searchbar.cjs.entry.js +200 -291
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +17 -28
- package/dist/cjs/ion-segment_2.cjs.entry.js +126 -169
- package/dist/cjs/ion-select-modal.cjs.entry.js +49 -104
- package/dist/cjs/ion-select_3.cjs.entry.js +260 -787
- package/dist/cjs/ion-spinner.cjs.entry.js +10 -24
- package/dist/cjs/ion-split-pane.cjs.entry.js +16 -29
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +42 -100
- package/dist/cjs/ion-tab_2.cjs.entry.js +28 -53
- package/dist/cjs/ion-text.cjs.entry.js +5 -11
- package/dist/cjs/ion-textarea.cjs.entry.js +189 -296
- package/dist/cjs/ion-toast.cjs.entry.js +118 -236
- package/dist/cjs/ion-toggle.cjs.entry.js +122 -175
- package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-BerQGEpE.js} +8 -13
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-KvuRAe2W.js → ios.transition-CTiTDh3m.js} +18 -13
- package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-jOJZE_I0.js} +1 -1
- package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-UuAS4D_9.js} +2 -2
- package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-GXBiBRKS.js} +6 -6
- package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-hHzlEQpk.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-Bjl5Ozph.js → md.transition-BpiTAaqF.js} +9 -7
- package/dist/cjs/notch-controller-aiy8aQb-.js +155 -0
- package/dist/cjs/{overlays-IlP4H2Gn.js → overlays-CQ_c1fko.js} +33 -48
- package/dist/cjs/{status-tap-BR_ujYHg.js → status-tap-7FzRlXNr.js} +4 -3
- package/dist/cjs/{swipe-back-DzQKEl5g.js → swipe-back-DwTZiAc9.js} +5 -5
- package/dist/cjs/{theme-Bw0rpaNN.js → theme-CeDs6Hcv.js} +1 -6
- package/dist/collection/collection-manifest.json +10 -6
- package/dist/collection/components/accordion/accordion.js +312 -315
- package/dist/collection/components/accordion-group/accordion-group.js +25 -48
- package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -228
- package/dist/collection/components/action-sheet/action-sheet.js +64 -173
- package/dist/collection/components/action-sheet/action-sheet.md.css +2 -174
- package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
- package/dist/collection/components/alert/alert.ios.css +10 -279
- package/dist/collection/components/alert/alert.js +97 -257
- package/dist/collection/components/alert/alert.md.css +20 -268
- package/dist/collection/components/app/app.js +0 -3
- package/dist/collection/components/back-button/back-button.js +19 -42
- package/dist/collection/components/backdrop/backdrop.js +14 -16
- package/dist/collection/components/badge/badge.js +0 -6
- package/dist/collection/components/breadcrumb/breadcrumb.js +30 -91
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +88 -103
- package/dist/collection/components/button/button.js +61 -132
- package/dist/collection/components/buttons/buttons.js +15 -13
- package/dist/collection/components/card/card.js +21 -54
- package/dist/collection/components/card-header/card-header.js +8 -12
- package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
- package/dist/collection/components/card-title/card-title.js +0 -6
- package/dist/collection/components/checkbox/checkbox.js +97 -147
- package/dist/collection/components/chip/chip.js +10 -14
- package/dist/collection/components/col/col.js +3 -127
- package/dist/collection/components/content/content.js +64 -93
- package/dist/collection/components/datetime/datetime.ios.css +2 -42
- package/dist/collection/components/datetime/datetime.js +816 -1051
- package/dist/collection/components/datetime/datetime.md.css +1 -42
- package/dist/collection/components/datetime/utils/data.js +14 -13
- package/dist/collection/components/datetime/utils/format.js +11 -21
- 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 +2 -8
- package/dist/collection/components/datetime/utils/validate.js +5 -4
- package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -5
- package/dist/collection/components/datetime-button/datetime-button.js +237 -247
- package/dist/collection/components/datetime-button/datetime-button.md.css +0 -5
- package/dist/collection/components/fab/fab.js +13 -20
- package/dist/collection/components/fab-button/fab-button.js +55 -104
- package/dist/collection/components/fab-list/fab-list.js +11 -10
- package/dist/collection/components/footer/footer.js +44 -50
- package/dist/collection/components/grid/grid.js +6 -4
- package/dist/collection/components/header/header.js +25 -35
- package/dist/collection/components/img/img.js +10 -34
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
- package/dist/collection/components/input/input.ios.css +26 -57
- package/dist/collection/components/input/input.js +206 -336
- package/dist/collection/components/input/input.md.css +43 -79
- package/dist/collection/components/input-otp/input-otp.js +368 -430
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +19 -32
- package/dist/collection/components/item/item.js +53 -99
- package/dist/collection/components/item-divider/item-divider.js +12 -17
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +22 -50
- package/dist/collection/components/item-options/item-options.js +8 -11
- package/dist/collection/components/item-sliding/item-sliding.js +21 -27
- package/dist/collection/components/label/label.js +6 -26
- package/dist/collection/components/list/list.js +8 -11
- package/dist/collection/components/list-header/list-header.js +2 -12
- package/dist/collection/components/loading/loading.js +51 -135
- package/dist/collection/components/menu/menu.js +63 -105
- package/dist/collection/components/menu-button/menu-button.js +21 -30
- package/dist/collection/components/menu-toggle/menu-toggle.js +15 -22
- 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 +10 -22
- package/dist/collection/components/modal/gestures/swipe-to-close.js +3 -15
- package/dist/collection/components/modal/modal.js +228 -398
- package/dist/collection/components/modal/safe-area-utils.js +7 -6
- package/dist/collection/components/modal/test/fixtures.js +0 -3
- package/dist/collection/components/nav/nav.js +247 -69
- package/dist/collection/components/nav/view-controller.js +1 -7
- package/dist/collection/components/nav-link/nav-link.js +10 -21
- package/dist/collection/components/note/note.js +2 -8
- package/dist/collection/components/picker/picker.js +390 -398
- package/dist/collection/components/picker-column/picker-column.css +0 -3
- package/dist/collection/components/picker-column/picker-column.js +404 -414
- package/dist/collection/components/picker-column-option/picker-column-option.js +31 -33
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +1 -6
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
- package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
- package/dist/collection/components/picker-legacy/picker.js +890 -0
- package/dist/collection/components/picker-legacy/picker.md.css +287 -0
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
- package/dist/collection/components/popover/animations/ios.enter.js +2 -1
- package/dist/collection/components/popover/animations/md.enter.js +2 -1
- package/dist/collection/components/popover/popover.ios.css +0 -15
- package/dist/collection/components/popover/popover.js +185 -302
- package/dist/collection/components/popover/popover.md.css +0 -15
- package/dist/collection/components/popover/test/fixture.js +0 -1
- package/dist/collection/components/popover/utils.js +6 -4
- package/dist/collection/components/progress-bar/progress-bar.js +23 -27
- package/dist/collection/components/radio/radio.js +66 -102
- package/dist/collection/components/radio-group/radio-group.js +66 -101
- package/dist/collection/components/radio-group/test/fixtures.js +0 -2
- package/dist/collection/components/range/range.js +232 -296
- package/dist/collection/components/refresher/refresher.js +78 -110
- package/dist/collection/components/refresher-content/refresher-content.js +4 -41
- package/dist/collection/components/reorder/reorder.js +1 -2
- package/dist/collection/components/reorder-group/reorder-group.js +15 -44
- package/dist/collection/components/ripple-effect/ripple-effect.js +13 -12
- package/dist/collection/components/route/route.js +10 -39
- package/dist/collection/components/route-redirect/route-redirect.js +0 -31
- package/dist/collection/components/router/router.js +33 -37
- package/dist/collection/components/router/utils/dom.js +7 -25
- package/dist/collection/components/router/utils/matching.js +9 -7
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +1 -0
- package/dist/collection/components/router-link/router-link.js +12 -37
- package/dist/collection/components/router-outlet/router-outlet.js +21 -82
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +199 -289
- package/dist/collection/components/segment/segment.js +85 -120
- package/dist/collection/components/segment-button/segment-button.js +37 -43
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +16 -26
- package/dist/collection/components/select/select.ios.css +69 -96
- package/dist/collection/components/select/select.js +213 -629
- package/dist/collection/components/select/select.md.css +85 -118
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -218
- package/dist/collection/components/select-modal/select-modal.js +38 -92
- package/dist/collection/components/select-modal/select-modal.md.css +0 -164
- package/dist/collection/components/select-modal/test/fixtures.js +1 -8
- package/dist/collection/components/select-option/select-option.js +9 -110
- package/dist/collection/components/select-popover/select-popover.ios.css +0 -218
- package/dist/collection/components/select-popover/select-popover.js +36 -103
- package/dist/collection/components/select-popover/select-popover.md.css +0 -164
- package/dist/collection/components/select-popover/test/fixtures.js +1 -8
- package/dist/collection/components/skeleton-text/skeleton-text.js +8 -12
- package/dist/collection/components/spinner/spinner.js +9 -21
- package/dist/collection/components/split-pane/split-pane.js +15 -27
- package/dist/collection/components/tab/tab.js +6 -17
- package/dist/collection/components/tab-bar/tab-bar.js +14 -32
- package/dist/collection/components/tab-button/tab-button.js +23 -62
- package/dist/collection/components/tabs/tabs.js +20 -33
- package/dist/collection/components/text/text.js +2 -8
- package/dist/collection/components/textarea/textarea.ios.css +62 -94
- package/dist/collection/components/textarea/textarea.js +181 -287
- package/dist/collection/components/textarea/textarea.md.css +77 -103
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -18
- package/dist/collection/components/toast/toast.js +106 -223
- package/dist/collection/components/toggle/toggle.js +115 -167
- package/dist/collection/components/toolbar/toolbar.js +7 -15
- package/dist/collection/global/config.js +6 -4
- package/dist/collection/global/ionic-global.js +2 -8
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +4 -5
- 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 +0 -1
- package/dist/collection/utils/framework-delegate.js +6 -4
- package/dist/collection/utils/gesture/gesture-controller.js +8 -15
- package/dist/collection/utils/gesture/index.js +2 -10
- 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 +5 -4
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -1
- 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 +4 -23
- package/dist/collection/utils/menu-controller/index.js +2 -1
- package/dist/collection/utils/native/haptic.js +3 -2
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlays.js +23 -38
- package/dist/collection/utils/platform.js +5 -4
- package/dist/collection/utils/rtl/dir.js +18 -7
- package/dist/collection/utils/sanitization/index.js +20 -276
- package/dist/collection/utils/slot-mutation-controller.js +2 -1
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/drag-element.js +3 -2
- package/dist/collection/utils/test/playwright/generator.js +4 -3
- package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
- package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -4
- 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 +3 -2
- package/dist/collection/utils/test/press-keys.js +17 -10
- package/dist/collection/utils/theme.js +1 -6
- package/dist/collection/utils/transition/ios.transition.js +13 -9
- package/dist/collection/utils/transition/md.transition.js +4 -3
- package/dist/docs.json +1256 -556
- package/dist/esm/{animation-CGFdmGk9.js → animation-DLJpuoEz.js} +4 -4
- package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-D0C5S4hU.js} +1 -1
- package/dist/esm/{button-active--80YqSHA.js → button-active-CXXy0FIE.js} +3 -3
- package/dist/esm/config-DQCONYYp.js +195 -0
- package/dist/esm/dir-o8OKV5aD.js +29 -0
- package/dist/esm/{format-Dcwga61t.js → format-CAmvpAez.js} +31 -41
- package/dist/esm/{framework-delegate--ajhSeKH.js → framework-delegate-B9yvYzqV.js} +7 -5
- package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
- package/dist/esm/{haptic-Cq4UAeka.js → haptic-DzAMWJuk.js} +3 -2
- package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-B93Gru0Y.js} +4 -4
- package/dist/esm/{helpers-DexiPLIC.js → helpers-DkCLSLI9.js} +15 -11
- package/dist/esm/{index-_Za5VB9w.js → index-B_8X7INq.js} +2 -2
- package/dist/esm/{index-DppOcPFQ.js → index-Bck1OwMs.js} +7 -36
- package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
- package/dist/esm/{index-CumkqGQF.js → index-DdeElWma.js} +7 -6
- package/dist/esm/{index-8s8kZKJ7.js → index-Dsz7OTeL.js} +5 -5
- package/dist/esm/{index-BCgUwrV0.js → index-DwNKJodj.js} +3 -2
- package/dist/esm/{index-ChhhtsGZ.js → index-tcQvqkiX.js} +15 -32
- package/dist/esm/index.js +16 -16
- package/dist/esm/{input-shims-BB0AKb_k.js → input-shims-d-hDv86G.js} +12 -9
- package/dist/esm/input.utils-Cd23Gdd1.js +147 -0
- package/dist/esm/ion-accordion_2.entry.js +341 -368
- package/dist/esm/ion-action-sheet.entry.js +77 -187
- package/dist/esm/ion-alert.entry.js +111 -272
- package/dist/esm/ion-app_8.entry.js +190 -307
- package/dist/esm/ion-avatar_3.entry.js +4 -10
- package/dist/esm/ion-back-button.entry.js +24 -47
- package/dist/esm/ion-backdrop.entry.js +14 -18
- package/dist/esm/ion-breadcrumb_2.entry.js +122 -199
- package/dist/esm/ion-button_2.entry.js +67 -138
- package/dist/esm/ion-card_5.entry.js +31 -82
- package/dist/esm/ion-checkbox.entry.js +102 -152
- package/dist/esm/ion-chip.entry.js +11 -17
- package/dist/esm/ion-col_3.entry.js +10 -134
- package/dist/esm/ion-datetime-button.entry.js +242 -253
- package/dist/esm/ion-datetime_3.entry.js +3163 -0
- package/dist/esm/ion-fab_3.entry.js +82 -139
- package/dist/esm/ion-img.entry.js +13 -34
- package/dist/esm/ion-infinite-scroll_2.entry.js +72 -99
- package/dist/esm/ion-input-otp.entry.js +372 -435
- package/dist/esm/ion-input-password-toggle.entry.js +22 -36
- package/dist/esm/ion-input.entry.js +210 -341
- package/dist/esm/ion-item-option_3.entry.js +55 -94
- package/dist/esm/ion-item_8.entry.js +93 -191
- package/dist/esm/ion-loading.entry.js +60 -145
- package/dist/esm/ion-menu_3.entry.js +109 -170
- package/dist/esm/ion-modal.entry.js +262 -455
- package/dist/esm/ion-nav_2.entry.js +159 -101
- package/dist/esm/ion-picker-column-option.entry.js +34 -37
- package/dist/esm/ion-picker-column.entry.js +406 -417
- package/dist/esm/ion-picker.entry.js +393 -401
- package/dist/esm/ion-popover.entry.js +206 -319
- package/dist/esm/ion-progress-bar.entry.js +26 -31
- package/dist/esm/ion-radio_2.entry.js +135 -207
- package/dist/esm/ion-range.entry.js +237 -302
- package/dist/esm/ion-refresher_2.entry.js +92 -163
- package/dist/esm/ion-reorder_2.entry.js +24 -53
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +72 -175
- package/dist/esm/ion-searchbar.entry.js +200 -291
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +17 -28
- package/dist/esm/ion-segment_2.entry.js +126 -169
- package/dist/esm/ion-select-modal.entry.js +49 -104
- package/dist/esm/ion-select_3.entry.js +260 -787
- package/dist/esm/ion-spinner.entry.js +10 -24
- package/dist/esm/ion-split-pane.entry.js +16 -29
- package/dist/esm/ion-tab-bar_2.entry.js +42 -100
- package/dist/esm/ion-tab_2.entry.js +28 -53
- package/dist/esm/ion-text.entry.js +5 -11
- package/dist/esm/ion-textarea.entry.js +188 -295
- package/dist/esm/ion-toast.entry.js +117 -235
- package/dist/esm/ion-toggle.entry.js +122 -175
- package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-Cp_eT4sZ.js} +8 -13
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-BdhybwLl.js → ios.transition-CxNhMt4a.js} +18 -13
- package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
- package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CUw4ekVy.js} +2 -2
- package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BaaVITYt.js} +6 -6
- package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-ywgs5efA.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-B5lqKGCs.js → md.transition-IE4mC3kp.js} +9 -7
- package/dist/esm/notch-controller-Doqis1td.js +153 -0
- package/dist/esm/{overlays-CjWwtvf1.js → overlays-COCl_nm9.js} +33 -48
- package/dist/esm/{status-tap-DpLhkDWs.js → status-tap-HhO5eQI9.js} +4 -3
- package/dist/esm/{swipe-back-cz4-lyG3.js → swipe-back-DK6afpuO.js} +5 -5
- package/dist/esm/{theme-byZM6qHV.js → theme-DiVJyqlX.js} +1 -6
- package/dist/html.html-data.json +80 -52
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01f81ea5.entry.js +4 -0
- package/dist/ionic/p-0283ea73.entry.js +4 -0
- package/dist/ionic/p-02ecae65.entry.js +4 -0
- package/dist/ionic/p-0672f677.entry.js +4 -0
- package/dist/ionic/p-0c06fe60.entry.js +4 -0
- package/dist/ionic/p-0fa9c382.entry.js +4 -0
- package/dist/ionic/p-1af4d74c.entry.js +4 -0
- package/dist/ionic/p-1d7ef0d2.entry.js +4 -0
- package/dist/ionic/p-26f05d3a.entry.js +4 -0
- package/dist/ionic/p-27d30585.entry.js +4 -0
- package/dist/ionic/p-2bb2cb18.entry.js +4 -0
- package/dist/ionic/p-31e7bd05.entry.js +4 -0
- package/dist/ionic/p-32f53010.entry.js +4 -0
- package/dist/ionic/p-35eb8b5c.entry.js +4 -0
- package/dist/ionic/p-37e720da.entry.js +4 -0
- package/dist/ionic/p-3efa137b.entry.js +4 -0
- package/dist/ionic/p-432bd72c.entry.js +4 -0
- package/dist/ionic/p-47214c72.entry.js +4 -0
- package/dist/ionic/p-4e172429.entry.js +4 -0
- package/dist/ionic/p-5c3da84e.entry.js +4 -0
- package/dist/ionic/p-5d1da0a2.entry.js +4 -0
- package/dist/ionic/p-5d8082fe.entry.js +4 -0
- package/dist/ionic/p-613d3c43.entry.js +4 -0
- package/dist/ionic/p-616e4d4f.entry.js +4 -0
- package/dist/ionic/p-65d611b2.entry.js +4 -0
- package/dist/ionic/p-67806e3f.entry.js +4 -0
- package/dist/ionic/p-68307fbf.entry.js +4 -0
- package/dist/ionic/p-68cbb2fc.entry.js +4 -0
- package/dist/ionic/p-737ae9eb.entry.js +4 -0
- package/dist/ionic/p-7b0d6248.entry.js +4 -0
- package/dist/ionic/p-7e71e470.entry.js +4 -0
- package/dist/ionic/p-84d5ce05.entry.js +4 -0
- package/dist/ionic/p-85d49987.entry.js +4 -0
- package/dist/ionic/p-8945088b.entry.js +4 -0
- package/dist/ionic/p-8b155568.entry.js +4 -0
- package/dist/ionic/p-90267c4b.entry.js +4 -0
- package/dist/ionic/p-92ad8a67.entry.js +4 -0
- package/dist/ionic/p-9a97d4e0.entry.js +4 -0
- package/dist/ionic/p-9e4b0894.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-B2kaj8sx.js +4 -0
- package/dist/ionic/p-B4y7nxsg.js +4 -0
- package/dist/ionic/p-B8t9Ro6f.js +4 -0
- package/dist/ionic/p-BEOxsxBw.js +4 -0
- package/dist/ionic/p-BJ2NxSHp.js +4 -0
- package/dist/ionic/p-BLiL8g0v.js +4 -0
- package/dist/ionic/p-BTEOs1at.js +4 -0
- package/dist/ionic/p-BUFIpxKM.js +4 -0
- package/dist/ionic/p-BYRVyMu9.js +4 -0
- package/dist/ionic/p-C0eMdTCW.js +4 -0
- package/dist/ionic/p-CKvCXMs9.js +4 -0
- package/dist/ionic/p-CPTv7G9B.js +4 -0
- package/dist/ionic/{p-CQ_4TirR.js → p-Cd4H8ft-.js} +1 -1
- package/dist/ionic/{p-I3In7hMC.js → p-ClM02LPk.js} +1 -1
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/dist/ionic/p-CxMyXUtt.js +4 -0
- package/dist/ionic/p-D13Eaw-8.js +4 -0
- package/dist/ionic/p-DCoy2elM.js +4 -0
- package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
- package/dist/ionic/p-DZaO33Mw.js +4 -0
- package/dist/ionic/p-DiVJyqlX.js +4 -0
- package/dist/ionic/p-DipZFfzN.js +4 -0
- package/dist/ionic/p-DqN5EA2O.js +4 -0
- package/dist/ionic/p-Dr9fTCb1.js +4 -0
- package/dist/ionic/p-DzWaWHGc.js +4 -0
- package/dist/ionic/p-EkpneKVM.js +4 -0
- package/dist/ionic/p-Nqf6uvGh.js +4 -0
- package/dist/ionic/p-SNAkTDfm.js +4 -0
- package/dist/ionic/p-ab00b0d8.entry.js +4 -0
- package/dist/ionic/p-c2175309.entry.js +4 -0
- package/dist/ionic/p-c4b69d9b.entry.js +4 -0
- package/dist/ionic/p-c4d8641b.entry.js +4 -0
- package/dist/ionic/{p-40424a88.entry.js → p-c6e49f3f.entry.js} +1 -1
- package/dist/ionic/p-ce637936.entry.js +4 -0
- package/dist/ionic/{p-08443c08.entry.js → p-da85e958.entry.js} +1 -1
- package/dist/ionic/p-dfa8d673.entry.js +4 -0
- package/dist/ionic/p-e139357c.entry.js +4 -0
- package/dist/ionic/p-f37ca594.entry.js +4 -0
- package/dist/ionic/p-f8dd336e.entry.js +4 -0
- package/dist/ionic/p-f9de757b.entry.js +4 -0
- package/dist/ionic/p-fe11cf51.entry.js +4 -0
- package/dist/ionic/p-mjKAFv89.js +4 -0
- package/dist/ionic/p-o8OKV5aD.js +4 -0
- package/dist/ionic/p-tcQvqkiX.js +5 -0
- package/dist/types/components/img/img.d.ts +0 -2
- package/dist/types/components/input/input.d.ts +6 -12
- package/dist/types/components/modal/modal-interface.d.ts +0 -9
- package/dist/types/components/modal/modal.d.ts +4 -11
- package/dist/types/components/nav/nav-interface.d.ts +1 -0
- package/dist/types/components/nav/nav.d.ts +22 -2
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
- package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
- package/dist/types/components/picker-legacy/picker.d.ts +158 -0
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +0 -31
- package/dist/types/components/select/select.d.ts +6 -30
- package/dist/types/components/select-option/select-option.d.ts +1 -42
- package/dist/types/components/textarea/textarea.d.ts +5 -12
- package/dist/types/components.d.ts +311 -74
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/config.d.ts +8 -1
- package/dist/types/utils/forms/index.d.ts +0 -1
- package/dist/types/utils/helpers.d.ts +8 -5
- package/dist/types/utils/logging/index.d.ts +1 -2
- package/dist/types/utils/overlays.d.ts +9 -11
- package/dist/types/utils/rtl/dir.d.ts +10 -4
- package/dist/types/utils/sanitization/index.d.ts +2 -58
- 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 +7265 -10630
- package/hydrate/index.mjs +7265 -10630
- package/package.json +12 -55
- package/components/p--m5cCjbK.js +0 -4
- package/components/p-8FN7p701.js +0 -4
- package/components/p-B-FxiyeI.js +0 -4
- package/components/p-B4uHHhPK.js +0 -4
- package/components/p-BMPN55of.js +0 -4
- package/components/p-BMS4t-kJ.js +0 -4
- package/components/p-BOvLNVKq.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BWBigMsI.js +0 -4
- package/components/p-BZ4-QTes.js +0 -4
- package/components/p-BhamHSw3.js +0 -4
- package/components/p-BjluhQMI.js +0 -4
- package/components/p-BlsIikdZ.js +0 -4
- package/components/p-Blug1Vxu.js +0 -4
- package/components/p-BpG8kBfD.js +0 -4
- package/components/p-BqPNzJf6.js +0 -4
- package/components/p-C5KYjZWD.js +0 -4
- package/components/p-C91npEel.js +0 -4
- package/components/p-C9BGR5fy.js +0 -4
- package/components/p-CD4fmpem.js +0 -4
- package/components/p-CEW4RXZO.js +0 -4
- package/components/p-CKhiNOEg.js +0 -4
- package/components/p-CO2zzh3W.js +0 -4
- package/components/p-CVb3x_r3.js +0 -4
- package/components/p-CWLrHG8Y.js +0 -4
- package/components/p-CbhUdtjf.js +0 -4
- package/components/p-CejmQs3h.js +0 -4
- package/components/p-CfnNZz_d.js +0 -4
- package/components/p-CmKf4pgI.js +0 -4
- package/components/p-Cs5f-uOS.js +0 -4
- package/components/p-D7-vHX0A.js +0 -4
- package/components/p-DKrhJJV0.js +0 -4
- package/components/p-DRfgH82D.js +0 -4
- package/components/p-DSzSbVP2.js +0 -4
- package/components/p-DVKS-ovH.js +0 -4
- package/components/p-DWCzVL3Y.js +0 -4
- package/components/p-Dd8ajo9a.js +0 -4
- package/components/p-DdnhY_oj.js +0 -4
- package/components/p-DgZOZQjJ.js +0 -4
- package/components/p-Dmd2xqCe.js +0 -4
- package/components/p-G0TxqHfe.js +0 -4
- package/components/p-GG5GhznE.js +0 -4
- package/components/p-J-p0EtHR.js +0 -4
- package/components/p-LXu5-6Ti.js +0 -4
- package/components/p-TXPDHL13.js +0 -4
- package/components/p-UQSiXX2Z.js +0 -4
- package/components/p-UuPYCOZE.js +0 -4
- package/components/p-WeeS7GvC.js +0 -4
- package/components/p-_IKFD3ID.js +0 -4
- package/components/p-byZM6qHV.js +0 -4
- package/components/p-hh7qIC-X.js +0 -4
- package/components/p-idq4JFo2.js +0 -4
- package/components/p-qT1szVjw.js +0 -4
- package/components/p-wzAhIh03.js +0 -4
- package/components/p-ypuYdSDB.js +0 -4
- package/components/p-yuj4Nkm_.js +0 -4
- package/dist/cjs/config-CjUbvdPW.js +0 -36
- package/dist/cjs/dir-Brx7VkvP.js +0 -20
- package/dist/cjs/index-B7zJsYWS.js +0 -429
- package/dist/cjs/input.utils-BZdMWVrt.js +0 -35
- package/dist/cjs/ion-datetime.cjs.entry.js +0 -2770
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
- package/dist/cjs/select-option-render-pULCGldr.js +0 -123
- package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +0 -397
- package/dist/collection/utils/forms/start-container-controller.js +0 -132
- package/dist/collection/utils/overlay-control-label.js +0 -45
- package/dist/collection/utils/select-option-render.js +0 -118
- package/dist/esm/config-DWCzVL3Y.js +0 -32
- package/dist/esm/dir-B-FxiyeI.js +0 -18
- package/dist/esm/index-CKM1DdGm.js +0 -424
- package/dist/esm/input.utils-B1ValN_N.js +0 -33
- package/dist/esm/ion-datetime.entry.js +0 -2768
- package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
- package/dist/esm/select-option-render-C4m76VGH.js +0 -121
- package/dist/esm/slot-mutation-controller-u741eD3Z.js +0 -393
- package/dist/ionic/p-06533d51.entry.js +0 -4
- package/dist/ionic/p-0FNc80PN.js +0 -4
- package/dist/ionic/p-141f5b47.entry.js +0 -4
- package/dist/ionic/p-14a5e8f5.entry.js +0 -4
- package/dist/ionic/p-19269e04.entry.js +0 -4
- package/dist/ionic/p-19abbc33.entry.js +0 -4
- package/dist/ionic/p-1edf0573.entry.js +0 -4
- package/dist/ionic/p-4204184c.entry.js +0 -4
- package/dist/ionic/p-4bc3ecdb.entry.js +0 -4
- package/dist/ionic/p-4eOQC00Z.js +0 -4
- package/dist/ionic/p-4eed9ca1.entry.js +0 -4
- package/dist/ionic/p-53bac1c9.entry.js +0 -4
- package/dist/ionic/p-5506caeb.entry.js +0 -4
- package/dist/ionic/p-5521dc1f.entry.js +0 -4
- package/dist/ionic/p-5993a77f.entry.js +0 -4
- package/dist/ionic/p-5c3626de.entry.js +0 -4
- package/dist/ionic/p-5d3b411c.entry.js +0 -4
- package/dist/ionic/p-60576951.entry.js +0 -4
- package/dist/ionic/p-7116e558.entry.js +0 -4
- package/dist/ionic/p-711a8319.entry.js +0 -4
- package/dist/ionic/p-71419a55.entry.js +0 -4
- package/dist/ionic/p-79325ffe.entry.js +0 -4
- package/dist/ionic/p-7bb3e957.entry.js +0 -4
- package/dist/ionic/p-82525fb0.entry.js +0 -4
- package/dist/ionic/p-84a38904.entry.js +0 -4
- package/dist/ionic/p-865fa114.entry.js +0 -4
- package/dist/ionic/p-8e1d9e3a.entry.js +0 -4
- package/dist/ionic/p-8f204f1e.entry.js +0 -4
- package/dist/ionic/p-9055e897.entry.js +0 -4
- package/dist/ionic/p-9658e083.entry.js +0 -4
- package/dist/ionic/p-988baee1.entry.js +0 -4
- package/dist/ionic/p-9nmHvEvw.js +0 -4
- package/dist/ionic/p-B-FxiyeI.js +0 -4
- package/dist/ionic/p-BB0LlG4y.js +0 -4
- package/dist/ionic/p-BMPN55of.js +0 -4
- package/dist/ionic/p-BQ8oNV0v.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BhamHSw3.js +0 -4
- package/dist/ionic/p-BjvtSsVI.js +0 -4
- package/dist/ionic/p-BwIp10KV.js +0 -4
- package/dist/ionic/p-C-94tAim.js +0 -4
- package/dist/ionic/p-C6eME8Ey.js +0 -4
- package/dist/ionic/p-CKUuSnDR.js +0 -4
- package/dist/ionic/p-CMRtMbJc.js +0 -4
- package/dist/ionic/p-CPcPmkGv.js +0 -4
- package/dist/ionic/p-CaRuIadB.js +0 -4
- package/dist/ionic/p-Cdjxf_yg.js +0 -4
- package/dist/ionic/p-ChhhtsGZ.js +0 -5
- package/dist/ionic/p-CmKf4pgI.js +0 -4
- package/dist/ionic/p-D5t_-oMk.js +0 -4
- package/dist/ionic/p-D94b61er.js +0 -4
- package/dist/ionic/p-DAztxQR0.js +0 -4
- package/dist/ionic/p-DCI3rXQo.js +0 -4
- package/dist/ionic/p-DDhtUaaA.js +0 -4
- package/dist/ionic/p-DWCzVL3Y.js +0 -4
- package/dist/ionic/p-DkUB-ROc.js +0 -4
- package/dist/ionic/p-Dn0mqQ_R.js +0 -4
- package/dist/ionic/p-T71k3C35.js +0 -4
- package/dist/ionic/p-TXPDHL13.js +0 -4
- package/dist/ionic/p-a71232d6.entry.js +0 -4
- package/dist/ionic/p-a73d8742.entry.js +0 -4
- package/dist/ionic/p-a8421d18.entry.js +0 -4
- package/dist/ionic/p-a8c2c343.entry.js +0 -4
- package/dist/ionic/p-acf0a6af.entry.js +0 -4
- package/dist/ionic/p-ad98e3ff.entry.js +0 -4
- package/dist/ionic/p-af5166f5.entry.js +0 -4
- package/dist/ionic/p-bc2bad5f.entry.js +0 -4
- package/dist/ionic/p-be08d500.entry.js +0 -4
- package/dist/ionic/p-be9a4f51.entry.js +0 -4
- package/dist/ionic/p-byZM6qHV.js +0 -4
- package/dist/ionic/p-ccc5044d.entry.js +0 -4
- package/dist/ionic/p-ce32912b.entry.js +0 -4
- package/dist/ionic/p-ded69ceb.entry.js +0 -4
- package/dist/ionic/p-e0c6e31e.entry.js +0 -4
- package/dist/ionic/p-e1e5b507.entry.js +0 -4
- package/dist/ionic/p-e8c3e08a.entry.js +0 -4
- package/dist/ionic/p-ed5d540d.entry.js +0 -4
- package/dist/ionic/p-f046aa37.entry.js +0 -4
- package/dist/ionic/p-f2802440.entry.js +0 -4
- package/dist/ionic/p-f402f5a4.entry.js +0 -4
- package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
- package/dist/types/utils/forms/start-container-controller.d.ts +0 -34
- package/dist/types/utils/overlay-control-label.d.ts +0 -32
- package/dist/types/utils/select-option-render.d.ts +0 -53
- /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Build, Host, forceUpdate, h, writeTask, } from "@stencil/core";
|
|
5
|
-
import { createNotchController,
|
|
5
|
+
import { createNotchController, 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";
|
|
@@ -16,189 +16,144 @@ import { getCounterText } from "../input/input.utils";
|
|
|
16
16
|
* @slot end - Content to display at the trailing edge of the textarea. (EXPERIMENTAL)
|
|
17
17
|
*/
|
|
18
18
|
export class Textarea {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
19
|
+
constructor() {
|
|
20
|
+
this.inputId = `ion-textarea-${textareaIds++}`;
|
|
21
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
22
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
23
|
+
/**
|
|
24
|
+
* `true` if the textarea was cleared as a result of the user typing
|
|
25
|
+
* with `clearOnEdit` enabled.
|
|
26
|
+
*
|
|
27
|
+
* Resets when the textarea loses focus.
|
|
28
|
+
*/
|
|
29
|
+
this.didTextareaClearOnEdit = false;
|
|
30
|
+
this.inheritedAttributes = {};
|
|
31
|
+
/**
|
|
32
|
+
* The `hasFocus` state ensures the focus class is
|
|
33
|
+
* added regardless of how the element is focused.
|
|
34
|
+
* The `ion-focused` class only applies when focused
|
|
35
|
+
* via tabbing, not by clicking.
|
|
36
|
+
* The `has-focus` logic was added to ensure the class
|
|
37
|
+
* is applied in both cases.
|
|
38
|
+
*/
|
|
39
|
+
this.hasFocus = false;
|
|
40
|
+
/**
|
|
41
|
+
* Track validation state for proper aria-live announcements
|
|
42
|
+
*/
|
|
43
|
+
this.isInvalid = false;
|
|
44
|
+
/**
|
|
45
|
+
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
46
|
+
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
47
|
+
*/
|
|
48
|
+
this.autocapitalize = 'none';
|
|
49
|
+
/**
|
|
50
|
+
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
51
|
+
*
|
|
52
|
+
* This may not be sufficient for the element to be focused on page load. See [managing focus](/docs/developing/managing-focus) for more information.
|
|
53
|
+
*/
|
|
54
|
+
this.autofocus = false;
|
|
55
|
+
/**
|
|
56
|
+
* If `true`, the value will be cleared after focus upon edit.
|
|
57
|
+
*/
|
|
58
|
+
this.clearOnEdit = false;
|
|
59
|
+
/**
|
|
60
|
+
* If `true`, the user cannot interact with the textarea.
|
|
61
|
+
*/
|
|
62
|
+
this.disabled = false;
|
|
63
|
+
/**
|
|
64
|
+
* The name of the control, which is submitted with the form data.
|
|
65
|
+
*/
|
|
66
|
+
this.name = this.inputId;
|
|
67
|
+
/**
|
|
68
|
+
* If `true`, the user cannot modify the value.
|
|
69
|
+
*/
|
|
70
|
+
this.readonly = false;
|
|
71
|
+
/**
|
|
72
|
+
* If `true`, the user must fill in a value before submitting a form.
|
|
73
|
+
*/
|
|
74
|
+
this.required = false;
|
|
75
|
+
/**
|
|
76
|
+
* If `true`, the element will have its spelling and grammar checked.
|
|
77
|
+
*/
|
|
78
|
+
this.spellcheck = false;
|
|
79
|
+
/**
|
|
80
|
+
* If `true`, the textarea container will grow and shrink based
|
|
81
|
+
* on the contents of the textarea.
|
|
82
|
+
*/
|
|
83
|
+
this.autoGrow = false;
|
|
84
|
+
/**
|
|
85
|
+
* The value of the textarea.
|
|
86
|
+
*/
|
|
87
|
+
this.value = '';
|
|
88
|
+
/**
|
|
89
|
+
* If `true`, a character counter will display the ratio of characters used and the total character limit.
|
|
90
|
+
* Developers must also set the `maxlength` property for the counter to be calculated correctly.
|
|
91
|
+
*/
|
|
92
|
+
this.counter = false;
|
|
93
|
+
/**
|
|
94
|
+
* Where to place the label relative to the textarea.
|
|
95
|
+
* `"start"`: The label will appear to the left of the textarea in LTR and to the right in RTL.
|
|
96
|
+
* `"end"`: The label will appear to the right of the textarea in LTR and to the left in RTL.
|
|
97
|
+
* `"floating"`: The label will appear smaller and above the textarea when the textarea is focused or it has a value. Otherwise it will appear on top of the textarea.
|
|
98
|
+
* `"stacked"`: The label will appear smaller and above the textarea regardless even when the textarea is blurred or has no value.
|
|
99
|
+
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
100
|
+
*/
|
|
101
|
+
this.labelPlacement = 'start';
|
|
102
|
+
// `Event` type is used instead of `InputEvent`
|
|
103
|
+
// since the types from Stencil are not derived
|
|
104
|
+
// from the element (e.g. textarea and input
|
|
105
|
+
// should be InputEvent, but all other elements
|
|
106
|
+
// should be Event).
|
|
107
|
+
this.onInput = (ev) => {
|
|
108
|
+
const input = ev.target;
|
|
109
|
+
if (input) {
|
|
110
|
+
this.value = input.value || '';
|
|
111
|
+
}
|
|
112
|
+
this.emitInputChange(ev);
|
|
113
|
+
};
|
|
114
|
+
this.onChange = (ev) => {
|
|
115
|
+
this.emitValueChange(ev);
|
|
116
|
+
};
|
|
117
|
+
this.onFocus = (ev) => {
|
|
118
|
+
this.hasFocus = true;
|
|
119
|
+
this.focusedValue = this.value;
|
|
120
|
+
this.ionFocus.emit(ev);
|
|
121
|
+
};
|
|
122
|
+
this.onBlur = (ev) => {
|
|
123
|
+
this.hasFocus = false;
|
|
124
|
+
if (this.focusedValue !== this.value) {
|
|
125
|
+
/**
|
|
126
|
+
* Emits the `ionChange` event when the textarea value
|
|
127
|
+
* is different than the value when the textarea was focused.
|
|
128
|
+
*/
|
|
129
|
+
this.emitValueChange(ev);
|
|
130
|
+
}
|
|
131
|
+
this.didTextareaClearOnEdit = false;
|
|
132
|
+
this.ionBlur.emit(ev);
|
|
133
|
+
};
|
|
134
|
+
this.onKeyDown = (ev) => {
|
|
135
|
+
this.checkClearOnEdit(ev);
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Stops propagation when the label is clicked,
|
|
139
|
+
* otherwise, two clicks will be triggered.
|
|
140
|
+
*/
|
|
141
|
+
this.onLabelClick = (ev) => {
|
|
142
|
+
// Only stop propagation if the click was directly on the label
|
|
143
|
+
// and not on the input or other child elements
|
|
144
|
+
if (ev.target === ev.currentTarget) {
|
|
145
|
+
ev.stopPropagation();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
82
149
|
debounceChanged() {
|
|
83
150
|
const { ionInput, debounce, originalIonInput } = this;
|
|
84
151
|
/**
|
|
85
152
|
* If debounce is undefined, we have to manually revert the ionInput emitter in case
|
|
86
153
|
* debounce used to be set to a number. Otherwise, the event would stay debounced.
|
|
87
154
|
*/
|
|
88
|
-
this.ionInput = debounce === undefined ? originalIonInput
|
|
155
|
+
this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
|
|
89
156
|
}
|
|
90
|
-
/**
|
|
91
|
-
* If `true`, the user cannot interact with the textarea.
|
|
92
|
-
*/
|
|
93
|
-
disabled = false;
|
|
94
|
-
/**
|
|
95
|
-
* The fill for the item. If `"solid"` the item will have a background. If
|
|
96
|
-
* `"outline"` the item will be transparent with a border. Only available in `md` mode.
|
|
97
|
-
*/
|
|
98
|
-
fill;
|
|
99
|
-
/**
|
|
100
|
-
* A hint to the browser for which keyboard to display.
|
|
101
|
-
* Possible values: `"none"`, `"text"`, `"tel"`, `"url"`,
|
|
102
|
-
* `"email"`, `"numeric"`, `"decimal"`, and `"search"`.
|
|
103
|
-
*/
|
|
104
|
-
inputmode;
|
|
105
|
-
/**
|
|
106
|
-
* A hint to the browser for which enter key to display.
|
|
107
|
-
* Possible values: `"enter"`, `"done"`, `"go"`, `"next"`,
|
|
108
|
-
* `"previous"`, `"search"`, and `"send"`.
|
|
109
|
-
*/
|
|
110
|
-
enterkeyhint;
|
|
111
|
-
/**
|
|
112
|
-
* This attribute specifies the maximum number of characters that the user can enter.
|
|
113
|
-
*/
|
|
114
|
-
maxlength;
|
|
115
|
-
/**
|
|
116
|
-
* This attribute specifies the minimum number of characters that the user can enter.
|
|
117
|
-
*/
|
|
118
|
-
minlength;
|
|
119
|
-
/**
|
|
120
|
-
* The name of the control, which is submitted with the form data.
|
|
121
|
-
*/
|
|
122
|
-
name = this.inputId;
|
|
123
|
-
/**
|
|
124
|
-
* Instructional text that shows before the input has a value.
|
|
125
|
-
*/
|
|
126
|
-
placeholder;
|
|
127
|
-
/**
|
|
128
|
-
* If `true`, the user cannot modify the value.
|
|
129
|
-
*/
|
|
130
|
-
readonly = false;
|
|
131
|
-
/**
|
|
132
|
-
* If `true`, the user must fill in a value before submitting a form.
|
|
133
|
-
*/
|
|
134
|
-
required = false;
|
|
135
|
-
/**
|
|
136
|
-
* If `true`, the element will have its spelling and grammar checked.
|
|
137
|
-
*/
|
|
138
|
-
spellcheck = false;
|
|
139
|
-
/**
|
|
140
|
-
* The visible width of the text control, in average character widths. If it is specified, it must be a positive integer.
|
|
141
|
-
*/
|
|
142
|
-
cols;
|
|
143
|
-
/**
|
|
144
|
-
* The number of visible text lines for the control.
|
|
145
|
-
*/
|
|
146
|
-
rows;
|
|
147
|
-
/**
|
|
148
|
-
* Indicates how the control wraps text.
|
|
149
|
-
*/
|
|
150
|
-
wrap;
|
|
151
|
-
/**
|
|
152
|
-
* If `true`, the textarea container will grow and shrink based
|
|
153
|
-
* on the contents of the textarea.
|
|
154
|
-
*/
|
|
155
|
-
autoGrow = false;
|
|
156
|
-
/**
|
|
157
|
-
* The value of the textarea.
|
|
158
|
-
*/
|
|
159
|
-
value = '';
|
|
160
|
-
/**
|
|
161
|
-
* If `true`, a character counter will display the ratio of characters used and the total character limit.
|
|
162
|
-
* Developers must also set the `maxlength` property for the counter to be calculated correctly.
|
|
163
|
-
*/
|
|
164
|
-
counter = false;
|
|
165
|
-
/**
|
|
166
|
-
* A callback used to format the counter text.
|
|
167
|
-
* By default the counter text is set to "itemLength / maxLength".
|
|
168
|
-
*
|
|
169
|
-
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
170
|
-
* if you need to access `this` from within the callback.
|
|
171
|
-
*/
|
|
172
|
-
counterFormatter;
|
|
173
|
-
/**
|
|
174
|
-
* Text that is placed under the textarea and displayed when an error is detected.
|
|
175
|
-
*/
|
|
176
|
-
errorText;
|
|
177
|
-
/**
|
|
178
|
-
* Text that is placed under the textarea and displayed when no error is detected.
|
|
179
|
-
*/
|
|
180
|
-
helperText;
|
|
181
|
-
/**
|
|
182
|
-
* The visible label associated with the textarea.
|
|
183
|
-
*
|
|
184
|
-
* Use this if you need to render a plaintext label.
|
|
185
|
-
*
|
|
186
|
-
* The `label` property will take priority over the `label` slot if both are used.
|
|
187
|
-
*/
|
|
188
|
-
label;
|
|
189
|
-
/**
|
|
190
|
-
* Where to place the label relative to the textarea.
|
|
191
|
-
* `"start"`: The label will appear to the left of the textarea in LTR and to the right in RTL.
|
|
192
|
-
* `"end"`: The label will appear to the right of the textarea in LTR and to the left in RTL.
|
|
193
|
-
* `"floating"`: The label will appear smaller and above the textarea when the textarea is focused or it has a value. Otherwise it will appear on top of the textarea.
|
|
194
|
-
* `"stacked"`: The label will appear smaller and above the textarea regardless even when the textarea is blurred or has no value.
|
|
195
|
-
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
196
|
-
*/
|
|
197
|
-
labelPlacement = 'start';
|
|
198
|
-
/**
|
|
199
|
-
* The shape of the textarea. If "round" it will have an increased border radius.
|
|
200
|
-
*/
|
|
201
|
-
shape;
|
|
202
157
|
/**
|
|
203
158
|
* Update the native input element when the value changes
|
|
204
159
|
*/
|
|
@@ -218,37 +173,9 @@ export class Textarea {
|
|
|
218
173
|
* to the inner `<textarea>` element.
|
|
219
174
|
*/
|
|
220
175
|
onDirChanged(newValue) {
|
|
221
|
-
this.inheritedAttributes = {
|
|
222
|
-
...this.inheritedAttributes,
|
|
223
|
-
dir: newValue,
|
|
224
|
-
};
|
|
176
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { dir: newValue });
|
|
225
177
|
forceUpdate(this);
|
|
226
178
|
}
|
|
227
|
-
/**
|
|
228
|
-
* The `ionChange` event is fired when the user modifies the textarea's value.
|
|
229
|
-
* Unlike the `ionInput` event, the `ionChange` event is fired when
|
|
230
|
-
* the element loses focus after its value has been modified.
|
|
231
|
-
*
|
|
232
|
-
* This event will not emit when programmatically setting the `value` property.
|
|
233
|
-
*/
|
|
234
|
-
ionChange;
|
|
235
|
-
/**
|
|
236
|
-
* The `ionInput` event is fired each time the user modifies the textarea's value.
|
|
237
|
-
* Unlike the `ionChange` event, the `ionInput` event is fired for each alteration
|
|
238
|
-
* to the textarea's value. This typically happens for each keystroke as the user types.
|
|
239
|
-
*
|
|
240
|
-
* When `clearOnEdit` is enabled, the `ionInput` event will be fired when
|
|
241
|
-
* the user clears the textarea by performing a keydown event.
|
|
242
|
-
*/
|
|
243
|
-
ionInput;
|
|
244
|
-
/**
|
|
245
|
-
* Emitted when the input loses focus.
|
|
246
|
-
*/
|
|
247
|
-
ionBlur;
|
|
248
|
-
/**
|
|
249
|
-
* Emitted when the input has focus.
|
|
250
|
-
*/
|
|
251
|
-
ionFocus;
|
|
252
179
|
/**
|
|
253
180
|
* This prevents the native input from emitting the click event.
|
|
254
181
|
* Instead, the click event from the ion-textarea is emitted.
|
|
@@ -262,15 +189,8 @@ export class Textarea {
|
|
|
262
189
|
}
|
|
263
190
|
connectedCallback() {
|
|
264
191
|
const { el } = this;
|
|
265
|
-
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () =>
|
|
266
|
-
this.startContainerController?.calculateStartContainerWidth();
|
|
267
|
-
forceUpdate(this);
|
|
268
|
-
});
|
|
192
|
+
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate(this));
|
|
269
193
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
270
|
-
this.startContainerController = createStartContainerController(el, () => this.startContainerEl, () => {
|
|
271
|
-
return Build.isBrowser && getIonMode(this) === 'md' && this.fill === 'outline';
|
|
272
|
-
});
|
|
273
|
-
this.startContainerController.calculateStartContainerWidth();
|
|
274
194
|
// Watch for class changes to update validation state
|
|
275
195
|
if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
|
|
276
196
|
this.validationObserver = new MutationObserver(() => {
|
|
@@ -309,10 +229,6 @@ export class Textarea {
|
|
|
309
229
|
this.notchController.destroy();
|
|
310
230
|
this.notchController = undefined;
|
|
311
231
|
}
|
|
312
|
-
if (this.startContainerController) {
|
|
313
|
-
this.startContainerController.destroy();
|
|
314
|
-
this.startContainerController = undefined;
|
|
315
|
-
}
|
|
316
232
|
// Clean up validation observer to prevent memory leaks
|
|
317
233
|
if (this.validationObserver) {
|
|
318
234
|
this.validationObserver.disconnect();
|
|
@@ -320,18 +236,15 @@ export class Textarea {
|
|
|
320
236
|
}
|
|
321
237
|
}
|
|
322
238
|
componentWillLoad() {
|
|
323
|
-
this.inheritedAttributes = {
|
|
324
|
-
...inheritAriaAttributes(this.el),
|
|
325
|
-
...inheritAttributes(this.el, ['data-form-type', 'title', 'tabindex', 'dir']),
|
|
326
|
-
};
|
|
239
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['data-form-type', 'title', 'tabindex', 'dir']));
|
|
327
240
|
}
|
|
328
241
|
componentDidLoad() {
|
|
329
242
|
this.originalIonInput = this.ionInput;
|
|
330
243
|
this.runAutoGrow();
|
|
331
244
|
}
|
|
332
245
|
componentDidRender() {
|
|
333
|
-
|
|
334
|
-
this.
|
|
246
|
+
var _a;
|
|
247
|
+
(_a = this.notchController) === null || _a === void 0 ? void 0 : _a.calculateNotchWidth();
|
|
335
248
|
}
|
|
336
249
|
/**
|
|
337
250
|
* Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global
|
|
@@ -381,10 +294,11 @@ export class Textarea {
|
|
|
381
294
|
runAutoGrow() {
|
|
382
295
|
if (this.nativeInput && this.autoGrow) {
|
|
383
296
|
writeTask(() => {
|
|
297
|
+
var _a;
|
|
384
298
|
if (this.textareaWrapper) {
|
|
385
299
|
// Replicated value is an attribute to be used in the stylesheet
|
|
386
300
|
// to set the inner contents of a pseudo element.
|
|
387
|
-
this.textareaWrapper.dataset.replicatedValue = this.value
|
|
301
|
+
this.textareaWrapper.dataset.replicatedValue = (_a = this.value) !== null && _a !== void 0 ? _a : '';
|
|
388
302
|
}
|
|
389
303
|
});
|
|
390
304
|
}
|
|
@@ -435,41 +349,6 @@ export class Textarea {
|
|
|
435
349
|
getValue() {
|
|
436
350
|
return this.value || '';
|
|
437
351
|
}
|
|
438
|
-
// `Event` type is used instead of `InputEvent`
|
|
439
|
-
// since the types from Stencil are not derived
|
|
440
|
-
// from the element (e.g. textarea and input
|
|
441
|
-
// should be InputEvent, but all other elements
|
|
442
|
-
// should be Event).
|
|
443
|
-
onInput = (ev) => {
|
|
444
|
-
const input = ev.target;
|
|
445
|
-
if (input) {
|
|
446
|
-
this.value = input.value || '';
|
|
447
|
-
}
|
|
448
|
-
this.emitInputChange(ev);
|
|
449
|
-
};
|
|
450
|
-
onChange = (ev) => {
|
|
451
|
-
this.emitValueChange(ev);
|
|
452
|
-
};
|
|
453
|
-
onFocus = (ev) => {
|
|
454
|
-
this.hasFocus = true;
|
|
455
|
-
this.focusedValue = this.value;
|
|
456
|
-
this.ionFocus.emit(ev);
|
|
457
|
-
};
|
|
458
|
-
onBlur = (ev) => {
|
|
459
|
-
this.hasFocus = false;
|
|
460
|
-
if (this.focusedValue !== this.value) {
|
|
461
|
-
/**
|
|
462
|
-
* Emits the `ionChange` event when the textarea value
|
|
463
|
-
* is different than the value when the textarea was focused.
|
|
464
|
-
*/
|
|
465
|
-
this.emitValueChange(ev);
|
|
466
|
-
}
|
|
467
|
-
this.didTextareaClearOnEdit = false;
|
|
468
|
-
this.ionBlur.emit(ev);
|
|
469
|
-
};
|
|
470
|
-
onKeyDown = (ev) => {
|
|
471
|
-
this.checkClearOnEdit(ev);
|
|
472
|
-
};
|
|
473
352
|
renderLabel() {
|
|
474
353
|
const { label } = this;
|
|
475
354
|
return (h("div", { class: {
|
|
@@ -494,29 +373,32 @@ export class Textarea {
|
|
|
494
373
|
return this.label !== undefined || this.labelSlot !== null;
|
|
495
374
|
}
|
|
496
375
|
/**
|
|
497
|
-
*
|
|
498
|
-
* textarea field) to prevent double-click events. Allows clicks on slotted
|
|
499
|
-
* content to propagate so event delegation works for parent handlers.
|
|
500
|
-
*
|
|
501
|
-
* Only slots belonging directly to this textarea should be considered.
|
|
502
|
-
* The textarea itself may have a slot attribute when placed in an item
|
|
503
|
-
* or toolbar, which does not make its content slotted content.
|
|
376
|
+
* Renders the border container when fill="outline".
|
|
504
377
|
*/
|
|
505
|
-
|
|
506
|
-
const
|
|
507
|
-
const
|
|
508
|
-
if (
|
|
509
|
-
|
|
378
|
+
renderLabelContainer() {
|
|
379
|
+
const mode = getIonMode(this);
|
|
380
|
+
const hasOutlineFill = mode === 'md' && this.fill === 'outline';
|
|
381
|
+
if (hasOutlineFill) {
|
|
382
|
+
/**
|
|
383
|
+
* The outline fill has a special outline
|
|
384
|
+
* that appears around the textarea and the label.
|
|
385
|
+
* Certain stacked and floating label placements cause the
|
|
386
|
+
* label to translate up and create a "cut out"
|
|
387
|
+
* inside of that border by using the notch-spacer element.
|
|
388
|
+
*/
|
|
389
|
+
return [
|
|
390
|
+
h("div", { class: "textarea-outline-container" }, h("div", { class: "textarea-outline-start" }), h("div", { class: {
|
|
391
|
+
'textarea-outline-notch': true,
|
|
392
|
+
'textarea-outline-notch-hidden': !this.hasLabel,
|
|
393
|
+
} }, h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), h("div", { class: "textarea-outline-end" })),
|
|
394
|
+
this.renderLabel(),
|
|
395
|
+
];
|
|
510
396
|
}
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
return (h("div", { class: "textarea-outline-container" }, h("div", { class: "textarea-outline-start" }), h("div", { class: {
|
|
517
|
-
'textarea-outline-notch': true,
|
|
518
|
-
'textarea-outline-notch-hidden': !this.hasLabel,
|
|
519
|
-
} }, h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), h("div", { class: "textarea-outline-end" })));
|
|
397
|
+
/**
|
|
398
|
+
* If not using the outline style,
|
|
399
|
+
* we can render just the label.
|
|
400
|
+
*/
|
|
401
|
+
return this.renderLabel();
|
|
520
402
|
}
|
|
521
403
|
/**
|
|
522
404
|
* Renders the helper text or error text values
|
|
@@ -564,20 +446,32 @@ export class Textarea {
|
|
|
564
446
|
return (h("div", { class: "textarea-bottom" }, this.renderHintText(), this.renderCounter()));
|
|
565
447
|
}
|
|
566
448
|
render() {
|
|
567
|
-
const { inputId, disabled, fill, shape, labelPlacement, hasFocus } = this;
|
|
449
|
+
const { inputId, disabled, fill, shape, labelPlacement, el, hasFocus } = this;
|
|
568
450
|
const mode = getIonMode(this);
|
|
569
451
|
const value = this.getValue();
|
|
570
452
|
const inItem = hostContext('ion-item', this.el);
|
|
571
453
|
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
572
454
|
const hasValue = this.hasValue();
|
|
573
|
-
const
|
|
455
|
+
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
574
456
|
/**
|
|
575
457
|
* If the label is stacked, it should always sit above the textarea.
|
|
576
458
|
* For floating labels, the label should move above the textarea if
|
|
577
|
-
* the textarea has a value or
|
|
459
|
+
* the textarea has a value, is focused, or has anything in either
|
|
460
|
+
* the start or end slot.
|
|
461
|
+
*
|
|
462
|
+
* If there is content in the start slot, the label would overlap
|
|
463
|
+
* it if not forced to float. This is also applied to the end slot
|
|
464
|
+
* because with the default or solid fills, the textarea is not
|
|
465
|
+
* vertically centered in the container, but the label is. This
|
|
466
|
+
* causes the slots and label to appear vertically offset from each
|
|
467
|
+
* other when the label isn't floating above the input. This doesn't
|
|
468
|
+
* apply to the outline fill, but this was not accounted for to keep
|
|
469
|
+
* things consistent.
|
|
470
|
+
*
|
|
471
|
+
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
578
472
|
*/
|
|
579
|
-
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus));
|
|
580
|
-
return (h(Host, { key: '
|
|
473
|
+
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
474
|
+
return (h(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses(this.color, {
|
|
581
475
|
[mode]: true,
|
|
582
476
|
'has-value': hasValue,
|
|
583
477
|
'has-focus': hasFocus,
|
|
@@ -586,7 +480,7 @@ export class Textarea {
|
|
|
586
480
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
587
481
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
588
482
|
'textarea-disabled': disabled,
|
|
589
|
-
}) }, h("label", { key: '
|
|
483
|
+
}) }, h("label", { key: '003da35bad92ab36777b7ae40855541bf900c64a', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '3cae2d19f96ba2b18a2d64298fdcc4b64ad34ac7', class: "textarea-wrapper-inner" }, h("div", { key: 'e26cb06763d551f7f83b6ea80349871aab18a016', class: "start-slot-wrapper" }, h("slot", { key: '135ba6db893eaca5f2a785fe61e24f33f56f3765', name: "start" })), h("div", { key: '951eabdd01c5e370790cec8578268361dcc8abdc', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '13d78f1a934b9f8d85cd9ed386dabc786f953f1d', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), h("div", { key: '699038558019470bccb4853fa65e7aeb069e0baa', class: "end-slot-wrapper" }, h("slot", { key: '19d8c212d7c718aeb6924e10bf8e48cad01314ea', name: "end" }))), shouldRenderHighlight && h("div", { key: '910a9437437ce7cab21e37a1cb4a6b309afda58f', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
590
484
|
}
|
|
591
485
|
static get is() { return "ion-textarea"; }
|
|
592
486
|
static get encapsulation() { return "scoped"; }
|