voyager-ionic-core 8.8.12 → 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-C4t5ymfq.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-lE_JGpHD.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-BirPFsRD.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-DNQI6d-L.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/{data-DLTUw-KF.js → format-bHU8N1g5.js} +48 -562
- 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 +18 -10
- package/dist/cjs/ion-card_5.cjs.entry.js +6 -5
- package/dist/cjs/ion-checkbox.cjs.entry.js +25 -12
- 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 +29 -30
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +773 -796
- package/dist/cjs/ion-fab_3.cjs.entry.js +93 -14
- 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 +117 -33
- 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 +307 -159
- 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 +24 -14
- package/dist/cjs/ion-range.cjs.entry.js +30 -25
- package/dist/cjs/ion-refresher_2.cjs.entry.js +61 -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 -125
- 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 +26 -19
- 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 +36 -15
- 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-Dv6qrMhm.js +38 -0
- 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-TbKsuC-K.js → overlays-BR21NUIG.js} +120 -57
- 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 +11 -4
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/checkbox/checkbox.ios.css +18 -0
- package/dist/collection/components/checkbox/checkbox.js +19 -8
- package/dist/collection/components/checkbox/checkbox.md.css +18 -0
- 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 +193 -79
- 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 +21 -25
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/fab-button/fab-button.js +114 -10
- 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.ios.css +11 -0
- package/dist/collection/components/item/item.js +99 -15
- package/dist/collection/components/item/item.md.css +11 -0
- 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 +47 -32
- package/dist/collection/components/modal/gestures/swipe-to-close.js +23 -33
- package/dist/collection/components/modal/gestures/utils.js +17 -0
- package/dist/collection/components/modal/modal.ios.css +8 -0
- package/dist/collection/components/modal/modal.js +158 -65
- package/dist/collection/components/modal/modal.md.css +8 -0
- 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.ios.css +11 -15
- package/dist/collection/components/radio/radio.js +17 -9
- package/dist/collection/components/radio/radio.md.css +11 -11
- 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 +49 -16
- 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 -91
- 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 +20 -13
- 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.ios.css +12 -4
- package/dist/collection/components/toggle/toggle.js +27 -7
- package/dist/collection/components/toggle/toggle.md.css +42 -5
- 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 +2 -0
- package/dist/collection/utils/forms/item-multiple-inputs.js +33 -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 +109 -47
- 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 +25 -0
- package/dist/collection/utils/test/playwright/detach-reattach.js +23 -0
- package/dist/collection/utils/test/playwright/drag-element.js +14 -0
- package/dist/collection/utils/test/playwright/generator.js +3 -4
- package/dist/collection/utils/test/playwright/index.js +2 -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 +972 -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/{data-DZI70dKr.js → format-DDFE9jM5.js} +41 -554
- 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 +18 -10
- package/dist/esm/ion-card_5.entry.js +6 -5
- package/dist/esm/ion-checkbox.entry.js +25 -12
- 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 +28 -29
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +712 -733
- package/dist/esm/ion-fab_3.entry.js +93 -14
- 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 +117 -33
- 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 +295 -147
- 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 +24 -14
- package/dist/esm/ion-range.entry.js +30 -25
- package/dist/esm/ion-refresher_2.entry.js +59 -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 -125
- 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 +26 -19
- 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 +36 -15
- 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-DZnIiOO_.js +36 -0
- 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-TbiM4mdr.js → overlays-DKE0DgvE.js} +119 -57
- 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 +58 -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/dist/ionic/p-DZ6Hmc-8.js +4 -0
- 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/checkbox/checkbox.d.ts +1 -0
- package/dist/types/components/content/content.d.ts +12 -0
- package/dist/types/components/datetime/datetime.d.ts +13 -1
- package/dist/types/components/fab-button/fab-button.d.ts +15 -0
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +12 -6
- package/dist/types/components/item/item.d.ts +19 -0
- 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/radio/radio.d.ts +1 -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/tab/tab.d.ts +1 -1
- package/dist/types/components/textarea/textarea.d.ts +12 -5
- package/dist/types/components/toggle/toggle.d.ts +1 -0
- package/dist/types/components.d.ts +94 -318
- 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 +2 -0
- package/dist/types/utils/forms/item-multiple-inputs.d.ts +13 -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/apply-keyboard-focus.d.ts +16 -0
- package/dist/types/utils/test/playwright/detach-reattach.d.ts +13 -0
- package/dist/types/utils/test/playwright/index.d.ts +2 -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 +3341 -2197
- package/hydrate/index.mjs +3341 -2197
- package/loader/index.d.ts +1 -1
- package/package.json +61 -17
- 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-0NRupjzW.js +0 -4
- package/components/p-5bE_Wz4Y.js +0 -4
- package/components/p-B60hm8Qv.js +0 -4
- package/components/p-BAYYcg3o.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-BTPfOxsU.js +0 -4
- package/components/p-BT_5jSqG.js +0 -4
- package/components/p-Baq1XyAy.js +0 -4
- package/components/p-BjfgFSSR.js +0 -4
- package/components/p-BjoEPDW5.js +0 -4
- package/components/p-BnqQlm7c.js +0 -4
- package/components/p-BsPelv04.js +0 -4
- package/components/p-Bth-EzJ0.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-C1aScSTo.js +0 -4
- package/components/p-C2lKgrXx.js +0 -4
- package/components/p-C53feagD.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CI3ncNZm.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-C_xFdyXe.js +0 -4
- package/components/p-Ciz1-FuE.js +0 -4
- package/components/p-Cl0B-RWe.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-CtukzcyX.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D5Ubpm7D.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-D7bSXQD3.js +0 -4
- package/components/p-DDWp95gH.js +0 -4
- package/components/p-DIE4pXMl.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DnL1c9_X.js +0 -4
- package/components/p-W5nO8mX_.js +0 -4
- package/components/p-W9CZ2mWX.js +0 -4
- package/components/p-XlSIJDJ-.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-dhLYXa7A.js +0 -4
- package/components/p-ijF0iCrA.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-nQi4oKcG.js +0 -4
- package/components/p-ryqmO0B-.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-00dbb17e.entry.js +0 -4
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0d005398.entry.js +0 -4
- package/dist/ionic/p-1ae21e4c.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-2f55dc1a.entry.js +0 -4
- package/dist/ionic/p-30bf9737.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-390ca786.entry.js +0 -4
- package/dist/ionic/p-3a126bca.entry.js +0 -4
- package/dist/ionic/p-3a541154.entry.js +0 -4
- package/dist/ionic/p-3a7d1e91.entry.js +0 -4
- package/dist/ionic/p-3ae5f277.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-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4dc1c33c.entry.js +0 -4
- package/dist/ionic/p-4e92a11f.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-75dc25ba.entry.js +0 -4
- package/dist/ionic/p-81ea5652.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-8c8eee7d.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-94f2a736.entry.js +0 -4
- package/dist/ionic/p-9a65ac7f.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-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-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-D13Eaw-8.js +0 -4
- package/dist/ionic/p-DAAFkPFT.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-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-a21add2f.entry.js +0 -4
- package/dist/ionic/p-a3bdcae6.entry.js +0 -4
- package/dist/ionic/p-aa5d6b8f.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-e0be05c5.entry.js +0 -4
- package/dist/ionic/p-e847a888.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.js +0 -4
- package/dist/ionic/p-ef4c3bee.entry.js +0 -4
- package/dist/ionic/p-fabcce6c.entry.js +0 -4
- package/dist/ionic/p-facfde02.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-xOfi7-Zn.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
|
@@ -19,7 +19,13 @@ export const initialize = (userConfig = {}) => {
|
|
|
19
19
|
const Ionic = (win.Ionic = win.Ionic || {});
|
|
20
20
|
// create the Ionic.config from raw config object (if it exists)
|
|
21
21
|
// and convert Ionic.config into a ConfigApi that has a get() fn
|
|
22
|
-
const configObj =
|
|
22
|
+
const configObj = {
|
|
23
|
+
...configFromSession(win),
|
|
24
|
+
persistConfig: false,
|
|
25
|
+
...Ionic.config,
|
|
26
|
+
...configFromURL(win),
|
|
27
|
+
...userConfig,
|
|
28
|
+
};
|
|
23
29
|
config.reset(configObj);
|
|
24
30
|
if (config.getBoolean('persistConfig')) {
|
|
25
31
|
saveConfig(win, configObj);
|
|
@@ -37,7 +43,7 @@ export const initialize = (userConfig = {}) => {
|
|
|
37
43
|
if (config.getBoolean('_testing')) {
|
|
38
44
|
config.set('animated', false);
|
|
39
45
|
}
|
|
40
|
-
const isIonicElement = (elm) =>
|
|
46
|
+
const isIonicElement = (elm) => elm.tagName?.startsWith('ION-');
|
|
41
47
|
const isAllowedIonicModeValue = (elmMode) => ['ios', 'md'].includes(elmMode);
|
|
42
48
|
setMode((elm) => {
|
|
43
49
|
while (elm) {
|
package/dist/collection/index.js
CHANGED
|
@@ -17,5 +17,5 @@ export { getMode, setupConfig } from './utils/config';
|
|
|
17
17
|
export { openURL } from './utils/theme';
|
|
18
18
|
export { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_UNLOAD, } from './components/nav/constants';
|
|
19
19
|
export { menuController } from './utils/menu-controller';
|
|
20
|
-
export { alertController, actionSheetController, modalController, loadingController,
|
|
20
|
+
export { alertController, actionSheetController, modalController, loadingController, popoverController, toastController, } from './utils/overlays';
|
|
21
21
|
export { IonicSlides } from './components/slides/IonicSlides';
|
|
@@ -122,7 +122,7 @@ export const createAnimation = (animationId) => {
|
|
|
122
122
|
return ani;
|
|
123
123
|
};
|
|
124
124
|
const onFinish = (callback, opts) => {
|
|
125
|
-
const callbacks =
|
|
125
|
+
const callbacks = opts?.oneTimeCallback ? onFinishOneTimeCallbacks : onFinishCallbacks;
|
|
126
126
|
callbacks.push({ c: callback, o: opts });
|
|
127
127
|
return ani;
|
|
128
128
|
};
|
|
@@ -155,7 +155,7 @@ export const createAnimation = (animationId) => {
|
|
|
155
155
|
* for another animation to have already
|
|
156
156
|
* cleaned up a particular stylesheet
|
|
157
157
|
*/
|
|
158
|
-
if (stylesheet
|
|
158
|
+
if (stylesheet?.parentNode) {
|
|
159
159
|
stylesheet.parentNode.removeChild(stylesheet);
|
|
160
160
|
}
|
|
161
161
|
});
|
|
@@ -655,7 +655,7 @@ export const createAnimation = (animationId) => {
|
|
|
655
655
|
};
|
|
656
656
|
const play = (opts) => {
|
|
657
657
|
return new Promise((resolve) => {
|
|
658
|
-
if (opts
|
|
658
|
+
if (opts?.sync) {
|
|
659
659
|
shouldForceSyncPlayback = true;
|
|
660
660
|
onFinish(() => (shouldForceSyncPlayback = false), { oneTimeCallback: true });
|
|
661
661
|
}
|
|
@@ -4,18 +4,19 @@
|
|
|
4
4
|
export const setupConfig = (config) => {
|
|
5
5
|
const win = window;
|
|
6
6
|
const Ionic = win.Ionic;
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
8
7
|
if (Ionic && Ionic.config && Ionic.config.constructor.name !== 'Object') {
|
|
9
8
|
return;
|
|
10
9
|
}
|
|
11
10
|
win.Ionic = win.Ionic || {};
|
|
12
|
-
win.Ionic.config =
|
|
11
|
+
win.Ionic.config = {
|
|
12
|
+
...win.Ionic.config,
|
|
13
|
+
...config,
|
|
14
|
+
};
|
|
13
15
|
return win.Ionic.config;
|
|
14
16
|
};
|
|
15
17
|
export const getMode = () => {
|
|
16
|
-
var _a;
|
|
17
18
|
const win = window;
|
|
18
|
-
const config =
|
|
19
|
+
const config = win?.Ionic?.config;
|
|
19
20
|
if (config) {
|
|
20
21
|
if (config.mode) {
|
|
21
22
|
return config.mode;
|
|
@@ -54,6 +54,36 @@ export const findIonContent = (el) => {
|
|
|
54
54
|
export const findClosestIonContent = (el) => {
|
|
55
55
|
return el.closest(ION_CONTENT_SELECTOR);
|
|
56
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* Queries the custom scroll host an `ion-refresher` scrolls with in the given
|
|
59
|
+
* `ion-content`. A refresher only pairs with the first host.
|
|
60
|
+
*/
|
|
61
|
+
export const findRefresherScrollHost = (ionContent) => {
|
|
62
|
+
return ionContent.querySelector(ION_CONTENT_CLASS_SELECTOR);
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Queries the `ion-refresher` that scrolls with the given content element,
|
|
66
|
+
* which may be an `ion-content` or a custom scroll host. A refresher is a
|
|
67
|
+
* `slot="fixed"` child of `ion-content`, so it is a sibling of a scroll host
|
|
68
|
+
* rather than a descendant of it.
|
|
69
|
+
*/
|
|
70
|
+
export const findRefresherInContent = (contentEl) => {
|
|
71
|
+
// An `ion-content` owns any refresher inside it, scroll host or not.
|
|
72
|
+
if (isIonContent(contentEl)) {
|
|
73
|
+
return contentEl.querySelector('ion-refresher');
|
|
74
|
+
}
|
|
75
|
+
// A refresher needs an `ion-content` ancestor to initialize.
|
|
76
|
+
const ionContent = contentEl.closest(ION_CONTENT_ELEMENT_SELECTOR);
|
|
77
|
+
if (ionContent === null) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
// Any scroll host other than the refresher's own has no refresher.
|
|
81
|
+
const refresherScrollHost = findRefresherScrollHost(ionContent);
|
|
82
|
+
if (refresherScrollHost === null || !refresherScrollHost.contains(contentEl)) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return ionContent.querySelector('ion-refresher');
|
|
86
|
+
};
|
|
57
87
|
/**
|
|
58
88
|
* Scrolls to the top of the element. If an `ion-content` is found, it will scroll
|
|
59
89
|
* using the public API `scrollToTop` with a duration.
|
|
@@ -36,7 +36,7 @@ export const createFocusController = () => {
|
|
|
36
36
|
*/
|
|
37
37
|
if (focusManagerEnabled) {
|
|
38
38
|
const activeEl = document.activeElement;
|
|
39
|
-
if (activeEl !== null &&
|
|
39
|
+
if (activeEl !== null && referenceEl?.contains(activeEl)) {
|
|
40
40
|
activeEl.setAttribute(LAST_FOCUS, 'true');
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -27,7 +27,7 @@ export const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden
|
|
|
27
27
|
*/
|
|
28
28
|
export const focusFirstDescendant = (ref, fallbackElement) => {
|
|
29
29
|
const firstInput = ref.querySelector(focusableQueryString);
|
|
30
|
-
focusElementInContext(firstInput, fallbackElement
|
|
30
|
+
focusElementInContext(firstInput, fallbackElement ?? ref);
|
|
31
31
|
};
|
|
32
32
|
/**
|
|
33
33
|
* Focuses the last descendant in a context
|
|
@@ -42,7 +42,7 @@ export const focusFirstDescendant = (ref, fallbackElement) => {
|
|
|
42
42
|
export const focusLastDescendant = (ref, fallbackElement) => {
|
|
43
43
|
const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
|
|
44
44
|
const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
|
|
45
|
-
focusElementInContext(lastInput, fallbackElement
|
|
45
|
+
focusElementInContext(lastInput, fallbackElement ?? ref);
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
48
48
|
* Focuses a particular element in a context. If the element
|
|
@@ -63,7 +63,7 @@ export const focusLastDescendant = (ref, fallbackElement) => {
|
|
|
63
63
|
*/
|
|
64
64
|
const focusElementInContext = (hostToFocus, fallbackElement) => {
|
|
65
65
|
let elementToFocus = hostToFocus;
|
|
66
|
-
const shadowRoot = hostToFocus
|
|
66
|
+
const shadowRoot = hostToFocus?.shadowRoot;
|
|
67
67
|
if (shadowRoot) {
|
|
68
68
|
// If there are no inner focusable elements, just focus the host element.
|
|
69
69
|
elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { Build } from "@stencil/core";
|
|
5
|
+
/**
|
|
6
|
+
* `item-multiple-inputs` is toggled on the item after its form controls render,
|
|
7
|
+
* so a control whose focus styling depends on it needs to re-render when it flips.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
* @param el The form control whose closest `ion-item` should be observed.
|
|
11
|
+
* @param onChange Called whenever one of `classNames` is added or removed.
|
|
12
|
+
* @param classNames The item classes the caller's rendering depends on. A caller
|
|
13
|
+
* reading more than one must list them all, or changes to the rest are ignored.
|
|
14
|
+
* @returns The observer to disconnect in `disconnectedCallback`, or `undefined`
|
|
15
|
+
* if it could not be created.
|
|
16
|
+
*/
|
|
17
|
+
export const createItemMultipleInputsObserver = (el, onChange, classNames = ['item-multiple-inputs']) => {
|
|
18
|
+
const item = el.closest('ion-item');
|
|
19
|
+
if (!item || !Build.isBrowser || typeof MutationObserver === 'undefined') {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const readClasses = () => classNames.map((name) => item.classList.contains(name)).join(',');
|
|
23
|
+
let previousClasses = readClasses();
|
|
24
|
+
const observer = new MutationObserver(() => {
|
|
25
|
+
const currentClasses = readClasses();
|
|
26
|
+
if (currentClasses !== previousClasses) {
|
|
27
|
+
previousClasses = currentClasses;
|
|
28
|
+
onChange();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
observer.observe(item, { attributes: true, attributeFilter: ['class'] });
|
|
32
|
+
return observer;
|
|
33
|
+
};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { raf } from "../helpers";
|
|
5
|
+
import { isRTL } from "../rtl/index";
|
|
6
|
+
/**
|
|
7
|
+
* Applied to the host while the label is being repositioned. The
|
|
8
|
+
* component stylesheets style this class, so it must stay in sync with
|
|
9
|
+
* the `skip-label-transition` selector in those files. Renaming it here
|
|
10
|
+
* requires renaming it there too.
|
|
11
|
+
*/
|
|
12
|
+
export const SKIP_LABEL_TRANSITION_CLASS = 'skip-label-transition';
|
|
13
|
+
/**
|
|
14
|
+
* Set on the host as an inline style. The component stylesheets declare
|
|
15
|
+
* this property and read it with `var()`, so it must stay in sync with
|
|
16
|
+
* the `--internal-start-container-adjustment` references in those files.
|
|
17
|
+
* Renaming it here requires renaming it there too.
|
|
18
|
+
*/
|
|
19
|
+
export const START_CONTAINER_ADJUSTMENT_VAR = '--internal-start-container-adjustment';
|
|
20
|
+
/**
|
|
21
|
+
* A utility to measure and update the start container width adjustment
|
|
22
|
+
* for form components (input, textarea, select) with `fill="outline"`.
|
|
23
|
+
* This adjustment compensates for the start container width when
|
|
24
|
+
* positioning floating/stacked labels within the outline border.
|
|
25
|
+
*
|
|
26
|
+
* Measurement is deferred with raf() to avoid forcing layout during
|
|
27
|
+
* component updates, and a ResizeObserver watches for dynamic width
|
|
28
|
+
* changes (e.g., when web fonts load or async content changes).
|
|
29
|
+
*
|
|
30
|
+
* @internal
|
|
31
|
+
* @param el - The host element (ion-input, ion-textarea, or ion-select).
|
|
32
|
+
* @param getStartContainer - A callback that returns the start container element.
|
|
33
|
+
* @param shouldApplyAdjustment - A callback that determines whether the adjustment should be applied.
|
|
34
|
+
*/
|
|
35
|
+
export const createStartContainerController = (el, getStartContainer, shouldApplyAdjustment) => {
|
|
36
|
+
let resizeObserver;
|
|
37
|
+
let observedContainer;
|
|
38
|
+
let measurementRaf;
|
|
39
|
+
let transitionRaf;
|
|
40
|
+
let appliedAdjustment;
|
|
41
|
+
const calculateAdjustment = () => {
|
|
42
|
+
const startSlot = getStartContainer();
|
|
43
|
+
if (!startSlot || !shouldApplyAdjustment()) {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
/*
|
|
47
|
+
* Round to one decimal place so fractional widths produce a stable
|
|
48
|
+
* label offset when the start container is added, removed, or resized.
|
|
49
|
+
*/
|
|
50
|
+
const startContainerWidth = startSlot.getBoundingClientRect().width;
|
|
51
|
+
const roundedWidth = Math.round(startContainerWidth * 10) / 10;
|
|
52
|
+
const sign = isRTL(el) ? '' : '-';
|
|
53
|
+
return roundedWidth ? `${sign}${roundedWidth}px` : '0px';
|
|
54
|
+
};
|
|
55
|
+
const scheduleAdjustmentUpdate = () => {
|
|
56
|
+
// Return if there is already a measurement queued to avoid a flicker
|
|
57
|
+
if (measurementRaf !== undefined) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
/*
|
|
61
|
+
* Defer the measurement until the next animation frame so layout
|
|
62
|
+
* is measured after the current update has been applied.
|
|
63
|
+
*/
|
|
64
|
+
measurementRaf = raf(() => {
|
|
65
|
+
measurementRaf = undefined;
|
|
66
|
+
const adjustment = calculateAdjustment();
|
|
67
|
+
// Only suppress the label transition when the label has to move
|
|
68
|
+
if (adjustment !== appliedAdjustment) {
|
|
69
|
+
// Discard a removal queued by an earlier change
|
|
70
|
+
if (transitionRaf !== undefined) {
|
|
71
|
+
cancelAnimationFrame(transitionRaf);
|
|
72
|
+
}
|
|
73
|
+
el.classList.add(SKIP_LABEL_TRANSITION_CLASS);
|
|
74
|
+
el.style.setProperty(START_CONTAINER_ADJUSTMENT_VAR, adjustment);
|
|
75
|
+
appliedAdjustment = adjustment;
|
|
76
|
+
// Re-enable the transition once the new offset has been painted
|
|
77
|
+
transitionRaf = raf(() => {
|
|
78
|
+
transitionRaf = undefined;
|
|
79
|
+
el.classList.remove(SKIP_LABEL_TRANSITION_CLASS);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
setupResizeObserver();
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const disconnectResizeObserver = () => {
|
|
86
|
+
if (resizeObserver) {
|
|
87
|
+
resizeObserver.disconnect();
|
|
88
|
+
resizeObserver = undefined;
|
|
89
|
+
observedContainer = undefined;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const setupResizeObserver = () => {
|
|
93
|
+
const startSlot = getStartContainer();
|
|
94
|
+
// Stop watching once the adjustment no longer applies
|
|
95
|
+
if (!startSlot || !shouldApplyAdjustment()) {
|
|
96
|
+
disconnectResizeObserver();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Return when prerendering or already watching this container
|
|
100
|
+
if (typeof ResizeObserver !== 'function' || (resizeObserver && observedContainer === startSlot)) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
disconnectResizeObserver();
|
|
104
|
+
resizeObserver = new ResizeObserver(() => {
|
|
105
|
+
scheduleAdjustmentUpdate();
|
|
106
|
+
});
|
|
107
|
+
observedContainer = startSlot;
|
|
108
|
+
resizeObserver.observe(startSlot);
|
|
109
|
+
};
|
|
110
|
+
const calculateStartContainerWidth = () => {
|
|
111
|
+
scheduleAdjustmentUpdate();
|
|
112
|
+
};
|
|
113
|
+
const destroy = () => {
|
|
114
|
+
disconnectResizeObserver();
|
|
115
|
+
if (measurementRaf !== undefined) {
|
|
116
|
+
cancelAnimationFrame(measurementRaf);
|
|
117
|
+
measurementRaf = undefined;
|
|
118
|
+
}
|
|
119
|
+
// Tearing down mid-toggle would leave the transition disabled
|
|
120
|
+
if (transitionRaf !== undefined) {
|
|
121
|
+
cancelAnimationFrame(transitionRaf);
|
|
122
|
+
transitionRaf = undefined;
|
|
123
|
+
el.classList.remove(SKIP_LABEL_TRANSITION_CLASS);
|
|
124
|
+
}
|
|
125
|
+
// Re-apply from scratch if the element is connected again
|
|
126
|
+
appliedAdjustment = undefined;
|
|
127
|
+
};
|
|
128
|
+
return {
|
|
129
|
+
calculateStartContainerWidth,
|
|
130
|
+
destroy,
|
|
131
|
+
};
|
|
132
|
+
};
|
|
@@ -4,14 +4,13 @@
|
|
|
4
4
|
import { componentOnReady } from "./helpers";
|
|
5
5
|
// TODO(FW-2832): types
|
|
6
6
|
export const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
|
|
7
|
-
var _a;
|
|
8
7
|
if (delegate) {
|
|
9
8
|
return delegate.attachViewToDom(container, component, componentProps, cssClasses);
|
|
10
9
|
}
|
|
11
10
|
if (!inline && typeof component !== 'string' && !(component instanceof HTMLElement)) {
|
|
12
11
|
throw new Error('framework delegate is missing');
|
|
13
12
|
}
|
|
14
|
-
const el = typeof component === 'string' ?
|
|
13
|
+
const el = typeof component === 'string' ? container.ownerDocument?.createElement(component) : component;
|
|
15
14
|
if (cssClasses) {
|
|
16
15
|
cssClasses.forEach((c) => el.classList.add(c));
|
|
17
16
|
}
|
|
@@ -36,7 +35,6 @@ export const CoreDelegate = () => {
|
|
|
36
35
|
let BaseComponent;
|
|
37
36
|
let Reference;
|
|
38
37
|
const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {
|
|
39
|
-
var _a, _b;
|
|
40
38
|
BaseComponent = parentElement;
|
|
41
39
|
let ChildComponent;
|
|
42
40
|
/**
|
|
@@ -49,7 +47,7 @@ export const CoreDelegate = () => {
|
|
|
49
47
|
* the element otherwise just get a reference
|
|
50
48
|
* to the component.
|
|
51
49
|
*/
|
|
52
|
-
const el = typeof userComponent === 'string' ?
|
|
50
|
+
const el = typeof userComponent === 'string' ? BaseComponent.ownerDocument?.createElement(userComponent) : userComponent;
|
|
53
51
|
/**
|
|
54
52
|
* Add any css classes passed in
|
|
55
53
|
* via the cssClasses prop on the overlay.
|
|
@@ -81,7 +79,7 @@ export const CoreDelegate = () => {
|
|
|
81
79
|
* that the overlay has not been presented yet and we need
|
|
82
80
|
* to create the containing element with the specified classes.
|
|
83
81
|
*/
|
|
84
|
-
const el =
|
|
82
|
+
const el = BaseComponent.ownerDocument?.createElement('div');
|
|
85
83
|
// Add a class to track if the root element was created by the delegate.
|
|
86
84
|
el.classList.add('ion-delegate-host');
|
|
87
85
|
cssClasses.forEach((c) => el.classList.add(c));
|
|
@@ -121,7 +119,7 @@ export const CoreDelegate = () => {
|
|
|
121
119
|
* in the event that a modal or popover is presented
|
|
122
120
|
* with no child content.
|
|
123
121
|
*/
|
|
124
|
-
return ChildComponent
|
|
122
|
+
return ChildComponent ?? BaseComponent;
|
|
125
123
|
};
|
|
126
124
|
const removeViewFromDom = () => {
|
|
127
125
|
/**
|
|
@@ -12,8 +12,7 @@ class GestureController {
|
|
|
12
12
|
* Creates a gesture delegate based on the GestureConfig passed
|
|
13
13
|
*/
|
|
14
14
|
createGesture(config) {
|
|
15
|
-
|
|
16
|
-
return new GestureDelegate(this, this.newID(), config.name, (_a = config.priority) !== null && _a !== void 0 ? _a : 0, !!config.disableScroll);
|
|
15
|
+
return new GestureDelegate(this, this.newID(), config.name, config.priority ?? 0, !!config.disableScroll);
|
|
17
16
|
}
|
|
18
17
|
/**
|
|
19
18
|
* Creates a blocker that will block any other gesture events from firing. Set in the ion-gesture component.
|
|
@@ -10,7 +10,15 @@ export const createGesture = (config) => {
|
|
|
10
10
|
let hasStartedPan = false;
|
|
11
11
|
let hasFiredStart = true;
|
|
12
12
|
let isMoveQueued = false;
|
|
13
|
-
const finalConfig =
|
|
13
|
+
const finalConfig = {
|
|
14
|
+
disableScroll: false,
|
|
15
|
+
direction: 'x',
|
|
16
|
+
gesturePriority: 0,
|
|
17
|
+
passive: true,
|
|
18
|
+
maxAngle: 40,
|
|
19
|
+
threshold: 10,
|
|
20
|
+
...config,
|
|
21
|
+
};
|
|
14
22
|
const canStart = finalConfig.canStart;
|
|
15
23
|
const onWillStart = finalConfig.onWillStart;
|
|
16
24
|
const onStart = finalConfig.onStart;
|
|
@@ -125,7 +133,7 @@ export const createGesture = (config) => {
|
|
|
125
133
|
const blurActiveElement = () => {
|
|
126
134
|
if (typeof document !== 'undefined') {
|
|
127
135
|
const activeElement = document.activeElement;
|
|
128
|
-
if (activeElement
|
|
136
|
+
if (activeElement?.blur) {
|
|
129
137
|
activeElement.blur();
|
|
130
138
|
}
|
|
131
139
|
}
|
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const addEventListener = (el, // TODO(FW-2832): type
|
|
5
5
|
eventName, callback, opts) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
capture: !!opts.capture,
|
|
11
|
-
passive: !!opts.passive,
|
|
12
|
-
}
|
|
13
|
-
: !!opts.capture;
|
|
6
|
+
const listenerOpts = {
|
|
7
|
+
capture: !!opts.capture,
|
|
8
|
+
passive: !!opts.passive,
|
|
9
|
+
};
|
|
14
10
|
let add;
|
|
15
11
|
let remove;
|
|
16
12
|
if (el['__zone_symbol__addEventListener']) {
|
|
@@ -26,22 +22,3 @@ eventName, callback, opts) => {
|
|
|
26
22
|
el[remove](eventName, callback, listenerOpts);
|
|
27
23
|
};
|
|
28
24
|
};
|
|
29
|
-
const supportsPassive = (node) => {
|
|
30
|
-
if (_sPassive === undefined) {
|
|
31
|
-
try {
|
|
32
|
-
const opts = Object.defineProperty({}, 'passive', {
|
|
33
|
-
get: () => {
|
|
34
|
-
_sPassive = true;
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
node.addEventListener('optsTest', () => {
|
|
38
|
-
return;
|
|
39
|
-
}, opts);
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
_sPassive = false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return !!_sPassive;
|
|
46
|
-
};
|
|
47
|
-
let _sPassive;
|
|
@@ -28,7 +28,7 @@ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher'
|
|
|
28
28
|
* will still happen.
|
|
29
29
|
*/
|
|
30
30
|
export const blockHardwareBackButton = () => {
|
|
31
|
-
document.addEventListener('backbutton', () => { });
|
|
31
|
+
document.addEventListener('backbutton', () => { });
|
|
32
32
|
};
|
|
33
33
|
export const startHardwareBackButton = () => {
|
|
34
34
|
const doc = document;
|
|
@@ -50,7 +50,7 @@ export const startHardwareBackButton = () => {
|
|
|
50
50
|
doc.dispatchEvent(ev);
|
|
51
51
|
const executeAction = async (handlerRegister) => {
|
|
52
52
|
try {
|
|
53
|
-
if (handlerRegister
|
|
53
|
+
if (handlerRegister?.handler) {
|
|
54
54
|
const result = handlerRegister.handler(processHandlers);
|
|
55
55
|
if (result != null) {
|
|
56
56
|
await result;
|
|
@@ -89,7 +89,7 @@ export const startHardwareBackButton = () => {
|
|
|
89
89
|
if (shouldUseCloseWatcher()) {
|
|
90
90
|
let watcher;
|
|
91
91
|
const configureWatcher = () => {
|
|
92
|
-
watcher
|
|
92
|
+
watcher?.destroy();
|
|
93
93
|
watcher = new win.CloseWatcher();
|
|
94
94
|
/**
|
|
95
95
|
* Once a close request happens
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { printIonError } from "./logging/index";
|
|
5
|
+
import { isRTL } from "./rtl/index";
|
|
5
6
|
export const transitionEndAsync = (el, expectedDuration = 0) => {
|
|
6
7
|
return new Promise((resolve) => {
|
|
7
8
|
transitionEnd(el, expectedDuration, resolve);
|
|
@@ -277,18 +278,21 @@ export const pointerCoord = (ev) => {
|
|
|
277
278
|
};
|
|
278
279
|
/**
|
|
279
280
|
* @hidden
|
|
280
|
-
* Given a side,
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
* @param
|
|
281
|
+
* Given a side, returns whether it resolves to the end side for the current
|
|
282
|
+
* direction. In RTL `start` is the end side, and in LTR `end` is.
|
|
283
|
+
*
|
|
284
|
+
* @param side The current side before being redefined based on the direction.
|
|
285
|
+
* @param hostEl The component's host element. The direction is resolved from
|
|
286
|
+
* it or its nearest ancestor that declares one. When omitted, the direction
|
|
287
|
+
* is resolved from the document.
|
|
284
288
|
*/
|
|
285
|
-
export const isEndSide = (side) => {
|
|
286
|
-
const
|
|
289
|
+
export const isEndSide = (side, hostEl) => {
|
|
290
|
+
const rtl = isRTL(hostEl);
|
|
287
291
|
switch (side) {
|
|
288
292
|
case 'start':
|
|
289
|
-
return
|
|
293
|
+
return rtl;
|
|
290
294
|
case 'end':
|
|
291
|
-
return !
|
|
295
|
+
return !rtl;
|
|
292
296
|
default:
|
|
293
297
|
throw new Error(`"${side}" is not a valid value for [side]. Use "start" or "end" instead.`);
|
|
294
298
|
}
|
|
@@ -318,8 +322,8 @@ export const debounce = (func, wait = 0) => {
|
|
|
318
322
|
* @returns whether the keys are the same and the values are shallow equal.
|
|
319
323
|
*/
|
|
320
324
|
export const shallowEqualStringMap = (map1, map2) => {
|
|
321
|
-
map1
|
|
322
|
-
map2
|
|
325
|
+
map1 ??= {};
|
|
326
|
+
map2 ??= {};
|
|
323
327
|
if (map1 === map2) {
|
|
324
328
|
return true;
|
|
325
329
|
}
|
|
@@ -94,7 +94,7 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
94
94
|
*/
|
|
95
95
|
const focusOut = () => {
|
|
96
96
|
hasKeyboardBeenPresentedForTextField = false;
|
|
97
|
-
win
|
|
97
|
+
win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
|
|
98
98
|
componentEl.removeEventListener('focusout', focusOut);
|
|
99
99
|
};
|
|
100
100
|
/**
|
|
@@ -114,13 +114,13 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
|
|
117
|
-
win
|
|
117
|
+
win?.addEventListener('ionKeyboardDidShow', keyboardShow);
|
|
118
118
|
componentEl.addEventListener('focusout', focusOut);
|
|
119
119
|
};
|
|
120
120
|
componentEl.addEventListener('focusin', focusIn);
|
|
121
121
|
return () => {
|
|
122
122
|
componentEl.removeEventListener('focusin', focusIn);
|
|
123
|
-
win
|
|
123
|
+
win?.removeEventListener('ionKeyboardDidShow', keyboardShow);
|
|
124
124
|
componentEl.removeEventListener('focusout', focusOut);
|
|
125
125
|
};
|
|
126
126
|
};
|
|
@@ -129,7 +129,6 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
129
129
|
* focus an input but not have scroll assist run again.
|
|
130
130
|
*/
|
|
131
131
|
const setManualFocus = (el) => {
|
|
132
|
-
var _a;
|
|
133
132
|
/**
|
|
134
133
|
* If element is already focused then
|
|
135
134
|
* a new focusin event will not be dispatched
|
|
@@ -154,7 +153,7 @@ const setManualFocus = (el) => {
|
|
|
154
153
|
*/
|
|
155
154
|
const inputId = el.getAttribute('id');
|
|
156
155
|
const label = el.closest(`label[for="${inputId}"]`);
|
|
157
|
-
const activeElLabel =
|
|
156
|
+
const activeElLabel = document.activeElement?.closest(`label[for="${inputId}"]`);
|
|
158
157
|
if (label !== null && label === activeElLabel) {
|
|
159
158
|
// If the label is the same as the active element label, then
|
|
160
159
|
// we don't need to set the `SKIP_SCROLL_ASSIST` and reset focus.
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import { SCROLL_AMOUNT_PADDING } from "./common";
|
|
5
5
|
const SCROLL_ASSIST_SPEED = 0.3;
|
|
6
6
|
export const getScrollData = (componentEl, contentEl, keyboardHeight, platformHeight) => {
|
|
7
|
-
|
|
8
|
-
const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
|
|
7
|
+
const itemEl = componentEl.closest('ion-item,[ion-item]') ?? componentEl;
|
|
9
8
|
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, platformHeight);
|
|
10
9
|
};
|
|
11
10
|
const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
|
|
@@ -26,7 +26,7 @@ const getResizeContainer = (resizeMode) => {
|
|
|
26
26
|
* we can fall back to `body`.
|
|
27
27
|
*/
|
|
28
28
|
const ionApp = doc.querySelector('ion-app');
|
|
29
|
-
return ionApp
|
|
29
|
+
return ionApp ?? doc.body;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Get the height of ion-app or body.
|
|
@@ -74,8 +74,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
|
|
|
74
74
|
keyboardVisible = false;
|
|
75
75
|
fireChangeCallback(keyboardVisible, resizeMode);
|
|
76
76
|
};
|
|
77
|
-
win
|
|
78
|
-
win
|
|
77
|
+
win?.addEventListener('keyboardWillShow', keyboardWillShowHandler);
|
|
78
|
+
win?.addEventListener('keyboardWillHide', keyboardWillHideHandler);
|
|
79
79
|
};
|
|
80
80
|
const fireChangeCallback = (state, resizeMode) => {
|
|
81
81
|
if (keyboardChangeCallback) {
|
|
@@ -152,8 +152,8 @@ export const createKeyboardController = async (keyboardChangeCallback) => {
|
|
|
152
152
|
});
|
|
153
153
|
};
|
|
154
154
|
const destroy = () => {
|
|
155
|
-
win
|
|
156
|
-
win
|
|
155
|
+
win?.removeEventListener('keyboardWillShow', keyboardWillShowHandler);
|
|
156
|
+
win?.removeEventListener('keyboardWillHide', keyboardWillHideHandler);
|
|
157
157
|
keyboardWillShowHandler = keyboardWillHideHandler = undefined;
|
|
158
158
|
};
|
|
159
159
|
const isKeyboardVisible = () => keyboardVisible;
|
|
@@ -121,7 +121,7 @@ const fireKeyboardCloseEvent = (win) => {
|
|
|
121
121
|
* layout viewport states
|
|
122
122
|
*/
|
|
123
123
|
export const trackViewportChanges = (win) => {
|
|
124
|
-
previousVisualViewport =
|
|
124
|
+
previousVisualViewport = { ...currentVisualViewport };
|
|
125
125
|
currentVisualViewport = copyVisualViewport(win.visualViewport);
|
|
126
126
|
};
|
|
127
127
|
/**
|