@ionic/core 9.0.10 → 9.0.11-dev.11793666452.109ac2a5
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-divider.d.ts +11 -0
- package/components/ion-divider.js +4 -0
- 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-gallery-item.d.ts +11 -0
- package/components/ion-gallery-item.js +4 -0
- package/components/ion-gallery.d.ts +11 -0
- package/components/ion-gallery.js +4 -0
- 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-0rXxxCTt.js +4 -0
- package/components/p-1HReh-CB.js +4 -0
- package/components/p-3Qs1sQxU.js +4 -0
- package/components/p-3SVb97od.js +4 -0
- package/components/p-7-zF1amS.js +4 -0
- package/components/p-AgF3xGwz.js +4 -0
- package/{dist/ionic/p-BO10QT9r.js → components/p-B7ExaLVL.js} +1 -1
- package/components/{p-ChkSQqfP.js → p-B8TMb1l1.js} +1 -1
- package/components/p-BCYVFy50.js +4 -0
- package/components/p-BHiggB_l.js +4 -0
- package/components/p-BNBa8_Ls.js +4 -0
- package/components/p-BNV7BMZo.js +4 -0
- package/components/p-BUF_V-Kg.js +4 -0
- package/components/p-BYk20Mf5.js +4 -0
- package/components/p-B_o50gvn.js +4 -0
- package/components/p-BfDzKnZ-.js +4 -0
- package/{dist/ionic/p-BWKtcudz.js → components/p-BmfO2-NE.js} +1 -1
- package/components/{p-BWbz71uB.js → p-BmnPbSf3.js} +1 -1
- package/components/p-ByE0slik.js +4 -0
- package/components/p-C0H1LYQ5.js +4 -0
- package/components/p-C7BPrXxF.js +4 -0
- package/components/p-C93i7QCU.js +4 -0
- package/components/p-C9qQ2zBV.js +4 -0
- package/components/p-CAekGbOf.js +4 -0
- package/components/p-CE7N7-7s.js +4 -0
- package/components/p-CL3vSQL7.js +4 -0
- package/components/p-CODBQrPj.js +4 -0
- package/components/{p-Dbi3KqKm.js → p-CSSj6cqb.js} +1 -1
- package/components/{p-ChsJlFCQ.js → p-CXzJ234J.js} +1 -1
- package/components/p-CehdCO1m.js +4 -0
- package/components/{p-CwEis84J.js → p-CiEBXUnh.js} +1 -1
- package/components/p-CvxND1-3.js +4 -0
- package/components/p-CyvtM0H1.js +4 -0
- package/components/p-CzDkZh7h.js +4 -0
- package/components/p-DEh2reav.js +4 -0
- package/components/p-DFBWAYvo.js +4 -0
- package/components/p-DFjX2uxL.js +4 -0
- package/components/p-DLXAGW46.js +4 -0
- package/components/p-DQwGbYN_.js +4 -0
- package/components/p-DRpeTf7R.js +4 -0
- package/components/p-DbKRl9BQ.js +4 -0
- package/components/{p-07wRJfkt.js → p-Dce65ayP.js} +1 -1
- package/components/p-DdOVnjsY.js +4 -0
- package/components/p-DgNvIX46.js +4 -0
- package/components/p-DktrWeJE.js +4 -0
- package/components/p-DmdTkb5k.js +4 -0
- package/components/p-DmhWSY74.js +4 -0
- package/components/p-DmyvpOqm.js +4 -0
- package/components/p-ET0FZop5.js +4 -0
- package/components/p-LoXpKVmq.js +4 -0
- package/components/p-NcQUGze-.js +4 -0
- package/components/{p-CqvARtmt.js → p-YAWKbhjV.js} +1 -1
- package/components/{p-DHo45oj7.js → p-cm7z1a2E.js} +1 -1
- package/components/p-fU4OdAZ9.js +4 -0
- package/components/{p-CCFj0kgH.js → p-i08Rz__6.js} +1 -1
- package/components/p-iNIvlAGo.js +4 -0
- package/components/p-mG85e2ek.js +4 -0
- package/{dist/ionic/p-CJmyfI8x.js → components/p-o89R3aqe.js} +1 -1
- package/components/p-qbig9BW8.js +4 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic/bundle.ionic.css +1 -0
- package/css/ionic/bundle.ionic.css.map +1 -0
- package/css/ionic/core.ionic.css +1 -0
- package/css/ionic/core.ionic.css.map +1 -0
- package/css/ionic/global.bundle.ionic.css +1 -0
- package/css/ionic/global.bundle.ionic.css.map +1 -0
- package/css/ionic/ionic-swiper.ionic.css +1 -0
- package/css/ionic/ionic-swiper.ionic.css.map +1 -0
- package/css/ionic/link.ionic.css +1 -0
- package/css/ionic/link.ionic.css.map +1 -0
- package/css/ionic/structure.ionic.css +1 -0
- package/css/ionic/structure.ionic.css.map +1 -0
- package/css/ionic/typography.ionic.css +1 -0
- package/css/ionic/typography.ionic.css.map +1 -0
- package/css/ionic/utils.bundle.ionic.css +1 -0
- package/css/ionic/utils.bundle.ionic.css.map +1 -0
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-UiXhXV49.js → animation-zKIdNEmG.js} +3 -3
- package/dist/cjs/{app-globals-BoFCZq0K.js → app-globals-BDrxn8eR.js} +1 -1
- package/dist/cjs/{attribute-controller-0-lwbVEj.js → attribute-controller-D7O2snOZ.js} +3 -2
- package/dist/cjs/{button-active-DzN1aPt-.js → button-active-CY7cZvH5.js} +2 -2
- package/dist/cjs/{capacitor-BTjfXFlK.js → capacitor-DmA66EwP.js} +3 -3
- package/dist/cjs/clear-button-press-controller-C6PTS3jC.js +45 -0
- package/dist/cjs/focus-visible-DGPRKkcx.js +151 -0
- package/dist/cjs/{format-CVjpvAl1.js → format-C6r4Asi4.js} +1 -1
- package/dist/cjs/{framework-delegate-hNMKEiQC.js → framework-delegate-CAdDEnFS.js} +4 -2
- package/dist/cjs/{haptic-BD5qPgy8.js → haptic-Ch-X4gRx.js} +1 -1
- package/dist/cjs/{helpers-BrETKUUX.js → helpers-DHNLF4fD.js} +88 -10
- package/dist/cjs/{index-B4ONUQRp.js → index-B3s1jjBU.js} +1 -1
- package/dist/cjs/{index-BTc0Jnhx.js → index-C3pmpKlo.js} +17 -15
- package/dist/cjs/{index-bwclzjks.js → index-C6QFfpm5.js} +9 -7
- package/dist/cjs/{index-BiQyIvoc.js → index-CB1PuDlX.js} +55 -5
- package/dist/cjs/{index-wOmugbdg.js → index-CxDnX7hd.js} +2 -0
- package/dist/cjs/{index-DMz2Eyis.js → index-DhGCo_n8.js} +2 -2
- package/dist/cjs/index-DkNv4J_i.js +10 -0
- package/dist/cjs/{index-DNBYnlrc.js → index-lD5wTj_b.js} +4 -4
- package/dist/cjs/index.cjs.js +20 -18
- package/dist/cjs/{input-shims-CRmdShL9.js → input-shims-CjkWx7ae.js} +18 -16
- package/dist/cjs/{input.utils-Becpo0ax.js → input.utils-CD4DNiim.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +57 -29
- package/dist/cjs/ion-action-sheet.cjs.entry.js +42 -37
- package/dist/cjs/ion-alert.cjs.entry.js +50 -45
- package/dist/cjs/ion-app_8.cjs.entry.js +457 -195
- package/dist/cjs/ion-avatar_3.cjs.entry.js +124 -13
- package/dist/cjs/ion-back-button.cjs.entry.js +31 -23
- package/dist/cjs/ion-backdrop.cjs.entry.js +11 -7
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +42 -18
- package/dist/cjs/ion-button_2.cjs.entry.js +61 -23
- package/dist/cjs/ion-card_5.cjs.entry.js +57 -34
- package/dist/cjs/ion-checkbox.cjs.entry.js +43 -17
- package/dist/cjs/ion-chip.cjs.entry.js +51 -9
- package/dist/cjs/ion-col_3.cjs.entry.js +56 -63
- package/dist/cjs/ion-datetime-button.cjs.entry.js +45 -13
- package/dist/cjs/ion-datetime.cjs.entry.js +413 -62
- package/dist/cjs/ion-divider.cjs.entry.js +52 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +40 -28
- package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
- package/dist/cjs/ion-gallery.cjs.entry.js +608 -0
- package/dist/cjs/ion-img.cjs.entry.js +9 -4
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +91 -16
- package/dist/cjs/ion-input-otp.cjs.entry.js +75 -10
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +42 -14
- package/dist/cjs/ion-input.cjs.entry.js +147 -38
- package/dist/cjs/ion-item-option_3.cjs.entry.js +466 -52
- package/dist/cjs/ion-item_8.cjs.entry.js +118 -51
- package/dist/cjs/ion-loading.cjs.entry.js +33 -28
- package/dist/cjs/ion-menu_3.cjs.entry.js +54 -36
- package/dist/cjs/ion-modal.cjs.entry.js +304 -155
- package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +13 -8
- package/dist/cjs/ion-picker-column.cjs.entry.js +17 -15
- package/dist/cjs/ion-picker.cjs.entry.js +11 -6
- package/dist/cjs/ion-popover.cjs.entry.js +33 -28
- package/dist/cjs/ion-progress-bar.cjs.entry.js +28 -9
- package/dist/cjs/ion-radio_2.cjs.entry.js +37 -18
- package/dist/cjs/ion-range.cjs.entry.js +21 -13
- package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -20
- package/dist/cjs/ion-reorder_2.cjs.entry.js +31 -13
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +16 -7
- package/dist/cjs/ion-route_4.cjs.entry.js +12 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +118 -32
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +24 -16
- package/dist/cjs/ion-select-modal.cjs.entry.js +54 -25
- package/dist/cjs/ion-select_3.cjs.entry.js +203 -81
- package/dist/cjs/ion-spinner.cjs.entry.js +31 -8
- package/dist/cjs/ion-split-pane.cjs.entry.js +14 -9
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -27
- package/dist/cjs/ion-tab_2.cjs.entry.js +9 -7
- package/dist/cjs/ion-text.cjs.entry.js +8 -7
- package/dist/cjs/ion-textarea.cjs.entry.js +178 -41
- package/dist/cjs/ion-toast.cjs.entry.js +86 -57
- package/dist/cjs/ion-toggle.cjs.entry.js +67 -25
- package/dist/cjs/ionic-global-CZX42KL4.js +551 -0
- package/dist/cjs/ionic.cjs.js +5 -4
- package/dist/cjs/{ios.transition-CN092Fh6.js → ios.transition-BjOYqzH0.js} +7 -4
- package/dist/cjs/{item-multiple-inputs-C-hz7xrh.js → item-multiple-inputs-D0lzjl68.js} +1 -1
- package/dist/cjs/{keyboard-4OBzkjOG.js → keyboard-Cix5TVkD.js} +3 -5
- package/dist/cjs/{keyboard-BMpscicm.js → keyboard-cHxZlTyz.js} +1 -1
- package/dist/cjs/loader.cjs.js +5 -4
- package/dist/cjs/{md.transition-B6961Ny9.js → md.transition-C4i7l6ui.js} +6 -4
- package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
- package/dist/cjs/{overlays-BbVQG3UT.js → overlays-DziOxcCT.js} +314 -176
- package/dist/cjs/scroll-hide-controller-BSVBCkbw.js +345 -0
- package/dist/cjs/{select-option-render-CzyhrkOu.js → select-option-render-X_iZ-xeh.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-CRa_cKOh.js → slot-mutation-controller-BS-L1szN.js} +100 -13
- package/dist/cjs/{status-tap-hRIvObiJ.js → status-tap-D5yiKwdj.js} +5 -3
- package/dist/cjs/{swipe-back-C-aigThB.js → swipe-back-xM_5R5s-.js} +4 -2
- package/dist/cjs/{theme-Bw0rpaNN.js → theme-Cy4joHPt.js} +25 -1
- package/dist/cjs/validity-CoPMWggj.js +51 -0
- package/dist/collection/collection-manifest.json +8 -0
- package/dist/collection/components/accordion/accordion.ionic.css +199 -0
- package/dist/collection/components/accordion/accordion.ios.css +73 -58
- package/dist/collection/components/accordion/accordion.js +36 -27
- package/dist/collection/components/accordion/accordion.md.css +67 -59
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
- package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
- package/dist/collection/components/accordion-group/accordion-group.js +44 -8
- package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +490 -0
- package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
- package/dist/collection/components/action-sheet/action-sheet.js +16 -13
- package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
- package/dist/collection/components/alert/alert.ionic.css +779 -0
- package/dist/collection/components/alert/alert.ios.css +247 -54
- package/dist/collection/components/alert/alert.js +22 -19
- package/dist/collection/components/alert/alert.md.css +243 -56
- package/dist/collection/components/app/app.js +15 -83
- package/dist/collection/components/avatar/avatar.ionic.css +379 -0
- package/dist/collection/components/avatar/avatar.ios.css +7 -33
- package/dist/collection/components/avatar/avatar.js +120 -4
- package/dist/collection/components/avatar/avatar.md.css +51 -0
- package/dist/collection/components/back-button/back-button.ios.css +60 -48
- package/dist/collection/components/back-button/back-button.js +26 -20
- package/dist/collection/components/back-button/back-button.md.css +60 -48
- package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
- package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
- package/dist/collection/components/backdrop/backdrop.js +12 -6
- package/dist/collection/components/backdrop/backdrop.md.css +56 -19
- package/dist/collection/components/badge/badge.ionic.css +269 -0
- package/dist/collection/components/badge/badge.ios.css +137 -12
- package/dist/collection/components/badge/badge.js +143 -9
- package/dist/collection/components/badge/badge.md.css +122 -12
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js +31 -11
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
- package/dist/collection/components/button/button.ionic.css +640 -0
- package/dist/collection/components/button/button.ios.css +154 -46
- package/dist/collection/components/button/button.js +63 -27
- package/dist/collection/components/button/button.md.css +150 -50
- package/dist/collection/components/buttons/buttons.ionic.css +97 -0
- package/dist/collection/components/buttons/buttons.ios.css +59 -7
- package/dist/collection/components/buttons/buttons.js +15 -9
- package/dist/collection/components/buttons/buttons.md.css +55 -3
- package/dist/collection/components/card/card.ionic.css +144 -0
- package/dist/collection/components/card/card.ios.css +65 -14
- package/dist/collection/components/card/card.js +41 -10
- package/dist/collection/components/card/card.md.css +65 -14
- package/dist/collection/components/card-content/card-content.ionic.css +88 -0
- package/dist/collection/components/card-content/card-content.ios.css +20 -35
- package/dist/collection/components/card-content/card-content.js +12 -10
- package/dist/collection/components/card-content/card-content.md.css +20 -35
- package/dist/collection/components/card-header/card-header.ionic.css +85 -0
- package/dist/collection/components/card-header/card-header.ios.css +27 -15
- package/dist/collection/components/card-header/card-header.js +13 -10
- package/dist/collection/components/card-header/card-header.md.css +27 -15
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +143 -0
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
- package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
- package/dist/collection/components/card-title/card-title.ios.css +73 -0
- package/dist/collection/components/card-title/card-title.js +11 -8
- package/dist/collection/components/card-title/card-title.md.css +73 -0
- package/dist/collection/components/checkbox/checkbox.ionic.css +535 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +244 -115
- package/dist/collection/components/checkbox/checkbox.js +80 -15
- package/dist/collection/components/checkbox/checkbox.md.css +245 -116
- package/dist/collection/components/chip/chip.ionic.css +216 -0
- package/dist/collection/components/chip/chip.ios.css +67 -14
- package/dist/collection/components/chip/chip.js +108 -8
- package/dist/collection/components/chip/chip.md.css +67 -14
- package/dist/collection/components/col/col.css +192 -4
- package/dist/collection/components/col/col.js +210 -67
- package/dist/collection/components/content/content.css +47 -2
- package/dist/collection/components/content/content.js +16 -11
- package/dist/collection/components/datetime/datetime.ionic.css +862 -0
- package/dist/collection/components/datetime/datetime.ios.css +430 -116
- package/dist/collection/components/datetime/datetime.js +455 -49
- package/dist/collection/components/datetime/datetime.md.css +406 -103
- package/dist/collection/components/datetime/utils/data.js +5 -5
- package/dist/collection/components/datetime/utils/state.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
- package/dist/collection/components/datetime-button/datetime-button.js +43 -12
- package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
- package/dist/collection/components/divider/divider.ionic.css +148 -0
- package/dist/collection/components/divider/divider.ios.css +87 -0
- package/dist/collection/components/divider/divider.js +94 -0
- package/dist/collection/components/divider/divider.md.css +87 -0
- package/dist/collection/components/fab/fab.css +25 -1
- package/dist/collection/components/fab/fab.js +9 -5
- package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
- package/dist/collection/components/fab-button/fab-button.js +31 -21
- package/dist/collection/components/fab-button/fab-button.md.css +20 -8
- package/dist/collection/components/fab-list/fab-list.css +12 -0
- package/dist/collection/components/fab-list/fab-list.js +9 -5
- package/dist/collection/components/footer/footer-interface.js +1 -0
- package/dist/collection/components/footer/footer.ios.css +33 -6
- package/dist/collection/components/footer/footer.js +117 -25
- package/dist/collection/components/footer/footer.md.css +40 -0
- package/dist/collection/components/gallery/gallery-constants.js +12 -0
- package/dist/collection/components/gallery/gallery-interface.js +1 -0
- package/dist/collection/components/gallery/gallery.css +15 -0
- package/dist/collection/components/gallery/gallery.js +678 -0
- package/dist/collection/components/gallery/test/utils.js +100 -0
- package/dist/collection/components/gallery-item/gallery-item.css +49 -0
- package/dist/collection/components/gallery-item/gallery-item.js +98 -0
- package/dist/collection/components/grid/grid.css +12 -0
- package/dist/collection/components/grid/grid.js +9 -5
- package/dist/collection/components/header/header-interface.js +1 -0
- package/dist/collection/components/header/header.ionic.css +286 -0
- package/dist/collection/components/header/header.ios.css +178 -133
- package/dist/collection/components/header/header.js +180 -39
- package/dist/collection/components/header/header.md.css +199 -9
- package/dist/collection/components/header/header.utils.js +5 -13
- package/dist/collection/components/img/img.js +7 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +99 -5
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
- package/dist/collection/components/input/input.ionic.css +961 -0
- package/dist/collection/components/input/input.ios.css +254 -160
- package/dist/collection/components/input/input.js +172 -44
- package/dist/collection/components/input/input.md.css +224 -232
- package/dist/collection/components/input-otp/input-otp.ionic.css +369 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
- package/dist/collection/components/input-otp/input-otp.js +74 -8
- package/dist/collection/components/input-otp/input-otp.md.css +105 -60
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +37 -10
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
- package/dist/collection/components/item/item.ionic.css +495 -0
- package/dist/collection/components/item/item.ios.css +120 -80
- package/dist/collection/components/item/item.js +51 -21
- package/dist/collection/components/item/item.md.css +131 -79
- package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
- package/dist/collection/components/item-divider/item-divider.js +11 -8
- package/dist/collection/components/item-divider/item-divider.md.css +18 -0
- package/dist/collection/components/item-group/item-group.ios.css +12 -0
- package/dist/collection/components/item-group/item-group.js +13 -7
- package/dist/collection/components/item-group/item-group.md.css +12 -0
- package/dist/collection/components/item-option/item-option.ionic.css +276 -0
- package/dist/collection/components/item-option/item-option.ios.css +136 -29
- package/dist/collection/components/item-option/item-option.js +73 -9
- package/dist/collection/components/item-option/item-option.md.css +136 -29
- package/dist/collection/components/item-options/item-options.ionic.css +221 -0
- package/dist/collection/components/item-options/item-options.ios.css +77 -34
- package/dist/collection/components/item-options/item-options.js +13 -7
- package/dist/collection/components/item-options/item-options.md.css +77 -34
- package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
- package/dist/collection/components/item-sliding/item-sliding.js +419 -35
- package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
- package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
- package/dist/collection/components/label/label.ios.css +18 -0
- package/dist/collection/components/label/label.js +11 -8
- package/dist/collection/components/label/label.md.css +18 -0
- package/dist/collection/components/list/list.ionic.css +212 -0
- package/dist/collection/components/list/list.ios.css +54 -14
- package/dist/collection/components/list/list.js +48 -9
- package/dist/collection/components/list/list.md.css +56 -16
- package/dist/collection/components/list-header/list-header.ionic.css +189 -0
- package/dist/collection/components/list-header/list-header.ios.css +82 -38
- package/dist/collection/components/list-header/list-header.js +11 -8
- package/dist/collection/components/list-header/list-header.md.css +82 -38
- package/dist/collection/components/loading/loading.ios.css +13 -1
- package/dist/collection/components/loading/loading.js +15 -12
- package/dist/collection/components/loading/loading.md.css +13 -1
- package/dist/collection/components/menu/menu.ios.css +15 -3
- package/dist/collection/components/menu/menu.js +12 -7
- package/dist/collection/components/menu/menu.md.css +15 -3
- package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
- package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
- package/dist/collection/components/menu-button/menu-button.js +23 -10
- package/dist/collection/components/menu-button/menu-button.md.css +49 -15
- package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
- package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
- package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
- package/dist/collection/components/modal/animations/sheet.js +8 -2
- package/dist/collection/components/modal/gestures/sheet.js +96 -8
- package/dist/collection/components/modal/modal.ionic.css +266 -0
- package/dist/collection/components/modal/modal.ios.css +178 -70
- package/dist/collection/components/modal/modal.js +52 -13
- package/dist/collection/components/modal/modal.md.css +178 -70
- package/dist/collection/components/nav/nav.css +7 -1
- package/dist/collection/components/nav/nav.js +10 -4
- package/dist/collection/components/nav-link/nav-link.js +5 -1
- package/dist/collection/components/note/note.ios.css +12 -0
- package/dist/collection/components/note/note.js +11 -8
- package/dist/collection/components/note/note.md.css +12 -0
- package/dist/collection/components/picker/picker.ios.css +15 -3
- package/dist/collection/components/picker/picker.js +8 -5
- package/dist/collection/components/picker/picker.md.css +15 -3
- package/dist/collection/components/picker-column/picker-column.css +9 -2
- package/dist/collection/components/picker-column/picker-column.js +8 -7
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
- package/dist/collection/components/popover/popover.ionic.css +289 -0
- package/dist/collection/components/popover/popover.ios.css +13 -1
- package/dist/collection/components/popover/popover.js +19 -16
- package/dist/collection/components/popover/popover.md.css +13 -1
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
- package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
- package/dist/collection/components/progress-bar/progress-bar.js +43 -7
- package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
- package/dist/collection/components/radio/radio.ionic.css +421 -0
- package/dist/collection/components/radio/radio.ios.css +207 -102
- package/dist/collection/components/radio/radio.js +14 -9
- package/dist/collection/components/radio/radio.md.css +207 -102
- package/dist/collection/components/radio-group/radio-group.ionic.css +118 -0
- package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
- package/dist/collection/components/radio-group/radio-group.js +48 -7
- package/dist/collection/components/radio-group/radio-group.md.css +43 -19
- package/dist/collection/components/range/range.ionic.css +566 -0
- package/dist/collection/components/range/range.ios.css +128 -85
- package/dist/collection/components/range/range.js +16 -10
- package/dist/collection/components/range/range.md.css +128 -85
- package/dist/collection/components/refresher/refresher.ios.css +14 -1
- package/dist/collection/components/refresher/refresher.js +11 -8
- package/dist/collection/components/refresher/refresher.md.css +15 -2
- package/dist/collection/components/refresher-content/refresher-content.js +34 -7
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +25 -6
- package/dist/collection/components/reorder/reorder.md.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.js +8 -4
- package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
- package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
- package/dist/collection/components/route/route.js +4 -0
- package/dist/collection/components/router/router.js +4 -0
- package/dist/collection/components/router-link/router-link.css +8 -2
- package/dist/collection/components/router-link/router-link.js +9 -5
- package/dist/collection/components/router-outlet/router-outlet.css +7 -1
- package/dist/collection/components/router-outlet/router-outlet.js +6 -3
- package/dist/collection/components/row/row.css +16 -0
- package/dist/collection/components/row/row.js +9 -2
- package/dist/collection/components/searchbar/searchbar.ionic.css +621 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
- package/dist/collection/components/searchbar/searchbar.js +164 -42
- package/dist/collection/components/searchbar/searchbar.md.css +56 -18
- package/dist/collection/components/segment/segment.ionic.css +115 -0
- package/dist/collection/components/segment/segment.ios.css +45 -2
- package/dist/collection/components/segment/segment.js +11 -8
- package/dist/collection/components/segment/segment.md.css +45 -2
- package/dist/collection/components/segment-button/segment-button.ionic.css +351 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
- package/dist/collection/components/segment-button/segment-button.js +11 -8
- package/dist/collection/components/segment-button/segment-button.md.css +148 -107
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
- package/dist/collection/components/segment-view/segment-view.js +13 -4
- package/dist/collection/components/segment-view/segment-view.md.css +6 -0
- package/dist/collection/components/select/select.ionic.css +976 -0
- package/dist/collection/components/select/select.ios.css +304 -148
- package/dist/collection/components/select/select.js +232 -82
- package/dist/collection/components/select/select.md.css +320 -150
- package/dist/collection/components/select-modal/select-modal.ionic.css +254 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
- package/dist/collection/components/select-modal/select-modal.js +63 -15
- package/dist/collection/components/select-modal/select-modal.md.css +273 -43
- package/dist/collection/components/select-option/select-option.js +8 -4
- package/dist/collection/components/select-popover/select-popover.ionic.css +253 -0
- package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
- package/dist/collection/components/select-popover/select-popover.js +17 -9
- package/dist/collection/components/select-popover/select-popover.md.css +228 -47
- package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
- package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
- package/dist/collection/components/spinner/spinner.js +47 -6
- package/dist/collection/components/spinner/spinner.native.css +199 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
- package/dist/collection/components/split-pane/split-pane.js +15 -8
- package/dist/collection/components/split-pane/split-pane.md.css +20 -2
- package/dist/collection/components/tab/tab.js +6 -2
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
- package/dist/collection/components/tab-bar/tab-bar.js +178 -15
- package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
- package/dist/collection/components/tab-button/tab-button.ionic.css +372 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
- package/dist/collection/components/tab-button/tab-button.js +54 -9
- package/dist/collection/components/tab-button/tab-button.md.css +137 -93
- package/dist/collection/components/tabs/tabs.css +7 -1
- package/dist/collection/components/tabs/tabs.js +4 -1
- package/dist/collection/components/text/text.css +6 -0
- package/dist/collection/components/text/text.js +7 -6
- package/dist/collection/components/textarea/textarea.ionic.css +989 -0
- package/dist/collection/components/textarea/textarea.ios.css +322 -174
- package/dist/collection/components/textarea/textarea.js +205 -43
- package/dist/collection/components/textarea/textarea.md.css +339 -176
- package/dist/collection/components/thumbnail/thumbnail.css +6 -0
- package/dist/collection/components/thumbnail/thumbnail.js +9 -2
- package/dist/collection/components/title/title.ionic.css +125 -0
- package/dist/collection/components/title/title.ios.css +32 -4
- package/dist/collection/components/title/title.js +13 -7
- package/dist/collection/components/title/title.md.css +39 -4
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ionic.css +391 -0
- package/dist/collection/components/toast/toast.ios.css +84 -45
- package/dist/collection/components/toast/toast.js +79 -13
- package/dist/collection/components/toast/toast.md.css +84 -45
- package/dist/collection/components/toggle/toggle.ionic.css +510 -0
- package/dist/collection/components/toggle/toggle.ios.css +247 -127
- package/dist/collection/components/toggle/toggle.js +58 -18
- package/dist/collection/components/toggle/toggle.md.css +245 -127
- package/dist/collection/components/toolbar/test/image.svg +1 -0
- package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
- package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
- package/dist/collection/components/toolbar/toolbar.js +216 -14
- package/dist/collection/components/toolbar/toolbar.md.css +90 -47
- package/dist/collection/global/ionic-global.js +239 -13
- package/dist/collection/utils/css-value-validation.js +39 -0
- package/dist/collection/utils/focus-trap.js +15 -4
- package/dist/collection/utils/focus-visible.js +73 -2
- package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
- package/dist/collection/utils/forms/click-controller.js +95 -9
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/forms/validity.js +31 -0
- package/dist/collection/utils/framework-delegate.js +3 -1
- package/dist/collection/utils/hardware-back-button.js +15 -0
- package/dist/collection/utils/helpers.js +84 -3
- package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
- package/dist/collection/utils/media.js +1 -0
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +2 -1
- package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
- package/dist/collection/utils/overlay-control-label.js +13 -11
- package/dist/collection/utils/overlays.js +289 -10
- package/dist/collection/utils/scroll-hide-controller.js +178 -0
- package/dist/collection/utils/test/playwright/drag-element.js +32 -9
- package/dist/collection/utils/test/playwright/field-geometry.js +34 -0
- package/dist/collection/utils/test/playwright/generator.js +48 -23
- package/dist/collection/utils/test/playwright/index.js +1 -0
- package/dist/collection/utils/test/playwright/page/utils/goto.js +10 -1
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
- package/dist/collection/utils/theme.js +25 -1
- package/dist/collection/utils/transition/ios.transition.js +1 -0
- package/dist/docs.json +9039 -293
- package/dist/esm/{animation-C_V9lXzL.js → animation-GasMiLY0.js} +2 -2
- package/dist/esm/{app-globals-CNfpAPW6.js → app-globals-DbCTe1Vv.js} +1 -1
- package/dist/esm/{attribute-controller-ItNOXNp9.js → attribute-controller-CbJaN4Zr.js} +2 -1
- package/dist/esm/{button-active-rB-Ct9KZ.js → button-active-DLOYzeXl.js} +2 -2
- package/dist/esm/{capacitor-BY7l8HgR.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/clear-button-press-controller-6ph4kKYn.js +43 -0
- package/dist/esm/focus-visible-BYk20Mf5.js +146 -0
- package/dist/esm/{format-Ck1cw5z7.js → format-DUHrIiJq.js} +2 -2
- package/dist/esm/{framework-delegate-CW5_kWfc.js → framework-delegate-99Ms_INy.js} +4 -2
- package/dist/esm/{haptic-ES_sSPLn.js → haptic-Cq4UAeka.js} +1 -1
- package/dist/esm/{helpers-p94IkmEA.js → helpers-B_F2b1gy.js} +86 -8
- package/dist/esm/{index-CK8uF0iB.js → index-BRYliuA-.js} +1 -1
- package/dist/esm/{index-CBkVO5D0.js → index-BeR_5uou.js} +2 -2
- package/dist/esm/{index-BvabGprD.js → index-BkJpfpXI.js} +2 -1
- package/dist/esm/{index-DLDbwWW7.js → index-BoEdvSPU.js} +4 -2
- package/dist/esm/{index-vgPixHgF.js → index-D5lNz-tr.js} +4 -4
- package/dist/esm/{index-txcXIB3P.js → index-D86Q8ZLS.js} +12 -10
- package/dist/esm/index-ZjP4CjeZ.js +7 -0
- package/dist/esm/{index-BpRUsN_W.js → index-hR6kxzTq.js} +55 -5
- package/dist/esm/index.js +14 -12
- package/dist/esm/{input-shims-KNXj3DAv.js → input-shims-CJVi9djP.js} +7 -5
- package/dist/esm/{input.utils-DZY_K8Po.js → input.utils-gPgFKve4.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +57 -29
- package/dist/esm/ion-action-sheet.entry.js +27 -22
- package/dist/esm/ion-alert.entry.js +34 -29
- package/dist/esm/ion-app_8.entry.js +455 -193
- package/dist/esm/ion-avatar_3.entry.js +124 -13
- package/dist/esm/ion-back-button.entry.js +31 -23
- package/dist/esm/ion-backdrop.entry.js +11 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +42 -18
- package/dist/esm/ion-button_2.entry.js +61 -23
- package/dist/esm/ion-card_5.entry.js +57 -34
- package/dist/esm/ion-checkbox.entry.js +43 -17
- package/dist/esm/ion-chip.entry.js +51 -9
- package/dist/esm/ion-col_3.entry.js +56 -63
- package/dist/esm/ion-datetime-button.entry.js +45 -13
- package/dist/esm/ion-datetime.entry.js +412 -61
- package/dist/esm/ion-divider.entry.js +50 -0
- package/dist/esm/ion-fab_3.entry.js +40 -28
- package/dist/esm/ion-gallery-item.entry.js +57 -0
- package/dist/esm/ion-gallery.entry.js +606 -0
- package/dist/esm/ion-img.entry.js +9 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +91 -16
- package/dist/esm/ion-input-otp.entry.js +75 -10
- package/dist/esm/ion-input-password-toggle.entry.js +42 -14
- package/dist/esm/ion-input.entry.js +147 -38
- package/dist/esm/ion-item-option_3.entry.js +466 -52
- package/dist/esm/ion-item_8.entry.js +118 -51
- package/dist/esm/ion-loading.entry.js +22 -17
- package/dist/esm/ion-menu_3.entry.js +45 -27
- package/dist/esm/ion-modal.entry.js +237 -88
- package/dist/esm/ion-nav_2.entry.js +14 -10
- package/dist/esm/ion-picker-column-option.entry.js +13 -8
- package/dist/esm/ion-picker-column.entry.js +14 -12
- package/dist/esm/ion-picker.entry.js +11 -6
- package/dist/esm/ion-popover.entry.js +23 -18
- package/dist/esm/ion-progress-bar.entry.js +28 -9
- package/dist/esm/ion-radio_2.entry.js +37 -18
- package/dist/esm/ion-range.entry.js +21 -13
- package/dist/esm/ion-refresher_2.entry.js +45 -20
- package/dist/esm/ion-reorder_2.entry.js +31 -13
- package/dist/esm/ion-ripple-effect.entry.js +16 -7
- package/dist/esm/ion-route_4.entry.js +12 -10
- package/dist/esm/ion-searchbar.entry.js +118 -32
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +13 -3
- package/dist/esm/ion-segment_2.entry.js +24 -16
- package/dist/esm/ion-select-modal.entry.js +53 -24
- package/dist/esm/ion-select_3.entry.js +198 -76
- package/dist/esm/ion-spinner.entry.js +31 -8
- package/dist/esm/ion-split-pane.entry.js +14 -9
- package/dist/esm/ion-tab-bar_2.entry.js +149 -26
- package/dist/esm/ion-tab_2.entry.js +9 -7
- package/dist/esm/ion-text.entry.js +8 -7
- package/dist/esm/ion-textarea.entry.js +178 -41
- package/dist/esm/ion-toast.entry.js +48 -19
- package/dist/esm/ion-toggle.entry.js +67 -25
- package/dist/esm/ionic-global-DSbFWXp3.js +540 -0
- package/dist/esm/ionic.js +6 -5
- package/dist/esm/{ios.transition-CW92wRDL.js → ios.transition-C9thfQYf.js} +7 -4
- package/dist/esm/{item-multiple-inputs-Bd2LO7qK.js → item-multiple-inputs-CSJsB7-I.js} +1 -1
- package/dist/esm/{keyboard-BumguZrM.js → keyboard-Cj8mLJeq.js} +3 -5
- package/dist/esm/{keyboard-CutS8BPd.js → keyboard-DAF8GNJ9.js} +1 -1
- package/dist/esm/loader.js +6 -5
- package/dist/esm/{md.transition-yhfkYX1P.js → md.transition-BEhPsy_z.js} +6 -4
- package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
- package/dist/esm/{overlays-BBgMM61s.js → overlays-C8sf7PId.js} +307 -164
- package/dist/esm/scroll-hide-controller-Chts2wJU.js +342 -0
- package/dist/esm/{select-option-render-BSDT9oSA.js → select-option-render-D5kt0cO9.js} +2 -2
- package/dist/esm/{slot-mutation-controller-uKdPbY9K.js → slot-mutation-controller-DanfZTCH.js} +97 -10
- package/dist/esm/{status-tap-BskkGI4e.js → status-tap-B8UQS38n.js} +5 -3
- package/dist/esm/{swipe-back-BZdyM2Q-.js → swipe-back-Bgftkxen.js} +4 -2
- package/dist/esm/{theme-byZM6qHV.js → theme-BUF_V-Kg.js} +25 -1
- package/dist/esm/validity-NcQUGze-.js +48 -0
- package/dist/html.html-data.json +2651 -150
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-038465e3.entry.js +4 -0
- package/dist/ionic/p-0b453760.entry.js +4 -0
- package/dist/ionic/p-0bd5a7c9.entry.js +4 -0
- package/dist/ionic/p-188a2e35.entry.js +4 -0
- package/dist/ionic/p-1b045882.entry.js +4 -0
- package/dist/ionic/p-1b769779.entry.js +4 -0
- package/dist/ionic/p-1b7efcc2.entry.js +4 -0
- package/dist/ionic/p-1d735170.entry.js +4 -0
- package/dist/ionic/p-2b1e9500.entry.js +4 -0
- package/dist/ionic/p-2gcJ-f11.js +4 -0
- package/dist/ionic/p-308f9b89.entry.js +4 -0
- package/dist/ionic/p-338cb1e7.entry.js +4 -0
- package/dist/ionic/p-3674a7de.entry.js +4 -0
- package/dist/ionic/p-3a03d05e.entry.js +4 -0
- package/dist/ionic/p-3a54495e.entry.js +4 -0
- package/dist/ionic/p-3b47fdc7.entry.js +4 -0
- package/dist/ionic/p-3be131ed.entry.js +4 -0
- package/dist/ionic/p-3f15086f.entry.js +4 -0
- package/dist/ionic/p-4152cb6a.entry.js +4 -0
- package/dist/ionic/p-41680415.entry.js +4 -0
- package/dist/ionic/p-49edfb46.entry.js +4 -0
- package/dist/ionic/p-522663a4.entry.js +4 -0
- package/dist/ionic/p-561cfcc1.entry.js +4 -0
- package/dist/ionic/p-5a024b02.entry.js +4 -0
- package/dist/ionic/p-6dc9331b.entry.js +4 -0
- package/dist/ionic/p-7df4dcb4.entry.js +4 -0
- package/dist/ionic/p-8183df6b.entry.js +4 -0
- package/dist/ionic/p-8231e914.entry.js +4 -0
- package/dist/ionic/p-82efbf09.entry.js +4 -0
- package/dist/ionic/p-86bf24f4.entry.js +4 -0
- package/dist/ionic/p-8b107444.entry.js +4 -0
- package/dist/ionic/p-8ecb459a.entry.js +4 -0
- package/dist/ionic/p-8ff4bf6c.entry.js +4 -0
- package/dist/ionic/p-905c8b38.entry.js +4 -0
- package/dist/ionic/p-9613f2c3.entry.js +4 -0
- package/dist/ionic/p-973f8069.entry.js +4 -0
- package/dist/ionic/p-9b41acf3.entry.js +4 -0
- package/dist/ionic/p-9cce1ed5.entry.js +4 -0
- package/dist/ionic/p-B36ii-hs.js +4 -0
- package/{components/p-LkEGRiq0.js → dist/ionic/p-B7XMQegr.js} +1 -1
- package/dist/ionic/p-BKwe4f9b.js +4 -0
- package/dist/ionic/{p-5a3UxQAh.js → p-BMPN55of.js} +1 -1
- package/{components/p-D5_mEbGJ.js → dist/ionic/p-BPA4-c6T.js} +1 -1
- package/dist/ionic/p-BUF_V-Kg.js +4 -0
- package/dist/ionic/p-BXRdzJMJ.js +4 -0
- package/dist/ionic/p-BYk20Mf5.js +4 -0
- package/dist/ionic/p-BfDzKnZ-.js +4 -0
- package/dist/ionic/p-BfUzA1cP.js +4 -0
- package/dist/ionic/{p-DCmOKz8e.js → p-Bjt84heL.js} +1 -1
- package/dist/ionic/p-BkJpfpXI.js +4 -0
- package/dist/ionic/p-C3TLUO-J.js +4 -0
- package/dist/ionic/p-C4WiowQL.js +4 -0
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/dist/ionic/p-CODBQrPj.js +4 -0
- package/dist/ionic/p-CXkgZKSx.js +4 -0
- package/{components/p-CdrNHfZl.js → dist/ionic/p-CaOPF8Xt.js} +1 -1
- package/dist/ionic/{p-DxftXYZp.js → p-CeHcVwSj.js} +1 -1
- package/dist/ionic/p-Co3ilg7B.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D7LiFzrm.js +4 -0
- package/dist/ionic/p-DOdxt_P_.js +4 -0
- package/dist/ionic/p-DRbid4Vh.js +4 -0
- package/dist/ionic/p-DsBidY1y.js +4 -0
- package/dist/ionic/{p-Cf6KtUnA.js → p-DuxayXEj.js} +1 -1
- package/dist/ionic/p-DxPRC9Jk.js +4 -0
- package/dist/ionic/p-Hb0L-KUN.js +4 -0
- package/dist/ionic/p-NcQUGze-.js +4 -0
- package/dist/ionic/{p-BBZQUbCq.js → p-T71k3C35.js} +1 -1
- package/dist/ionic/p-WdouEyt8.js +4 -0
- package/dist/ionic/p-ZjP4CjeZ.js +4 -0
- package/dist/ionic/p-a4299509.entry.js +4 -0
- package/dist/ionic/p-a52cba2f.entry.js +4 -0
- package/dist/ionic/p-b1cd18f0.entry.js +4 -0
- package/dist/ionic/p-b30b468d.entry.js +4 -0
- package/dist/ionic/p-b4de840a.entry.js +4 -0
- package/dist/ionic/p-b6e633f5.entry.js +4 -0
- package/dist/ionic/p-bf40b9eb.entry.js +4 -0
- package/dist/ionic/p-c1fc48c7.entry.js +4 -0
- package/dist/ionic/p-ce8bea16.entry.js +4 -0
- package/dist/ionic/p-ceca04fb.entry.js +4 -0
- package/dist/ionic/p-d7da66b1.entry.js +4 -0
- package/dist/ionic/p-de0de6a6.entry.js +4 -0
- package/dist/ionic/p-e715a580.entry.js +4 -0
- package/dist/ionic/p-f02c29cd.entry.js +4 -0
- package/dist/ionic/p-f10a94a8.entry.js +4 -0
- package/dist/ionic/p-f3057b31.entry.js +4 -0
- package/dist/ionic/p-fa74dd94.entry.js +4 -0
- package/dist/ionic/p-fd00e28d.entry.js +4 -0
- package/dist/ionic/p-hR6kxzTq.js +6 -0
- package/dist/ionic/p-pVSZ4TVa.js +4 -0
- package/dist/ionic/{p-DfvWlTdB.js → p-rwBGNQHN.js} +1 -1
- package/dist/types/components/accordion/accordion.d.ts +12 -3
- package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
- package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
- package/dist/types/components/alert/alert-interface.d.ts +3 -7
- package/dist/types/components/alert/alert.d.ts +3 -2
- package/dist/types/components/app/app.d.ts +4 -5
- package/dist/types/components/avatar/avatar.d.ts +32 -0
- package/dist/types/components/back-button/back-button.d.ts +10 -3
- package/dist/types/components/backdrop/backdrop.d.ts +4 -0
- package/dist/types/components/badge/badge.d.ts +34 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +14 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +23 -8
- package/dist/types/components/buttons/buttons.d.ts +5 -1
- package/dist/types/components/card/card.d.ts +8 -1
- package/dist/types/components/card-content/card-content.d.ts +2 -1
- package/dist/types/components/card-header/card-header.d.ts +3 -2
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
- package/dist/types/components/card-title/card-title.d.ts +2 -1
- package/dist/types/components/checkbox/checkbox.d.ts +26 -5
- package/dist/types/components/chip/chip.d.ts +26 -1
- package/dist/types/components/col/col.d.ts +52 -6
- package/dist/types/components/content/content.d.ts +3 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
- package/dist/types/components/datetime/datetime.d.ts +92 -3
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime/utils/state.d.ts +5 -2
- package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
- package/dist/types/components/divider/divider.d.ts +20 -0
- package/dist/types/components/fab/fab.d.ts +4 -0
- package/dist/types/components/fab-button/fab-button.d.ts +11 -3
- package/dist/types/components/fab-list/fab-list.d.ts +4 -0
- package/dist/types/components/footer/footer-interface.d.ts +1 -0
- package/dist/types/components/footer/footer.d.ts +20 -3
- package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
- package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
- package/dist/types/components/gallery/gallery.d.ts +218 -0
- package/dist/types/components/gallery/test/utils.d.ts +3 -0
- package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
- package/dist/types/components/grid/grid.d.ts +4 -0
- package/dist/types/components/header/header-interface.d.ts +1 -0
- package/dist/types/components/header/header.d.ts +26 -3
- package/dist/types/components/header/header.utils.d.ts +4 -5
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
- package/dist/types/components/input/input.d.ts +45 -5
- package/dist/types/components/input-otp/input-otp.d.ts +37 -0
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +14 -0
- package/dist/types/components/item/item.d.ts +17 -4
- package/dist/types/components/item-divider/item-divider.d.ts +2 -1
- package/dist/types/components/item-group/item-group.d.ts +4 -0
- package/dist/types/components/item-option/item-option.d.ts +18 -1
- package/dist/types/components/item-options/item-options.d.ts +4 -0
- package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
- package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
- package/dist/types/components/label/label.d.ts +2 -1
- package/dist/types/components/list/list.d.ts +15 -1
- package/dist/types/components/list-header/list-header.d.ts +2 -1
- package/dist/types/components/loading/loading-interface.d.ts +2 -7
- package/dist/types/components/loading/loading.d.ts +3 -2
- package/dist/types/components/menu/menu.d.ts +3 -0
- package/dist/types/components/menu-button/menu-button.d.ts +8 -1
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
- package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
- package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +4 -7
- package/dist/types/components/modal/modal.d.ts +11 -1
- package/dist/types/components/nav/nav-interface.d.ts +9 -1
- package/dist/types/components/nav/nav.d.ts +5 -1
- package/dist/types/components/nav-link/nav-link.d.ts +4 -0
- package/dist/types/components/note/note.d.ts +2 -1
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/picker-column/picker-column.d.ts +2 -1
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
- package/dist/types/components/popover/popover-interface.d.ts +3 -6
- package/dist/types/components/popover/popover.d.ts +6 -5
- package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
- package/dist/types/components/radio/radio.d.ts +2 -1
- package/dist/types/components/radio-group/radio-group.d.ts +12 -0
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/refresher/refresher.d.ts +2 -1
- package/dist/types/components/refresher-content/refresher-content.d.ts +10 -0
- package/dist/types/components/reorder/reorder.d.ts +9 -0
- package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
- package/dist/types/components/route/route.d.ts +4 -0
- package/dist/types/components/router/router.d.ts +4 -0
- package/dist/types/components/router-link/router-link.d.ts +4 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
- package/dist/types/components/row/row.d.ts +4 -0
- package/dist/types/components/searchbar/searchbar.d.ts +56 -10
- package/dist/types/components/segment/segment.d.ts +2 -1
- package/dist/types/components/segment-button/segment-button.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +59 -15
- package/dist/types/components/select-modal/select-modal.d.ts +13 -0
- package/dist/types/components/select-option/select-option.d.ts +7 -4
- package/dist/types/components/select-popover/select-popover.d.ts +3 -0
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
- package/dist/types/components/spinner/spinner.d.ts +15 -0
- package/dist/types/components/split-pane/split-pane.d.ts +4 -0
- package/dist/types/components/tab/tab.d.ts +4 -0
- package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
- package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
- package/dist/types/components/tab-button/tab-button.d.ts +12 -1
- package/dist/types/components/tabs/tabs.d.ts +3 -0
- package/dist/types/components/text/text.d.ts +2 -1
- package/dist/types/components/textarea/textarea.d.ts +75 -17
- package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
- package/dist/types/components/title/title.d.ts +4 -0
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +3 -7
- package/dist/types/components/toast/toast.d.ts +19 -2
- package/dist/types/components/toggle/toggle.d.ts +18 -1
- package/dist/types/components/toolbar/toolbar.d.ts +43 -3
- package/dist/types/components.d.ts +1870 -209
- package/dist/types/global/ionic-global.d.ts +28 -2
- package/dist/types/interface.d.ts +3 -0
- package/dist/types/utils/config.d.ts +128 -4
- package/dist/types/utils/css-value-validation.d.ts +21 -0
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +33 -0
- package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
- package/dist/types/utils/forms/click-controller.d.ts +16 -5
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/forms/validity.d.ts +7 -0
- package/dist/types/utils/helpers.d.ts +29 -0
- package/dist/types/utils/overlay-control-label.d.ts +11 -9
- package/dist/types/utils/overlays-interface.d.ts +31 -1
- package/dist/types/utils/overlays.d.ts +1 -1
- package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
- package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
- package/dist/types/utils/test/playwright/field-geometry.d.ts +13 -0
- package/dist/types/utils/test/playwright/generator.d.ts +31 -2
- package/dist/types/utils/test/playwright/index.d.ts +1 -0
- package/dist/types/utils/theme.d.ts +9 -0
- package/hydrate/index.js +5842 -1281
- package/hydrate/index.mjs +5842 -1281
- package/package.json +10 -4
- package/components/p-3avHDbEF.js +0 -4
- package/components/p-7KepMw9O.js +0 -4
- package/components/p-7NbIvzb4.js +0 -4
- package/components/p-B3dSuofL.js +0 -4
- package/components/p-BBsseItU.js +0 -4
- package/components/p-BMHdI-wb.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BT2InaHz.js +0 -4
- package/components/p-BZ1k9WL7.js +0 -4
- package/components/p-BhamHSw3.js +0 -4
- package/components/p-BmVRXR1y.js +0 -4
- package/components/p-BrrMFd9K.js +0 -4
- package/components/p-C-SO5kIs.js +0 -4
- package/components/p-C0TdbIVo.js +0 -4
- package/components/p-C6Y0cCH_.js +0 -4
- package/components/p-C8BAigo3.js +0 -4
- package/components/p-CRb2xRCz.js +0 -4
- package/components/p-CUQjkOdi.js +0 -4
- package/components/p-CW84OFQa.js +0 -4
- package/components/p-CjPRDxby.js +0 -4
- package/components/p-CohRJRIu.js +0 -4
- package/components/p-Ct2aBEue.js +0 -4
- package/components/p-CvyvLbPe.js +0 -4
- package/components/p-D8FyR2IB.js +0 -4
- package/components/p-DJztqcrH.js +0 -4
- package/components/p-DLEJ61lJ.js +0 -4
- package/components/p-DRm4t-by.js +0 -4
- package/components/p-DTGCMApY.js +0 -4
- package/components/p-D_U0pDe5.js +0 -4
- package/components/p-DaW9OZ6S.js +0 -4
- package/components/p-Dah8BCNg.js +0 -4
- package/components/p-DaojW_d_.js +0 -4
- package/components/p-DnBabjgY.js +0 -4
- package/components/p-Ds5vN3iu.js +0 -4
- package/components/p-DwTzX8Vi.js +0 -4
- package/components/p-Dy7x-KDF.js +0 -4
- package/components/p-HthJZjZ6.js +0 -4
- package/components/p-KbMCbGRA.js +0 -4
- package/components/p-LpMHEu3v.js +0 -4
- package/components/p-PkD1iLNN.js +0 -4
- package/components/p-R4UxBukQ.js +0 -4
- package/components/p-RhI78AKb.js +0 -4
- package/components/p-byZM6qHV.js +0 -4
- package/components/p-hLu-eIbb.js +0 -4
- package/components/p-kKGBuIkf.js +0 -4
- package/components/p-z-EWo6r-.js +0 -4
- package/dist/cjs/focus-visible-CCvKiLh3.js +0 -77
- package/dist/cjs/ionic-global-48ceLiJ6.js +0 -156
- package/dist/cjs/keyboard-controller-DZE97OtR.js +0 -167
- package/dist/cjs/validity-BpS37YFM.js +0 -19
- package/dist/esm/focus-visible-BmVRXR1y.js +0 -75
- package/dist/esm/ionic-global-Cep6oYzK.js +0 -151
- package/dist/esm/keyboard-controller-DqohyEsZ.js +0 -165
- package/dist/esm/validity-DJztqcrH.js +0 -17
- package/dist/ionic/p-00cd107d.entry.js +0 -4
- package/dist/ionic/p-013b9aba.entry.js +0 -4
- package/dist/ionic/p-014c3633.entry.js +0 -4
- package/dist/ionic/p-0562139b.entry.js +0 -4
- package/dist/ionic/p-0a789930.entry.js +0 -4
- package/dist/ionic/p-0f1613f2.entry.js +0 -4
- package/dist/ionic/p-1252621e.entry.js +0 -4
- package/dist/ionic/p-129f7b95.entry.js +0 -4
- package/dist/ionic/p-16de8fd9.entry.js +0 -4
- package/dist/ionic/p-1bb1be7e.entry.js +0 -4
- package/dist/ionic/p-1f342c2d.entry.js +0 -4
- package/dist/ionic/p-1ffa5577.entry.js +0 -4
- package/dist/ionic/p-210f906e.entry.js +0 -4
- package/dist/ionic/p-27960f65.entry.js +0 -4
- package/dist/ionic/p-3c6fc2e8.entry.js +0 -4
- package/dist/ionic/p-436d4ac8.entry.js +0 -4
- package/dist/ionic/p-43729675.entry.js +0 -4
- package/dist/ionic/p-4468e439.entry.js +0 -4
- package/dist/ionic/p-4e4e5919.entry.js +0 -4
- package/dist/ionic/p-51af4728.entry.js +0 -4
- package/dist/ionic/p-59e4b521.entry.js +0 -4
- package/dist/ionic/p-5b47b8d5.entry.js +0 -4
- package/dist/ionic/p-5dcddfd5.entry.js +0 -4
- package/dist/ionic/p-694f3e78.entry.js +0 -4
- package/dist/ionic/p-76c189e7.entry.js +0 -4
- package/dist/ionic/p-77252596.entry.js +0 -4
- package/dist/ionic/p-77540bcb.entry.js +0 -4
- package/dist/ionic/p-77e7b612.entry.js +0 -4
- package/dist/ionic/p-7868eb92.entry.js +0 -4
- package/dist/ionic/p-800ce1e0.entry.js +0 -4
- package/dist/ionic/p-84470714.entry.js +0 -4
- package/dist/ionic/p-87fb6d59.entry.js +0 -4
- package/dist/ionic/p-8B39TMv-.js +0 -4
- package/dist/ionic/p-8af85fa8.entry.js +0 -4
- package/dist/ionic/p-8c85e250.entry.js +0 -4
- package/dist/ionic/p-8dQB1sG_.js +0 -4
- package/dist/ionic/p-9515f840.entry.js +0 -4
- package/dist/ionic/p-96d040b0.entry.js +0 -4
- package/dist/ionic/p-9d7e5a0b.entry.js +0 -4
- package/dist/ionic/p-B0afqOUt.js +0 -4
- package/dist/ionic/p-B2JD8_LP.js +0 -4
- package/dist/ionic/p-B2y1T0dN.js +0 -4
- package/dist/ionic/p-BHBb21Hp.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BexAj0yw.js +0 -4
- package/dist/ionic/p-BgkRGRO3.js +0 -4
- package/dist/ionic/p-BmVRXR1y.js +0 -4
- package/dist/ionic/p-BpRUsN_W.js +0 -6
- package/dist/ionic/p-BvabGprD.js +0 -4
- package/dist/ionic/p-C4SpVvhx.js +0 -4
- package/dist/ionic/p-CNdt1FPc.js +0 -4
- package/dist/ionic/p-CfccUand.js +0 -4
- package/dist/ionic/p-DArnNWiu.js +0 -4
- package/dist/ionic/p-DBFcFCH5.js +0 -4
- package/dist/ionic/p-DFPZa_No.js +0 -4
- package/dist/ionic/p-DJztqcrH.js +0 -4
- package/dist/ionic/p-DYKDWM2f.js +0 -4
- package/dist/ionic/p-DriE1ZAo.js +0 -4
- package/dist/ionic/p-DzQk7Lu8.js +0 -4
- package/dist/ionic/p-SEecsUh7.js +0 -4
- package/dist/ionic/p-a45caa30.entry.js +0 -4
- package/dist/ionic/p-af15fc5d.entry.js +0 -4
- package/dist/ionic/p-af4b4719.entry.js +0 -4
- package/dist/ionic/p-b0faaae2.entry.js +0 -4
- package/dist/ionic/p-b3aadfe8.entry.js +0 -4
- package/dist/ionic/p-b5bcbbc1.entry.js +0 -4
- package/dist/ionic/p-byZM6qHV.js +0 -4
- package/dist/ionic/p-c293f854.entry.js +0 -4
- package/dist/ionic/p-c56c23b6.entry.js +0 -4
- package/dist/ionic/p-c7ea2647.entry.js +0 -4
- package/dist/ionic/p-c8c77f7b.entry.js +0 -4
- package/dist/ionic/p-cbc73380.entry.js +0 -4
- package/dist/ionic/p-d58e9da3.entry.js +0 -4
- package/dist/ionic/p-e1haAYzm.js +0 -4
- package/dist/ionic/p-ec08a7e6.entry.js +0 -4
- package/dist/ionic/p-f37e6ed2.entry.js +0 -4
- package/dist/ionic/p-f6a1ab48.entry.js +0 -4
- /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
|
@@ -10,7 +10,7 @@ import { isRTL } from "../../utils/rtl/index";
|
|
|
10
10
|
import { createColorClasses } from "../../utils/theme";
|
|
11
11
|
import { caretDownSharp, caretUpSharp, chevronBack, chevronDown, chevronForward } from "ionicons/icons";
|
|
12
12
|
import { config } from "../../global/config";
|
|
13
|
-
import { getIonMode } from "../../global/ionic-global";
|
|
13
|
+
import { getIonMode, getIonTheme } from "../../global/ionic-global";
|
|
14
14
|
import { isSameDay, warnIfValueOutOfBounds, isBefore, isAfter } from "./utils/comparison";
|
|
15
15
|
import { generateMonths, getDaysOfMonth, getDaysOfWeek, getToday, getMonthColumnData, getDayColumnData, getYearColumnData, getTimeColumnsData, getCombinedDateColumnData, } from "./utils/data";
|
|
16
16
|
import { formatValue, getLocalizedDateTime, getLocalizedTime, getMonthAndYear } from "./utils/format";
|
|
@@ -20,7 +20,8 @@ import { clampDate, convertToArrayOfNumbers, getPartsFromCalendarDay, parseAmPm,
|
|
|
20
20
|
import { getCalendarDayState, getHighlightStyles, isDayDisabled, isMonthDisabled, isNextMonthDisabled, isPrevMonthDisabled, } from "./utils/state";
|
|
21
21
|
import { checkForPresentationFormatMismatch, warnIfTimeZoneProvided } from "./utils/validate";
|
|
22
22
|
/**
|
|
23
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines
|
|
23
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
24
|
+
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
24
25
|
*
|
|
25
26
|
* @slot title - The title of the datetime.
|
|
26
27
|
* @slot buttons - The buttons in the datetime.
|
|
@@ -49,6 +50,11 @@ import { checkForPresentationFormatMismatch, warnIfTimeZoneProvided } from "./ut
|
|
|
49
50
|
* @part calendar-day today - The calendar day that contains the current day.
|
|
50
51
|
* @part calendar-day disabled - The calendar day that is disabled.
|
|
51
52
|
*
|
|
53
|
+
* @part range-start - The calendar day button that is the start of a range selection.
|
|
54
|
+
* @part range-end - The calendar day button that is the end of a range selection.
|
|
55
|
+
* @part range-selection - The calendar day button that is part of a range selection (includes start and end).
|
|
56
|
+
* @part range-track - The track that connects the start and end days of a range selection.
|
|
57
|
+
*
|
|
52
58
|
* @part datetime-header - The datetime header contains the content for the `title` slot and the selected date.
|
|
53
59
|
* @part datetime-title - The element that contains the `title` slot content.
|
|
54
60
|
* @part datetime-selected-date - The element that contains the selected date.
|
|
@@ -129,8 +135,22 @@ export class Datetime {
|
|
|
129
135
|
/**
|
|
130
136
|
* If `true`, multiple dates can be selected at once. Only
|
|
131
137
|
* applies to `presentation="date"` and `preferWheel="false"`.
|
|
138
|
+
*
|
|
139
|
+
* @deprecated Use `selectionMode="multiple"` instead.
|
|
132
140
|
*/
|
|
133
141
|
this.multiple = false;
|
|
142
|
+
/**
|
|
143
|
+
* The text shown in the datetime header when the start of the range
|
|
144
|
+
* is empty, also used by screen readers to announce the start date.
|
|
145
|
+
* Only applies when `selectionMode="range"`.
|
|
146
|
+
*/
|
|
147
|
+
this.startDateLabel = 'Start date';
|
|
148
|
+
/**
|
|
149
|
+
* The text shown in the datetime header when the end of the range
|
|
150
|
+
* is empty, also used by screen readers to announce the end date.
|
|
151
|
+
* Only applies when `selectionMode="range"`.
|
|
152
|
+
*/
|
|
153
|
+
this.endDateLabel = 'End date';
|
|
134
154
|
/**
|
|
135
155
|
* If `true`, a header will be shown above the calendar
|
|
136
156
|
* picker. This will include both the slotted title, and
|
|
@@ -183,8 +203,8 @@ export class Datetime {
|
|
|
183
203
|
*/
|
|
184
204
|
this.preferWheel = false;
|
|
185
205
|
this.warnIfIncorrectValueUsage = () => {
|
|
186
|
-
const {
|
|
187
|
-
if (!
|
|
206
|
+
const { value } = this;
|
|
207
|
+
if (!this.isMultipleMode && !this.isRangeMode && Array.isArray(value)) {
|
|
188
208
|
/**
|
|
189
209
|
* We do some processing on the `value` array so
|
|
190
210
|
* that it looks more like an array when logged to
|
|
@@ -193,7 +213,13 @@ export class Datetime {
|
|
|
193
213
|
* Default toString() behavior: a,b
|
|
194
214
|
* Custom behavior: ['a', 'b']
|
|
195
215
|
*/
|
|
196
|
-
printIonWarning(`[ion-datetime] - An array of values was passed, but multiple
|
|
216
|
+
printIonWarning(`[ion-datetime] - An array of values was passed, but neither selectionMode="multiple" nor selectionMode="range" is set. This is incorrect usage and may result in unexpected behaviors.
|
|
217
|
+
|
|
218
|
+
Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
|
|
219
|
+
`, this.el);
|
|
220
|
+
}
|
|
221
|
+
if (this.isRangeMode && Array.isArray(value) && value.length > 2) {
|
|
222
|
+
printIonWarning(`[ion-datetime] - More than 2 values were passed with selectionMode="range". Only the first and last values will be used.
|
|
197
223
|
|
|
198
224
|
Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
|
|
199
225
|
`, this.el);
|
|
@@ -219,6 +245,9 @@ export class Datetime {
|
|
|
219
245
|
};
|
|
220
246
|
this.getActivePart = () => {
|
|
221
247
|
const { activeParts } = this;
|
|
248
|
+
if (this.isRangeParts(activeParts)) {
|
|
249
|
+
return activeParts.start;
|
|
250
|
+
}
|
|
222
251
|
return Array.isArray(activeParts) ? activeParts[0] : activeParts;
|
|
223
252
|
};
|
|
224
253
|
this.closeParentOverlay = (role) => {
|
|
@@ -233,6 +262,33 @@ export class Datetime {
|
|
|
233
262
|
...parts,
|
|
234
263
|
};
|
|
235
264
|
};
|
|
265
|
+
/**
|
|
266
|
+
* Checks whether the span from start to end contains any disabled day.
|
|
267
|
+
* Used by range mode to prevent selecting across disabled dates.
|
|
268
|
+
*/
|
|
269
|
+
this.rangeContainsDisabledDate = (start, end) => {
|
|
270
|
+
const { minParts, maxParts, parsedDayValues, parsedMonthValues, parsedYearValues, isDateEnabled } = this;
|
|
271
|
+
let cursor = getNextDay(start);
|
|
272
|
+
while (isBefore(cursor, end)) {
|
|
273
|
+
if (isDayDisabled(cursor, minParts, maxParts, parsedDayValues) ||
|
|
274
|
+
(parsedMonthValues !== undefined && !parsedMonthValues.includes(cursor.month)) ||
|
|
275
|
+
(parsedYearValues !== undefined && !parsedYearValues.includes(cursor.year))) {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
if (isDateEnabled) {
|
|
279
|
+
try {
|
|
280
|
+
if (!isDateEnabled(convertDataToISO(cursor))) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// Swallow user callback exceptions during validation
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
cursor = getNextDay(cursor);
|
|
289
|
+
}
|
|
290
|
+
return false;
|
|
291
|
+
};
|
|
236
292
|
this.setActiveParts = (parts, removeDate = false) => {
|
|
237
293
|
/** if the datetime component is in readonly mode,
|
|
238
294
|
* allow browsing of the calendar without changing
|
|
@@ -242,7 +298,7 @@ export class Datetime {
|
|
|
242
298
|
return;
|
|
243
299
|
}
|
|
244
300
|
this.hasUnconfirmedSelection = true;
|
|
245
|
-
const {
|
|
301
|
+
const { minParts, maxParts, activeParts } = this;
|
|
246
302
|
/**
|
|
247
303
|
* When setting the active parts, it is possible
|
|
248
304
|
* to set invalid data. For example,
|
|
@@ -255,7 +311,10 @@ export class Datetime {
|
|
|
255
311
|
*/
|
|
256
312
|
const validatedParts = validateParts(parts, minParts, maxParts);
|
|
257
313
|
this.setWorkingParts(validatedParts);
|
|
258
|
-
if (
|
|
314
|
+
if (this.isRangeMode) {
|
|
315
|
+
this.setActivePartsRange(validatedParts);
|
|
316
|
+
}
|
|
317
|
+
else if (this.isMultipleMode) {
|
|
259
318
|
const activePartsArray = Array.isArray(activeParts) ? activeParts : [activeParts];
|
|
260
319
|
if (removeDate) {
|
|
261
320
|
this.activeParts = activePartsArray.filter((p) => !isSameDay(p, validatedParts));
|
|
@@ -275,6 +334,25 @@ export class Datetime {
|
|
|
275
334
|
}
|
|
276
335
|
this.confirm();
|
|
277
336
|
};
|
|
337
|
+
/**
|
|
338
|
+
* Handles range selection logic when a day is clicked.
|
|
339
|
+
*
|
|
340
|
+
* Creating a new range: first click sets start, second sets end.
|
|
341
|
+
* Modifying an existing range:
|
|
342
|
+
* - Before range → new start
|
|
343
|
+
* - Within range → new end
|
|
344
|
+
* - After range → new end
|
|
345
|
+
* If the resulting span contains a disabled date, start a new range instead.
|
|
346
|
+
*/
|
|
347
|
+
this.setActivePartsRange = (parts) => {
|
|
348
|
+
const current = this.rangeParts;
|
|
349
|
+
if (!current || isBefore(parts, current.start) || this.rangeContainsDisabledDate(current.start, parts)) {
|
|
350
|
+
this.activeParts = { start: parts };
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
this.activeParts = { start: current.start, end: parts };
|
|
354
|
+
}
|
|
355
|
+
};
|
|
278
356
|
this.initializeKeyboardListeners = () => {
|
|
279
357
|
const calendarBodyRef = this.calendarBodyRef;
|
|
280
358
|
if (!calendarBodyRef) {
|
|
@@ -686,6 +764,57 @@ export class Datetime {
|
|
|
686
764
|
if (hasValue) {
|
|
687
765
|
warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
|
|
688
766
|
}
|
|
767
|
+
/**
|
|
768
|
+
* Range mode: convert the value array into DatetimeRangeParts.
|
|
769
|
+
*/
|
|
770
|
+
if (this.isRangeMode) {
|
|
771
|
+
/**
|
|
772
|
+
* The calendar navigates to the start of the range, or to the default
|
|
773
|
+
* date when there is nothing selected, so that an empty range mode
|
|
774
|
+
* opens on the same month as the other selection modes.
|
|
775
|
+
*/
|
|
776
|
+
let navigateTo;
|
|
777
|
+
if (hasValue && Array.isArray(valueToProcess)) {
|
|
778
|
+
let rangeValues = valueToProcess;
|
|
779
|
+
// If more than 2 entries, use first and last
|
|
780
|
+
if (rangeValues.length > 2) {
|
|
781
|
+
rangeValues = [rangeValues[0], rangeValues[rangeValues.length - 1]];
|
|
782
|
+
}
|
|
783
|
+
let startParts = rangeValues[0];
|
|
784
|
+
let endParts = rangeValues.length > 1 ? rangeValues[1] : undefined;
|
|
785
|
+
// Normalize reversed pairs so earlier date is start
|
|
786
|
+
if (endParts && isAfter(startParts, endParts)) {
|
|
787
|
+
const temp = startParts;
|
|
788
|
+
startParts = endParts;
|
|
789
|
+
endParts = temp;
|
|
790
|
+
}
|
|
791
|
+
this.activeParts = endParts ? { start: startParts, end: endParts } : { start: startParts };
|
|
792
|
+
/**
|
|
793
|
+
* Stay on the end date's month when it is already showing, such as
|
|
794
|
+
* right after the user picks it, instead of jumping back to the start.
|
|
795
|
+
*/
|
|
796
|
+
navigateTo =
|
|
797
|
+
endParts && endParts.month === workingParts.month && endParts.year === workingParts.year
|
|
798
|
+
? endParts
|
|
799
|
+
: startParts;
|
|
800
|
+
}
|
|
801
|
+
else {
|
|
802
|
+
this.activeParts = [];
|
|
803
|
+
navigateTo = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
|
|
804
|
+
}
|
|
805
|
+
const targetValue = clampDate(navigateTo, minParts, maxParts);
|
|
806
|
+
const { month, day, year } = targetValue;
|
|
807
|
+
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
808
|
+
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
809
|
+
const { isGridStyle, showMonthAndYear } = this;
|
|
810
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
811
|
+
this.animateToDate(targetValue);
|
|
812
|
+
}
|
|
813
|
+
else {
|
|
814
|
+
this.setWorkingParts({ month, day, year, hour: 0, minute: 0, ampm: 'am' });
|
|
815
|
+
}
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
689
818
|
/**
|
|
690
819
|
* If there are multiple values, clamp to the last one.
|
|
691
820
|
* This is because the last value is the one that the user
|
|
@@ -847,6 +976,27 @@ export class Datetime {
|
|
|
847
976
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
848
977
|
return hasDatePresentation && !preferWheel;
|
|
849
978
|
}
|
|
979
|
+
get isMultipleMode() {
|
|
980
|
+
return this.selectionMode === 'multiple' || (this.selectionMode === undefined && this.multiple);
|
|
981
|
+
}
|
|
982
|
+
get isRangeMode() {
|
|
983
|
+
return this.selectionMode === 'range';
|
|
984
|
+
}
|
|
985
|
+
/**
|
|
986
|
+
* Type guard: returns true if the given activeParts is a DatetimeRangeParts object.
|
|
987
|
+
*/
|
|
988
|
+
isRangeParts(parts) {
|
|
989
|
+
return this.isRangeMode && parts !== null && typeof parts === 'object' && !Array.isArray(parts) && 'start' in parts;
|
|
990
|
+
}
|
|
991
|
+
/**
|
|
992
|
+
* Returns the current range parts if in range mode, or undefined otherwise.
|
|
993
|
+
*/
|
|
994
|
+
get rangeParts() {
|
|
995
|
+
if (this.isRangeParts(this.activeParts)) {
|
|
996
|
+
return this.activeParts;
|
|
997
|
+
}
|
|
998
|
+
return undefined;
|
|
999
|
+
}
|
|
850
1000
|
yearValuesChanged() {
|
|
851
1001
|
this.parsedYearValues = convertToArrayOfNumbers(this.yearValues);
|
|
852
1002
|
}
|
|
@@ -882,6 +1032,19 @@ export class Datetime {
|
|
|
882
1032
|
*/
|
|
883
1033
|
async confirm(closeOverlay = false) {
|
|
884
1034
|
const { isCalendarPicker, activeParts, preferWheel, workingParts } = this;
|
|
1035
|
+
/**
|
|
1036
|
+
* In range mode, only confirm when both start and end are selected.
|
|
1037
|
+
*/
|
|
1038
|
+
if (this.isRangeMode) {
|
|
1039
|
+
if (!this.isRangeParts(activeParts) || !activeParts.end) {
|
|
1040
|
+
return;
|
|
1041
|
+
}
|
|
1042
|
+
this.setValue([convertDataToISO(activeParts.start), convertDataToISO(activeParts.end)]);
|
|
1043
|
+
if (closeOverlay) {
|
|
1044
|
+
this.closeParentOverlay(CONFIRM_ROLE);
|
|
1045
|
+
}
|
|
1046
|
+
return;
|
|
1047
|
+
}
|
|
885
1048
|
/**
|
|
886
1049
|
* We only update the value if the presentation is not a calendar picker.
|
|
887
1050
|
*/
|
|
@@ -917,6 +1080,22 @@ export class Datetime {
|
|
|
917
1080
|
* @param startDate A valid [ISO-8601 string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format) to reset the datetime state to.
|
|
918
1081
|
*/
|
|
919
1082
|
async reset(startDate) {
|
|
1083
|
+
if (this.isRangeMode) {
|
|
1084
|
+
/**
|
|
1085
|
+
* In range mode, reset clears the full range. If a startDate
|
|
1086
|
+
* is provided, the calendar navigates to that month without
|
|
1087
|
+
* selecting anything so the user begins a fresh selection.
|
|
1088
|
+
*/
|
|
1089
|
+
this.activeParts = [];
|
|
1090
|
+
if (startDate) {
|
|
1091
|
+
const parsed = parseDate(startDate);
|
|
1092
|
+
if (parsed) {
|
|
1093
|
+
const target = Array.isArray(parsed) ? parsed[0] : parsed;
|
|
1094
|
+
this.setWorkingParts(target);
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
return;
|
|
1098
|
+
}
|
|
920
1099
|
this.processValue(startDate);
|
|
921
1100
|
}
|
|
922
1101
|
/**
|
|
@@ -1152,8 +1331,11 @@ export class Datetime {
|
|
|
1152
1331
|
});
|
|
1153
1332
|
}
|
|
1154
1333
|
componentWillLoad() {
|
|
1155
|
-
const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
|
|
1156
|
-
if (multiple) {
|
|
1334
|
+
const { el, formatOptions, highlightedDates, multiple, selectionMode, presentation, preferWheel } = this;
|
|
1335
|
+
if (selectionMode === undefined && multiple) {
|
|
1336
|
+
printIonWarning('[ion-datetime] - The "multiple" property is deprecated. Use selectionMode="multiple" instead.', el);
|
|
1337
|
+
}
|
|
1338
|
+
if (this.isMultipleMode) {
|
|
1157
1339
|
if (presentation !== 'date') {
|
|
1158
1340
|
printIonWarning('[ion-datetime] - Multiple date selection is only supported for presentation="date".', el);
|
|
1159
1341
|
}
|
|
@@ -1161,6 +1343,17 @@ export class Datetime {
|
|
|
1161
1343
|
printIonWarning('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".', el);
|
|
1162
1344
|
}
|
|
1163
1345
|
}
|
|
1346
|
+
if (this.isRangeMode) {
|
|
1347
|
+
if (presentation !== 'date') {
|
|
1348
|
+
printIonWarning('[ion-datetime] - Range selection is only supported for presentation="date".', el);
|
|
1349
|
+
}
|
|
1350
|
+
if (preferWheel) {
|
|
1351
|
+
printIonWarning('[ion-datetime] - Range selection is not supported with preferWheel="true".', el);
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
if (selectionMode !== undefined && multiple) {
|
|
1355
|
+
printIonWarning('[ion-datetime] - Both "selectionMode" and "multiple" are set. "selectionMode" takes precedence.', el);
|
|
1356
|
+
}
|
|
1164
1357
|
if (highlightedDates !== undefined) {
|
|
1165
1358
|
if (presentation !== 'date' && presentation !== 'date-time' && presentation !== 'time-date') {
|
|
1166
1359
|
printIonWarning('[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
|
|
@@ -1207,6 +1400,7 @@ export class Datetime {
|
|
|
1207
1400
|
* are rendered independently of presentation.
|
|
1208
1401
|
*/
|
|
1209
1402
|
renderFooter() {
|
|
1403
|
+
const theme = getIonTheme(this);
|
|
1210
1404
|
const { disabled, readonly, showDefaultButtons, showClearButton } = this;
|
|
1211
1405
|
/**
|
|
1212
1406
|
* The cancel, clear, and confirm buttons
|
|
@@ -1214,6 +1408,13 @@ export class Datetime {
|
|
|
1214
1408
|
* is disabled or readonly.
|
|
1215
1409
|
*/
|
|
1216
1410
|
const isButtonDisabled = disabled || readonly;
|
|
1411
|
+
/**
|
|
1412
|
+
* In range mode, the confirm button should be disabled until
|
|
1413
|
+
* both a start and end date have been selected.
|
|
1414
|
+
*/
|
|
1415
|
+
const isRangeIncomplete = this.isRangeMode && (!this.isRangeParts(this.activeParts) || !this.activeParts.end);
|
|
1416
|
+
const isConfirmDisabled = isButtonDisabled || isRangeIncomplete;
|
|
1417
|
+
const confirmFill = theme === 'ionic' ? 'solid' : undefined;
|
|
1217
1418
|
const hasSlottedButtons = this.el.querySelector('[slot="buttons"]') !== null;
|
|
1218
1419
|
if (!hasSlottedButtons && !showDefaultButtons && !showClearButton) {
|
|
1219
1420
|
return;
|
|
@@ -1232,7 +1433,7 @@ export class Datetime {
|
|
|
1232
1433
|
return (h("div", { class: "datetime-footer" }, h("div", { class: "datetime-buttons" }, h("div", { class: {
|
|
1233
1434
|
['datetime-action-buttons']: true,
|
|
1234
1435
|
['has-clear-button']: this.showClearButton,
|
|
1235
|
-
} }, h("slot", { name: "buttons" },
|
|
1436
|
+
} }, h("slot", { name: "buttons" }, showDefaultButtons && (h("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true), disabled: isButtonDisabled }, this.cancelText)), h("div", { class: "datetime-action-buttons-container" }, showClearButton && (h("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick(), disabled: isButtonDisabled }, this.clearText)), showDefaultButtons && (h("ion-button", { id: "confirm-button", fill: confirmFill, color: this.color, onClick: () => this.confirm(true), disabled: isConfirmDisabled }, this.doneText))))))));
|
|
1236
1437
|
}
|
|
1237
1438
|
/**
|
|
1238
1439
|
* Wheel picker render methods
|
|
@@ -1421,8 +1622,8 @@ export class Datetime {
|
|
|
1421
1622
|
...this.workingParts,
|
|
1422
1623
|
month: ev.detail.value,
|
|
1423
1624
|
});
|
|
1424
|
-
// Month wheel is navigation-only in multi-select
|
|
1425
|
-
if (!this.
|
|
1625
|
+
// Month wheel is navigation-only in multi-select and range modes as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
1626
|
+
if (!this.isMultipleMode && !this.isRangeMode) {
|
|
1426
1627
|
this.setActiveParts({
|
|
1427
1628
|
...activePart,
|
|
1428
1629
|
month: ev.detail.value,
|
|
@@ -1443,8 +1644,8 @@ export class Datetime {
|
|
|
1443
1644
|
...this.workingParts,
|
|
1444
1645
|
year: ev.detail.value,
|
|
1445
1646
|
});
|
|
1446
|
-
// Year wheel is navigation-only in multi-select
|
|
1447
|
-
if (!this.
|
|
1647
|
+
// Year wheel is navigation-only in multi-select and range modes as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
1648
|
+
if (!this.isMultipleMode && !this.isRangeMode) {
|
|
1448
1649
|
this.setActiveParts({
|
|
1449
1650
|
...activePart,
|
|
1450
1651
|
year: ev.detail.value,
|
|
@@ -1546,10 +1747,8 @@ export class Datetime {
|
|
|
1546
1747
|
/**
|
|
1547
1748
|
* Grid Render Methods
|
|
1548
1749
|
*/
|
|
1549
|
-
renderCalendarHeader(
|
|
1550
|
-
const { disabled } = this;
|
|
1551
|
-
const expandedIcon = mode === 'ios' ? chevronDown : caretUpSharp;
|
|
1552
|
-
const collapsedIcon = mode === 'ios' ? chevronForward : caretDownSharp;
|
|
1750
|
+
renderCalendarHeader(theme) {
|
|
1751
|
+
const { disabled, datetimeNextIcon, datetimePreviousIcon, datetimeCollapsedIcon, datetimeExpandedIcon } = this;
|
|
1553
1752
|
const prevMonthDisabled = disabled || isPrevMonthDisabled(this.workingParts, this.minParts, this.maxParts);
|
|
1554
1753
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1555
1754
|
const hostDir = isRTL(this.el) ? 'rtl' : 'ltr';
|
|
@@ -1557,7 +1756,7 @@ export class Datetime {
|
|
|
1557
1756
|
'calendar-month-year-toggle': true,
|
|
1558
1757
|
'ion-activatable': true,
|
|
1559
1758
|
'ion-focusable': true,
|
|
1560
|
-
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { dir: hostDir, "aria-hidden": "true", icon: this.showMonthAndYear ?
|
|
1759
|
+
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), theme !== 'ionic' && (h("ion-icon", { dir: hostDir, "aria-hidden": "true", icon: this.showMonthAndYear ? datetimeExpandedIcon : datetimeCollapsedIcon, lazy: false, flipRtl: true }))), theme === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth(), part: "navigation-button previous-button" }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: datetimePreviousIcon, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth(), part: "navigation-button next-button" }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: datetimeNextIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true", part: "calendar-days-of-week" }, getDaysOfWeek(this.locale, theme, this.firstDayOfWeek % 7).map((d) => {
|
|
1561
1760
|
return h("div", { class: "day-of-week" }, d);
|
|
1562
1761
|
}))));
|
|
1563
1762
|
}
|
|
@@ -1590,7 +1789,7 @@ export class Datetime {
|
|
|
1590
1789
|
'calendar-month-disabled': !isWorkingMonth && swipeDisabled,
|
|
1591
1790
|
} }, h("div", { class: "calendar-month-grid" }, getDaysOfMonth(month, year, this.firstDayOfWeek % 7, this.showAdjacentDays).map((dateObject, index) => {
|
|
1592
1791
|
const { day, dayOfWeek, isAdjacentDay } = dateObject;
|
|
1593
|
-
const { el, highlightedDates, isDateEnabled,
|
|
1792
|
+
const { el, highlightedDates, isDateEnabled, showAdjacentDays } = this;
|
|
1594
1793
|
let _month = month;
|
|
1595
1794
|
let _year = year;
|
|
1596
1795
|
if (showAdjacentDays && isAdjacentDay && day !== null) {
|
|
@@ -1619,7 +1818,7 @@ export class Datetime {
|
|
|
1619
1818
|
}
|
|
1620
1819
|
const referenceParts = { month: _month, day, year: _year, isAdjacentDay };
|
|
1621
1820
|
const isCalendarPadding = day === null;
|
|
1622
|
-
const { isActive, isToday, ariaLabel, ariaSelected, disabled: isDayDisabled, text, } = getCalendarDayState(this.locale, referenceParts, this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);
|
|
1821
|
+
const { isActive, isToday, ariaLabel, ariaSelected, disabled: isDayDisabled, isRangeStart, isRangeEnd, isInRange, text, } = getCalendarDayState(this.locale, referenceParts, this.isRangeParts(this.activeParts) ? [] : this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues, this.rangeParts);
|
|
1623
1822
|
const dateIsoString = convertDataToISO(referenceParts);
|
|
1624
1823
|
let isCalDayDisabled = isCalMonthDisabled || isDayDisabled;
|
|
1625
1824
|
if (!isCalDayDisabled && isDateEnabled !== undefined) {
|
|
@@ -1642,24 +1841,60 @@ export class Datetime {
|
|
|
1642
1841
|
*/
|
|
1643
1842
|
const isCalDayConstrained = isCalDayDisabled && isDatetimeDisabled;
|
|
1644
1843
|
const isButtonDisabled = isCalDayDisabled || isDatetimeDisabled;
|
|
1844
|
+
/**
|
|
1845
|
+
* Determine if this day is part of the range selection.
|
|
1846
|
+
* Range styling takes priority over highlightedDates.
|
|
1847
|
+
*/
|
|
1848
|
+
const isPartOfRange = isRangeStart || isRangeEnd || isInRange;
|
|
1645
1849
|
let dateStyle = undefined;
|
|
1646
1850
|
/**
|
|
1647
|
-
* Custom highlight styles should not override the style for selected dates
|
|
1648
|
-
* nor apply to "filler days" at the start of the grid.
|
|
1851
|
+
* Custom highlight styles should not override the style for selected dates
|
|
1852
|
+
* or range selection, nor apply to "filler days" at the start of the grid.
|
|
1649
1853
|
*/
|
|
1650
|
-
if (highlightedDates !== undefined && !isActive && day !== null && !isAdjacentDay) {
|
|
1854
|
+
if (highlightedDates !== undefined && !isActive && !isPartOfRange && day !== null && !isAdjacentDay) {
|
|
1651
1855
|
dateStyle = getHighlightStyles(highlightedDates, dateIsoString, el);
|
|
1652
1856
|
}
|
|
1653
1857
|
let dateParts = undefined;
|
|
1654
1858
|
// "Filler days" at the beginning of the grid should not get the calendar day
|
|
1655
1859
|
// CSS parts added to them
|
|
1656
1860
|
if (!isCalendarPadding && !isAdjacentDay) {
|
|
1657
|
-
dateParts = `calendar-day${isActive ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}`;
|
|
1861
|
+
dateParts = `calendar-day${isActive || isRangeStart || isRangeEnd ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}${isRangeStart ? ' range-start range-selection' : ''}${isRangeEnd ? ' range-end range-selection' : ''}${isInRange ? ' range-selection' : ''}`;
|
|
1658
1862
|
}
|
|
1659
1863
|
else if (isAdjacentDay) {
|
|
1660
|
-
|
|
1864
|
+
/**
|
|
1865
|
+
* Adjacent days skip 'active' and 'today' parts but still
|
|
1866
|
+
* include range parts so ::part() styling is consistent
|
|
1867
|
+
* with the visual range track rendering.
|
|
1868
|
+
*/
|
|
1869
|
+
dateParts = `calendar-day${isCalDayDisabled ? ' disabled' : ''}${isRangeStart ? ' range-start range-selection' : ''}${isRangeEnd ? ' range-end range-selection' : ''}${isInRange ? ' range-selection' : ''}`;
|
|
1661
1870
|
}
|
|
1662
|
-
|
|
1871
|
+
/**
|
|
1872
|
+
* Build the wrapper's shadow part attribute for range track styling.
|
|
1873
|
+
*/
|
|
1874
|
+
const hasCompleteRange = this.rangeParts?.end !== undefined;
|
|
1875
|
+
const wrapperParts = isPartOfRange && hasCompleteRange && !isCalendarPadding ? 'range-track' : undefined;
|
|
1876
|
+
/**
|
|
1877
|
+
* Build the aria-label for range mode accessibility.
|
|
1878
|
+
*/
|
|
1879
|
+
let rangeAriaLabel = ariaLabel;
|
|
1880
|
+
if (this.isRangeMode && ariaLabel) {
|
|
1881
|
+
if (isRangeStart) {
|
|
1882
|
+
rangeAriaLabel += `, ${this.startDateLabel}`;
|
|
1883
|
+
}
|
|
1884
|
+
if (isRangeEnd) {
|
|
1885
|
+
rangeAriaLabel += `, ${this.endDateLabel}`;
|
|
1886
|
+
}
|
|
1887
|
+
if (isInRange) {
|
|
1888
|
+
rangeAriaLabel += ', in range';
|
|
1889
|
+
}
|
|
1890
|
+
}
|
|
1891
|
+
return (h("div", { class: {
|
|
1892
|
+
'calendar-day-wrapper': true,
|
|
1893
|
+
// A start without an end is only the circle until the range is complete
|
|
1894
|
+
'calendar-day-wrapper-range-start': isRangeStart && this.rangeParts?.end !== undefined,
|
|
1895
|
+
'calendar-day-wrapper-in-range': isInRange,
|
|
1896
|
+
'calendar-day-wrapper-range-end': isRangeEnd,
|
|
1897
|
+
}, part: wrapperParts }, h("button", {
|
|
1663
1898
|
// We need to use !important for the inline styles here because
|
|
1664
1899
|
// otherwise the CSS shadow parts will override these styles.
|
|
1665
1900
|
// See https://github.com/WICG/webcomponents/issues/847
|
|
@@ -1675,28 +1910,40 @@ export class Datetime {
|
|
|
1675
1910
|
}, tabindex: "-1", "data-day": day, "data-month": _month, "data-year": _year, "data-index": index, "data-day-of-week": dayOfWeek, disabled: isButtonDisabled, class: {
|
|
1676
1911
|
'calendar-day-padding': isCalendarPadding,
|
|
1677
1912
|
'calendar-day': true,
|
|
1678
|
-
'calendar-day-active': isActive,
|
|
1913
|
+
'calendar-day-active': isActive || isRangeStart || isRangeEnd,
|
|
1679
1914
|
'calendar-day-constrained': isCalDayConstrained,
|
|
1680
1915
|
'calendar-day-today': isToday,
|
|
1681
1916
|
'calendar-day-adjacent-day': isAdjacentDay,
|
|
1682
|
-
|
|
1917
|
+
'calendar-day-range-start': isRangeStart,
|
|
1918
|
+
'calendar-day-range-end': isRangeEnd,
|
|
1919
|
+
'calendar-day-in-range': isInRange,
|
|
1920
|
+
}, part: dateParts, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": isActive || isRangeStart || isRangeEnd ? 'true' : ariaSelected, "aria-label": rangeAriaLabel, onClick: () => {
|
|
1683
1921
|
if (isCalendarPadding) {
|
|
1684
1922
|
return;
|
|
1685
1923
|
}
|
|
1686
1924
|
if (isAdjacentDay) {
|
|
1687
1925
|
// The user selected a day outside the current month. Ignore this button, as the month will be re-rendered.
|
|
1688
1926
|
this.el.blur();
|
|
1689
|
-
this.
|
|
1927
|
+
if (!this.isRangeMode) {
|
|
1928
|
+
this.activeParts = { ...activePart, ...referenceParts };
|
|
1929
|
+
}
|
|
1690
1930
|
this.animateToDate(referenceParts);
|
|
1691
|
-
this.
|
|
1931
|
+
if (this.isRangeMode) {
|
|
1932
|
+
this.setActiveParts(referenceParts);
|
|
1933
|
+
}
|
|
1934
|
+
else {
|
|
1935
|
+
this.confirm();
|
|
1936
|
+
}
|
|
1692
1937
|
}
|
|
1693
1938
|
else {
|
|
1694
1939
|
this.setWorkingParts({
|
|
1695
1940
|
...this.workingParts,
|
|
1696
1941
|
...referenceParts,
|
|
1697
1942
|
});
|
|
1698
|
-
|
|
1699
|
-
|
|
1943
|
+
if (this.isRangeMode) {
|
|
1944
|
+
this.setActiveParts(referenceParts);
|
|
1945
|
+
}
|
|
1946
|
+
else if (this.isMultipleMode) {
|
|
1700
1947
|
this.setActiveParts(referenceParts, isActive);
|
|
1701
1948
|
}
|
|
1702
1949
|
else {
|
|
@@ -1715,8 +1962,18 @@ export class Datetime {
|
|
|
1715
1962
|
return this.renderMonth(month, year);
|
|
1716
1963
|
})));
|
|
1717
1964
|
}
|
|
1718
|
-
renderCalendar(
|
|
1719
|
-
return (h("div", { class: "datetime-calendar", key: "datetime-calendar" }, this.renderCalendarHeader(
|
|
1965
|
+
renderCalendar(theme) {
|
|
1966
|
+
return (h("div", { class: "datetime-calendar", key: "datetime-calendar" }, this.renderCalendarHeader(theme), this.renderCalendarBody(), this.isRangeMode && this.rangeParts && !this.rangeParts.end && (h("div", { "aria-live": "polite", role: "status", style: {
|
|
1967
|
+
position: 'absolute',
|
|
1968
|
+
width: '1px',
|
|
1969
|
+
height: '1px',
|
|
1970
|
+
padding: '0',
|
|
1971
|
+
margin: '-1px',
|
|
1972
|
+
overflow: 'hidden',
|
|
1973
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
1974
|
+
whiteSpace: 'nowrap',
|
|
1975
|
+
border: '0',
|
|
1976
|
+
} }, `${this.startDateLabel} selected, select ${this.endDateLabel.toLowerCase()}`))));
|
|
1720
1977
|
}
|
|
1721
1978
|
renderTimeLabel() {
|
|
1722
1979
|
const hasSlottedTimeLabel = this.el.querySelector('[slot="time-label"]') !== null;
|
|
@@ -1769,10 +2026,23 @@ export class Datetime {
|
|
|
1769
2026
|
];
|
|
1770
2027
|
}
|
|
1771
2028
|
getHeaderSelectedDateText() {
|
|
1772
|
-
const { activeParts, formatOptions,
|
|
2029
|
+
const { activeParts, formatOptions, titleSelectedDatesFormatter } = this;
|
|
1773
2030
|
const isArray = Array.isArray(activeParts);
|
|
2031
|
+
const dateFormatOptions = formatOptions?.date ?? { weekday: 'short', month: 'short', day: 'numeric' };
|
|
1774
2032
|
let headerText;
|
|
1775
|
-
if (
|
|
2033
|
+
if (this.isRangeMode) {
|
|
2034
|
+
headerText = this.getRangeHeaderText(formatOptions?.date ?? { month: 'short', day: 'numeric' });
|
|
2035
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
2036
|
+
try {
|
|
2037
|
+
const rangeValues = this.getRangeValueArray();
|
|
2038
|
+
headerText = titleSelectedDatesFormatter(rangeValues);
|
|
2039
|
+
}
|
|
2040
|
+
catch (e) {
|
|
2041
|
+
printIonError('[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
2042
|
+
}
|
|
2043
|
+
}
|
|
2044
|
+
}
|
|
2045
|
+
else if (this.isMultipleMode && isArray && activeParts.length !== 1) {
|
|
1776
2046
|
headerText = `${activeParts.length} days`; // default/fallback for multiple selection
|
|
1777
2047
|
if (titleSelectedDatesFormatter !== undefined) {
|
|
1778
2048
|
try {
|
|
@@ -1785,10 +2055,37 @@ export class Datetime {
|
|
|
1785
2055
|
}
|
|
1786
2056
|
else {
|
|
1787
2057
|
// for exactly 1 day selected (multiple set or not), show a formatted version of that
|
|
1788
|
-
headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(),
|
|
2058
|
+
headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), dateFormatOptions);
|
|
1789
2059
|
}
|
|
1790
2060
|
return headerText;
|
|
1791
2061
|
}
|
|
2062
|
+
/**
|
|
2063
|
+
* Returns the formatted range header text.
|
|
2064
|
+
* Shows "Start date - End date" with placeholders from startDateLabel/endDateLabel.
|
|
2065
|
+
*/
|
|
2066
|
+
getRangeHeaderText(dateFormatOptions) {
|
|
2067
|
+
const range = this.rangeParts;
|
|
2068
|
+
if (!range) {
|
|
2069
|
+
return `${this.startDateLabel} - ${this.endDateLabel}`;
|
|
2070
|
+
}
|
|
2071
|
+
const startText = getLocalizedDateTime(this.locale, range.start, dateFormatOptions);
|
|
2072
|
+
const endText = range.end ? getLocalizedDateTime(this.locale, range.end, dateFormatOptions) : this.endDateLabel;
|
|
2073
|
+
return `${startText} - ${endText}`;
|
|
2074
|
+
}
|
|
2075
|
+
/**
|
|
2076
|
+
* Returns the current range value as an ISO string array for
|
|
2077
|
+
* titleSelectedDatesFormatter and ionChange.
|
|
2078
|
+
*/
|
|
2079
|
+
getRangeValueArray() {
|
|
2080
|
+
const range = this.rangeParts;
|
|
2081
|
+
if (!range) {
|
|
2082
|
+
return [];
|
|
2083
|
+
}
|
|
2084
|
+
if (!range.end) {
|
|
2085
|
+
return [convertDataToISO(range.start)];
|
|
2086
|
+
}
|
|
2087
|
+
return [convertDataToISO(range.start), convertDataToISO(range.end)];
|
|
2088
|
+
}
|
|
1792
2089
|
renderHeader(showExpandedHeader = true) {
|
|
1793
2090
|
const hasSlottedTitle = this.el.querySelector('[slot="title"]') !== null;
|
|
1794
2091
|
if (!hasSlottedTitle && !this.showDefaultTitle) {
|
|
@@ -1823,7 +2120,7 @@ export class Datetime {
|
|
|
1823
2120
|
* Render entry point
|
|
1824
2121
|
* All presentation types are rendered from here.
|
|
1825
2122
|
*/
|
|
1826
|
-
renderDatetime(
|
|
2123
|
+
renderDatetime(theme) {
|
|
1827
2124
|
const { presentation, preferWheel } = this;
|
|
1828
2125
|
/**
|
|
1829
2126
|
* Certain presentation types have separate grid and wheel displays.
|
|
@@ -1837,7 +2134,7 @@ export class Datetime {
|
|
|
1837
2134
|
case 'date-time':
|
|
1838
2135
|
return [
|
|
1839
2136
|
this.renderHeader(),
|
|
1840
|
-
this.renderCalendar(
|
|
2137
|
+
this.renderCalendar(theme),
|
|
1841
2138
|
this.renderCalendarViewMonthYearPicker(),
|
|
1842
2139
|
this.renderTime(),
|
|
1843
2140
|
this.renderFooter(),
|
|
@@ -1846,7 +2143,7 @@ export class Datetime {
|
|
|
1846
2143
|
return [
|
|
1847
2144
|
this.renderHeader(),
|
|
1848
2145
|
this.renderTime(),
|
|
1849
|
-
this.renderCalendar(
|
|
2146
|
+
this.renderCalendar(theme),
|
|
1850
2147
|
this.renderCalendarViewMonthYearPicker(),
|
|
1851
2148
|
this.renderFooter(),
|
|
1852
2149
|
];
|
|
@@ -1859,24 +2156,62 @@ export class Datetime {
|
|
|
1859
2156
|
default:
|
|
1860
2157
|
return [
|
|
1861
2158
|
this.renderHeader(),
|
|
1862
|
-
this.renderCalendar(
|
|
2159
|
+
this.renderCalendar(theme),
|
|
1863
2160
|
this.renderCalendarViewMonthYearPicker(),
|
|
1864
2161
|
this.renderFooter(),
|
|
1865
2162
|
];
|
|
1866
2163
|
}
|
|
1867
2164
|
}
|
|
2165
|
+
/**
|
|
2166
|
+
* Get the icon to use for the next icon.
|
|
2167
|
+
* Use the icon set in the config.
|
|
2168
|
+
* If no icon is set in the config, use the default icon.
|
|
2169
|
+
*/
|
|
2170
|
+
get datetimeNextIcon() {
|
|
2171
|
+
return config.get('datetimeNextIcon', chevronForward);
|
|
2172
|
+
}
|
|
2173
|
+
/**
|
|
2174
|
+
* Get the icon to use for the previous icon.
|
|
2175
|
+
* Use the icon set in the config.
|
|
2176
|
+
* If no icon is set in the config, use the default icon.
|
|
2177
|
+
*/
|
|
2178
|
+
get datetimePreviousIcon() {
|
|
2179
|
+
return config.get('datetimePreviousIcon', chevronBack);
|
|
2180
|
+
}
|
|
2181
|
+
/**
|
|
2182
|
+
* Get the icon to use for the show month and year icon.
|
|
2183
|
+
* Use the icon set in the config.
|
|
2184
|
+
* If no icon is set in the config, use the default icon.
|
|
2185
|
+
*/
|
|
2186
|
+
get datetimeCollapsedIcon() {
|
|
2187
|
+
// Determine the theme and map to the default icon
|
|
2188
|
+
const theme = getIonTheme(this);
|
|
2189
|
+
const defaultIcon = theme === 'ios' ? chevronForward : caretDownSharp;
|
|
2190
|
+
return config.get('datetimeCollapsedIcon', defaultIcon);
|
|
2191
|
+
}
|
|
2192
|
+
/**
|
|
2193
|
+
* Get the icon to use for the hide month and year icon.
|
|
2194
|
+
* Use the icon set in the config.
|
|
2195
|
+
* If no icon is set in the config, use the default icon.
|
|
2196
|
+
*/
|
|
2197
|
+
get datetimeExpandedIcon() {
|
|
2198
|
+
// Determine the theme and map to the default icon
|
|
2199
|
+
const theme = getIonTheme(this);
|
|
2200
|
+
const defaultIcon = theme === 'ios' ? chevronDown : caretUpSharp;
|
|
2201
|
+
return config.get('datetimeExpandedIcon', defaultIcon);
|
|
2202
|
+
}
|
|
1868
2203
|
render() {
|
|
1869
2204
|
const { name, value, disabled, el, color, readonly, showMonthAndYear, preferWheel, presentation, size, isGridStyle, } = this;
|
|
1870
|
-
const
|
|
2205
|
+
const theme = getIonTheme(this);
|
|
1871
2206
|
const isMonthAndYearPresentation = presentation === 'year' || presentation === 'month' || presentation === 'month-year';
|
|
1872
2207
|
const shouldShowMonthAndYear = showMonthAndYear || isMonthAndYearPresentation;
|
|
1873
2208
|
const monthYearPickerOpen = showMonthAndYear && !isMonthAndYearPresentation;
|
|
1874
2209
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1875
2210
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1876
2211
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1877
|
-
return (h(Host, { key: '
|
|
2212
|
+
return (h(Host, { key: 'bbda23db005004f03b23e39d1e8c622e588ba7c2', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
|
|
1878
2213
|
...createColorClasses(color, {
|
|
1879
|
-
[
|
|
2214
|
+
[theme]: true,
|
|
1880
2215
|
['datetime-readonly']: readonly,
|
|
1881
2216
|
['datetime-disabled']: disabled,
|
|
1882
2217
|
'show-month-and-year': shouldShowMonthAndYear,
|
|
@@ -1885,21 +2220,24 @@ export class Datetime {
|
|
|
1885
2220
|
[`datetime-size-${size}`]: true,
|
|
1886
2221
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1887
2222
|
[`datetime-grid`]: isGridStyle,
|
|
2223
|
+
[`datetime-range`]: this.isRangeMode,
|
|
1888
2224
|
}),
|
|
1889
|
-
} }, h("div", { key: '
|
|
2225
|
+
} }, h("div", { key: '788e47cd7e8b022a450c7938d713a7d50d43e4f7', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(theme)));
|
|
1890
2226
|
}
|
|
1891
2227
|
static get is() { return "ion-datetime"; }
|
|
1892
2228
|
static get encapsulation() { return "shadow"; }
|
|
1893
2229
|
static get originalStyleUrls() {
|
|
1894
2230
|
return {
|
|
1895
2231
|
"ios": ["datetime.ios.scss"],
|
|
1896
|
-
"md": ["datetime.md.scss"]
|
|
2232
|
+
"md": ["datetime.md.scss"],
|
|
2233
|
+
"ionic": ["datetime.ionic.scss"]
|
|
1897
2234
|
};
|
|
1898
2235
|
}
|
|
1899
2236
|
static get styleUrls() {
|
|
1900
2237
|
return {
|
|
1901
2238
|
"ios": ["datetime.ios.css"],
|
|
1902
|
-
"md": ["datetime.md.css"]
|
|
2239
|
+
"md": ["datetime.md.css"],
|
|
2240
|
+
"ionic": ["datetime.ionic.css"]
|
|
1903
2241
|
};
|
|
1904
2242
|
}
|
|
1905
2243
|
static get properties() {
|
|
@@ -2346,7 +2684,10 @@ export class Datetime {
|
|
|
2346
2684
|
"required": false,
|
|
2347
2685
|
"optional": false,
|
|
2348
2686
|
"docs": {
|
|
2349
|
-
"tags": [
|
|
2687
|
+
"tags": [{
|
|
2688
|
+
"name": "deprecated",
|
|
2689
|
+
"text": "Use `selectionMode=\"multiple\"` instead."
|
|
2690
|
+
}],
|
|
2350
2691
|
"text": "If `true`, multiple dates can be selected at once. Only\napplies to `presentation=\"date\"` and `preferWheel=\"false\"`."
|
|
2351
2692
|
},
|
|
2352
2693
|
"getter": false,
|
|
@@ -2355,6 +2696,65 @@ export class Datetime {
|
|
|
2355
2696
|
"attribute": "multiple",
|
|
2356
2697
|
"defaultValue": "false"
|
|
2357
2698
|
},
|
|
2699
|
+
"selectionMode": {
|
|
2700
|
+
"type": "string",
|
|
2701
|
+
"mutable": false,
|
|
2702
|
+
"complexType": {
|
|
2703
|
+
"original": "'multiple' | 'range'",
|
|
2704
|
+
"resolved": "\"multiple\" | \"range\" | undefined",
|
|
2705
|
+
"references": {}
|
|
2706
|
+
},
|
|
2707
|
+
"required": false,
|
|
2708
|
+
"optional": true,
|
|
2709
|
+
"docs": {
|
|
2710
|
+
"tags": [],
|
|
2711
|
+
"text": "Controls the date selection behavior.\n`'multiple'` enables selecting multiple individual dates.\n`'range'` enables selecting a start and end date range.\nWhen unset, single-date selection is used.\n\nRange selection only works with `presentation=\"date\"` and `preferWheel=\"false\"`."
|
|
2712
|
+
},
|
|
2713
|
+
"getter": false,
|
|
2714
|
+
"setter": false,
|
|
2715
|
+
"reflect": false,
|
|
2716
|
+
"attribute": "selection-mode"
|
|
2717
|
+
},
|
|
2718
|
+
"startDateLabel": {
|
|
2719
|
+
"type": "string",
|
|
2720
|
+
"mutable": false,
|
|
2721
|
+
"complexType": {
|
|
2722
|
+
"original": "string",
|
|
2723
|
+
"resolved": "string",
|
|
2724
|
+
"references": {}
|
|
2725
|
+
},
|
|
2726
|
+
"required": false,
|
|
2727
|
+
"optional": false,
|
|
2728
|
+
"docs": {
|
|
2729
|
+
"tags": [],
|
|
2730
|
+
"text": "The text shown in the datetime header when the start of the range\nis empty, also used by screen readers to announce the start date.\nOnly applies when `selectionMode=\"range\"`."
|
|
2731
|
+
},
|
|
2732
|
+
"getter": false,
|
|
2733
|
+
"setter": false,
|
|
2734
|
+
"reflect": false,
|
|
2735
|
+
"attribute": "start-date-label",
|
|
2736
|
+
"defaultValue": "'Start date'"
|
|
2737
|
+
},
|
|
2738
|
+
"endDateLabel": {
|
|
2739
|
+
"type": "string",
|
|
2740
|
+
"mutable": false,
|
|
2741
|
+
"complexType": {
|
|
2742
|
+
"original": "string",
|
|
2743
|
+
"resolved": "string",
|
|
2744
|
+
"references": {}
|
|
2745
|
+
},
|
|
2746
|
+
"required": false,
|
|
2747
|
+
"optional": false,
|
|
2748
|
+
"docs": {
|
|
2749
|
+
"tags": [],
|
|
2750
|
+
"text": "The text shown in the datetime header when the end of the range\nis empty, also used by screen readers to announce the end date.\nOnly applies when `selectionMode=\"range\"`."
|
|
2751
|
+
},
|
|
2752
|
+
"getter": false,
|
|
2753
|
+
"setter": false,
|
|
2754
|
+
"reflect": false,
|
|
2755
|
+
"attribute": "end-date-label",
|
|
2756
|
+
"defaultValue": "'End date'"
|
|
2757
|
+
},
|
|
2358
2758
|
"highlightedDates": {
|
|
2359
2759
|
"type": "unknown",
|
|
2360
2760
|
"mutable": false,
|
|
@@ -2713,6 +3113,12 @@ export class Datetime {
|
|
|
2713
3113
|
"Promise": {
|
|
2714
3114
|
"location": "global",
|
|
2715
3115
|
"id": "global::Promise"
|
|
3116
|
+
},
|
|
3117
|
+
"DatetimeParts": {
|
|
3118
|
+
"location": "import",
|
|
3119
|
+
"path": "./datetime-interface",
|
|
3120
|
+
"id": "src/components/datetime/datetime-interface.ts::DatetimeParts",
|
|
3121
|
+
"referenceLocation": "DatetimeParts"
|
|
2716
3122
|
}
|
|
2717
3123
|
},
|
|
2718
3124
|
"return": "Promise<void>"
|