@ionic/core 9.0.0 → 9.0.1-dev.11787248963.10a00c73

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.
Files changed (596) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/{p-63OhffQv.js → p-66ogmUZU.js} +1 -1
  99. package/components/p-6Vp915Y7.js +4 -0
  100. package/components/p-7PNwKFZi.js +4 -0
  101. package/components/{p-G0TxqHfe.js → p-A8MJRBIY.js} +1 -1
  102. package/components/p-AQcCdH2_.js +4 -0
  103. package/{dist/ionic/p-Dn0mqQ_R.js → components/p-B6x5_b9w.js} +1 -1
  104. package/components/p-B8MQjdvk.js +4 -0
  105. package/components/p-BA_4ZIEg.js +4 -0
  106. package/components/p-BFtL8t1r.js +4 -0
  107. package/components/{p-DaA_8eqt.js → p-BMfgF-Tv.js} +1 -1
  108. package/components/p-BPDxVIRr.js +4 -0
  109. package/components/p-BSARlp49.js +4 -0
  110. package/components/p-B_gJaBk0.js +4 -0
  111. package/components/p-BdwCtX8Y.js +4 -0
  112. package/components/p-Bg4OwDwb.js +4 -0
  113. package/components/{p-DV85C0e0.js → p-BgUIV8NQ.js} +1 -1
  114. package/components/p-Bnc0m4SW.js +4 -0
  115. package/components/p-BpLt_Ptn.js +4 -0
  116. package/components/p-BqBDq1Ma.js +4 -0
  117. package/components/{p-C_phlPMC.js → p-BrFaQbGY.js} +1 -1
  118. package/{dist/ionic/p-Cdjxf_yg.js → components/p-BuPAFTWI.js} +1 -1
  119. package/components/p-Bx2saTHs.js +4 -0
  120. package/components/p-BxhE2W85.js +4 -0
  121. package/components/p-CHswSpKy.js +4 -0
  122. package/components/{p-fruGqVHh.js → p-CQAjyETU.js} +1 -1
  123. package/components/{p-1jI5oW-W.js → p-CR9OgE6N.js} +1 -1
  124. package/components/p-CWETxTjE.js +4 -0
  125. package/components/p-CaZeZIL2.js +4 -0
  126. package/components/p-CaiZOhfC.js +4 -0
  127. package/components/p-CgvDC7hC.js +4 -0
  128. package/components/{p-BqPNzJf6.js → p-CqyGR9Aq.js} +1 -1
  129. package/components/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
  130. package/components/p-D7ysFE2B.js +4 -0
  131. package/{dist/ionic/p-4eOQC00Z.js → components/p-DCWfzDM8.js} +1 -1
  132. package/components/{p-DwpKZ6rl.js → p-DDdkefwf.js} +1 -1
  133. package/components/{p-DzRT60Tw.js → p-DEW7CnUc.js} +1 -1
  134. package/components/p-DQ1IPvZO.js +4 -0
  135. package/components/p-DcOH6-o5.js +4 -0
  136. package/components/{p-DD5fQ4EQ.js → p-DfdYCsov.js} +1 -1
  137. package/components/{p-DSzSbVP2.js → p-DhOoEIAs.js} +1 -1
  138. package/components/{p-DM-PrAoh.js → p-Dl_7b_UJ.js} +1 -1
  139. package/components/p-DqAI6tg7.js +4 -0
  140. package/components/p-DrehWDfv.js +4 -0
  141. package/components/{p-ryyf_ItD.js → p-DysqCsJu.js} +1 -1
  142. package/components/p-H1f2qsk4.js +4 -0
  143. package/components/p-HVYBAhFx.js +4 -0
  144. package/components/{p-CbhUdtjf.js → p-Kmrg3Fed.js} +1 -1
  145. package/components/{p-Bjig0DJK.js → p-RFfE9hF6.js} +1 -1
  146. package/{dist/ionic/p-CBWAXjA5.js → components/p-SR-LLqp_.js} +1 -1
  147. package/components/p-eFI3mtEX.js +4 -0
  148. package/components/p-gFwXiYC_.js +4 -0
  149. package/components/p-tX3UxCnU.js +4 -0
  150. package/components/p-v2NpoOHp.js +4 -0
  151. package/dist/cjs/{animation-C0mOHzej.js → animation-D-OqR4a4.js} +1 -1
  152. package/dist/cjs/{app-globals-BREG4twP.js → app-globals-BzgwARwJ.js} +1 -1
  153. package/dist/cjs/{button-active-CVMevT9a.js → button-active-BlWSD7uK.js} +2 -2
  154. package/dist/cjs/{format-pp0Du3K-.js → format-D7ig6Vm0.js} +1 -1
  155. package/dist/cjs/{framework-delegate-Dfo5XsGv.js → framework-delegate-BZUx4TnE.js} +1 -1
  156. package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-CeJslptU.js} +6 -14
  157. package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-JOAEFSzc.js} +1 -1
  158. package/dist/cjs/{helpers-YPQybDph.js → helpers-Dj5o76mq.js} +1 -1
  159. package/dist/cjs/{index-BLdJCcJY.js → index-2sO-zkZ2.js} +4 -4
  160. package/dist/cjs/{index-uvry__L4.js → index-BrVMoqUk.js} +3 -1
  161. package/dist/cjs/{index-zVCah4Uz.js → index-C8zH6b3d.js} +2 -2
  162. package/dist/cjs/{index-DXsPSne6.js → index-CZ6vzt_q.js} +5 -5
  163. package/dist/cjs/{index-DDg31ZF5.js → index-Csue6G3m.js} +2 -2
  164. package/dist/cjs/{index-DwlRtFZe.js → index-DRPqwSvU.js} +1 -1
  165. package/dist/cjs/{index-B7zJsYWS.js → index-EJLjthTK.js} +1 -2
  166. package/dist/cjs/index.cjs.js +14 -14
  167. package/dist/cjs/{input-shims-Cbu1fcye.js → input-shims-Bh7bnt2v.js} +3 -3
  168. package/dist/cjs/{input.utils-BZdMWVrt.js → input.utils-Cq3g9uHy.js} +1 -1
  169. package/dist/cjs/ion-accordion_2.cjs.entry.js +335 -364
  170. package/dist/cjs/ion-action-sheet.cjs.entry.js +60 -140
  171. package/dist/cjs/ion-alert.cjs.entry.js +67 -159
  172. package/dist/cjs/ion-app_8.cjs.entry.js +163 -258
  173. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -8
  174. package/dist/cjs/ion-back-button.cjs.entry.js +21 -45
  175. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  176. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +117 -195
  177. package/dist/cjs/ion-button_2.cjs.entry.js +61 -130
  178. package/dist/cjs/ion-card_5.cjs.entry.js +28 -80
  179. package/dist/cjs/ion-checkbox.cjs.entry.js +98 -147
  180. package/dist/cjs/ion-chip.cjs.entry.js +10 -16
  181. package/dist/cjs/ion-col_3.cjs.entry.js +6 -126
  182. package/dist/cjs/ion-datetime-button.cjs.entry.js +232 -248
  183. package/dist/cjs/ion-datetime.cjs.entry.js +775 -953
  184. package/dist/cjs/ion-fab_3.cjs.entry.js +78 -136
  185. package/dist/cjs/ion-img.cjs.entry.js +11 -31
  186. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +71 -98
  187. package/dist/cjs/ion-input-otp.cjs.entry.js +352 -424
  188. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +14 -29
  189. package/dist/cjs/ion-input.cjs.entry.js +158 -302
  190. package/dist/cjs/ion-item-option_3.cjs.entry.js +54 -98
  191. package/dist/cjs/ion-item_8.cjs.entry.js +61 -157
  192. package/dist/cjs/ion-loading.cjs.entry.js +54 -131
  193. package/dist/cjs/ion-menu_3.cjs.entry.js +94 -158
  194. package/dist/cjs/ion-modal.cjs.entry.js +206 -362
  195. package/dist/cjs/ion-nav_2.cjs.entry.js +26 -78
  196. package/dist/cjs/ion-picker-column-option.cjs.entry.js +23 -33
  197. package/dist/cjs/ion-picker-column.cjs.entry.js +389 -410
  198. package/dist/cjs/ion-picker.cjs.entry.js +390 -400
  199. package/dist/cjs/ion-popover.cjs.entry.js +184 -292
  200. package/dist/cjs/ion-progress-bar.cjs.entry.js +23 -29
  201. package/dist/cjs/ion-radio_2.cjs.entry.js +128 -201
  202. package/dist/cjs/ion-range.cjs.entry.js +223 -293
  203. package/dist/cjs/ion-refresher_2.cjs.entry.js +89 -154
  204. package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -49
  205. package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -13
  206. package/dist/cjs/ion-route_4.cjs.entry.js +45 -144
  207. package/dist/cjs/ion-searchbar.cjs.entry.js +182 -268
  208. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  209. package/dist/cjs/ion-segment-view.cjs.entry.js +12 -24
  210. package/dist/cjs/ion-segment_2.cjs.entry.js +122 -161
  211. package/dist/cjs/ion-select-modal.cjs.entry.js +19 -21
  212. package/dist/cjs/ion-select_3.cjs.entry.js +151 -319
  213. package/dist/cjs/ion-spinner.cjs.entry.js +6 -21
  214. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -27
  215. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +32 -89
  216. package/dist/cjs/ion-tab_2.cjs.entry.js +22 -49
  217. package/dist/cjs/ion-text.cjs.entry.js +2 -8
  218. package/dist/cjs/ion-textarea.cjs.entry.js +139 -256
  219. package/dist/cjs/ion-toast.cjs.entry.js +106 -221
  220. package/dist/cjs/ion-toggle.cjs.entry.js +114 -165
  221. package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-DvgIzM2F.js} +1 -1
  222. package/dist/cjs/ionic.cjs.js +4 -4
  223. package/dist/cjs/{ios.transition-zTmJz8T-.js → ios.transition-zIgdoSYe.js} +4 -4
  224. package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-DG-ZGm6j.js} +1 -1
  225. package/dist/cjs/loader.cjs.js +4 -4
  226. package/dist/cjs/{md.transition-nb_4pUXu.js → md.transition-CXeJ9rfh.js} +4 -4
  227. package/dist/cjs/{overlays-KaNVDNqC.js → overlays-Bg0auTQa.js} +6 -6
  228. package/dist/cjs/{select-option-render-pULCGldr.js → select-option-render-7m1WdFzF.js} +2 -2
  229. package/dist/cjs/{slot-mutation-controller-DPHmqXdV.js → slot-mutation-controller-BJEJzx_e.js} +1 -1
  230. package/dist/cjs/{status-tap-o9IIymsP.js → status-tap-DxbUM5XX.js} +3 -3
  231. package/dist/cjs/{swipe-back-B7X9VOlH.js → swipe-back-F_DBt-Aw.js} +4 -4
  232. package/dist/collection/components/accordion/accordion.js +310 -314
  233. package/dist/collection/components/accordion-group/accordion-group.js +23 -46
  234. package/dist/collection/components/action-sheet/action-sheet.js +49 -128
  235. package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
  236. package/dist/collection/components/alert/alert.js +56 -147
  237. package/dist/collection/components/app/app.js +0 -3
  238. package/dist/collection/components/back-button/back-button.js +19 -42
  239. package/dist/collection/components/backdrop/backdrop.js +14 -16
  240. package/dist/collection/components/badge/badge.js +0 -6
  241. package/dist/collection/components/breadcrumb/breadcrumb.js +29 -90
  242. package/dist/collection/components/breadcrumbs/breadcrumbs.js +87 -102
  243. package/dist/collection/components/button/button.js +59 -127
  244. package/dist/collection/components/buttons/buttons.js +15 -13
  245. package/dist/collection/components/card/card.js +20 -53
  246. package/dist/collection/components/card-header/card-header.js +8 -12
  247. package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
  248. package/dist/collection/components/card-title/card-title.js +0 -6
  249. package/dist/collection/components/checkbox/checkbox.js +95 -143
  250. package/dist/collection/components/chip/chip.js +10 -14
  251. package/dist/collection/components/col/col.js +0 -120
  252. package/dist/collection/components/content/content.js +60 -90
  253. package/dist/collection/components/datetime/datetime.js +762 -939
  254. package/dist/collection/components/datetime-button/datetime-button.js +229 -244
  255. package/dist/collection/components/fab/fab.js +13 -20
  256. package/dist/collection/components/fab-button/fab-button.js +54 -103
  257. package/dist/collection/components/fab-list/fab-list.js +11 -10
  258. package/dist/collection/components/footer/footer.js +43 -49
  259. package/dist/collection/components/grid/grid.js +6 -4
  260. package/dist/collection/components/header/header.js +23 -33
  261. package/dist/collection/components/img/img.js +9 -28
  262. package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
  264. package/dist/collection/components/input/input.js +154 -297
  265. package/dist/collection/components/input-otp/input-otp.js +350 -421
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +13 -27
  267. package/dist/collection/components/item/item.js +37 -80
  268. package/dist/collection/components/item-divider/item-divider.js +10 -15
  269. package/dist/collection/components/item-option/item-option.js +20 -48
  270. package/dist/collection/components/item-options/item-options.js +7 -10
  271. package/dist/collection/components/item-sliding/item-sliding.js +26 -36
  272. package/dist/collection/components/label/label.js +4 -24
  273. package/dist/collection/components/list/list.js +6 -9
  274. package/dist/collection/components/list-header/list-header.js +0 -10
  275. package/dist/collection/components/loading/loading.js +46 -122
  276. package/dist/collection/components/menu/menu.js +55 -99
  277. package/dist/collection/components/menu-button/menu-button.js +19 -28
  278. package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
  279. package/dist/collection/components/modal/modal.js +196 -351
  280. package/dist/collection/components/modal/test/fixtures.js +0 -3
  281. package/dist/collection/components/nav/nav.js +12 -45
  282. package/dist/collection/components/nav/view-controller.js +1 -7
  283. package/dist/collection/components/nav-link/nav-link.js +9 -20
  284. package/dist/collection/components/note/note.js +0 -6
  285. package/dist/collection/components/picker/picker.js +388 -397
  286. package/dist/collection/components/picker-column/picker-column.js +389 -409
  287. package/dist/collection/components/picker-column-option/picker-column-option.js +21 -30
  288. package/dist/collection/components/popover/popover.js +176 -283
  289. package/dist/collection/components/popover/test/fixture.js +0 -1
  290. package/dist/collection/components/progress-bar/progress-bar.js +22 -26
  291. package/dist/collection/components/radio/radio.js +62 -98
  292. package/dist/collection/components/radio-group/radio-group.js +64 -99
  293. package/dist/collection/components/radio-group/test/fixtures.js +0 -2
  294. package/dist/collection/components/range/range.js +220 -289
  295. package/dist/collection/components/refresher/refresher.js +79 -105
  296. package/dist/collection/components/refresher-content/refresher-content.js +3 -40
  297. package/dist/collection/components/reorder/reorder.js +0 -1
  298. package/dist/collection/components/reorder-group/reorder-group.js +14 -43
  299. package/dist/collection/components/ripple-effect/ripple-effect.js +12 -11
  300. package/dist/collection/components/route/route.js +9 -38
  301. package/dist/collection/components/route-redirect/route-redirect.js +0 -31
  302. package/dist/collection/components/router/router.js +27 -35
  303. package/dist/collection/components/router/utils/matching.js +0 -1
  304. package/dist/collection/components/router-link/router-link.js +10 -35
  305. package/dist/collection/components/router-outlet/router-outlet.js +12 -34
  306. package/dist/collection/components/searchbar/searchbar.js +180 -265
  307. package/dist/collection/components/segment/segment.js +76 -113
  308. package/dist/collection/components/segment-button/segment-button.js +44 -44
  309. package/dist/collection/components/segment-view/segment-view.js +12 -23
  310. package/dist/collection/components/select/select.js +127 -240
  311. package/dist/collection/components/select-modal/select-modal.js +11 -12
  312. package/dist/collection/components/select-modal/test/fixtures.js +1 -8
  313. package/dist/collection/components/select-option/select-option.js +7 -44
  314. package/dist/collection/components/select-popover/select-popover.js +10 -25
  315. package/dist/collection/components/select-popover/test/fixtures.js +1 -8
  316. package/dist/collection/components/skeleton-text/skeleton-text.js +6 -10
  317. package/dist/collection/components/spinner/spinner.js +6 -19
  318. package/dist/collection/components/split-pane/split-pane.js +13 -25
  319. package/dist/collection/components/tab/tab.js +4 -15
  320. package/dist/collection/components/tab-bar/tab-bar.js +12 -30
  321. package/dist/collection/components/tab-button/tab-button.js +19 -56
  322. package/dist/collection/components/tabs/tabs.js +17 -31
  323. package/dist/collection/components/text/text.js +0 -6
  324. package/dist/collection/components/textarea/textarea.js +135 -251
  325. package/dist/collection/components/title/title.js +0 -16
  326. package/dist/collection/components/toast/toast.js +97 -211
  327. package/dist/collection/components/toggle/toggle.js +111 -161
  328. package/dist/collection/components/toolbar/toolbar.js +3 -8
  329. package/dist/collection/global/config.js +3 -1
  330. package/dist/collection/utils/gesture/gesture-controller.js +6 -14
  331. package/dist/collection/utils/sanitization/index.js +0 -1
  332. package/dist/collection/utils/test/late-props/late-props.js +69 -0
  333. package/dist/collection/utils/test/playwright/page/event-spy.js +8 -9
  334. package/dist/collection/utils/test/press-keys.js +1 -4
  335. package/dist/docs.json +1 -1
  336. package/dist/esm/{animation-CGFdmGk9.js → animation-TxGPYeDn.js} +1 -1
  337. package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-Do8rJest.js} +1 -1
  338. package/dist/esm/{button-active-BDOsVAiZ.js → button-active-ChA4D-ml.js} +2 -2
  339. package/dist/esm/{format-Dcwga61t.js → format-CVk5e_GP.js} +2 -2
  340. package/dist/esm/{framework-delegate-BHTU2Ip9.js → framework-delegate-DaLWnISz.js} +1 -1
  341. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-B_gJaBk0.js} +6 -14
  342. package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-D8W4L0JP.js} +1 -1
  343. package/dist/esm/{helpers-CAGf8Wgp.js → helpers-BIgoInJU.js} +1 -1
  344. package/dist/esm/{index-DcPaH5uL.js → index-BmLuEdV7.js} +1 -1
  345. package/dist/esm/{index-T0JxBI8V.js → index-BmOR8tCv.js} +2 -2
  346. package/dist/esm/{index-CqneaaGd.js → index-C5ZdL0qp.js} +5 -5
  347. package/dist/esm/{index-WlteAIqz.js → index-C8Dsa6li.js} +4 -4
  348. package/dist/esm/{index-ChhhtsGZ.js → index-CKYcsw8f.js} +3 -1
  349. package/dist/esm/{index-Clc-28O1.js → index-DHw2lZxe.js} +2 -2
  350. package/dist/esm/{index-CKM1DdGm.js → index-elneMH8y.js} +1 -2
  351. package/dist/esm/index.js +14 -14
  352. package/dist/esm/{input-shims-B8sfni1e.js → input-shims-09NN97kF.js} +3 -3
  353. package/dist/esm/{input.utils-B1ValN_N.js → input.utils-BxyH9l1w.js} +1 -1
  354. package/dist/esm/ion-accordion_2.entry.js +335 -364
  355. package/dist/esm/ion-action-sheet.entry.js +60 -140
  356. package/dist/esm/ion-alert.entry.js +67 -159
  357. package/dist/esm/ion-app_8.entry.js +163 -258
  358. package/dist/esm/ion-avatar_3.entry.js +2 -8
  359. package/dist/esm/ion-back-button.entry.js +21 -45
  360. package/dist/esm/ion-backdrop.entry.js +14 -18
  361. package/dist/esm/ion-breadcrumb_2.entry.js +117 -195
  362. package/dist/esm/ion-button_2.entry.js +61 -130
  363. package/dist/esm/ion-card_5.entry.js +28 -80
  364. package/dist/esm/ion-checkbox.entry.js +98 -147
  365. package/dist/esm/ion-chip.entry.js +10 -16
  366. package/dist/esm/ion-col_3.entry.js +6 -126
  367. package/dist/esm/ion-datetime-button.entry.js +232 -248
  368. package/dist/esm/ion-datetime.entry.js +775 -953
  369. package/dist/esm/ion-fab_3.entry.js +78 -136
  370. package/dist/esm/ion-img.entry.js +11 -31
  371. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -98
  372. package/dist/esm/ion-input-otp.entry.js +352 -424
  373. package/dist/esm/ion-input-password-toggle.entry.js +14 -29
  374. package/dist/esm/ion-input.entry.js +158 -302
  375. package/dist/esm/ion-item-option_3.entry.js +54 -98
  376. package/dist/esm/ion-item_8.entry.js +61 -157
  377. package/dist/esm/ion-loading.entry.js +54 -131
  378. package/dist/esm/ion-menu_3.entry.js +94 -158
  379. package/dist/esm/ion-modal.entry.js +206 -362
  380. package/dist/esm/ion-nav_2.entry.js +26 -78
  381. package/dist/esm/ion-picker-column-option.entry.js +23 -33
  382. package/dist/esm/ion-picker-column.entry.js +389 -410
  383. package/dist/esm/ion-picker.entry.js +390 -400
  384. package/dist/esm/ion-popover.entry.js +184 -292
  385. package/dist/esm/ion-progress-bar.entry.js +23 -29
  386. package/dist/esm/ion-radio_2.entry.js +128 -201
  387. package/dist/esm/ion-range.entry.js +223 -293
  388. package/dist/esm/ion-refresher_2.entry.js +89 -154
  389. package/dist/esm/ion-reorder_2.entry.js +19 -49
  390. package/dist/esm/ion-ripple-effect.entry.js +13 -13
  391. package/dist/esm/ion-route_4.entry.js +45 -144
  392. package/dist/esm/ion-searchbar.entry.js +182 -268
  393. package/dist/esm/ion-segment-content.entry.js +1 -1
  394. package/dist/esm/ion-segment-view.entry.js +12 -24
  395. package/dist/esm/ion-segment_2.entry.js +122 -161
  396. package/dist/esm/ion-select-modal.entry.js +19 -21
  397. package/dist/esm/ion-select_3.entry.js +151 -319
  398. package/dist/esm/ion-spinner.entry.js +6 -21
  399. package/dist/esm/ion-split-pane.entry.js +14 -27
  400. package/dist/esm/ion-tab-bar_2.entry.js +32 -89
  401. package/dist/esm/ion-tab_2.entry.js +22 -49
  402. package/dist/esm/ion-text.entry.js +2 -8
  403. package/dist/esm/ion-textarea.entry.js +139 -256
  404. package/dist/esm/ion-toast.entry.js +106 -221
  405. package/dist/esm/ion-toggle.entry.js +114 -165
  406. package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-lrowsHfi.js} +1 -1
  407. package/dist/esm/ionic.js +5 -5
  408. package/dist/esm/{ios.transition-DXRCmcbC.js → ios.transition-BQhADrk1.js} +4 -4
  409. package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-D_N3fDkD.js} +1 -1
  410. package/dist/esm/loader.js +5 -5
  411. package/dist/esm/{md.transition-BMngO4i_.js → md.transition-D58NpmRa.js} +4 -4
  412. package/dist/esm/{overlays-CPmIs9Ls.js → overlays-BpnIFlXI.js} +6 -6
  413. package/dist/esm/{select-option-render-C4m76VGH.js → select-option-render-lIuu64EV.js} +2 -2
  414. package/dist/esm/{slot-mutation-controller-DiE_C9un.js → slot-mutation-controller-rS_T3FDR.js} +1 -1
  415. package/dist/esm/{status-tap-CHB7KwIb.js → status-tap-CpFQMLl6.js} +3 -3
  416. package/dist/esm/{swipe-back-C9HW1bug.js → swipe-back-rmc7zeNW.js} +4 -4
  417. package/dist/ionic/index.esm.js +1 -1
  418. package/dist/ionic/ionic.esm.js +1 -1
  419. package/dist/ionic/p-05800a02.entry.js +4 -0
  420. package/dist/ionic/p-0eb50dca.entry.js +4 -0
  421. package/dist/ionic/p-16e9f542.entry.js +4 -0
  422. package/dist/ionic/p-18d532a3.entry.js +4 -0
  423. package/dist/ionic/p-1db2afb4.entry.js +4 -0
  424. package/dist/ionic/p-1df75f9e.entry.js +4 -0
  425. package/dist/ionic/p-295ff427.entry.js +4 -0
  426. package/dist/ionic/p-34b9379b.entry.js +4 -0
  427. package/dist/ionic/p-39a8d4e0.entry.js +4 -0
  428. package/dist/ionic/p-4437015c.entry.js +4 -0
  429. package/dist/ionic/p-478035a7.entry.js +4 -0
  430. package/dist/ionic/p-485fb218.entry.js +4 -0
  431. package/dist/ionic/p-48c859fe.entry.js +4 -0
  432. package/dist/ionic/p-49b9d405.entry.js +4 -0
  433. package/dist/ionic/p-56307aea.entry.js +4 -0
  434. package/dist/ionic/p-5b906fd6.entry.js +4 -0
  435. package/dist/ionic/p-5ee2d7b1.entry.js +4 -0
  436. package/dist/ionic/p-5f216b79.entry.js +4 -0
  437. package/dist/ionic/p-61c799d1.entry.js +4 -0
  438. package/dist/ionic/p-63bbba8d.entry.js +4 -0
  439. package/dist/ionic/p-68507e70.entry.js +4 -0
  440. package/dist/ionic/{p-ded69ceb.entry.js → p-6f048604.entry.js} +1 -1
  441. package/dist/ionic/p-70ee8888.entry.js +4 -0
  442. package/dist/ionic/p-72ad7c64.entry.js +4 -0
  443. package/dist/ionic/p-75887ee0.entry.js +4 -0
  444. package/dist/ionic/p-873a315a.entry.js +4 -0
  445. package/dist/ionic/p-881b6954.entry.js +4 -0
  446. package/dist/ionic/p-886d9e66.entry.js +4 -0
  447. package/dist/ionic/p-8dd4c026.entry.js +4 -0
  448. package/dist/ionic/p-8e007f11.entry.js +4 -0
  449. package/dist/ionic/p-8f51110d.entry.js +4 -0
  450. package/dist/ionic/p-90ba736e.entry.js +4 -0
  451. package/dist/ionic/p-959df5f8.entry.js +4 -0
  452. package/dist/ionic/p-9e455875.entry.js +4 -0
  453. package/dist/ionic/{p-CBR_W98Z.js → p-9wczfs_v.js} +1 -1
  454. package/dist/ionic/p-B1Y7LZhV.js +4 -0
  455. package/dist/ionic/p-B5RyLYvl.js +4 -0
  456. package/dist/ionic/{p-CPcPmkGv.js → p-BQv5i5Kf.js} +1 -1
  457. package/{components/p-8FN7p701.js → dist/ionic/p-BZVE25Gu.js} +1 -1
  458. package/{components/p-DFvZn99E.js → dist/ionic/p-BZxjcGRP.js} +1 -1
  459. package/dist/ionic/p-B_gJaBk0.js +4 -0
  460. package/dist/ionic/p-BnGA34Pd.js +4 -0
  461. package/dist/ionic/p-ByLaqOPm.js +4 -0
  462. package/dist/ionic/p-C06QNN45.js +4 -0
  463. package/dist/ionic/p-C4IBDDj6.js +4 -0
  464. package/dist/ionic/p-CCVlNZ__.js +4 -0
  465. package/dist/ionic/{p-CMRtMbJc.js → p-CDBop-kz.js} +1 -1
  466. package/dist/ionic/p-CKYcsw8f.js +5 -0
  467. package/dist/ionic/p-CazSodad.js +4 -0
  468. package/{components/p-ia3IDdJS.js → dist/ionic/p-ClrlQU2y.js} +1 -1
  469. package/dist/ionic/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
  470. package/dist/ionic/p-D0dfUysx.js +4 -0
  471. package/dist/ionic/{p-BB0LlG4y.js → p-D9yvytgv.js} +1 -1
  472. package/{components/p-C5KYjZWD.js → dist/ionic/p-DF_Uqql8.js} +1 -1
  473. package/dist/ionic/{p-BYEAtHr-.js → p-DXJgZWgi.js} +1 -1
  474. package/dist/ionic/{p-D94_RztK.js → p-DdhHqKj-.js} +1 -1
  475. package/dist/ionic/p-De0eY881.js +4 -0
  476. package/dist/ionic/p-DgUL3JbO.js +4 -0
  477. package/dist/ionic/{p-7CBuOvEo.js → p-RzUn7cKs.js} +1 -1
  478. package/dist/ionic/p-VquyMbjp.js +4 -0
  479. package/dist/ionic/p-a0fee899.entry.js +4 -0
  480. package/dist/ionic/p-a54bcd16.entry.js +4 -0
  481. package/dist/ionic/p-aebc4d69.entry.js +4 -0
  482. package/dist/ionic/p-b5f37106.entry.js +4 -0
  483. package/dist/ionic/{p-40424a88.entry.js → p-b62bfce8.entry.js} +1 -1
  484. package/dist/ionic/p-b7a11b58.entry.js +4 -0
  485. package/dist/ionic/p-bbf6878c.entry.js +4 -0
  486. package/dist/ionic/p-c49165af.entry.js +4 -0
  487. package/dist/ionic/p-cad4eccf.entry.js +4 -0
  488. package/dist/ionic/p-cdc5115e.entry.js +4 -0
  489. package/dist/ionic/p-d3384a40.entry.js +4 -0
  490. package/dist/ionic/p-d8bae128.entry.js +4 -0
  491. package/dist/ionic/p-d8deff43.entry.js +4 -0
  492. package/dist/ionic/p-ddfb7e5f.entry.js +4 -0
  493. package/dist/ionic/p-e538f18d.entry.js +4 -0
  494. package/dist/ionic/p-f376876b.entry.js +4 -0
  495. package/dist/ionic/p-f7dd1ed9.entry.js +4 -0
  496. package/dist/ionic/p-fbd83d4c.entry.js +4 -0
  497. package/dist/types/components/refresher/refresher.d.ts +7 -0
  498. package/hydrate/index.js +5450 -8380
  499. package/hydrate/index.mjs +5450 -8380
  500. package/package.json +1 -1
  501. package/components/p--m5cCjbK.js +0 -4
  502. package/components/p-B4uHHhPK.js +0 -4
  503. package/components/p-BNJOu1Q2.js +0 -4
  504. package/components/p-BOvLNVKq.js +0 -4
  505. package/components/p-BeamQXHF.js +0 -4
  506. package/components/p-BjluhQMI.js +0 -4
  507. package/components/p-BlsIikdZ.js +0 -4
  508. package/components/p-BrD9Xv62.js +0 -4
  509. package/components/p-BvJqoZ5R.js +0 -4
  510. package/components/p-Bz6z3Asd.js +0 -4
  511. package/components/p-C6HnVvHO.js +0 -4
  512. package/components/p-C7jvh5Wy.js +0 -4
  513. package/components/p-C9BGR5fy.js +0 -4
  514. package/components/p-CB-y1CdP.js +0 -4
  515. package/components/p-CHH3loEE.js +0 -4
  516. package/components/p-CJKUWjmg.js +0 -4
  517. package/components/p-CMLAwl_N.js +0 -4
  518. package/components/p-CejmQs3h.js +0 -4
  519. package/components/p-CtZqa4HM.js +0 -4
  520. package/components/p-D9qIVSWm.js +0 -4
  521. package/components/p-DE-3iMNW.js +0 -4
  522. package/components/p-DHFt2rdc.js +0 -4
  523. package/components/p-D_RCyzwu.js +0 -4
  524. package/components/p-D_tD8r3L.js +0 -4
  525. package/components/p-DjCtLZbF.js +0 -4
  526. package/components/p-Dmd2xqCe.js +0 -4
  527. package/components/p-G6JR-cr_.js +0 -4
  528. package/components/p-GG5GhznE.js +0 -4
  529. package/components/p-TXPDHL13.js +0 -4
  530. package/components/p-_IKFD3ID.js +0 -4
  531. package/components/p-dKq2jIum.js +0 -4
  532. package/components/p-iYhH60Tc.js +0 -4
  533. package/dist/ionic/p-06ec7136.entry.js +0 -4
  534. package/dist/ionic/p-09fe4fa3.entry.js +0 -4
  535. package/dist/ionic/p-10d45a07.entry.js +0 -4
  536. package/dist/ionic/p-208c8a07.entry.js +0 -4
  537. package/dist/ionic/p-212474fa.entry.js +0 -4
  538. package/dist/ionic/p-2eef1396.entry.js +0 -4
  539. package/dist/ionic/p-347e005d.entry.js +0 -4
  540. package/dist/ionic/p-3a0b3f1d.entry.js +0 -4
  541. package/dist/ionic/p-3b071259.entry.js +0 -4
  542. package/dist/ionic/p-4204184c.entry.js +0 -4
  543. package/dist/ionic/p-47464391.entry.js +0 -4
  544. package/dist/ionic/p-4f9c9126.entry.js +0 -4
  545. package/dist/ionic/p-5JsKPLJD.js +0 -4
  546. package/dist/ionic/p-5bc485c6.entry.js +0 -4
  547. package/dist/ionic/p-603a61e6.entry.js +0 -4
  548. package/dist/ionic/p-60576951.entry.js +0 -4
  549. package/dist/ionic/p-67a81d33.entry.js +0 -4
  550. package/dist/ionic/p-6affb775.entry.js +0 -4
  551. package/dist/ionic/p-6f120c25.entry.js +0 -4
  552. package/dist/ionic/p-71c82b60.entry.js +0 -4
  553. package/dist/ionic/p-79325ffe.entry.js +0 -4
  554. package/dist/ionic/p-7e4d51fa.entry.js +0 -4
  555. package/dist/ionic/p-7f5d4664.entry.js +0 -4
  556. package/dist/ionic/p-80ee82fc.entry.js +0 -4
  557. package/dist/ionic/p-84af7dbc.entry.js +0 -4
  558. package/dist/ionic/p-89ca830a.entry.js +0 -4
  559. package/dist/ionic/p-93b8ec8f.entry.js +0 -4
  560. package/dist/ionic/p-946f65c2.entry.js +0 -4
  561. package/dist/ionic/p-9c4b39fb.entry.js +0 -4
  562. package/dist/ionic/p-B1NEZUzQ.js +0 -4
  563. package/dist/ionic/p-B1ck5iy-.js +0 -4
  564. package/dist/ionic/p-B4FrqdW0.js +0 -4
  565. package/dist/ionic/p-C-94tAim.js +0 -4
  566. package/dist/ionic/p-C-eHZMYE.js +0 -4
  567. package/dist/ionic/p-CaRuIadB.js +0 -4
  568. package/dist/ionic/p-ChhhtsGZ.js +0 -5
  569. package/dist/ionic/p-CzS1qWve.js +0 -4
  570. package/dist/ionic/p-DjjfauRM.js +0 -4
  571. package/dist/ionic/p-DkUB-ROc.js +0 -4
  572. package/dist/ionic/p-DplOqGUv.js +0 -4
  573. package/dist/ionic/p-Dst_XmZh.js +0 -4
  574. package/dist/ionic/p-TXPDHL13.js +0 -4
  575. package/dist/ionic/p-a438b193.entry.js +0 -4
  576. package/dist/ionic/p-babaaaa7.entry.js +0 -4
  577. package/dist/ionic/p-be08d500.entry.js +0 -4
  578. package/dist/ionic/p-be9a4f51.entry.js +0 -4
  579. package/dist/ionic/p-c00d3092.entry.js +0 -4
  580. package/dist/ionic/p-c36dc8f5.entry.js +0 -4
  581. package/dist/ionic/p-c72a7e17.entry.js +0 -4
  582. package/dist/ionic/p-c8edd88c.entry.js +0 -4
  583. package/dist/ionic/p-ce0e380b.entry.js +0 -4
  584. package/dist/ionic/p-ce32912b.entry.js +0 -4
  585. package/dist/ionic/p-d07cf130.entry.js +0 -4
  586. package/dist/ionic/p-d27edeb3.entry.js +0 -4
  587. package/dist/ionic/p-d5d2c506.entry.js +0 -4
  588. package/dist/ionic/p-d5e31ca9.entry.js +0 -4
  589. package/dist/ionic/p-de91444f.entry.js +0 -4
  590. package/dist/ionic/p-df72866d.entry.js +0 -4
  591. package/dist/ionic/p-e47e3151.entry.js +0 -4
  592. package/dist/ionic/p-e621e5e8.entry.js +0 -4
  593. package/dist/ionic/p-eea9cf93.entry.js +0 -4
  594. package/dist/ionic/p-f402f5a4.entry.js +0 -4
  595. package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
  596. package/dist/ionic/p-ffb90460.entry.js +0 -4
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, g as getElement, j as printIonError, h, d as Host } from './index-ChhhtsGZ.js';
5
- import { c as componentOnReady, f as addEventListener } from './helpers-CAGf8Wgp.js';
4
+ import { r as registerInstance, j as printIonError, h, d as Host, g as getElement } from './index-CKYcsw8f.js';
5
+ import { f as addEventListener, c as componentOnReady } from './helpers-BIgoInJU.js';
6
6
  import { c as createColorClasses } from './theme-byZM6qHV.js';
7
- import { b as getIonMode } from './ionic-global-BVB7BrLT.js';
8
- import { F as parseDate, d as getHourCycle, P as getLocalizedDateTime, O as getLocalizedTime } from './format-Dcwga61t.js';
7
+ import { b as getIonMode } from './ionic-global-lrowsHfi.js';
8
+ import { D as parseDate, d as getHourCycle, P as getLocalizedDateTime, O as getLocalizedTime } from './format-CVk5e_GP.js';
9
9
  import './dir-Dojwmvde.js';
10
10
 
11
11
  const datetimeButtonIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;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:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
@@ -15,32 +15,234 @@ const datetimeButtonMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-fl
15
15
  const DatetimeButton = class {
16
16
  constructor(hostRef) {
17
17
  registerInstance(this, hostRef);
18
+ this.datetimeEl = null;
19
+ this.overlayEl = null;
20
+ this.datetimePresentation = 'date-time';
21
+ this.datetimeActive = false;
22
+ /**
23
+ * If `true`, the user cannot interact with the button.
24
+ */
25
+ this.disabled = false;
26
+ /**
27
+ * Accepts one or more string values and converts
28
+ * them to DatetimeParts. This is done so datetime-button
29
+ * can work with an array internally and not need
30
+ * to keep checking if the datetime value is `string` or `string[]`.
31
+ */
32
+ this.getParsedDateValues = (value) => {
33
+ if (value === undefined || value === null) {
34
+ return [];
35
+ }
36
+ if (Array.isArray(value)) {
37
+ return value;
38
+ }
39
+ return [value];
40
+ };
41
+ /**
42
+ * Check the value property on the linked
43
+ * ion-datetime and then format it according
44
+ * to the locale specified on ion-datetime.
45
+ */
46
+ this.setDateTimeText = async () => {
47
+ const { datetimeEl, datetimePresentation } = this;
48
+ if (!datetimeEl) {
49
+ return;
50
+ }
51
+ const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
52
+ const parsedValues = this.getParsedDateValues(value);
53
+ /**
54
+ * Both ion-datetime and ion-datetime-button default to today's date and
55
+ * time if no value is set. We read the datetime's computed default so the
56
+ * button respects the same constraints (min, max, minuteValues, etc.) that
57
+ * the datetime applies to its own fallback, instead of using a raw "now".
58
+ */
59
+ const parsedDatetimes = parsedValues.length > 0 ? parseDate(parsedValues) : [await datetimeEl.getDefaultPart()];
60
+ if (!parsedDatetimes) {
61
+ return;
62
+ }
63
+ /**
64
+ * If developers incorrectly use multiple="true"
65
+ * with non "date" datetimes, then just select
66
+ * the first value so the interface does
67
+ * not appear broken. Datetime will provide a
68
+ * warning in the console.
69
+ */
70
+ const firstParsedDatetime = parsedDatetimes[0];
71
+ const computedHourCycle = getHourCycle(locale, hourCycle);
72
+ this.dateText = this.timeText = undefined;
73
+ switch (datetimePresentation) {
74
+ case 'date-time':
75
+ case 'time-date':
76
+ const dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
77
+ const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
78
+ if (preferWheel) {
79
+ this.dateText = `${dateText} ${timeText}`;
80
+ }
81
+ else {
82
+ this.dateText = dateText;
83
+ this.timeText = timeText;
84
+ }
85
+ break;
86
+ case 'date':
87
+ if (multiple && parsedValues.length !== 1) {
88
+ let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
89
+ if (titleSelectedDatesFormatter !== undefined) {
90
+ try {
91
+ headerText = titleSelectedDatesFormatter(parsedValues);
92
+ }
93
+ catch (e) {
94
+ printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
95
+ }
96
+ }
97
+ this.dateText = headerText;
98
+ }
99
+ else {
100
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
101
+ }
102
+ break;
103
+ case 'time':
104
+ this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
105
+ break;
106
+ case 'month-year':
107
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'long', year: 'numeric' });
108
+ break;
109
+ case 'month':
110
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { month: 'long' });
111
+ break;
112
+ case 'year':
113
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { year: 'numeric' });
114
+ break;
115
+ }
116
+ };
117
+ /**
118
+ * Waits for the ion-datetime to re-render.
119
+ * This is needed in order to correctly position
120
+ * a popover relative to the trigger element.
121
+ */
122
+ this.waitForDatetimeChanges = async () => {
123
+ const { datetimeEl } = this;
124
+ if (!datetimeEl) {
125
+ return Promise.resolve();
126
+ }
127
+ return new Promise((resolve) => {
128
+ addEventListener(datetimeEl, 'ionRender', resolve, { once: true });
129
+ });
130
+ };
131
+ this.handleDateClick = async (ev) => {
132
+ const { datetimeEl, datetimePresentation } = this;
133
+ if (!datetimeEl) {
134
+ return;
135
+ }
136
+ let needsPresentationChange = false;
137
+ /**
138
+ * When clicking the date button,
139
+ * we need to make sure that only a date
140
+ * picker is displayed. For presentation styles
141
+ * that display content other than a date picker,
142
+ * we need to update the presentation style.
143
+ */
144
+ switch (datetimePresentation) {
145
+ case 'date-time':
146
+ case 'time-date':
147
+ const needsChange = datetimeEl.presentation !== 'date';
148
+ /**
149
+ * The date+time wheel picker
150
+ * shows date and time together,
151
+ * so do not adjust the presentation
152
+ * in that case.
153
+ */
154
+ if (!datetimeEl.preferWheel && needsChange) {
155
+ datetimeEl.presentation = 'date';
156
+ needsPresentationChange = true;
157
+ }
158
+ break;
159
+ }
160
+ /**
161
+ * Track which button was clicked
162
+ * so that it can have the correct
163
+ * activated styles applied when
164
+ * the modal/popover containing
165
+ * the datetime is opened.
166
+ */
167
+ this.selectedButton = 'date';
168
+ this.presentOverlay(ev, needsPresentationChange, this.dateTargetEl);
169
+ };
170
+ this.handleTimeClick = (ev) => {
171
+ const { datetimeEl, datetimePresentation } = this;
172
+ if (!datetimeEl) {
173
+ return;
174
+ }
175
+ let needsPresentationChange = false;
176
+ /**
177
+ * When clicking the time button,
178
+ * we need to make sure that only a time
179
+ * picker is displayed. For presentation styles
180
+ * that display content other than a time picker,
181
+ * we need to update the presentation style.
182
+ */
183
+ switch (datetimePresentation) {
184
+ case 'date-time':
185
+ case 'time-date':
186
+ const needsChange = datetimeEl.presentation !== 'time';
187
+ if (needsChange) {
188
+ datetimeEl.presentation = 'time';
189
+ needsPresentationChange = true;
190
+ }
191
+ break;
192
+ }
193
+ /**
194
+ * Track which button was clicked
195
+ * so that it can have the correct
196
+ * activated styles applied when
197
+ * the modal/popover containing
198
+ * the datetime is opened.
199
+ */
200
+ this.selectedButton = 'time';
201
+ this.presentOverlay(ev, needsPresentationChange, this.timeTargetEl);
202
+ };
203
+ /**
204
+ * If the datetime is presented in an
205
+ * overlay, the datetime and overlay
206
+ * should be appropriately sized.
207
+ * These classes provide default sizing values
208
+ * that developers can customize.
209
+ * The goal is to provide an overlay that is
210
+ * reasonably sized with a datetime that
211
+ * fills the entire container.
212
+ */
213
+ this.presentOverlay = async (ev, needsPresentationChange, triggerEl) => {
214
+ const { overlayEl } = this;
215
+ if (!overlayEl) {
216
+ return;
217
+ }
218
+ if (overlayEl.tagName === 'ION-POPOVER') {
219
+ /**
220
+ * When the presentation on datetime changes,
221
+ * we need to wait for the component to re-render
222
+ * otherwise the computed width/height of the
223
+ * popover content will be wrong, causing
224
+ * the popover to not align with the trigger element.
225
+ */
226
+ if (needsPresentationChange) {
227
+ await this.waitForDatetimeChanges();
228
+ }
229
+ /**
230
+ * We pass the trigger button element
231
+ * so that the popover aligns with the individual
232
+ * button that was clicked, not the component container.
233
+ */
234
+ overlayEl.present({
235
+ ...ev,
236
+ detail: {
237
+ ionShadowTarget: triggerEl,
238
+ },
239
+ });
240
+ }
241
+ else {
242
+ overlayEl.present();
243
+ }
244
+ };
18
245
  }
19
- datetimeEl = null;
20
- overlayEl = null;
21
- dateTargetEl;
22
- timeTargetEl;
23
- get el() { return getElement(this); }
24
- datetimePresentation = 'date-time';
25
- dateText;
26
- timeText;
27
- datetimeActive = false;
28
- selectedButton;
29
- /**
30
- * The color to use from your application's color palette.
31
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
32
- * For more information on colors, see [theming](/docs/theming/basics).
33
- */
34
- color;
35
- /**
36
- * If `true`, the user cannot interact with the button.
37
- */
38
- disabled = false;
39
- /**
40
- * The ID of the `ion-datetime` instance
41
- * associated with the datetime button.
42
- */
43
- datetime;
44
246
  async componentWillLoad() {
45
247
  const { datetime } = this;
46
248
  if (!datetime) {
@@ -129,225 +331,6 @@ const DatetimeButton = class {
129
331
  }
130
332
  });
131
333
  }
132
- /**
133
- * Accepts one or more string values and converts
134
- * them to DatetimeParts. This is done so datetime-button
135
- * can work with an array internally and not need
136
- * to keep checking if the datetime value is `string` or `string[]`.
137
- */
138
- getParsedDateValues = (value) => {
139
- if (value === undefined || value === null) {
140
- return [];
141
- }
142
- if (Array.isArray(value)) {
143
- return value;
144
- }
145
- return [value];
146
- };
147
- /**
148
- * Check the value property on the linked
149
- * ion-datetime and then format it according
150
- * to the locale specified on ion-datetime.
151
- */
152
- setDateTimeText = async () => {
153
- const { datetimeEl, datetimePresentation } = this;
154
- if (!datetimeEl) {
155
- return;
156
- }
157
- const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
158
- const parsedValues = this.getParsedDateValues(value);
159
- /**
160
- * Both ion-datetime and ion-datetime-button default to today's date and
161
- * time if no value is set. We read the datetime's computed default so the
162
- * button respects the same constraints (min, max, minuteValues, etc.) that
163
- * the datetime applies to its own fallback, instead of using a raw "now".
164
- */
165
- const parsedDatetimes = parsedValues.length > 0 ? parseDate(parsedValues) : [await datetimeEl.getDefaultPart()];
166
- if (!parsedDatetimes) {
167
- return;
168
- }
169
- /**
170
- * If developers incorrectly use multiple="true"
171
- * with non "date" datetimes, then just select
172
- * the first value so the interface does
173
- * not appear broken. Datetime will provide a
174
- * warning in the console.
175
- */
176
- const firstParsedDatetime = parsedDatetimes[0];
177
- const computedHourCycle = getHourCycle(locale, hourCycle);
178
- this.dateText = this.timeText = undefined;
179
- switch (datetimePresentation) {
180
- case 'date-time':
181
- case 'time-date':
182
- const dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
183
- const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
184
- if (preferWheel) {
185
- this.dateText = `${dateText} ${timeText}`;
186
- }
187
- else {
188
- this.dateText = dateText;
189
- this.timeText = timeText;
190
- }
191
- break;
192
- case 'date':
193
- if (multiple && parsedValues.length !== 1) {
194
- let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
195
- if (titleSelectedDatesFormatter !== undefined) {
196
- try {
197
- headerText = titleSelectedDatesFormatter(parsedValues);
198
- }
199
- catch (e) {
200
- printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
201
- }
202
- }
203
- this.dateText = headerText;
204
- }
205
- else {
206
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
207
- }
208
- break;
209
- case 'time':
210
- this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
211
- break;
212
- case 'month-year':
213
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'long', year: 'numeric' });
214
- break;
215
- case 'month':
216
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { month: 'long' });
217
- break;
218
- case 'year':
219
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { year: 'numeric' });
220
- break;
221
- }
222
- };
223
- /**
224
- * Waits for the ion-datetime to re-render.
225
- * This is needed in order to correctly position
226
- * a popover relative to the trigger element.
227
- */
228
- waitForDatetimeChanges = async () => {
229
- const { datetimeEl } = this;
230
- if (!datetimeEl) {
231
- return Promise.resolve();
232
- }
233
- return new Promise((resolve) => {
234
- addEventListener(datetimeEl, 'ionRender', resolve, { once: true });
235
- });
236
- };
237
- handleDateClick = async (ev) => {
238
- const { datetimeEl, datetimePresentation } = this;
239
- if (!datetimeEl) {
240
- return;
241
- }
242
- let needsPresentationChange = false;
243
- /**
244
- * When clicking the date button,
245
- * we need to make sure that only a date
246
- * picker is displayed. For presentation styles
247
- * that display content other than a date picker,
248
- * we need to update the presentation style.
249
- */
250
- switch (datetimePresentation) {
251
- case 'date-time':
252
- case 'time-date':
253
- const needsChange = datetimeEl.presentation !== 'date';
254
- /**
255
- * The date+time wheel picker
256
- * shows date and time together,
257
- * so do not adjust the presentation
258
- * in that case.
259
- */
260
- if (!datetimeEl.preferWheel && needsChange) {
261
- datetimeEl.presentation = 'date';
262
- needsPresentationChange = true;
263
- }
264
- break;
265
- }
266
- /**
267
- * Track which button was clicked
268
- * so that it can have the correct
269
- * activated styles applied when
270
- * the modal/popover containing
271
- * the datetime is opened.
272
- */
273
- this.selectedButton = 'date';
274
- this.presentOverlay(ev, needsPresentationChange, this.dateTargetEl);
275
- };
276
- handleTimeClick = (ev) => {
277
- const { datetimeEl, datetimePresentation } = this;
278
- if (!datetimeEl) {
279
- return;
280
- }
281
- let needsPresentationChange = false;
282
- /**
283
- * When clicking the time button,
284
- * we need to make sure that only a time
285
- * picker is displayed. For presentation styles
286
- * that display content other than a time picker,
287
- * we need to update the presentation style.
288
- */
289
- switch (datetimePresentation) {
290
- case 'date-time':
291
- case 'time-date':
292
- const needsChange = datetimeEl.presentation !== 'time';
293
- if (needsChange) {
294
- datetimeEl.presentation = 'time';
295
- needsPresentationChange = true;
296
- }
297
- break;
298
- }
299
- /**
300
- * Track which button was clicked
301
- * so that it can have the correct
302
- * activated styles applied when
303
- * the modal/popover containing
304
- * the datetime is opened.
305
- */
306
- this.selectedButton = 'time';
307
- this.presentOverlay(ev, needsPresentationChange, this.timeTargetEl);
308
- };
309
- /**
310
- * If the datetime is presented in an
311
- * overlay, the datetime and overlay
312
- * should be appropriately sized.
313
- * These classes provide default sizing values
314
- * that developers can customize.
315
- * The goal is to provide an overlay that is
316
- * reasonably sized with a datetime that
317
- * fills the entire container.
318
- */
319
- presentOverlay = async (ev, needsPresentationChange, triggerEl) => {
320
- const { overlayEl } = this;
321
- if (!overlayEl) {
322
- return;
323
- }
324
- if (overlayEl.tagName === 'ION-POPOVER') {
325
- /**
326
- * When the presentation on datetime changes,
327
- * we need to wait for the component to re-render
328
- * otherwise the computed width/height of the
329
- * popover content will be wrong, causing
330
- * the popover to not align with the trigger element.
331
- */
332
- if (needsPresentationChange) {
333
- await this.waitForDatetimeChanges();
334
- }
335
- /**
336
- * We pass the trigger button element
337
- * so that the popover aligns with the individual
338
- * button that was clicked, not the component container.
339
- */
340
- overlayEl.present({
341
- ...ev,
342
- detail: {
343
- ionShadowTarget: triggerEl,
344
- },
345
- });
346
- }
347
- else {
348
- overlayEl.present();
349
- }
350
- };
351
334
  render() {
352
335
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
353
336
  const mode = getIonMode(this);
@@ -357,6 +340,7 @@ const DatetimeButton = class {
357
340
  ['datetime-button-disabled']: disabled,
358
341
  }) }, dateText && (h("button", { key: 'd9698471fa5d5c834ca73db57f9ed98dfc705b4c', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, h("slot", { key: 'c8761a7f25ae5b93c953b3486dd6335f5ad4fd53', name: "date-target" }, dateText), mode === 'md' && h("ion-ripple-effect", { key: '3dd5e97af8d35a2b008de4ab01f690b3c2223135' }))), timeText && (h("button", { key: '1107ca2382940b642b551f885f7ca763012c236c', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, h("slot", { key: '5cff53e486923b03715b9ab4dc0947e26f4ea1d9', name: "time-target" }, timeText), mode === 'md' && h("ion-ripple-effect", { key: '5aac1facb6fc7457307c4f59a241e3a5b31facc8' })))));
359
342
  }
343
+ get el() { return getElement(this); }
360
344
  };
361
345
  DatetimeButton.style = {
362
346
  ios: datetimeButtonIosCss(),