@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
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var focusVisible = require('./focus-visible-
|
|
8
|
-
var helpers = require('./helpers-
|
|
9
|
-
var
|
|
6
|
+
var index = require('./index-CB1PuDlX.js');
|
|
7
|
+
var focusVisible = require('./focus-visible-DGPRKkcx.js');
|
|
8
|
+
var helpers = require('./helpers-DHNLF4fD.js');
|
|
9
|
+
var overlays = require('./overlays-DziOxcCT.js');
|
|
10
10
|
var dir = require('./dir-Bma_9Lqh.js');
|
|
11
|
-
var theme = require('./theme-
|
|
12
|
-
var index$1 = require('./index-
|
|
13
|
-
var ionicGlobal = require('./ionic-global-
|
|
14
|
-
var format = require('./format-
|
|
15
|
-
require('./
|
|
11
|
+
var theme = require('./theme-Cy4joHPt.js');
|
|
12
|
+
var index$1 = require('./index-CxDnX7hd.js');
|
|
13
|
+
var ionicGlobal = require('./ionic-global-CZX42KL4.js');
|
|
14
|
+
var format = require('./format-C6r4Asi4.js');
|
|
15
|
+
require('./index-DkNv4J_i.js');
|
|
16
|
+
require('./framework-delegate-CAdDEnFS.js');
|
|
16
17
|
require('./gesture-controller-CeJslptU.js');
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -53,20 +54,20 @@ const hour23 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
|
|
|
53
54
|
// h24 hour system uses 1-24. Midnight starts at 24:00.
|
|
54
55
|
const hour24 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0];
|
|
55
56
|
/**
|
|
56
|
-
* Given a locale and a
|
|
57
|
+
* Given a locale and a theme,
|
|
57
58
|
* return an array with formatted days
|
|
58
|
-
* of the week. iOS
|
|
59
|
-
* such as "Mon" or "Tue".
|
|
59
|
+
* of the week. iOS and Ionic themes should
|
|
60
|
+
* display days such as "Mon" or "Tue".
|
|
60
61
|
* MD should display days such as "M"
|
|
61
62
|
* or "T".
|
|
62
63
|
*/
|
|
63
|
-
const getDaysOfWeek = (locale,
|
|
64
|
+
const getDaysOfWeek = (locale, theme, firstDayOfWeek = 0) => {
|
|
64
65
|
/**
|
|
65
66
|
* Nov 1st, 2020 starts on a Sunday.
|
|
66
67
|
* ion-datetime assumes weeks start on Sunday,
|
|
67
68
|
* but is configurable via `firstDayOfWeek`.
|
|
68
69
|
*/
|
|
69
|
-
const weekdayFormat =
|
|
70
|
+
const weekdayFormat = theme === 'md' ? 'narrow' : 'short';
|
|
70
71
|
const intl = new Intl.DateTimeFormat(locale, { weekday: weekdayFormat });
|
|
71
72
|
const startDate = new Date('11/01/2020');
|
|
72
73
|
const daysOfWeek = [];
|
|
@@ -606,7 +607,7 @@ const isDayDisabled = (refParts, minParts, maxParts, dayValues) => {
|
|
|
606
607
|
* Given a locale, a date, the selected date(s), and today's date,
|
|
607
608
|
* generate the state for a given calendar day button.
|
|
608
609
|
*/
|
|
609
|
-
const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues) => {
|
|
610
|
+
const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues, rangeParts) => {
|
|
610
611
|
/**
|
|
611
612
|
* activeParts signals what day(s) are currently selected in the datetime.
|
|
612
613
|
* If multiple="true", this will be an array, but the logic in this util
|
|
@@ -622,6 +623,20 @@ const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts
|
|
|
622
623
|
const isActive = activePartsArray.find((parts) => format.isSameDay(refParts, parts)) !== undefined;
|
|
623
624
|
const isToday = format.isSameDay(refParts, todayParts);
|
|
624
625
|
const disabled = isDayDisabled(refParts, minParts, maxParts, dayValues);
|
|
626
|
+
/**
|
|
627
|
+
* Range state: determine if this day is the range start, end, or in between.
|
|
628
|
+
*/
|
|
629
|
+
let isRangeStart = false;
|
|
630
|
+
let isRangeEnd = false;
|
|
631
|
+
let isInRange = false;
|
|
632
|
+
if (rangeParts) {
|
|
633
|
+
const { start, end } = rangeParts;
|
|
634
|
+
isRangeStart = format.isSameDay(refParts, start);
|
|
635
|
+
if (end) {
|
|
636
|
+
isRangeEnd = format.isSameDay(refParts, end);
|
|
637
|
+
isInRange = !disabled && !isRangeStart && !isRangeEnd && format.isAfter(refParts, start) && format.isBefore(refParts, end);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
625
640
|
/**
|
|
626
641
|
* Note that we always return one object regardless of whether activeParts
|
|
627
642
|
* was an array, since we pare down to one value for isActive.
|
|
@@ -630,6 +645,9 @@ const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts
|
|
|
630
645
|
disabled,
|
|
631
646
|
isActive,
|
|
632
647
|
isToday,
|
|
648
|
+
isRangeStart,
|
|
649
|
+
isRangeEnd,
|
|
650
|
+
isInRange,
|
|
633
651
|
ariaSelected: isActive ? 'true' : null,
|
|
634
652
|
ariaLabel: format.generateDayAriaLabel(locale, isToday, refParts),
|
|
635
653
|
text: refParts.day != null ? format.getDay(locale, refParts) : null,
|
|
@@ -752,9 +770,11 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
|
|
|
752
770
|
}
|
|
753
771
|
};
|
|
754
772
|
|
|
755
|
-
const datetimeIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host(.ion-color) .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{-ms-flex-align:stretch;align-items:stretch;height:100%}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);font-size:min(1.375rem, 35.2px)}:host(.ion-color) .calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary, #0054e9);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}`;
|
|
773
|
+
const datetimeIonicCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-cover){width:100%}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .datetime-year{display:none}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons,::slotted([slot=buttons]),.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible;z-index:0}:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-start::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;inset-inline-start:0;inset-inline-end:0;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:-webkit-gradient(linear, left top, left bottom, from(var(--range-background)), to(var(--range-background))), -webkit-gradient(linear, left top, left bottom, from(var(--background)), to(var(--background)));background:linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%}:host .calendar-day-wrapper-range-end::before{inset-inline-end:50%}:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before{inset-inline-end:-1px}:host .calendar-day-wrapper-in-range:nth-child(7n)::before,:host .calendar-day-wrapper-range-start:nth-child(7n)::before{inset-inline-end:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before{inset-inline-start:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled.datetime-range) .calendar-month-grid{opacity:0.4}:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled]{opacity:1}.calendar-day{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}.calendar-day[disabled]{pointer-events:none}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{display:-ms-flexbox;display:flex;border:none;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.in-item){position:static}.calendar-month-year{min-width:0}.calendar-month-year-toggle{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle ion-icon{-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--focus-ring-color:var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));--focus-ring-width:var(--token-border-size-050, var(--token-scale-050, 2px));--body-opacity:0;--year-opacity:0}:host .calendar-body{opacity:var(--body-opacity)}:host .datetime-year{opacity:var(--year-opacity)}:host(.datetime-ready) .calendar-body{--body-opacity:1}:host(.datetime-ready) .datetime-year{--year-opacity:1}:host .datetime-header{-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:var(--token-space-400, var(--token-scale-400, 16px));display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start;-ms-flex-pack:justify;justify-content:space-between;height:var(--token-scale-1400, 56px);margin-bottom:var(--token-space-200, var(--token-scale-200, 8px));border-bottom:solid var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-primitives-neutral-400, #d0d7df)}:host .datetime-header .datetime-title{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.555556;color:var(--token-primitives-neutral-800, #6c727a)}:host .datetime-header .datetime-selected-date{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.714286;color:var(--token-primitives-neutral-1000, #383e45)}.calendar-action-buttons{padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));-ms-flex-align:center;align-items:center;height:var(--token-scale-1400, 56px);-webkit-box-sizing:border-box;box-sizing:border-box}.calendar-month-year{-ms-flex:1 0 0px;flex:1 0 0}.calendar-month-year-toggle{border-radius:var(--token-border-radius-full, 999px);font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-100, 0.01em);line-height:1.5;-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));min-width:var(--token-scale-1600, 64px);min-height:var(--token-scale-1000, 40px);border:var(--focus-ring-width) solid transparent;color:var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}@media (any-hover: hover){.calendar-month-year-toggle:hover{background:var(--token-primitives-neutral-200, #ebeef2)}}.calendar-month-year-toggle.ion-focused{border-color:var(--focus-ring-color)}.calendar-month-year-toggle.ion-activated{background:var(--token-primitives-neutral-200, #ebeef2)}.calendar-next-prev ion-button.button-has-icon-only{--color:var(--token-primitives-neutral-1000, #383e45);--background-activated:var(--token-primitives-neutral-200, #ebeef2);--background-hover:var(--token-primitives-neutral-200, #ebeef2);--background-hover-opacity:1;min-height:var(--token-scale-1000, 40px)}.calendar-next-prev ion-button.button-has-icon-only.ion-focused::part(native){border:var(--token-border-size-050, var(--token-scale-050, 2px)) solid var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));outline:none}.calendar-days-of-week{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-300, 0.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-150, 0.015em);line-height:1.666667;text-transform:uppercase;-ms-flex-line-pack:center;align-content:center;height:var(--token-scale-1200, 48px);color:var(--token-primitives-neutral-800, #6c727a)}.calendar-day{border-radius:var(--token-border-radius-full, 999px);-webkit-padding-start:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-padding-end:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-end:var(--token-space-100, var(--token-scale-100, 4px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-100, 0.01em);line-height:1.428571;width:var(--token-scale-1200, 48px);min-width:var(--token-scale-1200, 48px);height:var(--token-scale-1200, 48px);color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}.calendar-day[disabled]:not(.calendar-day-constrained){color:var(--token-text-disabled, var(--token-primitives-neutral-500, #9fa5ad))}.calendar-day.calendar-day-today{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active.calendar-day-adjacent-day{background:var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff)))}.calendar-day:focus-visible{border:var(--focus-ring-width) solid var(--focus-ring-color)}@media (any-hover: hover){.calendar-day:not([disabled]):not(:active):not(.calendar-day-in-range):hover{background:var(--token-semantics-primary-200, var(--token-primitives-blue-200, #e4e8ff))}}.calendar-day:active,.calendar-day.calendar-day-adjacent-day:active{background:var(--token-bg-primary-subtle-press, var(--token-semantics-primary-300, var(--token-primitives-blue-300, #d0d7fa)))}.calendar-day.calendar-day-adjacent-day{color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a))}.calendar-day.calendar-day-active.calendar-day-adjacent-day{color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host{--range-background:var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff)));--range-track-height:var(--token-scale-1200, 48px)}:host .calendar-day.calendar-day-range-start,:host .calendar-day.calendar-day-range-end{border-radius:var(--token-border-radius-full, 999px);background:var(--token-bg-primary-base-default, var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef))));color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}.calendar-day.calendar-day-in-range{border-radius:0;background:none;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}.calendar-day.calendar-day-today.calendar-day-in-range{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}:host .calendar-day.calendar-day-today.calendar-day-range-start,:host .calendar-day.calendar-day-today.calendar-day-range-end{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}@media (any-hover: hover){.calendar-day.calendar-day-range-start:not([disabled]):not(:active):hover,.calendar-day.calendar-day-range-end:not([disabled]):not(:active):hover{background:var(--token-bg-primary-base-press, var(--token-semantics-primary-900, var(--token-primitives-blue-900, #0d4bc3)))}}.calendar-day.calendar-day-range-start:active,.calendar-day.calendar-day-range-end:active{background:var(--token-bg-primary-base-press, var(--token-semantics-primary-900, var(--token-primitives-blue-900, #0d4bc3)))}.calendar-day.calendar-day-in-range:active{background:var(--token-bg-primary-subtle-press, var(--token-semantics-primary-300, var(--token-primitives-blue-300, #d0d7fa)))}:host(.datetime-disabled.datetime-range) .calendar-day[disabled]:not(.calendar-day-constrained){color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-adjacent-day[disabled]{color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a))}:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-today[disabled]{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-range-start[disabled],:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-range-end[disabled]{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}:host(.datetime-readonly) .calendar-day.calendar-day-range-start[disabled],:host(.datetime-readonly) .calendar-day.calendar-day-range-end[disabled]{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}:host(.datetime-readonly) .calendar-day.calendar-day-in-range[disabled]{color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host(.datetime-readonly) .calendar-day.calendar-day-today.calendar-day-in-range[disabled]{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}:host(.datetime-readonly) .calendar-day.calendar-day-today.calendar-day-range-start[disabled],:host(.datetime-readonly) .calendar-day.calendar-day-today.calendar-day-range-end[disabled]{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}:host .datetime-time{-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host .datetime-time .time-header{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-100, 0.01em);line-height:1.5;color:var(--token-primitives-neutral-800, #6c727a)}:host .datetime-time button{-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px));padding-top:var(--token-space-0, var(--token-scale-0, 0px));padding-bottom:var(--token-space-0, var(--token-scale-0, 0px));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.714286;border-radius:var(--token-border-radius-full, 999px);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:var(--token-scale-800, 32px);background-color:var(--token-primitives-neutral-100, #f6f7fa);color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host .datetime-footer{padding-left:0;padding-right:0;padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:0;margin-left:0;margin-right:0;margin-top:var(--token-space-200, var(--token-scale-200, 8px));margin-bottom:0;border-left:0;border-right:0;border-top:solid var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-primitives-neutral-400, #d0d7df);border-bottom:0}:host .datetime-buttons .datetime-action-buttons,.datetime-action-buttons .datetime-action-buttons-container,::slotted([slot=buttons]){-ms-flex-flow:column;flex-flow:column;-ms-flex-align:stretch;align-items:stretch;gap:var(--token-space-200, var(--token-scale-200, 8px))}`;
|
|
756
774
|
|
|
757
|
-
const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color){--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-primary, #0054e9);color:var(--title-color)}:host(.ion-color) .datetime-header{background:var(--ion-color-base)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-primary, #0054e9);color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-primary, #0054e9);background:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}`;
|
|
775
|
+
const datetimeIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-cover){width:100%}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .datetime-year{display:none}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons,::slotted([slot=buttons]),.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible;z-index:0}:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-start::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;inset-inline-start:0;inset-inline-end:0;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:-webkit-gradient(linear, left top, left bottom, from(var(--range-background)), to(var(--range-background))), -webkit-gradient(linear, left top, left bottom, from(var(--background)), to(var(--background)));background:linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%}:host .calendar-day-wrapper-range-end::before{inset-inline-end:50%}:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before{inset-inline-end:-1px}:host .calendar-day-wrapper-in-range:nth-child(7n)::before,:host .calendar-day-wrapper-range-start:nth-child(7n)::before{inset-inline-end:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before{inset-inline-start:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled.datetime-range) .calendar-month-grid{opacity:0.4}:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled]{opacity:1}.calendar-day{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}.calendar-day[disabled]{pointer-events:none}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{display:-ms-flexbox;display:flex;border:none;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.in-item){position:static}.calendar-month-year{min-width:0}.calendar-month-year-toggle{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle ion-icon{-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}:host{}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host .calendar-body,:host .datetime-year{opacity:0}:host(.datetime-ready) .calendar-body,:host(.datetime-ready) .datetime-year{opacity:1}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host .calendar-action-buttons ion-button{--background:transparent}.calendar-day{border-radius:50%;font-family:var(--ion-font-family, inherit)}:host .calendar-day[disabled]{opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-next-prev{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:start}.calendar-next-prev ion-button ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000)}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.calendar-month-year-toggle::after{right:0;left:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host .datetime-action-buttons{-ms-flex-pack:justify;justify-content:space-between}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host(.ion-color) .calendar-action-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-action-buttons .calendar-next-prev{-ms-flex-align:stretch;align-items:stretch}.calendar-next-prev ion-button{--padding-top:0;--padding-bottom:0;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.calendar-next-prev ion-button ion-icon[slot=icon-only]{font-size:1.65em;line-height:0.67}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.12);font-size:min(1.375rem, 35.2px)}:host(.ion-color) .calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.12)}:host .calendar-day.calendar-day-today{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary, #0054e9);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host{--range-background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.12);--range-track-height:40px;--range-track-edge-overflow:8px}:host(.ion-color){--range-background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.datetime-range) .calendar-day-wrapper{height:auto}:host .calendar-day.calendar-day-range-start,:host .calendar-day.calendar-day-range-end{border-radius:50%;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-range-start,:host(.ion-color) .calendar-day.calendar-day-range-end{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons,::slotted([slot=buttons]){display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons,::slotted([slot=buttons]){width:100%}`;
|
|
776
|
+
|
|
777
|
+
const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-cover){width:100%}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .datetime-year{display:none}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons,::slotted([slot=buttons]),.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible;z-index:0}:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-start::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;inset-inline-start:0;inset-inline-end:0;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:-webkit-gradient(linear, left top, left bottom, from(var(--range-background)), to(var(--range-background))), -webkit-gradient(linear, left top, left bottom, from(var(--background)), to(var(--background)));background:linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%}:host .calendar-day-wrapper-range-end::before{inset-inline-end:50%}:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before{inset-inline-end:-1px}:host .calendar-day-wrapper-in-range:nth-child(7n)::before,:host .calendar-day-wrapper-range-start:nth-child(7n)::before{inset-inline-end:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before{inset-inline-start:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled.datetime-range) .calendar-month-grid{opacity:0.4}:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled]{opacity:1}.calendar-day{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}.calendar-day[disabled]{pointer-events:none}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{display:-ms-flexbox;display:flex;border:none;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.in-item){position:static}.calendar-month-year{min-width:0}.calendar-month-year-toggle{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle ion-icon{-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}:host{}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host .calendar-body,:host .datetime-year{opacity:0}:host(.datetime-ready) .calendar-body,:host(.datetime-ready) .datetime-year{opacity:1}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host .calendar-action-buttons ion-button{--background:transparent}.calendar-day{border-radius:50%;font-family:var(--ion-font-family, inherit)}:host .calendar-day[disabled]{opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-next-prev{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:start}.calendar-next-prev ion-button ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000)}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.calendar-month-year-toggle::after{right:0;left:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host .datetime-action-buttons{-ms-flex-pack:justify;justify-content:space-between}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color){--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-primary, #0054e9);color:var(--title-color)}:host(.ion-color) .datetime-header{background:var(--ion-color-base)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-next-prev ion-button{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.calendar-next-prev ion-button ion-icon[slot=icon-only]{font-size:1.8em}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-primary, #0054e9);color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-primary, #0054e9);background:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host{--range-background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.12);--range-track-height:42px;--range-track-edge-overflow:10px}:host(.ion-color){--range-background:rgba(var(--ion-color-base-rgb), 0.12)}:host .calendar-day.calendar-day-range-start,:host .calendar-day.calendar-day-range-end{border-radius:50%;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-range-start,:host(.ion-color) .calendar-day.calendar-day-range-end{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}`;
|
|
758
778
|
|
|
759
779
|
const Datetime = class {
|
|
760
780
|
constructor(hostRef) {
|
|
@@ -840,8 +860,22 @@ const Datetime = class {
|
|
|
840
860
|
/**
|
|
841
861
|
* If `true`, multiple dates can be selected at once. Only
|
|
842
862
|
* applies to `presentation="date"` and `preferWheel="false"`.
|
|
863
|
+
*
|
|
864
|
+
* @deprecated Use `selectionMode="multiple"` instead.
|
|
843
865
|
*/
|
|
844
866
|
this.multiple = false;
|
|
867
|
+
/**
|
|
868
|
+
* The text shown in the datetime header when the start of the range
|
|
869
|
+
* is empty, also used by screen readers to announce the start date.
|
|
870
|
+
* Only applies when `selectionMode="range"`.
|
|
871
|
+
*/
|
|
872
|
+
this.startDateLabel = 'Start date';
|
|
873
|
+
/**
|
|
874
|
+
* The text shown in the datetime header when the end of the range
|
|
875
|
+
* is empty, also used by screen readers to announce the end date.
|
|
876
|
+
* Only applies when `selectionMode="range"`.
|
|
877
|
+
*/
|
|
878
|
+
this.endDateLabel = 'End date';
|
|
845
879
|
/**
|
|
846
880
|
* If `true`, a header will be shown above the calendar
|
|
847
881
|
* picker. This will include both the slotted title, and
|
|
@@ -894,8 +928,8 @@ const Datetime = class {
|
|
|
894
928
|
*/
|
|
895
929
|
this.preferWheel = false;
|
|
896
930
|
this.warnIfIncorrectValueUsage = () => {
|
|
897
|
-
const {
|
|
898
|
-
if (!
|
|
931
|
+
const { value } = this;
|
|
932
|
+
if (!this.isMultipleMode && !this.isRangeMode && Array.isArray(value)) {
|
|
899
933
|
/**
|
|
900
934
|
* We do some processing on the `value` array so
|
|
901
935
|
* that it looks more like an array when logged to
|
|
@@ -904,7 +938,13 @@ const Datetime = class {
|
|
|
904
938
|
* Default toString() behavior: a,b
|
|
905
939
|
* Custom behavior: ['a', 'b']
|
|
906
940
|
*/
|
|
907
|
-
index.printIonWarning(`[ion-datetime] - An array of values was passed, but multiple
|
|
941
|
+
index.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.
|
|
942
|
+
|
|
943
|
+
Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
|
|
944
|
+
`, this.el);
|
|
945
|
+
}
|
|
946
|
+
if (this.isRangeMode && Array.isArray(value) && value.length > 2) {
|
|
947
|
+
index.printIonWarning(`[ion-datetime] - More than 2 values were passed with selectionMode="range". Only the first and last values will be used.
|
|
908
948
|
|
|
909
949
|
Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
|
|
910
950
|
`, this.el);
|
|
@@ -930,6 +970,9 @@ const Datetime = class {
|
|
|
930
970
|
};
|
|
931
971
|
this.getActivePart = () => {
|
|
932
972
|
const { activeParts } = this;
|
|
973
|
+
if (this.isRangeParts(activeParts)) {
|
|
974
|
+
return activeParts.start;
|
|
975
|
+
}
|
|
933
976
|
return Array.isArray(activeParts) ? activeParts[0] : activeParts;
|
|
934
977
|
};
|
|
935
978
|
this.closeParentOverlay = (role) => {
|
|
@@ -944,6 +987,33 @@ const Datetime = class {
|
|
|
944
987
|
...parts,
|
|
945
988
|
};
|
|
946
989
|
};
|
|
990
|
+
/**
|
|
991
|
+
* Checks whether the span from start to end contains any disabled day.
|
|
992
|
+
* Used by range mode to prevent selecting across disabled dates.
|
|
993
|
+
*/
|
|
994
|
+
this.rangeContainsDisabledDate = (start, end) => {
|
|
995
|
+
const { minParts, maxParts, parsedDayValues, parsedMonthValues, parsedYearValues, isDateEnabled } = this;
|
|
996
|
+
let cursor = format.getNextDay(start);
|
|
997
|
+
while (format.isBefore(cursor, end)) {
|
|
998
|
+
if (isDayDisabled(cursor, minParts, maxParts, parsedDayValues) ||
|
|
999
|
+
(parsedMonthValues !== undefined && !parsedMonthValues.includes(cursor.month)) ||
|
|
1000
|
+
(parsedYearValues !== undefined && !parsedYearValues.includes(cursor.year))) {
|
|
1001
|
+
return true;
|
|
1002
|
+
}
|
|
1003
|
+
if (isDateEnabled) {
|
|
1004
|
+
try {
|
|
1005
|
+
if (!isDateEnabled(format.convertDataToISO(cursor))) {
|
|
1006
|
+
return true;
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
catch {
|
|
1010
|
+
// Swallow user callback exceptions during validation
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
cursor = format.getNextDay(cursor);
|
|
1014
|
+
}
|
|
1015
|
+
return false;
|
|
1016
|
+
};
|
|
947
1017
|
this.setActiveParts = (parts, removeDate = false) => {
|
|
948
1018
|
/** if the datetime component is in readonly mode,
|
|
949
1019
|
* allow browsing of the calendar without changing
|
|
@@ -953,7 +1023,7 @@ const Datetime = class {
|
|
|
953
1023
|
return;
|
|
954
1024
|
}
|
|
955
1025
|
this.hasUnconfirmedSelection = true;
|
|
956
|
-
const {
|
|
1026
|
+
const { minParts, maxParts, activeParts } = this;
|
|
957
1027
|
/**
|
|
958
1028
|
* When setting the active parts, it is possible
|
|
959
1029
|
* to set invalid data. For example,
|
|
@@ -966,7 +1036,10 @@ const Datetime = class {
|
|
|
966
1036
|
*/
|
|
967
1037
|
const validatedParts = format.validateParts(parts, minParts, maxParts);
|
|
968
1038
|
this.setWorkingParts(validatedParts);
|
|
969
|
-
if (
|
|
1039
|
+
if (this.isRangeMode) {
|
|
1040
|
+
this.setActivePartsRange(validatedParts);
|
|
1041
|
+
}
|
|
1042
|
+
else if (this.isMultipleMode) {
|
|
970
1043
|
const activePartsArray = Array.isArray(activeParts) ? activeParts : [activeParts];
|
|
971
1044
|
if (removeDate) {
|
|
972
1045
|
this.activeParts = activePartsArray.filter((p) => !format.isSameDay(p, validatedParts));
|
|
@@ -986,6 +1059,25 @@ const Datetime = class {
|
|
|
986
1059
|
}
|
|
987
1060
|
this.confirm();
|
|
988
1061
|
};
|
|
1062
|
+
/**
|
|
1063
|
+
* Handles range selection logic when a day is clicked.
|
|
1064
|
+
*
|
|
1065
|
+
* Creating a new range: first click sets start, second sets end.
|
|
1066
|
+
* Modifying an existing range:
|
|
1067
|
+
* - Before range → new start
|
|
1068
|
+
* - Within range → new end
|
|
1069
|
+
* - After range → new end
|
|
1070
|
+
* If the resulting span contains a disabled date, start a new range instead.
|
|
1071
|
+
*/
|
|
1072
|
+
this.setActivePartsRange = (parts) => {
|
|
1073
|
+
const current = this.rangeParts;
|
|
1074
|
+
if (!current || format.isBefore(parts, current.start) || this.rangeContainsDisabledDate(current.start, parts)) {
|
|
1075
|
+
this.activeParts = { start: parts };
|
|
1076
|
+
}
|
|
1077
|
+
else {
|
|
1078
|
+
this.activeParts = { start: current.start, end: parts };
|
|
1079
|
+
}
|
|
1080
|
+
};
|
|
989
1081
|
this.initializeKeyboardListeners = () => {
|
|
990
1082
|
const calendarBodyRef = this.calendarBodyRef;
|
|
991
1083
|
if (!calendarBodyRef) {
|
|
@@ -1397,6 +1489,57 @@ const Datetime = class {
|
|
|
1397
1489
|
if (hasValue) {
|
|
1398
1490
|
format.warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
|
|
1399
1491
|
}
|
|
1492
|
+
/**
|
|
1493
|
+
* Range mode: convert the value array into DatetimeRangeParts.
|
|
1494
|
+
*/
|
|
1495
|
+
if (this.isRangeMode) {
|
|
1496
|
+
/**
|
|
1497
|
+
* The calendar navigates to the start of the range, or to the default
|
|
1498
|
+
* date when there is nothing selected, so that an empty range mode
|
|
1499
|
+
* opens on the same month as the other selection modes.
|
|
1500
|
+
*/
|
|
1501
|
+
let navigateTo;
|
|
1502
|
+
if (hasValue && Array.isArray(valueToProcess)) {
|
|
1503
|
+
let rangeValues = valueToProcess;
|
|
1504
|
+
// If more than 2 entries, use first and last
|
|
1505
|
+
if (rangeValues.length > 2) {
|
|
1506
|
+
rangeValues = [rangeValues[0], rangeValues[rangeValues.length - 1]];
|
|
1507
|
+
}
|
|
1508
|
+
let startParts = rangeValues[0];
|
|
1509
|
+
let endParts = rangeValues.length > 1 ? rangeValues[1] : undefined;
|
|
1510
|
+
// Normalize reversed pairs so earlier date is start
|
|
1511
|
+
if (endParts && format.isAfter(startParts, endParts)) {
|
|
1512
|
+
const temp = startParts;
|
|
1513
|
+
startParts = endParts;
|
|
1514
|
+
endParts = temp;
|
|
1515
|
+
}
|
|
1516
|
+
this.activeParts = endParts ? { start: startParts, end: endParts } : { start: startParts };
|
|
1517
|
+
/**
|
|
1518
|
+
* Stay on the end date's month when it is already showing, such as
|
|
1519
|
+
* right after the user picks it, instead of jumping back to the start.
|
|
1520
|
+
*/
|
|
1521
|
+
navigateTo =
|
|
1522
|
+
endParts && endParts.month === workingParts.month && endParts.year === workingParts.year
|
|
1523
|
+
? endParts
|
|
1524
|
+
: startParts;
|
|
1525
|
+
}
|
|
1526
|
+
else {
|
|
1527
|
+
this.activeParts = [];
|
|
1528
|
+
navigateTo = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
|
|
1529
|
+
}
|
|
1530
|
+
const targetValue = format.clampDate(navigateTo, minParts, maxParts);
|
|
1531
|
+
const { month, day, year } = targetValue;
|
|
1532
|
+
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
1533
|
+
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
1534
|
+
const { isGridStyle, showMonthAndYear } = this;
|
|
1535
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
1536
|
+
this.animateToDate(targetValue);
|
|
1537
|
+
}
|
|
1538
|
+
else {
|
|
1539
|
+
this.setWorkingParts({ month, day, year, hour: 0, minute: 0, ampm: 'am' });
|
|
1540
|
+
}
|
|
1541
|
+
return;
|
|
1542
|
+
}
|
|
1400
1543
|
/**
|
|
1401
1544
|
* If there are multiple values, clamp to the last one.
|
|
1402
1545
|
* This is because the last value is the one that the user
|
|
@@ -1558,6 +1701,27 @@ const Datetime = class {
|
|
|
1558
1701
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1559
1702
|
return hasDatePresentation && !preferWheel;
|
|
1560
1703
|
}
|
|
1704
|
+
get isMultipleMode() {
|
|
1705
|
+
return this.selectionMode === 'multiple' || (this.selectionMode === undefined && this.multiple);
|
|
1706
|
+
}
|
|
1707
|
+
get isRangeMode() {
|
|
1708
|
+
return this.selectionMode === 'range';
|
|
1709
|
+
}
|
|
1710
|
+
/**
|
|
1711
|
+
* Type guard: returns true if the given activeParts is a DatetimeRangeParts object.
|
|
1712
|
+
*/
|
|
1713
|
+
isRangeParts(parts) {
|
|
1714
|
+
return this.isRangeMode && parts !== null && typeof parts === 'object' && !Array.isArray(parts) && 'start' in parts;
|
|
1715
|
+
}
|
|
1716
|
+
/**
|
|
1717
|
+
* Returns the current range parts if in range mode, or undefined otherwise.
|
|
1718
|
+
*/
|
|
1719
|
+
get rangeParts() {
|
|
1720
|
+
if (this.isRangeParts(this.activeParts)) {
|
|
1721
|
+
return this.activeParts;
|
|
1722
|
+
}
|
|
1723
|
+
return undefined;
|
|
1724
|
+
}
|
|
1561
1725
|
yearValuesChanged() {
|
|
1562
1726
|
this.parsedYearValues = format.convertToArrayOfNumbers(this.yearValues);
|
|
1563
1727
|
}
|
|
@@ -1593,6 +1757,19 @@ const Datetime = class {
|
|
|
1593
1757
|
*/
|
|
1594
1758
|
async confirm(closeOverlay = false) {
|
|
1595
1759
|
const { isCalendarPicker, activeParts, preferWheel, workingParts } = this;
|
|
1760
|
+
/**
|
|
1761
|
+
* In range mode, only confirm when both start and end are selected.
|
|
1762
|
+
*/
|
|
1763
|
+
if (this.isRangeMode) {
|
|
1764
|
+
if (!this.isRangeParts(activeParts) || !activeParts.end) {
|
|
1765
|
+
return;
|
|
1766
|
+
}
|
|
1767
|
+
this.setValue([format.convertDataToISO(activeParts.start), format.convertDataToISO(activeParts.end)]);
|
|
1768
|
+
if (closeOverlay) {
|
|
1769
|
+
this.closeParentOverlay(CONFIRM_ROLE);
|
|
1770
|
+
}
|
|
1771
|
+
return;
|
|
1772
|
+
}
|
|
1596
1773
|
/**
|
|
1597
1774
|
* We only update the value if the presentation is not a calendar picker.
|
|
1598
1775
|
*/
|
|
@@ -1628,6 +1805,22 @@ const Datetime = class {
|
|
|
1628
1805
|
* @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.
|
|
1629
1806
|
*/
|
|
1630
1807
|
async reset(startDate) {
|
|
1808
|
+
if (this.isRangeMode) {
|
|
1809
|
+
/**
|
|
1810
|
+
* In range mode, reset clears the full range. If a startDate
|
|
1811
|
+
* is provided, the calendar navigates to that month without
|
|
1812
|
+
* selecting anything so the user begins a fresh selection.
|
|
1813
|
+
*/
|
|
1814
|
+
this.activeParts = [];
|
|
1815
|
+
if (startDate) {
|
|
1816
|
+
const parsed = format.parseDate(startDate);
|
|
1817
|
+
if (parsed) {
|
|
1818
|
+
const target = Array.isArray(parsed) ? parsed[0] : parsed;
|
|
1819
|
+
this.setWorkingParts(target);
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
return;
|
|
1823
|
+
}
|
|
1631
1824
|
this.processValue(startDate);
|
|
1632
1825
|
}
|
|
1633
1826
|
/**
|
|
@@ -1863,8 +2056,11 @@ const Datetime = class {
|
|
|
1863
2056
|
});
|
|
1864
2057
|
}
|
|
1865
2058
|
componentWillLoad() {
|
|
1866
|
-
const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
|
|
1867
|
-
if (multiple) {
|
|
2059
|
+
const { el, formatOptions, highlightedDates, multiple, selectionMode, presentation, preferWheel } = this;
|
|
2060
|
+
if (selectionMode === undefined && multiple) {
|
|
2061
|
+
index.printIonWarning('[ion-datetime] - The "multiple" property is deprecated. Use selectionMode="multiple" instead.', el);
|
|
2062
|
+
}
|
|
2063
|
+
if (this.isMultipleMode) {
|
|
1868
2064
|
if (presentation !== 'date') {
|
|
1869
2065
|
index.printIonWarning('[ion-datetime] - Multiple date selection is only supported for presentation="date".', el);
|
|
1870
2066
|
}
|
|
@@ -1872,6 +2068,17 @@ const Datetime = class {
|
|
|
1872
2068
|
index.printIonWarning('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".', el);
|
|
1873
2069
|
}
|
|
1874
2070
|
}
|
|
2071
|
+
if (this.isRangeMode) {
|
|
2072
|
+
if (presentation !== 'date') {
|
|
2073
|
+
index.printIonWarning('[ion-datetime] - Range selection is only supported for presentation="date".', el);
|
|
2074
|
+
}
|
|
2075
|
+
if (preferWheel) {
|
|
2076
|
+
index.printIonWarning('[ion-datetime] - Range selection is not supported with preferWheel="true".', el);
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2079
|
+
if (selectionMode !== undefined && multiple) {
|
|
2080
|
+
index.printIonWarning('[ion-datetime] - Both "selectionMode" and "multiple" are set. "selectionMode" takes precedence.', el);
|
|
2081
|
+
}
|
|
1875
2082
|
if (highlightedDates !== undefined) {
|
|
1876
2083
|
if (presentation !== 'date' && presentation !== 'date-time' && presentation !== 'time-date') {
|
|
1877
2084
|
index.printIonWarning('[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
|
|
@@ -1918,6 +2125,7 @@ const Datetime = class {
|
|
|
1918
2125
|
* are rendered independently of presentation.
|
|
1919
2126
|
*/
|
|
1920
2127
|
renderFooter() {
|
|
2128
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
1921
2129
|
const { disabled, readonly, showDefaultButtons, showClearButton } = this;
|
|
1922
2130
|
/**
|
|
1923
2131
|
* The cancel, clear, and confirm buttons
|
|
@@ -1925,6 +2133,13 @@ const Datetime = class {
|
|
|
1925
2133
|
* is disabled or readonly.
|
|
1926
2134
|
*/
|
|
1927
2135
|
const isButtonDisabled = disabled || readonly;
|
|
2136
|
+
/**
|
|
2137
|
+
* In range mode, the confirm button should be disabled until
|
|
2138
|
+
* both a start and end date have been selected.
|
|
2139
|
+
*/
|
|
2140
|
+
const isRangeIncomplete = this.isRangeMode && (!this.isRangeParts(this.activeParts) || !this.activeParts.end);
|
|
2141
|
+
const isConfirmDisabled = isButtonDisabled || isRangeIncomplete;
|
|
2142
|
+
const confirmFill = theme === 'ionic' ? 'solid' : undefined;
|
|
1928
2143
|
const hasSlottedButtons = this.el.querySelector('[slot="buttons"]') !== null;
|
|
1929
2144
|
if (!hasSlottedButtons && !showDefaultButtons && !showClearButton) {
|
|
1930
2145
|
return;
|
|
@@ -1943,7 +2158,7 @@ const Datetime = class {
|
|
|
1943
2158
|
return (index.h("div", { class: "datetime-footer" }, index.h("div", { class: "datetime-buttons" }, index.h("div", { class: {
|
|
1944
2159
|
['datetime-action-buttons']: true,
|
|
1945
2160
|
['has-clear-button']: this.showClearButton,
|
|
1946
|
-
} }, index.h("slot", { name: "buttons" },
|
|
2161
|
+
} }, index.h("slot", { name: "buttons" }, showDefaultButtons && (index.h("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true), disabled: isButtonDisabled }, this.cancelText)), index.h("div", { class: "datetime-action-buttons-container" }, showClearButton && (index.h("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick(), disabled: isButtonDisabled }, this.clearText)), showDefaultButtons && (index.h("ion-button", { id: "confirm-button", fill: confirmFill, color: this.color, onClick: () => this.confirm(true), disabled: isConfirmDisabled }, this.doneText))))))));
|
|
1947
2162
|
}
|
|
1948
2163
|
/**
|
|
1949
2164
|
* Wheel picker render methods
|
|
@@ -1961,7 +2176,7 @@ const Datetime = class {
|
|
|
1961
2176
|
const renderArray = forcePresentation === 'time-date'
|
|
1962
2177
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
1963
2178
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
1964
|
-
return index.h("ion-picker", { class:
|
|
2179
|
+
return index.h("ion-picker", { class: overlays.FOCUS_TRAP_DISABLE_CLASS }, renderArray);
|
|
1965
2180
|
}
|
|
1966
2181
|
renderDatePickerColumns(forcePresentation) {
|
|
1967
2182
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -2132,8 +2347,8 @@ const Datetime = class {
|
|
|
2132
2347
|
...this.workingParts,
|
|
2133
2348
|
month: ev.detail.value,
|
|
2134
2349
|
});
|
|
2135
|
-
// Month wheel is navigation-only in multi-select
|
|
2136
|
-
if (!this.
|
|
2350
|
+
// Month wheel is navigation-only in multi-select and range modes as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
2351
|
+
if (!this.isMultipleMode && !this.isRangeMode) {
|
|
2137
2352
|
this.setActiveParts({
|
|
2138
2353
|
...activePart,
|
|
2139
2354
|
month: ev.detail.value,
|
|
@@ -2154,8 +2369,8 @@ const Datetime = class {
|
|
|
2154
2369
|
...this.workingParts,
|
|
2155
2370
|
year: ev.detail.value,
|
|
2156
2371
|
});
|
|
2157
|
-
// Year wheel is navigation-only in multi-select
|
|
2158
|
-
if (!this.
|
|
2372
|
+
// Year wheel is navigation-only in multi-select and range modes as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
2373
|
+
if (!this.isMultipleMode && !this.isRangeMode) {
|
|
2159
2374
|
this.setActiveParts({
|
|
2160
2375
|
...activePart,
|
|
2161
2376
|
year: ev.detail.value,
|
|
@@ -2257,10 +2472,8 @@ const Datetime = class {
|
|
|
2257
2472
|
/**
|
|
2258
2473
|
* Grid Render Methods
|
|
2259
2474
|
*/
|
|
2260
|
-
renderCalendarHeader(
|
|
2261
|
-
const { disabled } = this;
|
|
2262
|
-
const expandedIcon = mode === 'ios' ? index$1.chevronDown : index$1.caretUpSharp;
|
|
2263
|
-
const collapsedIcon = mode === 'ios' ? index$1.chevronForward : index$1.caretDownSharp;
|
|
2475
|
+
renderCalendarHeader(theme) {
|
|
2476
|
+
const { disabled, datetimeNextIcon, datetimePreviousIcon, datetimeCollapsedIcon, datetimeExpandedIcon } = this;
|
|
2264
2477
|
const prevMonthDisabled = disabled || isPrevMonthDisabled(this.workingParts, this.minParts, this.maxParts);
|
|
2265
2478
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
2266
2479
|
const hostDir = dir.isRTL(this.el) ? 'rtl' : 'ltr';
|
|
@@ -2268,7 +2481,7 @@ const Datetime = class {
|
|
|
2268
2481
|
'calendar-month-year-toggle': true,
|
|
2269
2482
|
'ion-activatable': true,
|
|
2270
2483
|
'ion-focusable': true,
|
|
2271
|
-
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, index.h("span", { id: "toggle-wrapper" }, format.getMonthAndYear(this.locale, this.workingParts), index.h("ion-icon", { dir: hostDir, "aria-hidden": "true", icon: this.showMonthAndYear ?
|
|
2484
|
+
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, index.h("span", { id: "toggle-wrapper" }, format.getMonthAndYear(this.locale, this.workingParts), theme !== 'ionic' && (index.h("ion-icon", { dir: hostDir, "aria-hidden": "true", icon: this.showMonthAndYear ? datetimeExpandedIcon : datetimeCollapsedIcon, lazy: false, flipRtl: true }))), theme === 'md' && index.h("ion-ripple-effect", null))), index.h("div", { class: "calendar-next-prev" }, index.h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth(), part: "navigation-button previous-button" }, index.h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: datetimePreviousIcon, lazy: false, flipRtl: true })), index.h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth(), part: "navigation-button next-button" }, index.h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: datetimeNextIcon, lazy: false, flipRtl: true })))), index.h("div", { class: "calendar-days-of-week", "aria-hidden": "true", part: "calendar-days-of-week" }, getDaysOfWeek(this.locale, theme, this.firstDayOfWeek % 7).map((d) => {
|
|
2272
2485
|
return index.h("div", { class: "day-of-week" }, d);
|
|
2273
2486
|
}))));
|
|
2274
2487
|
}
|
|
@@ -2301,7 +2514,7 @@ const Datetime = class {
|
|
|
2301
2514
|
'calendar-month-disabled': !isWorkingMonth && swipeDisabled,
|
|
2302
2515
|
} }, index.h("div", { class: "calendar-month-grid" }, getDaysOfMonth(month, year, this.firstDayOfWeek % 7, this.showAdjacentDays).map((dateObject, index$1) => {
|
|
2303
2516
|
const { day, dayOfWeek, isAdjacentDay } = dateObject;
|
|
2304
|
-
const { el, highlightedDates, isDateEnabled,
|
|
2517
|
+
const { el, highlightedDates, isDateEnabled, showAdjacentDays } = this;
|
|
2305
2518
|
let _month = month;
|
|
2306
2519
|
let _year = year;
|
|
2307
2520
|
if (showAdjacentDays && isAdjacentDay && day !== null) {
|
|
@@ -2330,7 +2543,7 @@ const Datetime = class {
|
|
|
2330
2543
|
}
|
|
2331
2544
|
const referenceParts = { month: _month, day, year: _year, isAdjacentDay };
|
|
2332
2545
|
const isCalendarPadding = day === null;
|
|
2333
|
-
const { isActive, isToday, ariaLabel, ariaSelected, disabled: isDayDisabled, text, } = getCalendarDayState(this.locale, referenceParts, this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);
|
|
2546
|
+
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);
|
|
2334
2547
|
const dateIsoString = format.convertDataToISO(referenceParts);
|
|
2335
2548
|
let isCalDayDisabled = isCalMonthDisabled || isDayDisabled;
|
|
2336
2549
|
if (!isCalDayDisabled && isDateEnabled !== undefined) {
|
|
@@ -2353,24 +2566,60 @@ const Datetime = class {
|
|
|
2353
2566
|
*/
|
|
2354
2567
|
const isCalDayConstrained = isCalDayDisabled && isDatetimeDisabled;
|
|
2355
2568
|
const isButtonDisabled = isCalDayDisabled || isDatetimeDisabled;
|
|
2569
|
+
/**
|
|
2570
|
+
* Determine if this day is part of the range selection.
|
|
2571
|
+
* Range styling takes priority over highlightedDates.
|
|
2572
|
+
*/
|
|
2573
|
+
const isPartOfRange = isRangeStart || isRangeEnd || isInRange;
|
|
2356
2574
|
let dateStyle = undefined;
|
|
2357
2575
|
/**
|
|
2358
|
-
* Custom highlight styles should not override the style for selected dates
|
|
2359
|
-
* nor apply to "filler days" at the start of the grid.
|
|
2576
|
+
* Custom highlight styles should not override the style for selected dates
|
|
2577
|
+
* or range selection, nor apply to "filler days" at the start of the grid.
|
|
2360
2578
|
*/
|
|
2361
|
-
if (highlightedDates !== undefined && !isActive && day !== null && !isAdjacentDay) {
|
|
2579
|
+
if (highlightedDates !== undefined && !isActive && !isPartOfRange && day !== null && !isAdjacentDay) {
|
|
2362
2580
|
dateStyle = getHighlightStyles(highlightedDates, dateIsoString, el);
|
|
2363
2581
|
}
|
|
2364
2582
|
let dateParts = undefined;
|
|
2365
2583
|
// "Filler days" at the beginning of the grid should not get the calendar day
|
|
2366
2584
|
// CSS parts added to them
|
|
2367
2585
|
if (!isCalendarPadding && !isAdjacentDay) {
|
|
2368
|
-
dateParts = `calendar-day${isActive ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}`;
|
|
2586
|
+
dateParts = `calendar-day${isActive || isRangeStart || isRangeEnd ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}${isRangeStart ? ' range-start range-selection' : ''}${isRangeEnd ? ' range-end range-selection' : ''}${isInRange ? ' range-selection' : ''}`;
|
|
2369
2587
|
}
|
|
2370
2588
|
else if (isAdjacentDay) {
|
|
2371
|
-
|
|
2589
|
+
/**
|
|
2590
|
+
* Adjacent days skip 'active' and 'today' parts but still
|
|
2591
|
+
* include range parts so ::part() styling is consistent
|
|
2592
|
+
* with the visual range track rendering.
|
|
2593
|
+
*/
|
|
2594
|
+
dateParts = `calendar-day${isCalDayDisabled ? ' disabled' : ''}${isRangeStart ? ' range-start range-selection' : ''}${isRangeEnd ? ' range-end range-selection' : ''}${isInRange ? ' range-selection' : ''}`;
|
|
2595
|
+
}
|
|
2596
|
+
/**
|
|
2597
|
+
* Build the wrapper's shadow part attribute for range track styling.
|
|
2598
|
+
*/
|
|
2599
|
+
const hasCompleteRange = this.rangeParts?.end !== undefined;
|
|
2600
|
+
const wrapperParts = isPartOfRange && hasCompleteRange && !isCalendarPadding ? 'range-track' : undefined;
|
|
2601
|
+
/**
|
|
2602
|
+
* Build the aria-label for range mode accessibility.
|
|
2603
|
+
*/
|
|
2604
|
+
let rangeAriaLabel = ariaLabel;
|
|
2605
|
+
if (this.isRangeMode && ariaLabel) {
|
|
2606
|
+
if (isRangeStart) {
|
|
2607
|
+
rangeAriaLabel += `, ${this.startDateLabel}`;
|
|
2608
|
+
}
|
|
2609
|
+
if (isRangeEnd) {
|
|
2610
|
+
rangeAriaLabel += `, ${this.endDateLabel}`;
|
|
2611
|
+
}
|
|
2612
|
+
if (isInRange) {
|
|
2613
|
+
rangeAriaLabel += ', in range';
|
|
2614
|
+
}
|
|
2372
2615
|
}
|
|
2373
|
-
return (index.h("div", { class:
|
|
2616
|
+
return (index.h("div", { class: {
|
|
2617
|
+
'calendar-day-wrapper': true,
|
|
2618
|
+
// A start without an end is only the circle until the range is complete
|
|
2619
|
+
'calendar-day-wrapper-range-start': isRangeStart && this.rangeParts?.end !== undefined,
|
|
2620
|
+
'calendar-day-wrapper-in-range': isInRange,
|
|
2621
|
+
'calendar-day-wrapper-range-end': isRangeEnd,
|
|
2622
|
+
}, part: wrapperParts }, index.h("button", {
|
|
2374
2623
|
// We need to use !important for the inline styles here because
|
|
2375
2624
|
// otherwise the CSS shadow parts will override these styles.
|
|
2376
2625
|
// See https://github.com/WICG/webcomponents/issues/847
|
|
@@ -2386,28 +2635,40 @@ const Datetime = class {
|
|
|
2386
2635
|
}, tabindex: "-1", "data-day": day, "data-month": _month, "data-year": _year, "data-index": index$1, "data-day-of-week": dayOfWeek, disabled: isButtonDisabled, class: {
|
|
2387
2636
|
'calendar-day-padding': isCalendarPadding,
|
|
2388
2637
|
'calendar-day': true,
|
|
2389
|
-
'calendar-day-active': isActive,
|
|
2638
|
+
'calendar-day-active': isActive || isRangeStart || isRangeEnd,
|
|
2390
2639
|
'calendar-day-constrained': isCalDayConstrained,
|
|
2391
2640
|
'calendar-day-today': isToday,
|
|
2392
2641
|
'calendar-day-adjacent-day': isAdjacentDay,
|
|
2393
|
-
|
|
2642
|
+
'calendar-day-range-start': isRangeStart,
|
|
2643
|
+
'calendar-day-range-end': isRangeEnd,
|
|
2644
|
+
'calendar-day-in-range': isInRange,
|
|
2645
|
+
}, part: dateParts, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": isActive || isRangeStart || isRangeEnd ? 'true' : ariaSelected, "aria-label": rangeAriaLabel, onClick: () => {
|
|
2394
2646
|
if (isCalendarPadding) {
|
|
2395
2647
|
return;
|
|
2396
2648
|
}
|
|
2397
2649
|
if (isAdjacentDay) {
|
|
2398
2650
|
// The user selected a day outside the current month. Ignore this button, as the month will be re-rendered.
|
|
2399
2651
|
this.el.blur();
|
|
2400
|
-
this.
|
|
2652
|
+
if (!this.isRangeMode) {
|
|
2653
|
+
this.activeParts = { ...activePart, ...referenceParts };
|
|
2654
|
+
}
|
|
2401
2655
|
this.animateToDate(referenceParts);
|
|
2402
|
-
this.
|
|
2656
|
+
if (this.isRangeMode) {
|
|
2657
|
+
this.setActiveParts(referenceParts);
|
|
2658
|
+
}
|
|
2659
|
+
else {
|
|
2660
|
+
this.confirm();
|
|
2661
|
+
}
|
|
2403
2662
|
}
|
|
2404
2663
|
else {
|
|
2405
2664
|
this.setWorkingParts({
|
|
2406
2665
|
...this.workingParts,
|
|
2407
2666
|
...referenceParts,
|
|
2408
2667
|
});
|
|
2409
|
-
|
|
2410
|
-
|
|
2668
|
+
if (this.isRangeMode) {
|
|
2669
|
+
this.setActiveParts(referenceParts);
|
|
2670
|
+
}
|
|
2671
|
+
else if (this.isMultipleMode) {
|
|
2411
2672
|
this.setActiveParts(referenceParts, isActive);
|
|
2412
2673
|
}
|
|
2413
2674
|
else {
|
|
@@ -2426,8 +2687,18 @@ const Datetime = class {
|
|
|
2426
2687
|
return this.renderMonth(month, year);
|
|
2427
2688
|
})));
|
|
2428
2689
|
}
|
|
2429
|
-
renderCalendar(
|
|
2430
|
-
return (index.h("div", { class: "datetime-calendar", key: "datetime-calendar" }, this.renderCalendarHeader(
|
|
2690
|
+
renderCalendar(theme) {
|
|
2691
|
+
return (index.h("div", { class: "datetime-calendar", key: "datetime-calendar" }, this.renderCalendarHeader(theme), this.renderCalendarBody(), this.isRangeMode && this.rangeParts && !this.rangeParts.end && (index.h("div", { "aria-live": "polite", role: "status", style: {
|
|
2692
|
+
position: 'absolute',
|
|
2693
|
+
width: '1px',
|
|
2694
|
+
height: '1px',
|
|
2695
|
+
padding: '0',
|
|
2696
|
+
margin: '-1px',
|
|
2697
|
+
overflow: 'hidden',
|
|
2698
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
2699
|
+
whiteSpace: 'nowrap',
|
|
2700
|
+
border: '0',
|
|
2701
|
+
} }, `${this.startDateLabel} selected, select ${this.endDateLabel.toLowerCase()}`))));
|
|
2431
2702
|
}
|
|
2432
2703
|
renderTimeLabel() {
|
|
2433
2704
|
const hasSlottedTimeLabel = this.el.querySelector('[slot="time-label"]') !== null;
|
|
@@ -2480,10 +2751,23 @@ const Datetime = class {
|
|
|
2480
2751
|
];
|
|
2481
2752
|
}
|
|
2482
2753
|
getHeaderSelectedDateText() {
|
|
2483
|
-
const { activeParts, formatOptions,
|
|
2754
|
+
const { activeParts, formatOptions, titleSelectedDatesFormatter } = this;
|
|
2484
2755
|
const isArray = Array.isArray(activeParts);
|
|
2756
|
+
const dateFormatOptions = formatOptions?.date ?? { weekday: 'short', month: 'short', day: 'numeric' };
|
|
2485
2757
|
let headerText;
|
|
2486
|
-
if (
|
|
2758
|
+
if (this.isRangeMode) {
|
|
2759
|
+
headerText = this.getRangeHeaderText(formatOptions?.date ?? { month: 'short', day: 'numeric' });
|
|
2760
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
2761
|
+
try {
|
|
2762
|
+
const rangeValues = this.getRangeValueArray();
|
|
2763
|
+
headerText = titleSelectedDatesFormatter(rangeValues);
|
|
2764
|
+
}
|
|
2765
|
+
catch (e) {
|
|
2766
|
+
index.printIonError('[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
2767
|
+
}
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
else if (this.isMultipleMode && isArray && activeParts.length !== 1) {
|
|
2487
2771
|
headerText = `${activeParts.length} days`; // default/fallback for multiple selection
|
|
2488
2772
|
if (titleSelectedDatesFormatter !== undefined) {
|
|
2489
2773
|
try {
|
|
@@ -2496,10 +2780,37 @@ const Datetime = class {
|
|
|
2496
2780
|
}
|
|
2497
2781
|
else {
|
|
2498
2782
|
// for exactly 1 day selected (multiple set or not), show a formatted version of that
|
|
2499
|
-
headerText = format.getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(),
|
|
2783
|
+
headerText = format.getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), dateFormatOptions);
|
|
2500
2784
|
}
|
|
2501
2785
|
return headerText;
|
|
2502
2786
|
}
|
|
2787
|
+
/**
|
|
2788
|
+
* Returns the formatted range header text.
|
|
2789
|
+
* Shows "Start date - End date" with placeholders from startDateLabel/endDateLabel.
|
|
2790
|
+
*/
|
|
2791
|
+
getRangeHeaderText(dateFormatOptions) {
|
|
2792
|
+
const range = this.rangeParts;
|
|
2793
|
+
if (!range) {
|
|
2794
|
+
return `${this.startDateLabel} - ${this.endDateLabel}`;
|
|
2795
|
+
}
|
|
2796
|
+
const startText = format.getLocalizedDateTime(this.locale, range.start, dateFormatOptions);
|
|
2797
|
+
const endText = range.end ? format.getLocalizedDateTime(this.locale, range.end, dateFormatOptions) : this.endDateLabel;
|
|
2798
|
+
return `${startText} - ${endText}`;
|
|
2799
|
+
}
|
|
2800
|
+
/**
|
|
2801
|
+
* Returns the current range value as an ISO string array for
|
|
2802
|
+
* titleSelectedDatesFormatter and ionChange.
|
|
2803
|
+
*/
|
|
2804
|
+
getRangeValueArray() {
|
|
2805
|
+
const range = this.rangeParts;
|
|
2806
|
+
if (!range) {
|
|
2807
|
+
return [];
|
|
2808
|
+
}
|
|
2809
|
+
if (!range.end) {
|
|
2810
|
+
return [format.convertDataToISO(range.start)];
|
|
2811
|
+
}
|
|
2812
|
+
return [format.convertDataToISO(range.start), format.convertDataToISO(range.end)];
|
|
2813
|
+
}
|
|
2503
2814
|
renderHeader(showExpandedHeader = true) {
|
|
2504
2815
|
const hasSlottedTitle = this.el.querySelector('[slot="title"]') !== null;
|
|
2505
2816
|
if (!hasSlottedTitle && !this.showDefaultTitle) {
|
|
@@ -2534,7 +2845,7 @@ const Datetime = class {
|
|
|
2534
2845
|
* Render entry point
|
|
2535
2846
|
* All presentation types are rendered from here.
|
|
2536
2847
|
*/
|
|
2537
|
-
renderDatetime(
|
|
2848
|
+
renderDatetime(theme) {
|
|
2538
2849
|
const { presentation, preferWheel } = this;
|
|
2539
2850
|
/**
|
|
2540
2851
|
* Certain presentation types have separate grid and wheel displays.
|
|
@@ -2548,7 +2859,7 @@ const Datetime = class {
|
|
|
2548
2859
|
case 'date-time':
|
|
2549
2860
|
return [
|
|
2550
2861
|
this.renderHeader(),
|
|
2551
|
-
this.renderCalendar(
|
|
2862
|
+
this.renderCalendar(theme),
|
|
2552
2863
|
this.renderCalendarViewMonthYearPicker(),
|
|
2553
2864
|
this.renderTime(),
|
|
2554
2865
|
this.renderFooter(),
|
|
@@ -2557,7 +2868,7 @@ const Datetime = class {
|
|
|
2557
2868
|
return [
|
|
2558
2869
|
this.renderHeader(),
|
|
2559
2870
|
this.renderTime(),
|
|
2560
|
-
this.renderCalendar(
|
|
2871
|
+
this.renderCalendar(theme),
|
|
2561
2872
|
this.renderCalendarViewMonthYearPicker(),
|
|
2562
2873
|
this.renderFooter(),
|
|
2563
2874
|
];
|
|
@@ -2570,24 +2881,62 @@ const Datetime = class {
|
|
|
2570
2881
|
default:
|
|
2571
2882
|
return [
|
|
2572
2883
|
this.renderHeader(),
|
|
2573
|
-
this.renderCalendar(
|
|
2884
|
+
this.renderCalendar(theme),
|
|
2574
2885
|
this.renderCalendarViewMonthYearPicker(),
|
|
2575
2886
|
this.renderFooter(),
|
|
2576
2887
|
];
|
|
2577
2888
|
}
|
|
2578
2889
|
}
|
|
2890
|
+
/**
|
|
2891
|
+
* Get the icon to use for the next icon.
|
|
2892
|
+
* Use the icon set in the config.
|
|
2893
|
+
* If no icon is set in the config, use the default icon.
|
|
2894
|
+
*/
|
|
2895
|
+
get datetimeNextIcon() {
|
|
2896
|
+
return index.config.get('datetimeNextIcon', index$1.chevronForward);
|
|
2897
|
+
}
|
|
2898
|
+
/**
|
|
2899
|
+
* Get the icon to use for the previous icon.
|
|
2900
|
+
* Use the icon set in the config.
|
|
2901
|
+
* If no icon is set in the config, use the default icon.
|
|
2902
|
+
*/
|
|
2903
|
+
get datetimePreviousIcon() {
|
|
2904
|
+
return index.config.get('datetimePreviousIcon', index$1.chevronBack);
|
|
2905
|
+
}
|
|
2906
|
+
/**
|
|
2907
|
+
* Get the icon to use for the show month and year icon.
|
|
2908
|
+
* Use the icon set in the config.
|
|
2909
|
+
* If no icon is set in the config, use the default icon.
|
|
2910
|
+
*/
|
|
2911
|
+
get datetimeCollapsedIcon() {
|
|
2912
|
+
// Determine the theme and map to the default icon
|
|
2913
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
2914
|
+
const defaultIcon = theme === 'ios' ? index$1.chevronForward : index$1.caretDownSharp;
|
|
2915
|
+
return index.config.get('datetimeCollapsedIcon', defaultIcon);
|
|
2916
|
+
}
|
|
2917
|
+
/**
|
|
2918
|
+
* Get the icon to use for the hide month and year icon.
|
|
2919
|
+
* Use the icon set in the config.
|
|
2920
|
+
* If no icon is set in the config, use the default icon.
|
|
2921
|
+
*/
|
|
2922
|
+
get datetimeExpandedIcon() {
|
|
2923
|
+
// Determine the theme and map to the default icon
|
|
2924
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
2925
|
+
const defaultIcon = theme === 'ios' ? index$1.chevronDown : index$1.caretUpSharp;
|
|
2926
|
+
return index.config.get('datetimeExpandedIcon', defaultIcon);
|
|
2927
|
+
}
|
|
2579
2928
|
render() {
|
|
2580
2929
|
const { name, value, disabled, el, color, readonly, showMonthAndYear, preferWheel, presentation, size, isGridStyle, } = this;
|
|
2581
|
-
const
|
|
2930
|
+
const theme$1 = ionicGlobal.getIonTheme(this);
|
|
2582
2931
|
const isMonthAndYearPresentation = presentation === 'year' || presentation === 'month' || presentation === 'month-year';
|
|
2583
2932
|
const shouldShowMonthAndYear = showMonthAndYear || isMonthAndYearPresentation;
|
|
2584
2933
|
const monthYearPickerOpen = showMonthAndYear && !isMonthAndYearPresentation;
|
|
2585
2934
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
2586
2935
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
2587
2936
|
helpers.renderHiddenInput(true, el, name, format.formatValue(value), disabled);
|
|
2588
|
-
return (index.h(index.Host, { key: '
|
|
2937
|
+
return (index.h(index.Host, { key: 'bbda23db005004f03b23e39d1e8c622e588ba7c2', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
|
|
2589
2938
|
...theme.createColorClasses(color, {
|
|
2590
|
-
[
|
|
2939
|
+
[theme$1]: true,
|
|
2591
2940
|
['datetime-readonly']: readonly,
|
|
2592
2941
|
['datetime-disabled']: disabled,
|
|
2593
2942
|
'show-month-and-year': shouldShowMonthAndYear,
|
|
@@ -2596,8 +2945,9 @@ const Datetime = class {
|
|
|
2596
2945
|
[`datetime-size-${size}`]: true,
|
|
2597
2946
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
2598
2947
|
[`datetime-grid`]: isGridStyle,
|
|
2948
|
+
[`datetime-range`]: this.isRangeMode,
|
|
2599
2949
|
}),
|
|
2600
|
-
} }, index.h("div", { key: '
|
|
2950
|
+
} }, index.h("div", { key: '788e47cd7e8b022a450c7938d713a7d50d43e4f7', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(theme$1)));
|
|
2601
2951
|
}
|
|
2602
2952
|
get el() { return index.getElement(this); }
|
|
2603
2953
|
static get watchers() { return {
|
|
@@ -2643,6 +2993,7 @@ const WHEEL_PART = 'wheel';
|
|
|
2643
2993
|
const WHEEL_ITEM_PART = 'wheel-item';
|
|
2644
2994
|
const WHEEL_ITEM_ACTIVE_PART = `active`;
|
|
2645
2995
|
Datetime.style = {
|
|
2996
|
+
ionic: datetimeIonicCss(),
|
|
2646
2997
|
ios: datetimeIosCss(),
|
|
2647
2998
|
md: datetimeMdCss()
|
|
2648
2999
|
};
|