voyager-ionic-core 8.8.12 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (812) 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-1sJ0ZDPe.js +4 -0
  99. package/components/p-5ldEpNdG.js +4 -0
  100. package/components/p-6ZLn6K5e.js +4 -0
  101. package/components/p-B4lxwJ8N.js +4 -0
  102. package/components/{p-rCa2eL0j.js → p-BF48Oc0v.js} +1 -1
  103. package/components/p-BJr2B5hZ.js +4 -0
  104. package/components/p-BMPN55of.js +4 -0
  105. package/components/p-BNBnVi_1.js +4 -0
  106. package/components/{p-C4t5ymfq.js → p-BQyuFxYc.js} +1 -1
  107. package/components/p-BSQPZ79H.js +4 -0
  108. package/components/p-BT9-hMMz.js +4 -0
  109. package/components/p-BWoa-cki.js +4 -0
  110. package/components/p-BYJRZKHa.js +4 -0
  111. package/components/p-B_gJaBk0.js +4 -0
  112. package/components/p-BgkOsq-d.js +4 -0
  113. package/components/p-BhamHSw3.js +4 -0
  114. package/components/p-Bi-it1EH.js +4 -0
  115. package/components/p-C-NbvXu4.js +4 -0
  116. package/components/p-C0493tbX.js +4 -0
  117. package/components/p-C09TXohi.js +4 -0
  118. package/components/p-C4VpVfrJ.js +4 -0
  119. package/components/p-CEW4RXZO.js +4 -0
  120. package/components/p-CG_zZq_I.js +4 -0
  121. package/components/{p-B9jFTlwE.js → p-CJgnoKcN.js} +1 -1
  122. package/components/p-CMRYD_yR.js +4 -0
  123. package/components/{p-lE_JGpHD.js → p-CNLioZ3B.js} +1 -1
  124. package/components/{p--JUspHvy.js → p-COO0eJOA.js} +1 -1
  125. package/components/p-CWAks_S_.js +4 -0
  126. package/{dist/ionic/p-KjNvRoEp.js → components/p-Cd1WaN-0.js} +1 -1
  127. package/components/p-CqbGBmqb.js +4 -0
  128. package/components/p-CrAKlX71.js +4 -0
  129. package/components/p-Cw6WocLJ.js +4 -0
  130. package/components/p-D0YpjgON.js +4 -0
  131. package/components/{p-BirPFsRD.js → p-D5w_FlVa.js} +1 -1
  132. package/components/p-D7-vHX0A.js +4 -0
  133. package/components/p-D7wDJdFn.js +4 -0
  134. package/components/p-DFLJvuRK.js +4 -0
  135. package/components/p-DGPjJNOU.js +4 -0
  136. package/components/p-DJR0R0e1.js +4 -0
  137. package/components/p-DL13ieTa.js +4 -0
  138. package/components/{p-DqLB8yFQ.js → p-DM1gJSMP.js} +1 -1
  139. package/components/p-DMBiAyOR.js +4 -0
  140. package/components/p-DWCzVL3Y.js +4 -0
  141. package/components/p-DZRZic9C.js +4 -0
  142. package/components/{p-DNQI6d-L.js → p-DhNuxvJH.js} +1 -1
  143. package/components/p-DiuOa1vw.js +4 -0
  144. package/components/p-Dj40C8gm.js +4 -0
  145. package/components/p-Djmz-ssp.js +4 -0
  146. package/components/p-DnBNYc7u.js +4 -0
  147. package/components/p-DngGb-NV.js +4 -0
  148. package/components/p-Dojwmvde.js +4 -0
  149. package/components/p-DwSXbQSz.js +4 -0
  150. package/components/p-DxhHlJln.js +4 -0
  151. package/components/{p-DqZAXv2t.js → p-GGbIHyEF.js} +1 -1
  152. package/components/{p-j5IxBIan.js → p-Hp8t4RMX.js} +1 -1
  153. package/components/p-M34T2gyX.js +4 -0
  154. package/components/p-TWw4e4sO.js +4 -0
  155. package/components/{p-Cfx4M1Bn.js → p-YjMkHuvH.js} +1 -1
  156. package/components/p-byZM6qHV.js +4 -0
  157. package/components/p-cEN43Ahr.js +4 -0
  158. package/components/p-qAXsfUff.js +4 -0
  159. package/dist/cjs/{animation-BJq0kcy2.js → animation-Kd1N7WTN.js} +4 -4
  160. package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-b1G4t26O.js} +1 -1
  161. package/dist/cjs/{button-active-0mPOKmV2.js → button-active-CQCFubJJ.js} +3 -3
  162. package/dist/cjs/config-CjUbvdPW.js +36 -0
  163. package/dist/cjs/dir-zwDPRE5K.js +30 -0
  164. package/dist/cjs/{data-DLTUw-KF.js → format-bHU8N1g5.js} +48 -562
  165. package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-d-fWfeI6.js} +5 -7
  166. package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-CeJslptU.js} +1 -2
  167. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
  168. package/dist/cjs/{hardware-back-button-iUuF_76h.js → hardware-back-button-Bu4Dzw8l.js} +4 -4
  169. package/dist/cjs/{helpers-Cv23MFHM.js → helpers-7wzdhdeg.js} +15 -11
  170. package/dist/cjs/index-BbqUBe2T.js +429 -0
  171. package/dist/cjs/{index-D81eLYUM.js → index-C74Q3t6a.js} +3 -2
  172. package/dist/cjs/{index-BERfRao3.js → index-CQfEIyLK.js} +5 -5
  173. package/dist/cjs/{index-aC4x3Fk3.js → index-DFNrCX7M.js} +6 -7
  174. package/dist/cjs/{index-CAvQ7Tka.js → index-DRPqwSvU.js} +13 -30
  175. package/dist/cjs/{index-Ct7gcRif.js → index-DXoo08JC.js} +321 -26
  176. package/dist/cjs/{index-CIrkNXqJ.js → index-DtvKGwdh.js} +34 -2
  177. package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
  178. package/dist/cjs/index.cjs.js +19 -18
  179. package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-VJIiKBKv.js} +10 -11
  180. package/dist/cjs/input.utils-EHVE2RK_.js +35 -0
  181. package/dist/cjs/ion-accordion_2.cjs.entry.js +12 -12
  182. package/dist/cjs/ion-action-sheet.cjs.entry.js +92 -44
  183. package/dist/cjs/ion-alert.cjs.entry.js +144 -65
  184. package/dist/cjs/ion-app_8.cjs.entry.js +112 -40
  185. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  186. package/dist/cjs/ion-back-button.cjs.entry.js +6 -5
  187. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  188. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -7
  189. package/dist/cjs/ion-button_2.cjs.entry.js +18 -10
  190. package/dist/cjs/ion-card_5.cjs.entry.js +6 -5
  191. package/dist/cjs/ion-checkbox.cjs.entry.js +25 -12
  192. package/dist/cjs/ion-chip.cjs.entry.js +3 -3
  193. package/dist/cjs/ion-col_3.cjs.entry.js +10 -6
  194. package/dist/cjs/ion-datetime-button.cjs.entry.js +29 -30
  195. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +773 -796
  196. package/dist/cjs/ion-fab_3.cjs.entry.js +93 -14
  197. package/dist/cjs/ion-img.cjs.entry.js +7 -4
  198. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +8 -6
  199. package/dist/cjs/ion-input-otp.cjs.entry.js +20 -29
  200. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -10
  201. package/dist/cjs/ion-input.cjs.entry.js +58 -70
  202. package/dist/cjs/ion-item-option_3.cjs.entry.js +21 -24
  203. package/dist/cjs/ion-item_8.cjs.entry.js +117 -33
  204. package/dist/cjs/ion-loading.cjs.entry.js +29 -15
  205. package/dist/cjs/ion-menu_3.cjs.entry.js +23 -24
  206. package/dist/cjs/ion-modal.cjs.entry.js +307 -159
  207. package/dist/cjs/ion-nav_2.cjs.entry.js +30 -138
  208. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -13
  209. package/dist/cjs/ion-picker-column.cjs.entry.js +218 -62
  210. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  211. package/dist/cjs/ion-popover.cjs.entry.js +50 -30
  212. package/dist/cjs/ion-progress-bar.cjs.entry.js +6 -5
  213. package/dist/cjs/ion-radio_2.cjs.entry.js +24 -14
  214. package/dist/cjs/ion-range.cjs.entry.js +30 -25
  215. package/dist/cjs/ion-refresher_2.cjs.entry.js +61 -26
  216. package/dist/cjs/ion-reorder_2.cjs.entry.js +10 -9
  217. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  218. package/dist/cjs/ion-route_4.cjs.entry.js +36 -30
  219. package/dist/cjs/ion-searchbar.cjs.entry.js +27 -22
  220. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  221. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -6
  222. package/dist/cjs/ion-segment_2.cjs.entry.js +30 -26
  223. package/dist/cjs/ion-select-modal.cjs.entry.js +93 -38
  224. package/dist/cjs/ion-select_3.cjs.entry.js +495 -125
  225. package/dist/cjs/ion-spinner.cjs.entry.js +5 -6
  226. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  227. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +15 -12
  228. package/dist/cjs/ion-tab_2.cjs.entry.js +26 -19
  229. package/dist/cjs/ion-text.cjs.entry.js +5 -5
  230. package/dist/cjs/ion-textarea.cjs.entry.js +56 -65
  231. package/dist/cjs/ion-toast.cjs.entry.js +26 -21
  232. package/dist/cjs/ion-toggle.cjs.entry.js +36 -15
  233. package/dist/cjs/{ionic-global-B-cA6LkY.js → ionic-global-CYJNT-2P.js} +13 -8
  234. package/dist/cjs/ionic.cjs.js +5 -5
  235. package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-DYGiD6gM.js} +14 -17
  236. package/dist/cjs/item-multiple-inputs-Dv6qrMhm.js +38 -0
  237. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
  238. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
  240. package/dist/cjs/loader.cjs.js +4 -4
  241. package/dist/cjs/{md.transition-B8-wBZqt.js → md.transition-CrSkaoz6.js} +8 -8
  242. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  243. package/dist/cjs/{overlays-TbKsuC-K.js → overlays-BR21NUIG.js} +120 -57
  244. package/dist/cjs/select-option-render-CrbLc-1j.js +123 -0
  245. package/dist/cjs/slot-mutation-controller-D6IjSEIh.js +397 -0
  246. package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-CNP5eD1R.js} +4 -3
  247. package/dist/cjs/{swipe-back-CCMaNiP2.js → swipe-back-CSIJQfu5.js} +5 -5
  248. package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
  249. package/dist/collection/collection-manifest.json +7 -11
  250. package/dist/collection/components/accordion/accordion.js +5 -6
  251. package/dist/collection/components/accordion-group/accordion-group.js +2 -2
  252. package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
  253. package/dist/collection/components/action-sheet/action-sheet.js +77 -31
  254. package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
  255. package/dist/collection/components/alert/alert.ios.css +279 -10
  256. package/dist/collection/components/alert/alert.js +127 -50
  257. package/dist/collection/components/alert/alert.md.css +268 -20
  258. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  259. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  260. package/dist/collection/components/button/button.js +11 -4
  261. package/dist/collection/components/card/card.js +1 -1
  262. package/dist/collection/components/checkbox/checkbox.ios.css +18 -0
  263. package/dist/collection/components/checkbox/checkbox.js +19 -8
  264. package/dist/collection/components/checkbox/checkbox.md.css +18 -0
  265. package/dist/collection/components/col/col.js +7 -3
  266. package/dist/collection/components/content/content.js +56 -6
  267. package/dist/collection/components/datetime/datetime.ios.css +42 -2
  268. package/dist/collection/components/datetime/datetime.js +193 -79
  269. package/dist/collection/components/datetime/datetime.md.css +42 -1
  270. package/dist/collection/components/datetime/utils/data.js +13 -14
  271. package/dist/collection/components/datetime/utils/format.js +21 -11
  272. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  273. package/dist/collection/components/datetime/utils/parse.js +10 -10
  274. package/dist/collection/components/datetime/utils/state.js +8 -2
  275. package/dist/collection/components/datetime/utils/validate.js +4 -5
  276. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
  277. package/dist/collection/components/datetime-button/datetime-button.js +21 -25
  278. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
  279. package/dist/collection/components/fab-button/fab-button.js +114 -10
  280. package/dist/collection/components/footer/footer.js +1 -1
  281. package/dist/collection/components/header/header.js +2 -2
  282. package/dist/collection/components/img/img.js +6 -1
  283. package/dist/collection/components/input/input.ios.css +57 -26
  284. package/dist/collection/components/input/input.js +51 -64
  285. package/dist/collection/components/input/input.md.css +79 -43
  286. package/dist/collection/components/input-otp/input-otp.js +15 -24
  287. package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -6
  288. package/dist/collection/components/item/item.ios.css +11 -0
  289. package/dist/collection/components/item/item.js +99 -15
  290. package/dist/collection/components/item/item.md.css +11 -0
  291. package/dist/collection/components/item-divider/item-divider.js +2 -2
  292. package/dist/collection/components/item-group/item-group.js +1 -1
  293. package/dist/collection/components/item-option/item-option.js +2 -2
  294. package/dist/collection/components/item-options/item-options.js +1 -1
  295. package/dist/collection/components/item-sliding/item-sliding.js +12 -16
  296. package/dist/collection/components/label/label.js +2 -2
  297. package/dist/collection/components/list/list.js +2 -2
  298. package/dist/collection/components/list-header/list-header.js +2 -2
  299. package/dist/collection/components/loading/loading.js +17 -5
  300. package/dist/collection/components/menu/menu.js +6 -8
  301. package/dist/collection/components/menu-button/menu-button.js +2 -2
  302. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  303. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  304. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  305. package/dist/collection/components/modal/gestures/sheet.js +47 -32
  306. package/dist/collection/components/modal/gestures/swipe-to-close.js +23 -33
  307. package/dist/collection/components/modal/gestures/utils.js +17 -0
  308. package/dist/collection/components/modal/modal.ios.css +8 -0
  309. package/dist/collection/components/modal/modal.js +158 -65
  310. package/dist/collection/components/modal/modal.md.css +8 -0
  311. package/dist/collection/components/modal/safe-area-utils.js +39 -5
  312. package/dist/collection/components/nav/nav.js +24 -235
  313. package/dist/collection/components/nav-link/nav-link.js +1 -1
  314. package/dist/collection/components/note/note.js +2 -2
  315. package/dist/collection/components/picker/picker.js +1 -2
  316. package/dist/collection/components/picker-column/picker-column.css +3 -0
  317. package/dist/collection/components/picker-column/picker-column.js +212 -58
  318. package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
  319. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
  320. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  321. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  322. package/dist/collection/components/popover/popover.ios.css +15 -0
  323. package/dist/collection/components/popover/popover.js +32 -9
  324. package/dist/collection/components/popover/popover.md.css +15 -0
  325. package/dist/collection/components/popover/utils.js +4 -6
  326. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  327. package/dist/collection/components/radio/radio.ios.css +11 -15
  328. package/dist/collection/components/radio/radio.js +17 -9
  329. package/dist/collection/components/radio/radio.md.css +11 -11
  330. package/dist/collection/components/radio-group/radio-group.js +2 -2
  331. package/dist/collection/components/range/range.js +24 -19
  332. package/dist/collection/components/refresher/refresher.js +49 -16
  333. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  334. package/dist/collection/components/reorder/reorder.js +1 -1
  335. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  336. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  337. package/dist/collection/components/route/route.js +1 -1
  338. package/dist/collection/components/router/router.js +2 -6
  339. package/dist/collection/components/router/utils/dom.js +25 -7
  340. package/dist/collection/components/router/utils/matching.js +6 -9
  341. package/dist/collection/components/router/utils/parser.js +1 -1
  342. package/dist/collection/components/router/utils/path.js +0 -1
  343. package/dist/collection/components/router-link/router-link.js +2 -2
  344. package/dist/collection/components/router-outlet/router-outlet.js +49 -10
  345. package/dist/collection/components/row/row.js +1 -1
  346. package/dist/collection/components/searchbar/searchbar.js +25 -20
  347. package/dist/collection/components/segment/segment.js +9 -11
  348. package/dist/collection/components/segment-button/segment-button.js +15 -9
  349. package/dist/collection/components/segment-content/segment-content.js +1 -1
  350. package/dist/collection/components/segment-view/segment-view.js +3 -4
  351. package/dist/collection/components/select/select.ios.css +96 -69
  352. package/dist/collection/components/select/select.js +405 -91
  353. package/dist/collection/components/select/select.md.css +118 -85
  354. package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
  355. package/dist/collection/components/select-modal/select-modal.js +80 -27
  356. package/dist/collection/components/select-modal/select-modal.md.css +164 -0
  357. package/dist/collection/components/select-option/select-option.js +67 -3
  358. package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
  359. package/dist/collection/components/select-popover/select-popover.js +78 -26
  360. package/dist/collection/components/select-popover/select-popover.md.css +164 -0
  361. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  362. package/dist/collection/components/spinner/spinner.js +2 -3
  363. package/dist/collection/components/split-pane/split-pane.js +2 -2
  364. package/dist/collection/components/tab/tab.js +20 -13
  365. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  366. package/dist/collection/components/tab-button/tab-button.js +6 -4
  367. package/dist/collection/components/tabs/tabs.js +2 -3
  368. package/dist/collection/components/text/text.js +2 -2
  369. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  370. package/dist/collection/components/textarea/textarea.js +47 -57
  371. package/dist/collection/components/textarea/textarea.md.css +103 -77
  372. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  373. package/dist/collection/components/title/title.js +2 -2
  374. package/dist/collection/components/toast/toast.js +12 -9
  375. package/dist/collection/components/toggle/toggle.ios.css +12 -4
  376. package/dist/collection/components/toggle/toggle.js +27 -7
  377. package/dist/collection/components/toggle/toggle.md.css +42 -5
  378. package/dist/collection/components/toolbar/toolbar.js +7 -4
  379. package/dist/collection/global/config.js +3 -3
  380. package/dist/collection/global/ionic-global.js +8 -2
  381. package/dist/collection/index.js +1 -1
  382. package/dist/collection/utils/animation/animation.js +3 -3
  383. package/dist/collection/utils/config.js +5 -4
  384. package/dist/collection/utils/content/index.js +30 -0
  385. package/dist/collection/utils/focus-controller/index.js +1 -1
  386. package/dist/collection/utils/focus-trap.js +3 -3
  387. package/dist/collection/utils/forms/index.js +2 -0
  388. package/dist/collection/utils/forms/item-multiple-inputs.js +33 -0
  389. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  390. package/dist/collection/utils/framework-delegate.js +4 -6
  391. package/dist/collection/utils/gesture/gesture-controller.js +1 -2
  392. package/dist/collection/utils/gesture/index.js +10 -2
  393. package/dist/collection/utils/gesture/listener.js +4 -27
  394. package/dist/collection/utils/hardware-back-button.js +3 -3
  395. package/dist/collection/utils/helpers.js +14 -10
  396. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  397. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  398. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  399. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  400. package/dist/collection/utils/logging/index.js +23 -4
  401. package/dist/collection/utils/menu-controller/index.js +1 -2
  402. package/dist/collection/utils/native/haptic.js +2 -3
  403. package/dist/collection/utils/native/keyboard.js +2 -2
  404. package/dist/collection/utils/native/status-bar.js +1 -1
  405. package/dist/collection/utils/overlay-control-label.js +45 -0
  406. package/dist/collection/utils/overlays.js +109 -47
  407. package/dist/collection/utils/platform.js +4 -5
  408. package/dist/collection/utils/rtl/dir.js +17 -7
  409. package/dist/collection/utils/sanitization/index.js +275 -20
  410. package/dist/collection/utils/select-option-render.js +118 -0
  411. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  412. package/dist/collection/utils/test/late-props/late-props.js +69 -0
  413. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +25 -0
  414. package/dist/collection/utils/test/playwright/detach-reattach.js +23 -0
  415. package/dist/collection/utils/test/playwright/drag-element.js +14 -0
  416. package/dist/collection/utils/test/playwright/generator.js +3 -4
  417. package/dist/collection/utils/test/playwright/index.js +2 -0
  418. package/dist/collection/utils/test/playwright/page/event-spy.js +2 -4
  419. package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
  420. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  421. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  422. package/dist/collection/utils/test/press-keys.js +6 -16
  423. package/dist/collection/utils/theme.js +6 -1
  424. package/dist/collection/utils/transition/ios.transition.js +9 -13
  425. package/dist/collection/utils/transition/md.transition.js +3 -4
  426. package/dist/docs.json +972 -1402
  427. package/dist/esm/{animation-DLJpuoEz.js → animation-BFNVlYum.js} +4 -4
  428. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-BgX0BGL1.js} +1 -1
  429. package/dist/esm/{button-active-BSpTQmS9.js → button-active-BfOvDr3b.js} +3 -3
  430. package/dist/esm/config-DWCzVL3Y.js +32 -0
  431. package/dist/esm/dir-Dojwmvde.js +28 -0
  432. package/dist/esm/{data-DZI70dKr.js → format-DDFE9jM5.js} +41 -554
  433. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-BwNhx9NR.js} +5 -7
  434. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-B_gJaBk0.js} +1 -2
  435. package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
  436. package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-DmkiRgOT.js} +4 -4
  437. package/dist/esm/{helpers-HEqiOzXb.js → helpers-BSmc0nst.js} +15 -11
  438. package/dist/esm/{index-CfgBF1SE.js → index-BmLuEdV7.js} +13 -30
  439. package/dist/esm/{index-Q6UPU0Ay.js → index-BuPaALjU.js} +6 -7
  440. package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
  441. package/dist/esm/{index-MEDq2S8l.js → index-C1b9CLFg.js} +33 -3
  442. package/dist/esm/{index-tcQvqkiX.js → index-C23AVPx9.js} +303 -26
  443. package/dist/esm/{index-BRHzoo00.js → index-CJln0gS3.js} +3 -2
  444. package/dist/esm/index-CqoUoxgG.js +423 -0
  445. package/dist/esm/{index-B_dQk_WE.js → index-DnA_7Bnx.js} +5 -5
  446. package/dist/esm/index.js +17 -15
  447. package/dist/esm/{input-shims-D10mwcw1.js → input-shims-Dqk-Ou25.js} +10 -11
  448. package/dist/esm/input.utils-rqoH22pW.js +33 -0
  449. package/dist/esm/ion-accordion_2.entry.js +12 -12
  450. package/dist/esm/ion-action-sheet.entry.js +92 -44
  451. package/dist/esm/ion-alert.entry.js +143 -64
  452. package/dist/esm/ion-app_8.entry.js +112 -40
  453. package/dist/esm/ion-avatar_3.entry.js +4 -4
  454. package/dist/esm/ion-back-button.entry.js +6 -5
  455. package/dist/esm/ion-backdrop.entry.js +2 -2
  456. package/dist/esm/ion-breadcrumb_2.entry.js +8 -7
  457. package/dist/esm/ion-button_2.entry.js +18 -10
  458. package/dist/esm/ion-card_5.entry.js +6 -5
  459. package/dist/esm/ion-checkbox.entry.js +25 -12
  460. package/dist/esm/ion-chip.entry.js +3 -3
  461. package/dist/esm/ion-col_3.entry.js +10 -6
  462. package/dist/esm/ion-datetime-button.entry.js +28 -29
  463. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +712 -733
  464. package/dist/esm/ion-fab_3.entry.js +93 -14
  465. package/dist/esm/ion-img.entry.js +7 -4
  466. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -5
  467. package/dist/esm/ion-input-otp.entry.js +20 -29
  468. package/dist/esm/ion-input-password-toggle.entry.js +9 -10
  469. package/dist/esm/ion-input.entry.js +56 -68
  470. package/dist/esm/ion-item-option_3.entry.js +21 -24
  471. package/dist/esm/ion-item_8.entry.js +117 -33
  472. package/dist/esm/ion-loading.entry.js +28 -14
  473. package/dist/esm/ion-menu_3.entry.js +23 -24
  474. package/dist/esm/ion-modal.entry.js +295 -147
  475. package/dist/esm/ion-nav_2.entry.js +30 -138
  476. package/dist/esm/ion-picker-column-option.entry.js +8 -13
  477. package/dist/esm/ion-picker-column.entry.js +218 -62
  478. package/dist/esm/ion-picker.entry.js +4 -4
  479. package/dist/esm/ion-popover.entry.js +50 -30
  480. package/dist/esm/ion-progress-bar.entry.js +6 -5
  481. package/dist/esm/ion-radio_2.entry.js +24 -14
  482. package/dist/esm/ion-range.entry.js +30 -25
  483. package/dist/esm/ion-refresher_2.entry.js +59 -24
  484. package/dist/esm/ion-reorder_2.entry.js +10 -9
  485. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  486. package/dist/esm/ion-route_4.entry.js +36 -30
  487. package/dist/esm/ion-searchbar.entry.js +27 -22
  488. package/dist/esm/ion-segment-content.entry.js +2 -2
  489. package/dist/esm/ion-segment-view.entry.js +5 -6
  490. package/dist/esm/ion-segment_2.entry.js +30 -26
  491. package/dist/esm/ion-select-modal.entry.js +93 -38
  492. package/dist/esm/ion-select_3.entry.js +495 -125
  493. package/dist/esm/ion-spinner.entry.js +5 -6
  494. package/dist/esm/ion-split-pane.entry.js +4 -4
  495. package/dist/esm/ion-tab-bar_2.entry.js +15 -12
  496. package/dist/esm/ion-tab_2.entry.js +26 -19
  497. package/dist/esm/ion-text.entry.js +5 -5
  498. package/dist/esm/ion-textarea.entry.js +55 -64
  499. package/dist/esm/ion-toast.entry.js +25 -20
  500. package/dist/esm/ion-toggle.entry.js +36 -15
  501. package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-ZXjCXKH0.js} +13 -8
  502. package/dist/esm/ionic.js +6 -6
  503. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CWAgfQ1r.js} +14 -17
  504. package/dist/esm/item-multiple-inputs-DZnIiOO_.js +36 -0
  505. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
  506. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
  507. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
  508. package/dist/esm/loader.js +5 -5
  509. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-ZuqDDdDW.js} +8 -8
  510. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  511. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DKE0DgvE.js} +119 -57
  512. package/dist/esm/select-option-render-1W6W9pbC.js +121 -0
  513. package/dist/esm/slot-mutation-controller-B5NpUZ-N.js +393 -0
  514. package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-Cv9gb3ja.js} +4 -3
  515. package/dist/esm/{swipe-back-ZUWwA-KF.js → swipe-back-De5HlmeM.js} +5 -5
  516. package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
  517. package/dist/html.html-data.json +58 -82
  518. package/dist/ionic/index.esm.js +1 -1
  519. package/dist/ionic/ionic.esm.js +1 -1
  520. package/dist/ionic/p-06c6b540.entry.js +4 -0
  521. package/dist/ionic/p-099b7f9f.entry.js +4 -0
  522. package/dist/ionic/p-0dcb7bb6.entry.js +4 -0
  523. package/dist/ionic/p-1347880c.entry.js +4 -0
  524. package/dist/ionic/p-191a651e.entry.js +4 -0
  525. package/dist/ionic/p-1f24cb24.entry.js +4 -0
  526. package/dist/ionic/p-271c3640.entry.js +4 -0
  527. package/dist/ionic/p-2c52fe3e.entry.js +4 -0
  528. package/dist/ionic/p-2ea4bb36.entry.js +4 -0
  529. package/dist/ionic/p-338a02e0.entry.js +4 -0
  530. package/dist/ionic/p-38b9375b.entry.js +4 -0
  531. package/dist/ionic/p-3bba83ee.entry.js +4 -0
  532. package/dist/ionic/p-4712a8a9.entry.js +4 -0
  533. package/dist/ionic/p-4c3e50f8.entry.js +4 -0
  534. package/dist/ionic/p-4e2fef42.entry.js +4 -0
  535. package/dist/ionic/p-54cbb0a7.entry.js +4 -0
  536. package/dist/ionic/{p-2bb2cb18.entry.js → p-561af487.entry.js} +1 -1
  537. package/dist/ionic/p-5906ea6f.entry.js +4 -0
  538. package/dist/ionic/p-5cc09b40.entry.js +4 -0
  539. package/dist/ionic/p-5d9094ac.entry.js +4 -0
  540. package/dist/ionic/p-612ea3b1.entry.js +4 -0
  541. package/dist/ionic/p-66f150ec.entry.js +4 -0
  542. package/dist/ionic/p-68cc89a6.entry.js +4 -0
  543. package/dist/ionic/{p-dfa8d673.entry.js → p-6e386853.entry.js} +1 -1
  544. package/dist/ionic/p-77c96e08.entry.js +4 -0
  545. package/dist/ionic/p-7bfeccb3.entry.js +4 -0
  546. package/dist/ionic/p-7e394cc3.entry.js +4 -0
  547. package/dist/ionic/{p-0fa9c382.entry.js → p-7fbb3319.entry.js} +1 -1
  548. package/dist/ionic/p-837db1b9.entry.js +4 -0
  549. package/dist/ionic/p-85599fe3.entry.js +4 -0
  550. package/dist/ionic/p-8b80d9f9.entry.js +4 -0
  551. package/dist/ionic/p-90f50a65.entry.js +4 -0
  552. package/dist/ionic/p-9595e305.entry.js +4 -0
  553. package/dist/ionic/p-9c5f2691.entry.js +4 -0
  554. package/dist/ionic/p-BMPN55of.js +4 -0
  555. package/dist/ionic/p-BSQPZ79H.js +4 -0
  556. package/dist/ionic/p-BY6BzzPF.js +4 -0
  557. package/dist/ionic/p-B_gJaBk0.js +4 -0
  558. package/dist/ionic/p-BaeKWZ-a.js +4 -0
  559. package/dist/ionic/p-Bd72UYI2.js +4 -0
  560. package/dist/ionic/p-BgOvhHy_.js +4 -0
  561. package/dist/ionic/p-BhamHSw3.js +4 -0
  562. package/dist/ionic/p-BijjLYjT.js +4 -0
  563. package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
  564. package/dist/ionic/p-C23AVPx9.js +6 -0
  565. package/dist/ionic/p-C8XilMh0.js +4 -0
  566. package/dist/ionic/p-CER8qW8Y.js +4 -0
  567. package/dist/ionic/p-CFuOr1Tu.js +4 -0
  568. package/dist/ionic/p-CM5OBjTW.js +4 -0
  569. package/dist/ionic/p-CMZYmFb4.js +4 -0
  570. package/dist/ionic/p-CkxVYPtX.js +4 -0
  571. package/dist/ionic/p-CmXuiRT6.js +4 -0
  572. package/dist/ionic/p-D0YpjgON.js +4 -0
  573. package/dist/ionic/p-D4OrdtJf.js +4 -0
  574. package/dist/ionic/p-D5t_-oMk.js +4 -0
  575. package/dist/ionic/p-D6rHcCvc.js +4 -0
  576. package/dist/ionic/p-DLM95R4x.js +4 -0
  577. package/dist/ionic/p-DTxBioUO.js +4 -0
  578. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  579. package/dist/ionic/p-DYUjHcuH.js +4 -0
  580. package/dist/ionic/p-DZ6Hmc-8.js +4 -0
  581. package/dist/ionic/p-D_gb-kdd.js +4 -0
  582. package/dist/ionic/p-DajLgJ4d.js +4 -0
  583. package/dist/ionic/p-Do3zTvCA.js +4 -0
  584. package/dist/ionic/p-Dojwmvde.js +4 -0
  585. package/dist/ionic/p-T71k3C35.js +4 -0
  586. package/dist/ionic/p-a1cc2861.entry.js +4 -0
  587. package/dist/ionic/p-a20a2ebe.entry.js +4 -0
  588. package/dist/ionic/p-a8ff2489.entry.js +4 -0
  589. package/dist/ionic/p-b3532b8d.entry.js +4 -0
  590. package/dist/ionic/p-b80c86c4.entry.js +4 -0
  591. package/dist/ionic/p-b9b4e85d.entry.js +4 -0
  592. package/dist/ionic/p-byZM6qHV.js +4 -0
  593. package/dist/ionic/p-c57fc396.entry.js +4 -0
  594. package/dist/ionic/{p-c6e49f3f.entry.js → p-ca1b8865.entry.js} +1 -1
  595. package/dist/ionic/p-cc4320d3.entry.js +4 -0
  596. package/dist/ionic/p-d6755739.entry.js +4 -0
  597. package/dist/ionic/p-d8c138d9.entry.js +4 -0
  598. package/dist/ionic/p-db449915.entry.js +4 -0
  599. package/dist/ionic/p-dd01be0a.entry.js +4 -0
  600. package/dist/ionic/p-ec00fd0d.entry.js +4 -0
  601. package/dist/ionic/p-ee09ac9d.entry.js +4 -0
  602. package/dist/ionic/{p-37e720da.entry.js → p-efc0cf82.entry.js} +1 -1
  603. package/dist/ionic/p-f0fb23c1.entry.js +4 -0
  604. package/dist/ionic/p-f83b3e0c.entry.js +4 -0
  605. package/dist/ionic/p-fU3rOYad.js +4 -0
  606. package/dist/ionic/p-zWf7R2xV.js +4 -0
  607. package/dist/types/components/action-sheet/action-sheet.d.ts +10 -0
  608. package/dist/types/components/alert/alert.d.ts +7 -0
  609. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  610. package/dist/types/components/content/content.d.ts +12 -0
  611. package/dist/types/components/datetime/datetime.d.ts +13 -1
  612. package/dist/types/components/fab-button/fab-button.d.ts +15 -0
  613. package/dist/types/components/img/img.d.ts +2 -0
  614. package/dist/types/components/input/input.d.ts +12 -6
  615. package/dist/types/components/item/item.d.ts +19 -0
  616. package/dist/types/components/modal/gestures/sheet.d.ts +1 -0
  617. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  618. package/dist/types/components/modal/modal-interface.d.ts +9 -0
  619. package/dist/types/components/modal/modal.d.ts +25 -7
  620. package/dist/types/components/modal/safe-area-utils.d.ts +6 -0
  621. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  622. package/dist/types/components/nav/nav.d.ts +2 -22
  623. package/dist/types/components/picker-column/picker-column.d.ts +42 -0
  624. package/dist/types/components/radio/radio.d.ts +1 -0
  625. package/dist/types/components/range/range.d.ts +4 -1
  626. package/dist/types/components/refresher/refresher.d.ts +7 -0
  627. package/dist/types/components/route/route.d.ts +1 -1
  628. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  629. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  630. package/dist/types/components/select/select-interface.d.ts +31 -0
  631. package/dist/types/components/select/select.d.ts +30 -6
  632. package/dist/types/components/select-option/select-option.d.ts +42 -1
  633. package/dist/types/components/tab/tab.d.ts +1 -1
  634. package/dist/types/components/textarea/textarea.d.ts +12 -5
  635. package/dist/types/components/toggle/toggle.d.ts +1 -0
  636. package/dist/types/components.d.ts +94 -318
  637. package/dist/types/index.d.ts +1 -1
  638. package/dist/types/interface.d.ts +0 -1
  639. package/dist/types/stencil-public-runtime.d.ts +12 -0
  640. package/dist/types/utils/config.d.ts +1 -8
  641. package/dist/types/utils/content/index.d.ts +12 -0
  642. package/dist/types/utils/forms/index.d.ts +2 -0
  643. package/dist/types/utils/forms/item-multiple-inputs.d.ts +13 -0
  644. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  645. package/dist/types/utils/helpers.d.ts +8 -5
  646. package/dist/types/utils/logging/index.d.ts +2 -1
  647. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  648. package/dist/types/utils/overlays.d.ts +20 -9
  649. package/dist/types/utils/rtl/dir.d.ts +10 -4
  650. package/dist/types/utils/sanitization/index.d.ts +58 -2
  651. package/dist/types/utils/select-option-render.d.ts +53 -0
  652. package/dist/types/utils/test/playwright/apply-keyboard-focus.d.ts +16 -0
  653. package/dist/types/utils/test/playwright/detach-reattach.d.ts +13 -0
  654. package/dist/types/utils/test/playwright/index.d.ts +2 -0
  655. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  656. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  657. package/hydrate/index.js +3341 -2197
  658. package/hydrate/index.mjs +3341 -2197
  659. package/loader/index.d.ts +1 -1
  660. package/package.json +61 -17
  661. package/components/ion-picker-legacy-column.d.ts +0 -11
  662. package/components/ion-picker-legacy-column.js +0 -4
  663. package/components/ion-picker-legacy.d.ts +0 -11
  664. package/components/ion-picker-legacy.js +0 -4
  665. package/components/p-0NRupjzW.js +0 -4
  666. package/components/p-5bE_Wz4Y.js +0 -4
  667. package/components/p-B60hm8Qv.js +0 -4
  668. package/components/p-BAYYcg3o.js +0 -4
  669. package/components/p-BLmJ0zRm.js +0 -4
  670. package/components/p-BSEgsdFI.js +0 -4
  671. package/components/p-BTEOs1at.js +0 -4
  672. package/components/p-BTPfOxsU.js +0 -4
  673. package/components/p-BT_5jSqG.js +0 -4
  674. package/components/p-Baq1XyAy.js +0 -4
  675. package/components/p-BjfgFSSR.js +0 -4
  676. package/components/p-BjoEPDW5.js +0 -4
  677. package/components/p-BnqQlm7c.js +0 -4
  678. package/components/p-BsPelv04.js +0 -4
  679. package/components/p-Bth-EzJ0.js +0 -4
  680. package/components/p-Bz0dSlXZ.js +0 -4
  681. package/components/p-C1aScSTo.js +0 -4
  682. package/components/p-C2lKgrXx.js +0 -4
  683. package/components/p-C53feagD.js +0 -4
  684. package/components/p-CHqRYvYm.js +0 -4
  685. package/components/p-CI3ncNZm.js +0 -4
  686. package/components/p-CSZf8_j0.js +0 -4
  687. package/components/p-CU5rbWAW.js +0 -4
  688. package/components/p-C_xFdyXe.js +0 -4
  689. package/components/p-Ciz1-FuE.js +0 -4
  690. package/components/p-Cl0B-RWe.js +0 -4
  691. package/components/p-CmR5uXej.js +0 -4
  692. package/components/p-CtWGkNnJ.js +0 -4
  693. package/components/p-CtukzcyX.js +0 -4
  694. package/components/p-D13Eaw-8.js +0 -4
  695. package/components/p-D5Ubpm7D.js +0 -4
  696. package/components/p-D6Ynv7Xh.js +0 -4
  697. package/components/p-D7bSXQD3.js +0 -4
  698. package/components/p-DDWp95gH.js +0 -4
  699. package/components/p-DIE4pXMl.js +0 -4
  700. package/components/p-DOFCbuQR.js +0 -4
  701. package/components/p-DiVJyqlX.js +0 -4
  702. package/components/p-DnL1c9_X.js +0 -4
  703. package/components/p-W5nO8mX_.js +0 -4
  704. package/components/p-W9CZ2mWX.js +0 -4
  705. package/components/p-XlSIJDJ-.js +0 -4
  706. package/components/p-cyNmxje6.js +0 -4
  707. package/components/p-dhLYXa7A.js +0 -4
  708. package/components/p-ijF0iCrA.js +0 -4
  709. package/components/p-k_E4tX5Z.js +0 -4
  710. package/components/p-nQi4oKcG.js +0 -4
  711. package/components/p-ryqmO0B-.js +0 -4
  712. package/dist/cjs/config-xninhj0J.js +0 -201
  713. package/dist/cjs/dir-Cn0z1rJH.js +0 -20
  714. package/dist/cjs/input.utils-DetjmtH2.js +0 -150
  715. package/dist/cjs/notch-controller-18PzRGXd.js +0 -155
  716. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  717. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  718. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  719. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  720. package/dist/collection/components/picker-legacy/picker.js +0 -890
  721. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  722. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  723. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  724. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  725. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  726. package/dist/esm/config-DQCONYYp.js +0 -195
  727. package/dist/esm/dir-C53feagD.js +0 -18
  728. package/dist/esm/input.utils-Y6NgW8bw.js +0 -147
  729. package/dist/esm/notch-controller-DKDjU_O7.js +0 -153
  730. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  731. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  732. package/dist/ionic/p-06c232a4.entry.js +0 -4
  733. package/dist/ionic/p-0d005398.entry.js +0 -4
  734. package/dist/ionic/p-1ae21e4c.entry.js +0 -4
  735. package/dist/ionic/p-20b1a044.entry.js +0 -4
  736. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  737. package/dist/ionic/p-2394a9a6.entry.js +0 -4
  738. package/dist/ionic/p-27d30585.entry.js +0 -4
  739. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  740. package/dist/ionic/p-30bf9737.entry.js +0 -4
  741. package/dist/ionic/p-3353c229.entry.js +0 -4
  742. package/dist/ionic/p-33704f20.entry.js +0 -4
  743. package/dist/ionic/p-390ca786.entry.js +0 -4
  744. package/dist/ionic/p-3a126bca.entry.js +0 -4
  745. package/dist/ionic/p-3a541154.entry.js +0 -4
  746. package/dist/ionic/p-3a7d1e91.entry.js +0 -4
  747. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  748. package/dist/ionic/p-4745f534.entry.js +0 -4
  749. package/dist/ionic/p-4858af1f.entry.js +0 -4
  750. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  751. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  752. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  753. package/dist/ionic/p-50e1194a.entry.js +0 -4
  754. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  755. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  756. package/dist/ionic/p-81ea5652.entry.js +0 -4
  757. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  758. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  759. package/dist/ionic/p-8c8eee7d.entry.js +0 -4
  760. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  761. package/dist/ionic/p-8fce95d5.entry.js +0 -4
  762. package/dist/ionic/p-94f2a736.entry.js +0 -4
  763. package/dist/ionic/p-9a65ac7f.entry.js +0 -4
  764. package/dist/ionic/p-9eeaBrnk.js +0 -4
  765. package/dist/ionic/p-9f1103ce.entry.js +0 -4
  766. package/dist/ionic/p-BGqMS-oh.js +0 -4
  767. package/dist/ionic/p-BTEOs1at.js +0 -4
  768. package/dist/ionic/p-BUFIpxKM.js +0 -4
  769. package/dist/ionic/p-C53feagD.js +0 -4
  770. package/dist/ionic/p-CFlfIb2g.js +0 -4
  771. package/dist/ionic/p-CKvCXMs9.js +0 -4
  772. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  773. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  774. package/dist/ionic/p-CwdymDLH.js +0 -4
  775. package/dist/ionic/p-Cx3IXROA.js +0 -4
  776. package/dist/ionic/p-D13Eaw-8.js +0 -4
  777. package/dist/ionic/p-DAAFkPFT.js +0 -4
  778. package/dist/ionic/p-DC3RagnA.js +0 -4
  779. package/dist/ionic/p-DIuEbVLu.js +0 -4
  780. package/dist/ionic/p-DSG2s2Eb.js +0 -4
  781. package/dist/ionic/p-Dfbt-q2k.js +0 -4
  782. package/dist/ionic/p-DiVJyqlX.js +0 -4
  783. package/dist/ionic/p-DoJvtrbw.js +0 -4
  784. package/dist/ionic/p-DzWaWHGc.js +0 -4
  785. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  786. package/dist/ionic/p-SNAkTDfm.js +0 -4
  787. package/dist/ionic/p-VAemlbDS.js +0 -4
  788. package/dist/ionic/p-Wk5HzclC.js +0 -4
  789. package/dist/ionic/p-a21add2f.entry.js +0 -4
  790. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  791. package/dist/ionic/p-aa5d6b8f.entry.js +0 -4
  792. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  793. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  794. package/dist/ionic/p-e0be05c5.entry.js +0 -4
  795. package/dist/ionic/p-e847a888.entry.js +0 -4
  796. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  797. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  798. package/dist/ionic/p-fabcce6c.entry.js +0 -4
  799. package/dist/ionic/p-facfde02.entry.js +0 -4
  800. package/dist/ionic/p-fd7eebc4.entry.js +0 -4
  801. package/dist/ionic/p-mjKAFv89.js +0 -4
  802. package/dist/ionic/p-tcQvqkiX.js +0 -5
  803. package/dist/ionic/p-viFHDgRs.js +0 -4
  804. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  805. package/dist/ionic/p-xWb6fgfq.js +0 -4
  806. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  807. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  808. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  809. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  810. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  811. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  812. /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-Ct7gcRif.js');
6
+ var index = require('./index-DXoo08JC.js');
7
7
 
8
8
  /**
9
9
  * Returns true if the selected day is equal to the reference day
@@ -313,19 +313,19 @@ const parseMaxParts = (max, todayParts) => {
313
313
  * so that the correct initial value can be selected. As a result,
314
314
  * we need to fill in any omitted data with the min or max values.
315
315
  */
316
- const yearValue = year !== null && year !== void 0 ? year : todayParts.year;
317
- const monthValue = month !== null && month !== void 0 ? month : 12;
316
+ const yearValue = year ?? todayParts.year;
317
+ const monthValue = month ?? 12;
318
318
  return {
319
319
  month: monthValue,
320
- day: day !== null && day !== void 0 ? day : getNumDaysInMonth(monthValue, yearValue),
320
+ day: day ?? getNumDaysInMonth(monthValue, yearValue),
321
321
  /**
322
322
  * Passing in "HH:mm" is a valid ISO-8601
323
323
  * string, so we just default to the current year
324
324
  * in this case.
325
325
  */
326
326
  year: yearValue,
327
- hour: hour !== null && hour !== void 0 ? hour : 23,
328
- minute: minute !== null && minute !== void 0 ? minute : 59,
327
+ hour: hour ?? 23,
328
+ minute: minute ?? 59,
329
329
  };
330
330
  };
331
331
  /**
@@ -354,16 +354,16 @@ const parseMinParts = (min, todayParts) => {
354
354
  * we need to fill in any omitted data with the min or max values.
355
355
  */
356
356
  return {
357
- month: month !== null && month !== void 0 ? month : 1,
358
- day: day !== null && day !== void 0 ? day : 1,
357
+ month: month ?? 1,
358
+ day: day ?? 1,
359
359
  /**
360
360
  * Passing in "HH:mm" is a valid ISO-8601
361
361
  * string, so we just default to the current year
362
362
  * in this case.
363
363
  */
364
- year: year !== null && year !== void 0 ? year : todayParts.year,
365
- hour: hour !== null && hour !== void 0 ? hour : 0,
366
- minute: minute !== null && minute !== void 0 ? minute : 0,
364
+ year: year ?? todayParts.year,
365
+ hour: hour ?? 0,
366
+ minute: minute ?? 0,
367
367
  };
368
368
  };
369
369
 
@@ -645,7 +645,7 @@ const calculateHourFromAMPM = (currentParts, newAMPM) => {
645
645
  */
646
646
  const validateParts = (parts, minParts, maxParts) => {
647
647
  const { month, day, year } = parts;
648
- const partsCopy = clampDate(Object.assign({}, parts), minParts, maxParts);
648
+ const partsCopy = clampDate({ ...parts }, minParts, maxParts);
649
649
  const numDays = getNumDaysInMonth(month, year);
650
650
  /**
651
651
  * If the max number of days
@@ -721,7 +721,7 @@ const validateParts = (parts, minParts, maxParts) => {
721
721
  */
722
722
  const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hourValues, minuteValues, minParts, maxParts, }) => {
723
723
  const { hour, minute, day, month, year } = refParts;
724
- const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });
724
+ const copyParts = { ...refParts, dayOfWeek: undefined };
725
725
  if (yearValues !== undefined) {
726
726
  // Filters out years that are out of the min/max bounds
727
727
  const filteredYears = yearValues.filter((year) => {
@@ -752,10 +752,10 @@ const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hou
752
752
  if (day !== null && dayValues !== undefined) {
753
753
  // Filters out days that are out of the min/max bounds
754
754
  const filteredDays = dayValues.filter((day) => {
755
- if (minParts !== undefined && isBefore(Object.assign(Object.assign({}, copyParts), { day }), minParts)) {
755
+ if (minParts !== undefined && isBefore({ ...copyParts, day }, minParts)) {
756
756
  return false;
757
757
  }
758
- if (maxParts !== undefined && isAfter(Object.assign(Object.assign({}, copyParts), { day }), maxParts)) {
758
+ if (maxParts !== undefined && isAfter({ ...copyParts, day }, maxParts)) {
759
759
  return false;
760
760
  }
761
761
  return true;
@@ -765,10 +765,10 @@ const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hou
765
765
  if (hour !== undefined && hourValues !== undefined) {
766
766
  // Filters out hours that are out of the min/max bounds
767
767
  const filteredHours = hourValues.filter((hour) => {
768
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.hour) !== undefined && isSameDay(copyParts, minParts) && hour < minParts.hour) {
768
+ if (minParts?.hour !== undefined && isSameDay(copyParts, minParts) && hour < minParts.hour) {
769
769
  return false;
770
770
  }
771
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.hour) !== undefined && isSameDay(copyParts, maxParts) && hour > maxParts.hour) {
771
+ if (maxParts?.hour !== undefined && isSameDay(copyParts, maxParts) && hour > maxParts.hour) {
772
772
  return false;
773
773
  }
774
774
  return true;
@@ -779,13 +779,13 @@ const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hou
779
779
  if (minute !== undefined && minuteValues !== undefined) {
780
780
  // Filters out minutes that are out of the min/max bounds
781
781
  const filteredMinutes = minuteValues.filter((minute) => {
782
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.minute) !== undefined &&
782
+ if (minParts?.minute !== undefined &&
783
783
  isSameDay(copyParts, minParts) &&
784
784
  copyParts.hour === minParts.hour &&
785
785
  minute < minParts.minute) {
786
786
  return false;
787
787
  }
788
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.minute) !== undefined &&
788
+ if (maxParts?.minute !== undefined &&
789
789
  isSameDay(copyParts, maxParts) &&
790
790
  copyParts.hour === maxParts.hour &&
791
791
  minute > maxParts.minute) {
@@ -840,7 +840,8 @@ const getFormattedDayPeriod = (dayPeriod) => {
840
840
  * confusion.
841
841
  */
842
842
  const stripTimeZone = (formatOptions) => {
843
- return Object.assign(Object.assign({}, formatOptions), {
843
+ return {
844
+ ...formatOptions,
844
845
  /**
845
846
  * Setting the time zone to UTC ensures that the value shown is always the
846
847
  * same as what was selected and safeguards against older Safari bugs with
@@ -850,8 +851,8 @@ const stripTimeZone = (formatOptions) => {
850
851
  /**
851
852
  * We do not want to display the time zone name
852
853
  */
853
- timeZoneName: undefined
854
- });
854
+ timeZoneName: undefined,
855
+ };
855
856
  };
856
857
  const getLocalizedTime = (locale, refParts, hourCycle, formatOptions = { hour: 'numeric', minute: 'numeric' }) => {
857
858
  const timeParts = {
@@ -861,13 +862,20 @@ const getLocalizedTime = (locale, refParts, hourCycle, formatOptions = { hour: '
861
862
  if (timeParts.hour === undefined || timeParts.minute === undefined) {
862
863
  return 'Invalid Time';
863
864
  }
864
- return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, stripTimeZone(formatOptions)), {
865
+ return new Intl.DateTimeFormat(locale, {
866
+ ...stripTimeZone(formatOptions),
865
867
  /**
866
868
  * We use hourCycle here instead of hour12 due to:
867
869
  * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
868
870
  */
869
- hourCycle
870
- })).format(new Date(convertDataToISO(Object.assign({
871
+ hourCycle,
872
+ /**
873
+ * Setting Z at the end indicates that this
874
+ * date string is in the UTC time zone. This
875
+ * prevents new Date from adding the time zone
876
+ * offset when getting the ISO string.
877
+ */
878
+ }).format(new Date(convertDataToISO({
871
879
  /**
872
880
  * JS uses a simplified ISO 8601 format which allows for
873
881
  * date-only formats and date-time formats, but not
@@ -879,8 +887,11 @@ const getLocalizedTime = (locale, refParts, hourCycle, formatOptions = { hour: '
879
887
  * values, so passing these date values should have no impact
880
888
  * on the time output.
881
889
  */
882
- year: 2023, day: 1, month: 1
883
- }, timeParts)) + 'Z'));
890
+ year: 2023,
891
+ day: 1,
892
+ month: 1,
893
+ ...timeParts,
894
+ }) + 'Z'));
884
895
  };
885
896
  /**
886
897
  * Adds padding to a time value so
@@ -989,7 +1000,6 @@ const getYear = (locale, refParts) => {
989
1000
  * with a normalized time.
990
1001
  */
991
1002
  const getNormalizedDate = (refParts) => {
992
- var _a, _b, _c;
993
1003
  const timeString = refParts.hour !== undefined && refParts.minute !== undefined ? ` ${refParts.hour}:${refParts.minute}` : '';
994
1004
  /**
995
1005
  * We use / notation here for the date
@@ -1001,7 +1011,7 @@ const getNormalizedDate = (refParts) => {
1001
1011
  * account for this and still return a valid date. However,
1002
1012
  * this is not a consistent behavior across all browsers.
1003
1013
  */
1004
- return new Date(`${(_a = refParts.month) !== null && _a !== void 0 ? _a : 1}/${(_b = refParts.day) !== null && _b !== void 0 ? _b : 1}/${(_c = refParts.year) !== null && _c !== void 0 ? _c : 2023}${timeString} GMT+0000`);
1014
+ return new Date(`${refParts.month ?? 1}/${refParts.day ?? 1}/${refParts.year ?? 2023}${timeString} GMT+0000`);
1005
1015
  };
1006
1016
  /**
1007
1017
  * Given a locale, DatetimeParts, and options
@@ -1032,7 +1042,7 @@ const getLocalizedDateTimeParts = (locale, refParts, options) => {
1032
1042
  * with Intl.DateTimeFormat.
1033
1043
  */
1034
1044
  const getDateTimeFormat = (locale, options) => {
1035
- return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, options), { timeZone: 'UTC' }));
1045
+ return new Intl.DateTimeFormat(locale, { ...options, timeZone: 'UTC' });
1036
1046
  };
1037
1047
  /**
1038
1048
  * Gets a localized version of "Today"
@@ -1114,548 +1124,23 @@ const formatValue = (value) => {
1114
1124
  return Array.isArray(value) ? value.join(',') : value;
1115
1125
  };
1116
1126
 
1117
- /**
1118
- * Returns the current date as
1119
- * an ISO string in the user's
1120
- * time zone.
1121
- */
1122
- const getToday = () => {
1123
- /**
1124
- * ion-datetime intentionally does not
1125
- * parse time zones/do automatic time zone
1126
- * conversion when accepting user input.
1127
- * However when we get today's date string,
1128
- * we want it formatted relative to the user's
1129
- * time zone.
1130
- *
1131
- * When calling toISOString(), the browser
1132
- * will convert the date to UTC time by either adding
1133
- * or subtracting the time zone offset.
1134
- * To work around this, we need to either add
1135
- * or subtract the time zone offset to the Date
1136
- * object prior to calling toISOString().
1137
- * This allows us to get an ISO string
1138
- * that is in the user's time zone.
1139
- */
1140
- return removeDateTzOffset(new Date()).toISOString();
1141
- };
1142
- const minutes = [
1143
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1144
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1145
- ];
1146
- // h11 hour system uses 0-11. Midnight starts at 0:00am.
1147
- const hour11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
1148
- // h12 hour system uses 0-12. Midnight starts at 12:00am.
1149
- const hour12 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
1150
- // h23 hour system uses 0-23. Midnight starts at 0:00.
1151
- const hour23 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23];
1152
- // h24 hour system uses 1-24. Midnight starts at 24:00.
1153
- 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];
1154
- /**
1155
- * Given a locale and a mode,
1156
- * return an array with formatted days
1157
- * of the week. iOS should display days
1158
- * such as "Mon" or "Tue".
1159
- * MD should display days such as "M"
1160
- * or "T".
1161
- */
1162
- const getDaysOfWeek = (locale, mode, firstDayOfWeek = 0) => {
1163
- /**
1164
- * Nov 1st, 2020 starts on a Sunday.
1165
- * ion-datetime assumes weeks start on Sunday,
1166
- * but is configurable via `firstDayOfWeek`.
1167
- */
1168
- const weekdayFormat = mode === 'ios' ? 'short' : 'narrow';
1169
- const intl = new Intl.DateTimeFormat(locale, { weekday: weekdayFormat });
1170
- const startDate = new Date('11/01/2020');
1171
- const daysOfWeek = [];
1172
- /**
1173
- * For each day of the week,
1174
- * get the day name.
1175
- */
1176
- for (let i = firstDayOfWeek; i < firstDayOfWeek + 7; i++) {
1177
- const currentDate = new Date(startDate);
1178
- currentDate.setDate(currentDate.getDate() + i);
1179
- daysOfWeek.push(intl.format(currentDate));
1180
- }
1181
- return daysOfWeek;
1182
- };
1183
- /**
1184
- * Returns an array containing all of the
1185
- * days in a month for a given year. Values are
1186
- * aligned with a week calendar starting on
1187
- * the firstDayOfWeek value (Sunday by default)
1188
- * using null values.
1189
- */
1190
- const getDaysOfMonth = (month, year, firstDayOfWeek, showAdjacentDays = false) => {
1191
- const numDays = getNumDaysInMonth(month, year);
1192
- let previousNumDays; //previous month number of days
1193
- if (month === 1) {
1194
- // If the current month is January, the previous month should be December of the previous year.
1195
- previousNumDays = getNumDaysInMonth(12, year - 1);
1196
- }
1197
- else {
1198
- // Otherwise, the previous month should be the current month - 1 of the same year.
1199
- previousNumDays = getNumDaysInMonth(month - 1, year);
1200
- }
1201
- const firstOfMonth = new Date(`${month}/1/${year}`).getDay();
1202
- /**
1203
- * To get the first day of the month aligned on the correct
1204
- * day of the week, we need to determine how many "filler" days
1205
- * to generate. These filler days as empty/disabled buttons
1206
- * that fill the space of the days of the week before the first
1207
- * of the month.
1208
- *
1209
- * There are two cases here:
1210
- *
1211
- * 1. If firstOfMonth = 4, firstDayOfWeek = 0 then the offset
1212
- * is (4 - (0 + 1)) = 3. Since the offset loop goes from 0 to 3 inclusive,
1213
- * this will generate 4 filler days (0, 1, 2, 3), and then day of week 4 will have
1214
- * the first day of the month.
1215
- *
1216
- * 2. If firstOfMonth = 2, firstDayOfWeek = 4 then the offset
1217
- * is (6 - (4 - 2)) = 4. Since the offset loop goes from 0 to 4 inclusive,
1218
- * this will generate 5 filler days (0, 1, 2, 3, 4), and then day of week 5 will have
1219
- * the first day of the month.
1220
- */
1221
- const offset = firstOfMonth >= firstDayOfWeek ? firstOfMonth - (firstDayOfWeek + 1) : 6 - (firstDayOfWeek - firstOfMonth);
1222
- let days = [];
1223
- for (let i = 1; i <= numDays; i++) {
1224
- days.push({ day: i, dayOfWeek: (offset + i) % 7, isAdjacentDay: false });
1225
- }
1226
- if (showAdjacentDays) {
1227
- for (let i = 0; i <= offset; i++) {
1228
- // Using offset create previous month adjacent day, starting from last day
1229
- days = [{ day: previousNumDays - i, dayOfWeek: (previousNumDays - i) % 7, isAdjacentDay: true }, ...days];
1230
- }
1231
- // Calculate positiveOffset
1232
- // The calendar will display 42 days (6 rows of 7 columns)
1233
- // Knowing this the offset is 41 (we start at index 0)
1234
- // minus (the previous offset + the current month days)
1235
- const positiveOffset = 41 - (numDays + offset);
1236
- for (let i = 0; i < positiveOffset; i++) {
1237
- days.push({ day: i + 1, dayOfWeek: (numDays + offset + i) % 7, isAdjacentDay: true });
1238
- }
1239
- }
1240
- else {
1241
- for (let i = 0; i <= offset; i++) {
1242
- days = [{ day: null, dayOfWeek: null, isAdjacentDay: false }, ...days];
1243
- }
1244
- }
1245
- return days;
1246
- };
1247
- /**
1248
- * Returns an array of pre-defined hour
1249
- * values based on the provided hourCycle.
1250
- */
1251
- const getHourData = (hourCycle) => {
1252
- switch (hourCycle) {
1253
- case 'h11':
1254
- return hour11;
1255
- case 'h12':
1256
- return hour12;
1257
- case 'h23':
1258
- return hour23;
1259
- case 'h24':
1260
- return hour24;
1261
- default:
1262
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
1263
- }
1264
- };
1265
- /**
1266
- * Given a local, reference datetime parts and option
1267
- * max/min bound datetime parts, calculate the acceptable
1268
- * hour and minute values according to the bounds and locale.
1269
- */
1270
- const generateTime = (locale, refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
1271
- const computedHourCycle = getHourCycle(locale, hourCycle);
1272
- const use24Hour = is24Hour(computedHourCycle);
1273
- let processedHours = getHourData(computedHourCycle);
1274
- let processedMinutes = minutes;
1275
- let isAMAllowed = true;
1276
- let isPMAllowed = true;
1277
- if (hourValues) {
1278
- processedHours = processedHours.filter((hour) => hourValues.includes(hour));
1279
- }
1280
- if (minuteValues) {
1281
- processedMinutes = processedMinutes.filter((minute) => minuteValues.includes(minute));
1282
- }
1283
- if (minParts) {
1284
- /**
1285
- * If ref day is the same as the
1286
- * minimum allowed day, filter hour/minute
1287
- * values according to min hour and minute.
1288
- */
1289
- if (isSameDay(refParts, minParts)) {
1290
- /**
1291
- * Users may not always set the hour/minute for
1292
- * min value (i.e. 2021-06-02) so we should allow
1293
- * all hours/minutes in that case.
1294
- */
1295
- if (minParts.hour !== undefined) {
1296
- processedHours = processedHours.filter((hour) => {
1297
- const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1298
- return (use24Hour ? hour : convertedHour) >= minParts.hour;
1299
- });
1300
- isAMAllowed = minParts.hour < 13;
1301
- }
1302
- if (minParts.minute !== undefined) {
1303
- /**
1304
- * The minimum minute range should not be enforced when
1305
- * the hour is greater than the min hour.
1306
- *
1307
- * For example with a minimum range of 09:30, users
1308
- * should be able to select 10:00-10:29 and beyond.
1309
- */
1310
- let isPastMinHour = false;
1311
- if (minParts.hour !== undefined && refParts.hour !== undefined) {
1312
- if (refParts.hour > minParts.hour) {
1313
- isPastMinHour = true;
1314
- }
1315
- }
1316
- processedMinutes = processedMinutes.filter((minute) => {
1317
- if (isPastMinHour) {
1318
- return true;
1319
- }
1320
- return minute >= minParts.minute;
1321
- });
1322
- }
1323
- /**
1324
- * If ref day is before minimum
1325
- * day do not render any hours/minute values
1326
- */
1327
- }
1328
- else if (isBefore(refParts, minParts)) {
1329
- processedHours = [];
1330
- processedMinutes = [];
1331
- isAMAllowed = isPMAllowed = false;
1332
- }
1333
- }
1334
- if (maxParts) {
1335
- /**
1336
- * If ref day is the same as the
1337
- * maximum allowed day, filter hour/minute
1338
- * values according to max hour and minute.
1339
- */
1340
- if (isSameDay(refParts, maxParts)) {
1341
- /**
1342
- * Users may not always set the hour/minute for
1343
- * max value (i.e. 2021-06-02) so we should allow
1344
- * all hours/minutes in that case.
1345
- */
1346
- if (maxParts.hour !== undefined) {
1347
- processedHours = processedHours.filter((hour) => {
1348
- const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1349
- return (use24Hour ? hour : convertedHour) <= maxParts.hour;
1350
- });
1351
- isPMAllowed = maxParts.hour >= 12;
1352
- }
1353
- if (maxParts.minute !== undefined && refParts.hour === maxParts.hour) {
1354
- // The available minutes should only be filtered when the hour is the same as the max hour.
1355
- // For example if the max hour is 10:30 and the current hour is 10:00,
1356
- // users should be able to select 00-30 minutes.
1357
- // If the current hour is 09:00, users should be able to select 00-60 minutes.
1358
- processedMinutes = processedMinutes.filter((minute) => minute <= maxParts.minute);
1359
- }
1360
- /**
1361
- * If ref day is after minimum
1362
- * day do not render any hours/minute values
1363
- */
1364
- }
1365
- else if (isAfter(refParts, maxParts)) {
1366
- processedHours = [];
1367
- processedMinutes = [];
1368
- isAMAllowed = isPMAllowed = false;
1369
- }
1370
- }
1371
- return {
1372
- hours: processedHours,
1373
- minutes: processedMinutes,
1374
- am: isAMAllowed,
1375
- pm: isPMAllowed,
1376
- };
1377
- };
1378
- /**
1379
- * Given DatetimeParts, generate the previous,
1380
- * current, and and next months.
1381
- */
1382
- const generateMonths = (refParts, forcedDate) => {
1383
- const current = { month: refParts.month, year: refParts.year, day: refParts.day };
1384
- /**
1385
- * If we're forcing a month to appear, and it's different from the current month,
1386
- * ensure it appears by replacing the next or previous month as appropriate.
1387
- */
1388
- if (forcedDate !== undefined && (refParts.month !== forcedDate.month || refParts.year !== forcedDate.year)) {
1389
- const forced = { month: forcedDate.month, year: forcedDate.year, day: forcedDate.day };
1390
- const forcedMonthIsBefore = isBefore(forced, current);
1391
- return forcedMonthIsBefore
1392
- ? [forced, current, getNextMonth(refParts)]
1393
- : [getPreviousMonth(refParts), current, forced];
1394
- }
1395
- return [getPreviousMonth(refParts), current, getNextMonth(refParts)];
1396
- };
1397
- const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, formatOptions = {
1398
- month: 'long',
1399
- }) => {
1400
- const { year } = refParts;
1401
- const months = [];
1402
- if (monthValues !== undefined) {
1403
- let processedMonths = monthValues;
1404
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.month) !== undefined) {
1405
- processedMonths = processedMonths.filter((month) => month <= maxParts.month);
1406
- }
1407
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.month) !== undefined) {
1408
- processedMonths = processedMonths.filter((month) => month >= minParts.month);
1409
- }
1410
- processedMonths.forEach((processedMonth) => {
1411
- const date = new Date(`${processedMonth}/1/${year} GMT+0000`);
1412
- const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1413
- months.push({ text: monthString, value: processedMonth });
1414
- });
1415
- }
1416
- else {
1417
- const maxMonth = maxParts && maxParts.year === year ? maxParts.month : 12;
1418
- const minMonth = minParts && minParts.year === year ? minParts.month : 1;
1419
- for (let i = minMonth; i <= maxMonth; i++) {
1420
- /**
1421
- *
1422
- * There is a bug on iOS 14 where
1423
- * Intl.DateTimeFormat takes into account
1424
- * the local timezone offset when formatting dates.
1425
- *
1426
- * Forcing the timezone to 'UTC' fixes the issue. However,
1427
- * we should keep this workaround as it is safer. In the event
1428
- * this breaks in another browser, we will not be impacted
1429
- * because all dates will be interpreted in UTC.
1430
- *
1431
- * Example:
1432
- * new Intl.DateTimeFormat('en-US', { month: 'long' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "March"
1433
- * new Intl.DateTimeFormat('en-US', { month: 'long', timeZone: 'UTC' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "April"
1434
- *
1435
- * In certain timezones, iOS 14 shows the wrong
1436
- * date for .toUTCString(). To combat this, we
1437
- * force all of the timezones to GMT+0000 (UTC).
1438
- *
1439
- * Example:
1440
- * Time Zone: Central European Standard Time
1441
- * new Date('1/1/1992').toUTCString() // "Tue, 31 Dec 1991 23:00:00 GMT"
1442
- * new Date('1/1/1992 GMT+0000').toUTCString() // "Wed, 01 Jan 1992 00:00:00 GMT"
1443
- */
1444
- const date = new Date(`${i}/1/${year} GMT+0000`);
1445
- const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1446
- months.push({ text: monthString, value: i });
1447
- }
1448
- }
1449
- return months;
1450
- };
1451
- /**
1452
- * Returns information regarding
1453
- * selectable dates (i.e 1st, 2nd, 3rd, etc)
1454
- * within a reference month.
1455
- * @param locale The locale to format the date with
1456
- * @param refParts The reference month/year to generate dates for
1457
- * @param minParts The minimum bound on the date that can be returned
1458
- * @param maxParts The maximum bound on the date that can be returned
1459
- * @param dayValues The allowed date values
1460
- * @returns Date data to be used in ion-picker-column
1461
- */
1462
- const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
1463
- day: 'numeric',
1464
- }) => {
1465
- const { month, year } = refParts;
1466
- const days = [];
1467
- /**
1468
- * If we have max/min bounds that in the same
1469
- * month/year as the refParts, we should
1470
- * use the define day as the max/min day.
1471
- * Otherwise, fallback to the max/min days in a month.
1472
- */
1473
- const numDaysInMonth = getNumDaysInMonth(month, year);
1474
- const maxDay = (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== null && (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== undefined && maxParts.year === year && maxParts.month === month
1475
- ? maxParts.day
1476
- : numDaysInMonth;
1477
- const minDay = (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== null && (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== undefined && minParts.year === year && minParts.month === month
1478
- ? minParts.day
1479
- : 1;
1480
- if (dayValues !== undefined) {
1481
- let processedDays = dayValues;
1482
- processedDays = processedDays.filter((day) => day >= minDay && day <= maxDay);
1483
- processedDays.forEach((processedDay) => {
1484
- const date = new Date(`${month}/${processedDay}/${year} GMT+0000`);
1485
- const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1486
- days.push({ text: dayString, value: processedDay });
1487
- });
1488
- }
1489
- else {
1490
- for (let i = minDay; i <= maxDay; i++) {
1491
- const date = new Date(`${month}/${i}/${year} GMT+0000`);
1492
- const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1493
- days.push({ text: dayString, value: i });
1494
- }
1495
- }
1496
- return days;
1497
- };
1498
- const getYearColumnData = (locale, refParts, minParts, maxParts, yearValues) => {
1499
- var _a, _b;
1500
- let processedYears = [];
1501
- if (yearValues !== undefined) {
1502
- processedYears = yearValues;
1503
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== undefined) {
1504
- processedYears = processedYears.filter((year) => year <= maxParts.year);
1505
- }
1506
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.year) !== undefined) {
1507
- processedYears = processedYears.filter((year) => year >= minParts.year);
1508
- }
1509
- }
1510
- else {
1511
- const { year } = refParts;
1512
- const maxYear = (_a = maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== null && _a !== void 0 ? _a : year;
1513
- const minYear = (_b = minParts === null || minParts === void 0 ? void 0 : minParts.year) !== null && _b !== void 0 ? _b : year - 100;
1514
- for (let i = minYear; i <= maxYear; i++) {
1515
- processedYears.push(i);
1516
- }
1517
- }
1518
- return processedYears.map((year) => ({
1519
- text: getYear(locale, { year, month: refParts.month, day: refParts.day }),
1520
- value: year,
1521
- }));
1522
- };
1523
- /**
1524
- * Given a starting date and an upper bound,
1525
- * this functions returns an array of all
1526
- * month objects in that range.
1527
- */
1528
- const getAllMonthsInRange = (currentParts, maxParts) => {
1529
- if (currentParts.month === maxParts.month && currentParts.year === maxParts.year) {
1530
- return [currentParts];
1531
- }
1532
- return [currentParts, ...getAllMonthsInRange(getNextMonth(currentParts), maxParts)];
1533
- };
1534
- /**
1535
- * Creates and returns picker items
1536
- * that represent the days in a month.
1537
- * Example: "Thu, Jun 2"
1538
- */
1539
- const getCombinedDateColumnData = (locale, todayParts, minParts, maxParts, dayValues, monthValues) => {
1540
- let items = [];
1541
- let parts = [];
1542
- /**
1543
- * Get all month objects from the min date
1544
- * to the max date. Note: Do not use getMonthColumnData
1545
- * as that function only generates dates within a
1546
- * single year.
1547
- */
1548
- let months = getAllMonthsInRange(minParts, maxParts);
1549
- /**
1550
- * Filter out any disallowed month values.
1551
- */
1552
- if (monthValues) {
1553
- months = months.filter(({ month }) => monthValues.includes(month));
1554
- }
1555
- /**
1556
- * Get all of the days in the month.
1557
- * From there, generate an array where
1558
- * each item has the month, date, and day
1559
- * of work as the text.
1560
- */
1561
- months.forEach((monthObject) => {
1562
- const referenceMonth = { month: monthObject.month, day: null, year: monthObject.year };
1563
- const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {
1564
- month: 'short',
1565
- day: 'numeric',
1566
- weekday: 'short',
1567
- });
1568
- const dateParts = [];
1569
- const dateColumnItems = [];
1570
- monthDays.forEach((dayObject) => {
1571
- const isToday = isSameDay(Object.assign(Object.assign({}, referenceMonth), { day: dayObject.value }), todayParts);
1572
- /**
1573
- * Today's date should read as "Today" (localized)
1574
- * not the actual date string
1575
- */
1576
- dateColumnItems.push({
1577
- text: isToday ? getTodayLabel(locale) : dayObject.text,
1578
- value: `${referenceMonth.year}-${referenceMonth.month}-${dayObject.value}`,
1579
- });
1580
- /**
1581
- * When selecting a date in the wheel picker
1582
- * we need access to the raw datetime parts data.
1583
- * The picker column only accepts values of
1584
- * type string or number, so we need to return
1585
- * two sets of data: A data set to be passed
1586
- * to the picker column, and a data set to
1587
- * be used to reference the raw data when
1588
- * updating the picker column value.
1589
- */
1590
- dateParts.push({
1591
- month: referenceMonth.month,
1592
- year: referenceMonth.year,
1593
- day: dayObject.value,
1594
- });
1595
- });
1596
- parts = [...parts, ...dateParts];
1597
- items = [...items, ...dateColumnItems];
1598
- });
1599
- return {
1600
- parts,
1601
- items,
1602
- };
1603
- };
1604
- const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
1605
- const computedHourCycle = getHourCycle(locale, hourCycle);
1606
- const use24Hour = is24Hour(computedHourCycle);
1607
- const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
1608
- const hoursItems = hours.map((hour) => {
1609
- return {
1610
- text: getFormattedHour(hour, computedHourCycle),
1611
- value: getInternalHourValue(hour, use24Hour, refParts.ampm),
1612
- };
1613
- });
1614
- const minutesItems = minutes.map((minute) => {
1615
- return {
1616
- text: addTimePadding(minute),
1617
- value: minute,
1618
- };
1619
- });
1620
- const dayPeriodItems = [];
1621
- if (am && !use24Hour) {
1622
- dayPeriodItems.push({
1623
- text: getLocalizedDayPeriod(locale, 'am'),
1624
- value: 'am',
1625
- });
1626
- }
1627
- if (pm && !use24Hour) {
1628
- dayPeriodItems.push({
1629
- text: getLocalizedDayPeriod(locale, 'pm'),
1630
- value: 'pm',
1631
- });
1632
- }
1633
- return {
1634
- minutesData: minutesItems,
1635
- hoursData: hoursItems,
1636
- dayPeriodData: dayPeriodItems,
1637
- };
1638
- };
1639
-
1127
+ exports.addTimePadding = addTimePadding;
1640
1128
  exports.calculateHourFromAMPM = calculateHourFromAMPM;
1641
1129
  exports.clampDate = clampDate;
1642
1130
  exports.convertDataToISO = convertDataToISO;
1643
1131
  exports.convertToArrayOfNumbers = convertToArrayOfNumbers;
1644
1132
  exports.formatValue = formatValue;
1645
1133
  exports.generateDayAriaLabel = generateDayAriaLabel;
1646
- exports.generateMonths = generateMonths;
1647
1134
  exports.getClosestValidDate = getClosestValidDate;
1648
- exports.getCombinedDateColumnData = getCombinedDateColumnData;
1649
1135
  exports.getDay = getDay;
1650
- exports.getDayColumnData = getDayColumnData;
1651
- exports.getDaysOfMonth = getDaysOfMonth;
1652
- exports.getDaysOfWeek = getDaysOfWeek;
1653
1136
  exports.getEndOfWeek = getEndOfWeek;
1137
+ exports.getFormattedHour = getFormattedHour;
1654
1138
  exports.getHourCycle = getHourCycle;
1139
+ exports.getInternalHourValue = getInternalHourValue;
1655
1140
  exports.getLocalizedDateTime = getLocalizedDateTime;
1141
+ exports.getLocalizedDayPeriod = getLocalizedDayPeriod;
1656
1142
  exports.getLocalizedTime = getLocalizedTime;
1657
1143
  exports.getMonthAndYear = getMonthAndYear;
1658
- exports.getMonthColumnData = getMonthColumnData;
1659
1144
  exports.getNextDay = getNextDay;
1660
1145
  exports.getNextMonth = getNextMonth;
1661
1146
  exports.getNextWeek = getNextWeek;
@@ -1667,9 +1152,9 @@ exports.getPreviousMonth = getPreviousMonth;
1667
1152
  exports.getPreviousWeek = getPreviousWeek;
1668
1153
  exports.getPreviousYear = getPreviousYear;
1669
1154
  exports.getStartOfWeek = getStartOfWeek;
1670
- exports.getTimeColumnsData = getTimeColumnsData;
1671
- exports.getToday = getToday;
1672
- exports.getYearColumnData = getYearColumnData;
1155
+ exports.getTodayLabel = getTodayLabel;
1156
+ exports.getYear = getYear;
1157
+ exports.is24Hour = is24Hour;
1673
1158
  exports.isAfter = isAfter;
1674
1159
  exports.isBefore = isBefore;
1675
1160
  exports.isLocaleDayPeriodRTL = isLocaleDayPeriodRTL;
@@ -1679,5 +1164,6 @@ exports.parseAmPm = parseAmPm;
1679
1164
  exports.parseDate = parseDate;
1680
1165
  exports.parseMaxParts = parseMaxParts;
1681
1166
  exports.parseMinParts = parseMinParts;
1167
+ exports.removeDateTzOffset = removeDateTzOffset;
1682
1168
  exports.validateParts = validateParts;
1683
1169
  exports.warnIfValueOutOfBounds = warnIfValueOutOfBounds;