@ionic/core 8.7.17-dev.11772118942.181221d4 → 8.7.17-dev.11772568074.1d7a4aea

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 (520) hide show
  1. package/components/action-sheet.js +1 -561
  2. package/components/alert.js +1 -610
  3. package/components/animation.js +1 -817
  4. package/components/backdrop.js +1 -72
  5. package/components/button-active.js +1 -64
  6. package/components/button.js +1 -303
  7. package/components/buttons.js +1 -56
  8. package/components/capacitor.js +1 -10
  9. package/components/checkbox.js +1 -261
  10. package/components/config.js +1 -192
  11. package/components/content.js +1 -475
  12. package/components/cubic-bezier.js +1 -87
  13. package/components/data.js +1 -1635
  14. package/components/dir.js +1 -15
  15. package/components/focus-visible.js +1 -72
  16. package/components/framework-delegate.js +1 -137
  17. package/components/gesture-controller.js +1 -192
  18. package/components/haptic.js +1 -155
  19. package/components/hardware-back-button.js +1 -112
  20. package/components/header.js +1 -417
  21. package/components/helpers.js +1 -336
  22. package/components/icon.js +1 -456
  23. package/components/index.d.ts +2 -0
  24. package/components/index.js +1 -115
  25. package/components/index2.js +1 -416
  26. package/components/index3.js +1 -452
  27. package/components/index4.js +1 -118
  28. package/components/index5.js +1 -303
  29. package/components/index6.js +1 -29
  30. package/components/index7.js +1 -164
  31. package/components/index8.js +1 -125
  32. package/components/index9.js +1 -4
  33. package/components/input-shims.js +1 -624
  34. package/components/input.utils.js +1 -144
  35. package/components/ion-accordion-group.js +1 -269
  36. package/components/ion-accordion.js +1 -457
  37. package/components/ion-action-sheet.js +1 -6
  38. package/components/ion-alert.js +1 -6
  39. package/components/ion-app.js +1 -128
  40. package/components/ion-avatar.js +1 -41
  41. package/components/ion-back-button.js +1 -131
  42. package/components/ion-backdrop.js +1 -6
  43. package/components/ion-badge.js +1 -47
  44. package/components/ion-breadcrumb.js +1 -137
  45. package/components/ion-breadcrumbs.js +1 -164
  46. package/components/ion-button.js +1 -6
  47. package/components/ion-buttons.js +1 -6
  48. package/components/ion-card-content.js +1 -45
  49. package/components/ion-card-header.js +1 -56
  50. package/components/ion-card-subtitle.js +1 -48
  51. package/components/ion-card-title.js +1 -48
  52. package/components/ion-card.js +1 -107
  53. package/components/ion-checkbox.js +1 -6
  54. package/components/ion-chip.js +1 -66
  55. package/components/ion-col.js +1 -163
  56. package/components/ion-content.js +1 -6
  57. package/components/ion-datetime-button.js +1 -384
  58. package/components/ion-datetime.js +1 -2046
  59. package/components/ion-fab-button.js +1 -151
  60. package/components/ion-fab-list.js +1 -66
  61. package/components/ion-fab.js +1 -101
  62. package/components/ion-footer.js +1 -159
  63. package/components/ion-grid.js +1 -46
  64. package/components/ion-header.js +1 -6
  65. package/components/ion-icon.js +1 -6
  66. package/components/ion-img.js +1 -124
  67. package/components/ion-infinite-scroll-content.js +1 -70
  68. package/components/ion-infinite-scroll.js +1 -236
  69. package/components/ion-input-otp.js +1 -683
  70. package/components/ion-input-password-toggle.js +1 -129
  71. package/components/ion-input.js +1 -617
  72. package/components/ion-item-divider.js +1 -59
  73. package/components/ion-item-group.js +1 -46
  74. package/components/ion-item-option.js +1 -91
  75. package/components/ion-item-options.js +1 -73
  76. package/components/ion-item-sliding.js +1 -458
  77. package/components/ion-item.js +1 -6
  78. package/components/ion-label.js +1 -6
  79. package/components/ion-list-header.js +1 -6
  80. package/components/ion-list.js +1 -6
  81. package/components/ion-loading.js +1 -344
  82. package/components/ion-menu-button.js +1 -110
  83. package/components/ion-menu-toggle.js +1 -64
  84. package/components/ion-menu.js +1 -745
  85. package/components/ion-modal.js +1 -6
  86. package/components/ion-nav-link.js +1 -64
  87. package/components/ion-nav.js +1 -956
  88. package/components/ion-note.js +1 -47
  89. package/components/ion-picker-column-option.js +1 -6
  90. package/components/ion-picker-column.js +1 -6
  91. package/components/ion-picker-legacy-column.js +1 -6
  92. package/components/ion-picker-legacy.js +1 -343
  93. package/components/ion-picker.js +1 -6
  94. package/components/ion-popover.js +1 -6
  95. package/components/ion-progress-bar.js +1 -101
  96. package/components/ion-radio-group.js +1 -6
  97. package/components/ion-radio.js +1 -6
  98. package/components/ion-range.js +1 -853
  99. package/components/ion-refresher-content.js +1 -89
  100. package/components/ion-refresher.js +1 -751
  101. package/components/ion-reorder-group.js +1 -322
  102. package/components/ion-reorder.js +1 -60
  103. package/components/ion-ripple-effect.js +1 -6
  104. package/components/ion-route-redirect.js +1 -45
  105. package/components/ion-route.js +1 -74
  106. package/components/ion-router-link.js +1 -61
  107. package/components/ion-router-outlet.js +1 -227
  108. package/components/ion-router.js +1 -841
  109. package/components/ion-row.js +1 -36
  110. package/components/ion-searchbar.js +1 -530
  111. package/components/ion-segment-button.js +1 -174
  112. package/components/ion-segment-content.js +1 -35
  113. package/components/ion-segment-view.js +1 -148
  114. package/components/ion-segment.js +1 -602
  115. package/components/ion-select-modal.js +1 -6
  116. package/components/ion-select-option.js +1 -46
  117. package/components/ion-select-popover.js +1 -6
  118. package/components/ion-select.js +1 -1037
  119. package/components/ion-skeleton-text.js +1 -65
  120. package/components/ion-spinner.js +1 -6
  121. package/components/ion-split-pane.js +1 -197
  122. package/components/ion-tab-bar.js +1 -115
  123. package/components/ion-tab-button.js +1 -128
  124. package/components/ion-tab.js +1 -91
  125. package/components/ion-tabs.js +1 -205
  126. package/components/ion-text.js +1 -42
  127. package/components/ion-textarea.js +1 -554
  128. package/components/ion-thumbnail.js +1 -36
  129. package/components/ion-title.js +1 -6
  130. package/components/ion-toast.js +1 -941
  131. package/components/ion-toggle.js +1 -361
  132. package/components/ion-toolbar.js +1 -6
  133. package/components/ionic-global.js +1 -144
  134. package/components/ios.transition.js +1 -672
  135. package/components/item.js +1 -302
  136. package/components/keyboard-controller.js +1 -162
  137. package/components/keyboard.js +1 -141
  138. package/components/keyboard2.js +1 -76
  139. package/components/label.js +1 -100
  140. package/components/list-header.js +1 -47
  141. package/components/list.js +1 -68
  142. package/components/lock-controller.js +1 -35
  143. package/components/md.transition.js +1 -51
  144. package/components/menu-toggle-util.js +1 -9
  145. package/components/modal.js +1 -2674
  146. package/components/notch-controller.js +1 -150
  147. package/components/overlays.js +1 -912
  148. package/components/picker-column-option.js +1 -136
  149. package/components/picker-column.js +1 -595
  150. package/components/picker-column2.js +1 -377
  151. package/components/picker.js +1 -498
  152. package/components/popover.js +1 -1502
  153. package/components/radio-group.js +1 -287
  154. package/components/radio.js +1 -229
  155. package/components/refresher.utils.js +1 -193
  156. package/components/ripple-effect.js +1 -109
  157. package/components/select-modal.js +1 -196
  158. package/components/select-popover.js +1 -189
  159. package/components/spinner.js +1 -224
  160. package/components/status-tap.js +1 -36
  161. package/components/swipe-back.js +1 -75
  162. package/components/theme.js +1 -40
  163. package/components/title.js +1 -70
  164. package/components/toolbar.js +1 -89
  165. package/components/validity.js +1 -14
  166. package/components/watch-options.js +1 -44
  167. package/dist/cjs/{animation-Bt3H9L1C.js → animation-Dg4yiuR2.js} +1 -1
  168. package/dist/cjs/app-globals-CLI8xCmk.js +11 -0
  169. package/dist/cjs/{button-active-CMc8cD90.js → button-active-FscMI17-.js} +1 -1
  170. package/dist/cjs/{config-C5fsO43a.js → config-BukYi_pW.js} +1 -1
  171. package/dist/cjs/{data-JwZKaIQB.js → data-BYlBjkMU.js} +1 -1
  172. package/dist/cjs/{framework-delegate-DMJRBuDi.js → framework-delegate-CRgp8o_p.js} +1 -1
  173. package/dist/cjs/{hardware-back-button-VCK4V3mG.js → hardware-back-button-C4rMJ5uI.js} +1 -1
  174. package/dist/cjs/{helpers-DrTqNghc.js → helpers-CxTYJdbT.js} +1 -1
  175. package/dist/cjs/{index-094mMFB-.js → index-C845Ti6K.js} +4 -4
  176. package/dist/cjs/{index-DrMUZJj6.js → index-CFUwM5x_.js} +5 -5
  177. package/dist/cjs/{index-D6Wc6v08.js → index-CqT-2gKy.js} +503 -382
  178. package/dist/cjs/{index-CO6eryBo.js → index-MbaBbWXk.js} +2 -2
  179. package/dist/cjs/{index-C534ULug.js → index-YcSftOMz.js} +2 -2
  180. package/dist/cjs/index.cjs.js +12 -12
  181. package/dist/cjs/{input-shims-CW0KUFTQ.js → input-shims-DlFhYYTs.js} +3 -3
  182. package/dist/cjs/{input.utils-B_QROI2g.js → input.utils-DmeJ8dmo.js} +2 -2
  183. package/dist/cjs/ion-accordion_2.cjs.entry.js +23 -15
  184. package/dist/cjs/ion-action-sheet.cjs.entry.js +21 -15
  185. package/dist/cjs/ion-alert.cjs.entry.js +25 -17
  186. package/dist/cjs/ion-app_8.cjs.entry.js +44 -40
  187. package/dist/cjs/ion-avatar_3.cjs.entry.js +12 -12
  188. package/dist/cjs/ion-back-button.cjs.entry.js +7 -7
  189. package/dist/cjs/ion-backdrop.cjs.entry.js +6 -6
  190. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +20 -14
  191. package/dist/cjs/ion-button_2.cjs.entry.js +36 -18
  192. package/dist/cjs/ion-card_5.cjs.entry.js +23 -23
  193. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
  194. package/dist/cjs/ion-chip.cjs.entry.js +6 -6
  195. package/dist/cjs/ion-col_3.cjs.entry.js +8 -8
  196. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -8
  197. package/dist/cjs/ion-datetime_3.cjs.entry.js +67 -39
  198. package/dist/cjs/ion-fab_3.cjs.entry.js +17 -13
  199. package/dist/cjs/ion-img.cjs.entry.js +8 -6
  200. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -13
  201. package/dist/cjs/ion-input-otp.cjs.entry.js +16 -10
  202. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -7
  203. package/dist/cjs/ion-input.cjs.entry.js +21 -13
  204. package/dist/cjs/ion-item-option_3.cjs.entry.js +17 -15
  205. package/dist/cjs/ion-item_8.cjs.entry.js +42 -36
  206. package/dist/cjs/ion-loading.cjs.entry.js +18 -14
  207. package/dist/cjs/ion-menu_3.cjs.entry.js +30 -22
  208. package/dist/cjs/ion-modal.cjs.entry.js +55 -40
  209. package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
  210. package/dist/cjs/ion-picker-column-option.cjs.entry.js +10 -8
  211. package/dist/cjs/ion-picker-column.cjs.entry.js +11 -7
  212. package/dist/cjs/ion-picker.cjs.entry.js +6 -6
  213. package/dist/cjs/ion-popover.cjs.entry.js +21 -15
  214. package/dist/cjs/ion-progress-bar.cjs.entry.js +7 -7
  215. package/dist/cjs/ion-radio_2.cjs.entry.js +17 -13
  216. package/dist/cjs/ion-range.cjs.entry.js +29 -15
  217. package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -14
  218. package/dist/cjs/ion-reorder_2.cjs.entry.js +13 -11
  219. package/dist/cjs/ion-ripple-effect.cjs.entry.js +4 -4
  220. package/dist/cjs/ion-route_4.cjs.entry.js +20 -10
  221. package/dist/cjs/ion-searchbar.cjs.entry.js +22 -12
  222. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
  223. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -5
  224. package/dist/cjs/ion-segment_2.cjs.entry.js +26 -16
  225. package/dist/cjs/ion-select-modal.cjs.entry.js +12 -12
  226. package/dist/cjs/ion-select_3.cjs.entry.js +29 -21
  227. package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
  228. package/dist/cjs/ion-split-pane.cjs.entry.js +15 -9
  229. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +14 -12
  230. package/dist/cjs/ion-tab_2.cjs.entry.js +10 -8
  231. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  232. package/dist/cjs/ion-textarea.cjs.entry.js +18 -12
  233. package/dist/cjs/ion-toast.cjs.entry.js +21 -15
  234. package/dist/cjs/ion-toggle.cjs.entry.js +10 -8
  235. package/dist/cjs/{ionic-global-HMVqOFGO.js → ionic-global-Bc3kJi1Z.js} +1 -1
  236. package/dist/cjs/ionic.cjs.js +5 -5
  237. package/dist/cjs/{ios.transition-BOt_uW73.js → ios.transition-trBiC95R.js} +4 -4
  238. package/dist/cjs/loader.cjs.js +4 -4
  239. package/dist/cjs/{md.transition-Dt968VXB.js → md.transition-CUQECuvD.js} +4 -4
  240. package/dist/cjs/{notch-controller-Bzqhjm4f.js → notch-controller-sD-lTpdc.js} +1 -1
  241. package/dist/cjs/{overlays-B2b-TTbl.js → overlays-C2jiBSNQ.js} +5 -5
  242. package/dist/cjs/{status-tap-g0sWWkXk.js → status-tap-CCJk5VgT.js} +3 -3
  243. package/dist/cjs/{swipe-back-BIayeNOD.js → swipe-back-BGhTQ1CU.js} +2 -2
  244. package/dist/collection/collection-manifest.json +2 -2
  245. package/dist/collection/components/accordion-group/accordion-group.js +4 -2
  246. package/dist/collection/components/action-sheet/action-sheet.js +20 -10
  247. package/dist/collection/components/alert/alert.js +24 -12
  248. package/dist/collection/components/back-button/back-button.js +4 -2
  249. package/dist/collection/components/badge/badge.js +2 -1
  250. package/dist/collection/components/breadcrumb/breadcrumb.js +8 -4
  251. package/dist/collection/components/breadcrumbs/breadcrumbs.js +4 -2
  252. package/dist/collection/components/button/button.js +6 -3
  253. package/dist/collection/components/card/card.js +6 -3
  254. package/dist/collection/components/card-header/card-header.js +2 -1
  255. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -1
  256. package/dist/collection/components/card-title/card-title.js +2 -1
  257. package/dist/collection/components/checkbox/checkbox.js +4 -2
  258. package/dist/collection/components/chip/chip.js +2 -1
  259. package/dist/collection/components/content/content.js +8 -4
  260. package/dist/collection/components/datetime/datetime.js +34 -15
  261. package/dist/collection/components/datetime-button/datetime-button.js +2 -1
  262. package/dist/collection/components/fab-button/fab-button.js +6 -3
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +4 -2
  264. package/dist/collection/components/input/input.js +11 -6
  265. package/dist/collection/components/input-otp/input-otp.js +8 -4
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +4 -2
  267. package/dist/collection/components/item/item.js +6 -3
  268. package/dist/collection/components/item-divider/item-divider.js +2 -1
  269. package/dist/collection/components/item-option/item-option.js +2 -1
  270. package/dist/collection/components/item-options/item-options.js +2 -1
  271. package/dist/collection/components/item-sliding/item-sliding.js +2 -1
  272. package/dist/collection/components/label/label.js +6 -3
  273. package/dist/collection/components/list-header/list-header.js +2 -1
  274. package/dist/collection/components/loading/loading.js +22 -11
  275. package/dist/collection/components/menu/menu.js +10 -5
  276. package/dist/collection/components/menu-button/menu-button.js +2 -1
  277. package/dist/collection/components/modal/gestures/sheet.js +32 -21
  278. package/dist/collection/components/modal/modal.js +35 -20
  279. package/dist/collection/components/nav/nav.js +89 -45
  280. package/dist/collection/components/nav-link/nav-link.js +9 -5
  281. package/dist/collection/components/note/note.js +2 -1
  282. package/dist/collection/components/picker/picker.js +2 -1
  283. package/dist/collection/components/picker-column/picker-column.js +6 -3
  284. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -1
  285. package/dist/collection/components/picker-legacy/picker.js +24 -12
  286. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -2
  287. package/dist/collection/components/popover/popover.js +33 -17
  288. package/dist/collection/components/progress-bar/progress-bar.js +2 -1
  289. package/dist/collection/components/radio/radio.js +2 -1
  290. package/dist/collection/components/radio-group/radio-group.js +6 -3
  291. package/dist/collection/components/range/range.js +14 -7
  292. package/dist/collection/components/refresher/refresher.js +73 -5
  293. package/dist/collection/components/refresher-content/refresher-content.js +8 -4
  294. package/dist/collection/components/reorder-group/reorder-group.js +6 -3
  295. package/dist/collection/components/route/route.js +4 -2
  296. package/dist/collection/components/router/router.js +10 -5
  297. package/dist/collection/components/router-link/router-link.js +6 -3
  298. package/dist/collection/components/router-outlet/router-outlet.js +18 -9
  299. package/dist/collection/components/searchbar/searchbar.js +11 -6
  300. package/dist/collection/components/segment/segment.js +10 -5
  301. package/dist/collection/components/segment-button/segment-button.js +4 -2
  302. package/dist/collection/components/segment-view/segment-view.js +2 -1
  303. package/dist/collection/components/select/select.js +10 -5
  304. package/dist/collection/components/select-modal/select-modal.js +2 -1
  305. package/dist/collection/components/select-popover/select-popover.js +2 -1
  306. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -1
  307. package/dist/collection/components/spinner/spinner.js +4 -2
  308. package/dist/collection/components/tab/tab.js +4 -2
  309. package/dist/collection/components/tab-bar/tab-bar.js +4 -2
  310. package/dist/collection/components/tab-button/tab-button.js +4 -2
  311. package/dist/collection/components/tabs/tabs.js +4 -2
  312. package/dist/collection/components/text/text.js +2 -1
  313. package/dist/collection/components/textarea/textarea.js +6 -3
  314. package/dist/collection/components/title/title.js +4 -2
  315. package/dist/collection/components/toast/toast.js +34 -17
  316. package/dist/collection/components/toggle/toggle.js +4 -2
  317. package/dist/collection/components/toolbar/toolbar.js +2 -1
  318. package/dist/docs.d.ts +37 -0
  319. package/dist/docs.json +835 -381
  320. package/dist/esm/{animation-Dt8bGnA-.js → animation-CnGMT4ji.js} +1 -1
  321. package/dist/esm/app-globals-DhZjtldk.js +9 -0
  322. package/dist/esm/{button-active-L570Swow.js → button-active-BBx21brx.js} +1 -1
  323. package/dist/esm/{config-mCdtaoPe.js → config-TO1rZH52.js} +1 -1
  324. package/dist/esm/{data-DCORV9FH.js → data-B9iGR5YO.js} +1 -1
  325. package/dist/esm/{framework-delegate-BYawdMXj.js → framework-delegate-CyxE1S_P.js} +1 -1
  326. package/dist/esm/{hardware-back-button-CPLxO-Ev.js → hardware-back-button-CTe4XmL7.js} +1 -1
  327. package/dist/esm/{helpers-DEn3pfjm.js → helpers-Tl8jw6S2.js} +1 -1
  328. package/dist/esm/{index-r2D9DEro.js → index-B-hkiOUh.js} +4 -4
  329. package/dist/esm/{index-CvDIirVx.js → index-B2KwgBLx.js} +5 -5
  330. package/dist/esm/{index-ceb5RaMT.js → index-BtUdxPjv.js} +2 -2
  331. package/dist/esm/{index-C8IsBmNU.js → index-IGIE5vDm.js} +503 -382
  332. package/dist/esm/{index-Bs3kT4bc.js → index-hW6eNZ3o.js} +2 -2
  333. package/dist/esm/index.js +12 -12
  334. package/dist/esm/{input-shims-DyOpfTg6.js → input-shims-C1hAaHcP.js} +3 -3
  335. package/dist/esm/{input.utils-DrvTa8gz.js → input.utils-Bxa_DQ7-.js} +2 -2
  336. package/dist/esm/ion-accordion_2.entry.js +23 -15
  337. package/dist/esm/ion-action-sheet.entry.js +21 -15
  338. package/dist/esm/ion-alert.entry.js +25 -17
  339. package/dist/esm/ion-app_8.entry.js +44 -40
  340. package/dist/esm/ion-avatar_3.entry.js +12 -12
  341. package/dist/esm/ion-back-button.entry.js +7 -7
  342. package/dist/esm/ion-backdrop.entry.js +6 -6
  343. package/dist/esm/ion-breadcrumb_2.entry.js +20 -14
  344. package/dist/esm/ion-button_2.entry.js +36 -18
  345. package/dist/esm/ion-card_5.entry.js +23 -23
  346. package/dist/esm/ion-checkbox.entry.js +7 -7
  347. package/dist/esm/ion-chip.entry.js +6 -6
  348. package/dist/esm/ion-col_3.entry.js +8 -8
  349. package/dist/esm/ion-datetime-button.entry.js +8 -8
  350. package/dist/esm/ion-datetime_3.entry.js +67 -39
  351. package/dist/esm/ion-fab_3.entry.js +17 -13
  352. package/dist/esm/ion-img.entry.js +8 -6
  353. package/dist/esm/ion-infinite-scroll_2.entry.js +17 -13
  354. package/dist/esm/ion-input-otp.entry.js +16 -10
  355. package/dist/esm/ion-input-password-toggle.entry.js +9 -7
  356. package/dist/esm/ion-input.entry.js +21 -13
  357. package/dist/esm/ion-item-option_3.entry.js +17 -15
  358. package/dist/esm/ion-item_8.entry.js +42 -36
  359. package/dist/esm/ion-loading.entry.js +18 -14
  360. package/dist/esm/ion-menu_3.entry.js +30 -22
  361. package/dist/esm/ion-modal.entry.js +55 -40
  362. package/dist/esm/ion-nav_2.entry.js +14 -10
  363. package/dist/esm/ion-picker-column-option.entry.js +10 -8
  364. package/dist/esm/ion-picker-column.entry.js +11 -7
  365. package/dist/esm/ion-picker.entry.js +6 -6
  366. package/dist/esm/ion-popover.entry.js +21 -15
  367. package/dist/esm/ion-progress-bar.entry.js +7 -7
  368. package/dist/esm/ion-radio_2.entry.js +17 -13
  369. package/dist/esm/ion-range.entry.js +29 -15
  370. package/dist/esm/ion-refresher_2.entry.js +45 -14
  371. package/dist/esm/ion-reorder_2.entry.js +13 -11
  372. package/dist/esm/ion-ripple-effect.entry.js +4 -4
  373. package/dist/esm/ion-route_4.entry.js +20 -10
  374. package/dist/esm/ion-searchbar.entry.js +22 -12
  375. package/dist/esm/ion-segment-content.entry.js +3 -3
  376. package/dist/esm/ion-segment-view.entry.js +5 -5
  377. package/dist/esm/ion-segment_2.entry.js +26 -16
  378. package/dist/esm/ion-select-modal.entry.js +12 -12
  379. package/dist/esm/ion-select_3.entry.js +29 -21
  380. package/dist/esm/ion-spinner.entry.js +4 -4
  381. package/dist/esm/ion-split-pane.entry.js +15 -9
  382. package/dist/esm/ion-tab-bar_2.entry.js +14 -12
  383. package/dist/esm/ion-tab_2.entry.js +10 -8
  384. package/dist/esm/ion-text.entry.js +4 -4
  385. package/dist/esm/ion-textarea.entry.js +18 -12
  386. package/dist/esm/ion-toast.entry.js +21 -15
  387. package/dist/esm/ion-toggle.entry.js +10 -8
  388. package/dist/esm/{ionic-global-CDrldh-5.js → ionic-global-DfbeLwcV.js} +1 -1
  389. package/dist/esm/ionic.js +6 -6
  390. package/dist/esm/{ios.transition-BDzw0_Hm.js → ios.transition--aMF-pDH.js} +4 -4
  391. package/dist/esm/loader.js +5 -5
  392. package/dist/esm/{md.transition-BzDYi3qq.js → md.transition-BEVbfm8j.js} +4 -4
  393. package/dist/esm/{notch-controller-BwelN_JM.js → notch-controller-DAcvKU57.js} +1 -1
  394. package/dist/esm/{overlays-D5YkFThA.js → overlays-F8GHPo-e.js} +5 -5
  395. package/dist/esm/{status-tap-5DQ7Fc4V.js → status-tap-BfJqFSLF.js} +3 -3
  396. package/dist/esm/{swipe-back-BKw2CAHc.js → swipe-back-BZBFwTQV.js} +2 -2
  397. package/dist/html.html-data.json +109 -109
  398. package/dist/ionic/index.esm.js +1 -1
  399. package/dist/ionic/ionic.esm.js +1 -1
  400. package/dist/ionic/{p-316c0420.entry.js → p-025d2d32.entry.js} +1 -1
  401. package/dist/ionic/p-02acdef4.entry.js +4 -0
  402. package/dist/ionic/p-04e2c388.entry.js +4 -0
  403. package/dist/ionic/{p-370e4237.entry.js → p-074344b8.entry.js} +1 -1
  404. package/dist/ionic/p-0761b4d3.entry.js +4 -0
  405. package/dist/ionic/p-13ade5c8.entry.js +4 -0
  406. package/dist/ionic/p-1b02923f.entry.js +4 -0
  407. package/dist/ionic/p-1bd477a9.entry.js +4 -0
  408. package/dist/ionic/{p-d2489bf2.entry.js → p-1fa1406c.entry.js} +1 -1
  409. package/dist/ionic/{p-46d74291.entry.js → p-1fd588a7.entry.js} +1 -1
  410. package/dist/ionic/p-239a27a4.entry.js +4 -0
  411. package/dist/ionic/{p-94de5cfa.entry.js → p-277abec1.entry.js} +1 -1
  412. package/dist/ionic/{p-dd1aef77.entry.js → p-28d7852f.entry.js} +1 -1
  413. package/dist/ionic/{p-49d06882.entry.js → p-301c43f8.entry.js} +1 -1
  414. package/dist/ionic/{p-79bd78f9.entry.js → p-370a60ee.entry.js} +1 -1
  415. package/dist/ionic/p-3e143d1d.entry.js +4 -0
  416. package/dist/ionic/p-4431ef7e.entry.js +4 -0
  417. package/dist/ionic/p-463767ce.entry.js +4 -0
  418. package/dist/ionic/p-4f888343.entry.js +4 -0
  419. package/dist/ionic/p-51c11c47.entry.js +4 -0
  420. package/dist/ionic/p-56050077.entry.js +4 -0
  421. package/dist/ionic/p-6a3a5aae.entry.js +4 -0
  422. package/dist/ionic/p-6b97f2a3.entry.js +4 -0
  423. package/dist/ionic/{p-51a60e0f.entry.js → p-7c72d482.entry.js} +1 -1
  424. package/dist/ionic/p-7d20f4f8.entry.js +4 -0
  425. package/dist/ionic/{p-11aa58d6.entry.js → p-80cac7a2.entry.js} +1 -1
  426. package/dist/ionic/p-91fc7352.entry.js +4 -0
  427. package/dist/ionic/p-93845421.entry.js +4 -0
  428. package/dist/ionic/{p-3a6caca9.entry.js → p-964090ef.entry.js} +1 -1
  429. package/dist/ionic/p-96a2e768.entry.js +4 -0
  430. package/dist/ionic/{p-d126e8d3.entry.js → p-9745651b.entry.js} +1 -1
  431. package/dist/ionic/{p-f9061316.entry.js → p-9802c88e.entry.js} +1 -1
  432. package/dist/ionic/{p-582824c5.entry.js → p-9833cf63.entry.js} +1 -1
  433. package/dist/ionic/{p-675b1a31.entry.js → p-9fae83d8.entry.js} +1 -1
  434. package/dist/ionic/{p-CwgG81ZD.js → p-B8xlpH8p.js} +1 -1
  435. package/dist/ionic/{p-C7hRNDhM.js → p-BAt5H1ac.js} +1 -1
  436. package/dist/ionic/p-BW_TRJm8.js +4 -0
  437. package/dist/ionic/{p-DDb5r57F.js → p-Bum7H1fw.js} +1 -1
  438. package/dist/ionic/{p-D0dMcSkw.js → p-BvFYtOdE.js} +1 -1
  439. package/dist/ionic/{p-Dc45iWE4.js → p-BxIcPWoV.js} +1 -1
  440. package/dist/ionic/{p-BYEqWnSg.js → p-C0JvVFMv.js} +1 -1
  441. package/dist/ionic/{p-CTfR9YZG.js → p-CGmVTdWh.js} +1 -1
  442. package/dist/ionic/{p-BOVrCkpJ.js → p-CYbRmDdy.js} +1 -1
  443. package/dist/ionic/{p-D-eFFUkA.js → p-CmFz1Mjc.js} +1 -1
  444. package/dist/ionic/p-CtA-yJYy.js +4 -0
  445. package/dist/ionic/p-D8HJQ1qq.js +4 -0
  446. package/dist/ionic/{p-B0q1YL7N.js → p-DB_iPQC-.js} +1 -1
  447. package/dist/ionic/{p-DNcfiJwE.js → p-DLbbmF9h.js} +1 -1
  448. package/dist/ionic/{p-DdR6rpbR.js → p-DTPR1Wpn.js} +1 -1
  449. package/dist/ionic/{p-DCv9sLH2.js → p-DjriolRs.js} +1 -1
  450. package/dist/ionic/p-DtVZDHlS.js +4 -0
  451. package/dist/ionic/{p-QHYY4sjU.js → p-GWUGgWx6.js} +1 -1
  452. package/dist/ionic/p-IGIE5vDm.js +5 -0
  453. package/dist/ionic/{p-BFvmZNyx.js → p-NFFyoJ4Q.js} +1 -1
  454. package/dist/ionic/{p-86f53961.entry.js → p-a287e18e.entry.js} +1 -1
  455. package/dist/ionic/p-a805674e.entry.js +4 -0
  456. package/dist/ionic/p-a81ae2cd.entry.js +4 -0
  457. package/dist/ionic/{p-da7d04cc.entry.js → p-a84f2d21.entry.js} +1 -1
  458. package/dist/ionic/{p-dbbe606a.entry.js → p-b2d5238b.entry.js} +1 -1
  459. package/dist/ionic/{p-d1f54e28.entry.js → p-b440381f.entry.js} +1 -1
  460. package/dist/ionic/{p-72c38b88.entry.js → p-b4d52b58.entry.js} +1 -1
  461. package/dist/ionic/{p-2a939845.entry.js → p-b67a2114.entry.js} +1 -1
  462. package/dist/ionic/{p-c73627c8.entry.js → p-bced1f3e.entry.js} +1 -1
  463. package/dist/ionic/{p-9a2d390d.entry.js → p-c1c9b2bb.entry.js} +1 -1
  464. package/dist/ionic/{p-f8f22cc0.entry.js → p-c3e65e45.entry.js} +1 -1
  465. package/dist/ionic/p-c76cc21d.entry.js +4 -0
  466. package/dist/ionic/{p-b0a7585c.entry.js → p-ca31010f.entry.js} +1 -1
  467. package/dist/ionic/p-cbf245b5.entry.js +4 -0
  468. package/dist/ionic/p-d68b665a.entry.js +4 -0
  469. package/dist/ionic/{p-9575b654.entry.js → p-e663bc5a.entry.js} +1 -1
  470. package/dist/ionic/p-efe86ed9.entry.js +4 -0
  471. package/dist/ionic/{p-ac4eb91d.entry.js → p-f5dfb9a3.entry.js} +1 -1
  472. package/dist/ionic/{p-DbQ5QkTP.js → p-gbVXD275.js} +1 -1
  473. package/dist/ionic/p-hNN3VvaC.js +4 -0
  474. package/dist/types/components/datetime/datetime.d.ts +9 -0
  475. package/dist/types/components/header/header.utils.d.ts +2 -1
  476. package/dist/types/components/modal/modal-interface.d.ts +5 -1
  477. package/dist/types/components/modal/modal.d.ts +5 -0
  478. package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
  479. package/dist/types/components/refresher/refresher.d.ts +16 -3
  480. package/dist/types/components.d.ts +927 -189
  481. package/dist/types/interface.d.ts +1 -1
  482. package/dist/types/stencil-public-runtime.d.ts +126 -14
  483. package/dist/types/utils/gesture/listener.d.ts +2 -1
  484. package/hydrate/index.d.ts +12 -0
  485. package/hydrate/index.js +5202 -1327
  486. package/hydrate/index.mjs +5201 -1328
  487. package/package.json +2 -2
  488. package/dist/cjs/app-globals-Ciccnk9_.js +0 -10
  489. package/dist/esm/app-globals-BDSf8fOA.js +0 -8
  490. package/dist/ionic/p-012212e4.entry.js +0 -4
  491. package/dist/ionic/p-074839fc.entry.js +0 -4
  492. package/dist/ionic/p-0dfa5a37.entry.js +0 -4
  493. package/dist/ionic/p-0f418a37.entry.js +0 -4
  494. package/dist/ionic/p-11518b31.entry.js +0 -4
  495. package/dist/ionic/p-1838bed5.entry.js +0 -4
  496. package/dist/ionic/p-29721c43.entry.js +0 -4
  497. package/dist/ionic/p-31f7095f.entry.js +0 -4
  498. package/dist/ionic/p-34642fa1.entry.js +0 -4
  499. package/dist/ionic/p-35696017.entry.js +0 -4
  500. package/dist/ionic/p-40c261a3.entry.js +0 -4
  501. package/dist/ionic/p-4e41ea20.entry.js +0 -4
  502. package/dist/ionic/p-6241ce47.entry.js +0 -4
  503. package/dist/ionic/p-639dd543.entry.js +0 -4
  504. package/dist/ionic/p-6444c606.entry.js +0 -4
  505. package/dist/ionic/p-6d070558.entry.js +0 -4
  506. package/dist/ionic/p-7268efa5.entry.js +0 -4
  507. package/dist/ionic/p-7babec72.entry.js +0 -4
  508. package/dist/ionic/p-BKc55Xev.js +0 -4
  509. package/dist/ionic/p-Bmgaetn_.js +0 -4
  510. package/dist/ionic/p-C8IsBmNU.js +0 -5
  511. package/dist/ionic/p-CJxh_yLS.js +0 -4
  512. package/dist/ionic/p-DUt5fQmA.js +0 -4
  513. package/dist/ionic/p-DZRJwG4S.js +0 -4
  514. package/dist/ionic/p-a127bee2.entry.js +0 -4
  515. package/dist/ionic/p-b3d44509.entry.js +0 -4
  516. package/dist/ionic/p-cc45bcbc.entry.js +0 -4
  517. package/dist/ionic/p-d0a2a1ab.entry.js +0 -4
  518. package/dist/ionic/p-d3014190.entry.js +0 -4
  519. package/dist/ionic/p-db82892c.entry.js +0 -4
  520. package/dist/ionic/p-e1d1f3cc.entry.js +0 -4
@@ -1,419 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as config, p as printIonWarning } from './index4.js';
5
- import { writeTask, Build } from '@stencil/core/internal/client';
6
- import { r as raf } from './helpers.js';
7
-
8
- const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
9
- const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
10
- const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
11
- const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
12
- const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
13
-
14
- /**
15
- * Moves focus to a specified element. Note that we do not remove the tabindex
16
- * because that can result in an unintentional blur. Non-focusables can't be
17
- * focused, so the body will get focused again.
18
- */
19
- const moveFocus = (el) => {
20
- el.tabIndex = -1;
21
- el.focus();
22
- };
23
- /**
24
- * Elements that are hidden using `display: none` should not be focused even if
25
- * they are present in the DOM.
26
- */
27
- const isVisible = (el) => {
28
- return el.offsetParent !== null;
29
- };
30
- /**
31
- * The focus controller allows us to manage focus within a view so assistive
32
- * technologies can inform users of changes to the navigation state. Traditional
33
- * native apps have a way of informing assistive technology about a navigation
34
- * state change. Mobile browsers have this too, but only when doing a full page
35
- * load. In a single page app we do not do that, so we need to build this
36
- * integration ourselves.
37
- */
38
- const createFocusController = () => {
39
- const saveViewFocus = (referenceEl) => {
40
- const focusManagerEnabled = config.get('focusManagerPriority', false);
41
- /**
42
- * When going back to a previously visited page focus should typically be moved
43
- * back to the element that was last focused when the user was on this view.
44
- */
45
- if (focusManagerEnabled) {
46
- const activeEl = document.activeElement;
47
- if (activeEl !== null && (referenceEl === null || referenceEl === void 0 ? void 0 : referenceEl.contains(activeEl))) {
48
- activeEl.setAttribute(LAST_FOCUS, 'true');
49
- }
50
- }
51
- };
52
- const setViewFocus = (referenceEl) => {
53
- const focusManagerPriorities = config.get('focusManagerPriority', false);
54
- /**
55
- * If the focused element is a descendant of the referenceEl then it's possible
56
- * that the app developer manually moved focus, so we do not want to override that.
57
- * This can happen with inputs the are focused when a view transitions in.
58
- */
59
- if (Array.isArray(focusManagerPriorities) && !referenceEl.contains(document.activeElement)) {
60
- /**
61
- * When going back to a previously visited view focus should always be moved back
62
- * to the element that the user was last focused on when they were on this view.
63
- */
64
- const lastFocus = referenceEl.querySelector(`[${LAST_FOCUS}]`);
65
- if (lastFocus && isVisible(lastFocus)) {
66
- moveFocus(lastFocus);
67
- return;
68
- }
69
- for (const priority of focusManagerPriorities) {
70
- /**
71
- * For each recognized case (excluding the default case) make sure to return
72
- * so that the fallback focus behavior does not run.
73
- *
74
- * We intentionally query for specific roles/semantic elements so that the
75
- * transition manager can work with both Ionic and non-Ionic UI components.
76
- *
77
- * If new selectors are added, be sure to remove the outline ring by adding
78
- * new selectors to rule in core.scss.
79
- */
80
- switch (priority) {
81
- case 'content':
82
- const content = referenceEl.querySelector('main, [role="main"]');
83
- if (content && isVisible(content)) {
84
- moveFocus(content);
85
- return;
86
- }
87
- break;
88
- case 'heading':
89
- const headingOne = referenceEl.querySelector('h1, [role="heading"][aria-level="1"]');
90
- if (headingOne && isVisible(headingOne)) {
91
- moveFocus(headingOne);
92
- return;
93
- }
94
- break;
95
- case 'banner':
96
- const header = referenceEl.querySelector('header, [role="banner"]');
97
- if (header && isVisible(header)) {
98
- moveFocus(header);
99
- return;
100
- }
101
- break;
102
- default:
103
- printIonWarning(`Unrecognized focus manager priority value ${priority}`);
104
- break;
105
- }
106
- }
107
- /**
108
- * If there is nothing to focus then focus the page so focus at least moves to
109
- * the correct view. The browser will then determine where within the page to
110
- * move focus to.
111
- */
112
- moveFocus(referenceEl);
113
- }
114
- };
115
- return {
116
- saveViewFocus,
117
- setViewFocus,
118
- };
119
- };
120
- const LAST_FOCUS = 'ion-last-focus';
121
-
122
- const iosTransitionAnimation = () => import('./ios.transition.js');
123
- const mdTransitionAnimation = () => import('./md.transition.js');
124
- const focusController = createFocusController();
125
- // TODO(FW-2832): types
126
- /**
127
- * Executes the main page transition.
128
- * It also manages the lifecycle of header visibility (if any)
129
- * to prevent visual flickering in iOS. The flickering only
130
- * occurs for a condensed header that is placed above the content.
131
- *
132
- * @param opts Options for the transition.
133
- * @returns A promise that resolves when the transition is complete.
134
- */
135
- const transition = (opts) => {
136
- return new Promise((resolve, reject) => {
137
- writeTask(() => {
138
- const transitioningInactiveHeader = getIosIonHeader(opts);
139
- beforeTransition(opts, transitioningInactiveHeader);
140
- runTransition(opts)
141
- .then((result) => {
142
- if (result.animation) {
143
- result.animation.destroy();
144
- }
145
- afterTransition(opts);
146
- resolve(result);
147
- }, (error) => {
148
- afterTransition(opts);
149
- reject(error);
150
- })
151
- .finally(() => {
152
- // Ensure that the header is restored to its original state.
153
- setHeaderTransitionClass(transitioningInactiveHeader, false);
154
- });
155
- });
156
- });
157
- };
158
- const beforeTransition = (opts, transitioningInactiveHeader) => {
159
- const enteringEl = opts.enteringEl;
160
- const leavingEl = opts.leavingEl;
161
- focusController.saveViewFocus(leavingEl);
162
- setZIndex(enteringEl, leavingEl, opts.direction);
163
- // Prevent flickering of the header by adding a class.
164
- setHeaderTransitionClass(transitioningInactiveHeader, true);
165
- if (opts.showGoBack) {
166
- enteringEl.classList.add('can-go-back');
167
- }
168
- else {
169
- enteringEl.classList.remove('can-go-back');
170
- }
171
- setPageHidden(enteringEl, false);
172
- /**
173
- * When transitioning, the page should not
174
- * respond to click events. This resolves small
175
- * issues like users double tapping the ion-back-button.
176
- * These pointer events are removed in `afterTransition`.
177
- */
178
- enteringEl.style.setProperty('pointer-events', 'none');
179
- if (leavingEl) {
180
- setPageHidden(leavingEl, false);
181
- leavingEl.style.setProperty('pointer-events', 'none');
182
- }
183
- };
184
- const runTransition = async (opts) => {
185
- const animationBuilder = await getAnimationBuilder(opts);
186
- const ani = animationBuilder && Build.isBrowser ? animation(animationBuilder, opts) : noAnimation(opts); // fast path for no animation
187
- return ani;
188
- };
189
- const afterTransition = (opts) => {
190
- const enteringEl = opts.enteringEl;
191
- const leavingEl = opts.leavingEl;
192
- enteringEl.classList.remove('ion-page-invisible');
193
- enteringEl.style.removeProperty('pointer-events');
194
- if (leavingEl !== undefined) {
195
- leavingEl.classList.remove('ion-page-invisible');
196
- leavingEl.style.removeProperty('pointer-events');
197
- }
198
- focusController.setViewFocus(enteringEl);
199
- };
200
- const getAnimationBuilder = async (opts) => {
201
- if (!opts.leavingEl || !opts.animated || opts.duration === 0) {
202
- return undefined;
203
- }
204
- if (opts.animationBuilder) {
205
- return opts.animationBuilder;
206
- }
207
- const getAnimation = opts.mode === 'ios'
208
- ? (await iosTransitionAnimation()).iosTransitionAnimation
209
- : (await mdTransitionAnimation()).mdTransitionAnimation;
210
- return getAnimation;
211
- };
212
- const animation = async (animationBuilder, opts) => {
213
- await waitForReady(opts, true);
214
- const trans = animationBuilder(opts.baseEl, opts);
215
- fireWillEvents(opts.enteringEl, opts.leavingEl);
216
- const didComplete = await playTransition(trans, opts);
217
- if (opts.progressCallback) {
218
- opts.progressCallback(undefined);
219
- }
220
- if (didComplete) {
221
- fireDidEvents(opts.enteringEl, opts.leavingEl);
222
- }
223
- return {
224
- hasCompleted: didComplete,
225
- animation: trans,
226
- };
227
- };
228
- const noAnimation = async (opts) => {
229
- const enteringEl = opts.enteringEl;
230
- const leavingEl = opts.leavingEl;
231
- const focusManagerEnabled = config.get('focusManagerPriority', false);
232
- /**
233
- * If the focus manager is enabled then we need to wait for Ionic components to be
234
- * rendered otherwise the component to focus may not be focused because it is hidden.
235
- */
236
- await waitForReady(opts, focusManagerEnabled);
237
- fireWillEvents(enteringEl, leavingEl);
238
- fireDidEvents(enteringEl, leavingEl);
239
- return {
240
- hasCompleted: true,
241
- };
242
- };
243
- const waitForReady = async (opts, defaultDeep) => {
244
- const deep = opts.deepWait !== undefined ? opts.deepWait : defaultDeep;
245
- if (deep) {
246
- await Promise.all([deepReady(opts.enteringEl), deepReady(opts.leavingEl)]);
247
- }
248
- await notifyViewReady(opts.viewIsReady, opts.enteringEl);
249
- };
250
- const notifyViewReady = async (viewIsReady, enteringEl) => {
251
- if (viewIsReady) {
252
- await viewIsReady(enteringEl);
253
- }
254
- };
255
- const playTransition = (trans, opts) => {
256
- const progressCallback = opts.progressCallback;
257
- const promise = new Promise((resolve) => {
258
- trans.onFinish((currentStep) => resolve(currentStep === 1));
259
- });
260
- // cool, let's do this, start the transition
261
- if (progressCallback) {
262
- // this is a swipe to go back, just get the transition progress ready
263
- // kick off the swipe animation start
264
- trans.progressStart(true);
265
- progressCallback(trans);
266
- }
267
- else {
268
- // only the top level transition should actually start "play"
269
- // kick it off and let it play through
270
- // ******** DOM WRITE ****************
271
- trans.play();
272
- }
273
- // create a callback for when the animation is done
274
- return promise;
275
- };
276
- const fireWillEvents = (enteringEl, leavingEl) => {
277
- lifecycle(leavingEl, LIFECYCLE_WILL_LEAVE);
278
- lifecycle(enteringEl, LIFECYCLE_WILL_ENTER);
279
- };
280
- const fireDidEvents = (enteringEl, leavingEl) => {
281
- lifecycle(enteringEl, LIFECYCLE_DID_ENTER);
282
- lifecycle(leavingEl, LIFECYCLE_DID_LEAVE);
283
- };
284
- const lifecycle = (el, eventName) => {
285
- if (el) {
286
- const ev = new CustomEvent(eventName, {
287
- bubbles: false,
288
- cancelable: false,
289
- });
290
- el.dispatchEvent(ev);
291
- }
292
- };
293
- /**
294
- * Wait two request animation frame loops.
295
- * This allows the framework implementations enough time to mount
296
- * the user-defined contents. This is often needed when using inline
297
- * modals and popovers that accept user components. For popover,
298
- * the contents must be mounted for the popover to be sized correctly.
299
- * For modals, the contents must be mounted for iOS to run the
300
- * transition correctly.
301
- *
302
- * On Angular and React, a single raf is enough time, but for Vue
303
- * we need to wait two rafs. As a result we are using two rafs for
304
- * all frameworks to ensure contents are mounted.
305
- */
306
- const waitForMount = () => {
307
- return new Promise((resolve) => raf(() => raf(() => resolve())));
308
- };
309
- const deepReady = async (el) => {
310
- const element = el;
311
- if (element) {
312
- if (element.componentOnReady != null) {
313
- // eslint-disable-next-line custom-rules/no-component-on-ready-method
314
- const stencilEl = await element.componentOnReady();
315
- if (stencilEl != null) {
316
- return;
317
- }
318
- /**
319
- * Custom elements in Stencil will have __registerHost.
320
- */
321
- }
322
- else if (element.__registerHost != null) {
323
- /**
324
- * Non-lazy loaded custom elements need to wait
325
- * one frame for component to be loaded.
326
- */
327
- const waitForCustomElement = new Promise((resolve) => raf(resolve));
328
- await waitForCustomElement;
329
- return;
330
- }
331
- await Promise.all(Array.from(element.children).map(deepReady));
332
- }
333
- };
334
- const setPageHidden = (el, hidden) => {
335
- if (hidden) {
336
- el.setAttribute('aria-hidden', 'true');
337
- el.classList.add('ion-page-hidden');
338
- }
339
- else {
340
- el.hidden = false;
341
- el.removeAttribute('aria-hidden');
342
- el.classList.remove('ion-page-hidden');
343
- }
344
- };
345
- const setZIndex = (enteringEl, leavingEl, direction) => {
346
- if (enteringEl !== undefined) {
347
- enteringEl.style.zIndex = direction === 'back' ? '99' : '101';
348
- }
349
- if (leavingEl !== undefined) {
350
- leavingEl.style.zIndex = '100';
351
- }
352
- };
353
- /**
354
- * Add a class to ensure that the header (if any)
355
- * does not flicker during the transition. By adding the
356
- * transitioning class, we ensure that the header has
357
- * the necessary styles to prevent the following flickers:
358
- * 1. When entering a page with a condensed header, the
359
- * header should never be visible. However,
360
- * it briefly renders the background color while
361
- * the transition is occurring.
362
- * 2. When leaving a page with a condensed header, the
363
- * header has an opacity of 0 and the pages
364
- * have a z-index which causes the entering page to
365
- * briefly show it's content underneath the leaving page.
366
- * 3. When entering a page or leaving a page with a fade
367
- * header, the header should not have a background color.
368
- * However, it briefly shows the background color while
369
- * the transition is occurring.
370
- *
371
- * @param header The header element to modify.
372
- * @param isTransitioning Whether the transition is occurring.
373
- */
374
- const setHeaderTransitionClass = (header, isTransitioning) => {
375
- if (!header) {
376
- return;
377
- }
378
- const transitionClass = 'header-transitioning';
379
- if (isTransitioning) {
380
- header.classList.add(transitionClass);
381
- }
382
- else {
383
- header.classList.remove(transitionClass);
384
- }
385
- };
386
- const getIonPageElement = (element) => {
387
- if (element.classList.contains('ion-page')) {
388
- return element;
389
- }
390
- const ionPage = element.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs');
391
- if (ionPage) {
392
- return ionPage;
393
- }
394
- // idk, return the original element so at least something animates and we don't have a null pointer
395
- return element;
396
- };
397
- /**
398
- * Retrieves the ion-header element from a page based on the
399
- * direction of the transition.
400
- *
401
- * @param opts Options for the transition.
402
- * @returns The ion-header element or null if not found or not in 'ios' mode.
403
- */
404
- const getIosIonHeader = (opts) => {
405
- const enteringEl = opts.enteringEl;
406
- const leavingEl = opts.leavingEl;
407
- const direction = opts.direction;
408
- const mode = opts.mode;
409
- if (mode !== 'ios') {
410
- return null;
411
- }
412
- const element = direction === 'back' ? leavingEl : enteringEl;
413
- if (!element) {
414
- return null;
415
- }
416
- return element.querySelector('ion-header');
417
- };
418
-
419
- export { LIFECYCLE_WILL_ENTER as L, LIFECYCLE_DID_ENTER as a, LIFECYCLE_WILL_LEAVE as b, LIFECYCLE_DID_LEAVE as c, LIFECYCLE_WILL_UNLOAD as d, deepReady as e, getIonPageElement as g, lifecycle as l, setPageHidden as s, transition as t, waitForMount as w };
4
+ import{c as n,p as i}from"./index4.js";import{writeTask as e,Build as a}from"@stencil/core/internal/client";import{r as o}from"./helpers.js";const r="ionViewWillEnter",t="ionViewDidEnter",s="ionViewWillLeave",c="ionViewDidLeave",l="ionViewWillUnload",u=n=>{n.tabIndex=-1,n.focus()},d=n=>null!==n.offsetParent,f="ion-last-focus",m=i=>{if(n.get("focusManagerPriority",!1)){const n=document.activeElement;null!==n&&(null==i?void 0:i.contains(n))&&n.setAttribute(f,"true")}},p=e=>{const a=n.get("focusManagerPriority",!1);if(Array.isArray(a)&&!e.contains(document.activeElement)){const n=e.querySelector(`[${f}]`);if(n&&d(n))return void u(n);for(const n of a)switch(n){case"content":const a=e.querySelector('main, [role="main"]');if(a&&d(a))return void u(a);break;case"heading":const o=e.querySelector('h1, [role="heading"][aria-level="1"]');if(o&&d(o))return void u(o);break;case"banner":const r=e.querySelector('header, [role="banner"]');if(r&&d(r))return void u(r);break;default:i(`Unrecognized focus manager priority value ${n}`)}u(e)}},w=n=>new Promise(((i,a)=>{e((()=>{const e=$(n);v(n,e),b(n).then((e=>{e.animation&&e.animation.destroy(),g(n),i(e)}),(i=>{g(n),a(i)})).finally((()=>{D(e,!1)}))}))})),v=(n,i)=>{const e=n.enteringEl,a=n.leavingEl;m(a),A(e,a,n.direction),D(i,!0),n.showGoBack?e.classList.add("can-go-back"):e.classList.remove("can-go-back"),x(e,!1),e.style.setProperty("pointer-events","none"),a&&(x(a,!1),a.style.setProperty("pointer-events","none"))},b=async n=>{const i=await h(n);return i&&a.isBrowser?y(i,n):P(n)},g=n=>{const i=n.enteringEl,e=n.leavingEl;i.classList.remove("ion-page-invisible"),i.style.removeProperty("pointer-events"),void 0!==e&&(e.classList.remove("ion-page-invisible"),e.style.removeProperty("pointer-events")),p(i)},h=async n=>{if(n.leavingEl&&n.animated&&0!==n.duration)return n.animationBuilder?n.animationBuilder:"ios"===n.mode?(await import("./ios.transition.js")).iosTransitionAnimation:(await import("./md.transition.js")).mdTransitionAnimation},y=async(n,i)=>{await k(i,!0);const e=n(i.baseEl,i);C(i.enteringEl,i.leavingEl);const a=await j(e,i);return i.progressCallback&&i.progressCallback(void 0),a&&E(i.enteringEl,i.leavingEl),{hasCompleted:a,animation:e}},P=async i=>{const e=i.enteringEl,a=i.leavingEl,o=n.get("focusManagerPriority",!1);return await k(i,o),C(e,a),E(e,a),{hasCompleted:!0}},k=async(n,i)=>{(void 0!==n.deepWait?n.deepWait:i)&&await Promise.all([W(n.enteringEl),W(n.leavingEl)]),await V(n.viewIsReady,n.enteringEl)},V=async(n,i)=>{n&&await n(i)},j=(n,i)=>{const e=i.progressCallback,a=new Promise((i=>{n.onFinish((n=>i(1===n)))}));return e?(n.progressStart(!0),e(n)):n.play(),a},C=(n,i)=>{L(i,s),L(n,r)},E=(n,i)=>{L(n,t),L(i,c)},L=(n,i)=>{if(n){const e=new CustomEvent(i,{bubbles:!1,cancelable:!1});n.dispatchEvent(e)}},M=()=>new Promise((n=>o((()=>o((()=>n())))))),W=async n=>{const i=n;if(i){if(null!=i.componentOnReady){if(null!=await i.componentOnReady())return}else if(null!=i.__registerHost){const n=new Promise((n=>o(n)));return void await n}await Promise.all(Array.from(i.children).map(W))}},x=(n,i)=>{i?(n.setAttribute("aria-hidden","true"),n.classList.add("ion-page-hidden")):(n.hidden=!1,n.removeAttribute("aria-hidden"),n.classList.remove("ion-page-hidden"))},A=(n,i,e)=>{void 0!==n&&(n.style.zIndex="back"===e?"99":"101"),void 0!==i&&(i.style.zIndex="100")},D=(n,i)=>{if(!n)return;const e="header-transitioning";i?n.classList.add(e):n.classList.remove(e)},U=n=>{if(n.classList.contains("ion-page"))return n;return n.querySelector(":scope > .ion-page, :scope > ion-nav, :scope > ion-tabs")||n},$=n=>{if("ios"!==n.mode)return null;const i="back"===n.direction?n.leavingEl:n.enteringEl;return i?i.querySelector("ion-header"):null};export{r as L,t as a,s as b,c,l as d,W as e,U as g,L as l,x as s,w as t,M as w}