voyager-ionic-core 8.8.8 → 8.8.12

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 (423) 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-legacy-column.js +1 -1
  59. package/components/ion-picker-legacy.js +1 -1
  60. package/components/ion-picker.js +1 -1
  61. package/components/ion-popover.js +1 -1
  62. package/components/ion-progress-bar.js +1 -1
  63. package/components/ion-radio-group.js +1 -1
  64. package/components/ion-radio.js +1 -1
  65. package/components/ion-range.js +1 -1
  66. package/components/ion-refresher-content.js +1 -1
  67. package/components/ion-refresher.js +1 -1
  68. package/components/ion-reorder-group.js +1 -1
  69. package/components/ion-reorder.js +1 -1
  70. package/components/ion-ripple-effect.js +1 -1
  71. package/components/ion-route-redirect.js +1 -1
  72. package/components/ion-route.js +1 -1
  73. package/components/ion-router-link.js +1 -1
  74. package/components/ion-router-outlet.js +1 -1
  75. package/components/ion-router.js +1 -1
  76. package/components/ion-row.js +1 -1
  77. package/components/ion-searchbar.js +1 -1
  78. package/components/ion-segment-button.js +1 -1
  79. package/components/ion-segment-content.js +1 -1
  80. package/components/ion-segment-view.js +1 -1
  81. package/components/ion-segment.js +1 -1
  82. package/components/ion-select-modal.js +1 -1
  83. package/components/ion-select-option.js +1 -1
  84. package/components/ion-select-popover.js +1 -1
  85. package/components/ion-select.js +1 -1
  86. package/components/ion-skeleton-text.js +1 -1
  87. package/components/ion-spinner.js +1 -1
  88. package/components/ion-split-pane.js +1 -1
  89. package/components/ion-tab-bar.js +1 -1
  90. package/components/ion-tab-button.js +1 -1
  91. package/components/ion-tab.js +1 -1
  92. package/components/ion-tabs.js +1 -1
  93. package/components/ion-text.js +1 -1
  94. package/components/ion-textarea.js +1 -1
  95. package/components/ion-thumbnail.js +1 -1
  96. package/components/ion-title.js +1 -1
  97. package/components/ion-toast.js +1 -1
  98. package/components/ion-toggle.js +1 -1
  99. package/components/ion-toolbar.js +1 -1
  100. package/components/{p-CoA-aqGF.js → p--JUspHvy.js} +1 -1
  101. package/components/{p-DHsZWn1l.js → p-0NRupjzW.js} +1 -1
  102. package/components/{p-BSB38Tek.js → p-5bE_Wz4Y.js} +1 -1
  103. package/components/{p-kvaDs24J.js → p-B60hm8Qv.js} +1 -1
  104. package/components/{p-B6FQ0cKR.js → p-B9jFTlwE.js} +1 -1
  105. package/{dist/ionic/p-BvFYtOdE.js → components/p-BAYYcg3o.js} +1 -1
  106. package/components/{p-DJMZehmW.js → p-BLmJ0zRm.js} +1 -1
  107. package/components/{p-Cyxa_4PV.js → p-BSEgsdFI.js} +1 -1
  108. package/components/{p-B6HaBl3o.js → p-BTPfOxsU.js} +1 -1
  109. package/{dist/ionic/p-DjriolRs.js → components/p-BT_5jSqG.js} +1 -1
  110. package/components/{p-DgbT0exM.js → p-Baq1XyAy.js} +1 -1
  111. package/components/{p-BYDc3hSE.js → p-BirPFsRD.js} +1 -1
  112. package/components/{p-FBcnjE5W.js → p-BjfgFSSR.js} +1 -1
  113. package/components/p-BjoEPDW5.js +4 -0
  114. package/{dist/ionic/p-DLbbmF9h.js → components/p-BnqQlm7c.js} +1 -1
  115. package/components/{p-BxwWvu-b.js → p-BsPelv04.js} +1 -1
  116. package/components/{p-DZhbcvo5.js → p-Bth-EzJ0.js} +1 -1
  117. package/components/{p-vEbVo2hO.js → p-Bz0dSlXZ.js} +1 -1
  118. package/components/{p-CBzELu-H.js → p-C1aScSTo.js} +1 -1
  119. package/components/{p-BTeL5HCK.js → p-C2lKgrXx.js} +1 -1
  120. package/components/{p-BgwEQWW6.js → p-C4t5ymfq.js} +1 -1
  121. package/components/p-CHqRYvYm.js +4 -0
  122. package/components/{p-Q1-Xy3As.js → p-CI3ncNZm.js} +1 -1
  123. package/components/{p-DYdpXONG.js → p-CSZf8_j0.js} +1 -1
  124. package/components/p-CU5rbWAW.js +4 -0
  125. package/components/p-C_xFdyXe.js +4 -0
  126. package/components/{p-CgfaEEem.js → p-Cfx4M1Bn.js} +1 -1
  127. package/{dist/ionic/p-C0JvVFMv.js → components/p-Ciz1-FuE.js} +1 -1
  128. package/components/p-CmR5uXej.js +4 -0
  129. package/components/p-CtukzcyX.js +4 -0
  130. package/components/{p-CEmXdzGo.js → p-D5Ubpm7D.js} +1 -1
  131. package/components/p-D7bSXQD3.js +4 -0
  132. package/components/{p-Cf6Z1pmL.js → p-DDWp95gH.js} +1 -1
  133. package/components/p-DIE4pXMl.js +4 -0
  134. package/components/p-DNQI6d-L.js +4 -0
  135. package/components/{p-CDfQnFrd.js → p-DOFCbuQR.js} +1 -1
  136. package/components/{p-BR3tZJmu.js → p-DnL1c9_X.js} +1 -1
  137. package/components/{p-YLXPWgVj.js → p-DqLB8yFQ.js} +1 -1
  138. package/components/{p-BagjAGC0.js → p-DqZAXv2t.js} +1 -1
  139. package/components/p-W5nO8mX_.js +4 -0
  140. package/components/{p-Cq8cQ0NL.js → p-W9CZ2mWX.js} +1 -1
  141. package/components/p-XlSIJDJ-.js +4 -0
  142. package/components/{p-ZuZOauwD.js → p-dhLYXa7A.js} +1 -1
  143. package/components/p-ijF0iCrA.js +4 -0
  144. package/components/{p-B8b1Ukl9.js → p-j5IxBIan.js} +1 -1
  145. package/components/{p-BUbsoBOV.js → p-k_E4tX5Z.js} +1 -1
  146. package/components/{p-DvOO1fxp.js → p-lE_JGpHD.js} +1 -1
  147. package/components/{p-D-cP12ZN.js → p-nQi4oKcG.js} +1 -1
  148. package/components/{p-fpbh6w3f.js → p-rCa2eL0j.js} +1 -1
  149. package/components/{p-SBseW5KJ.js → p-ryqmO0B-.js} +1 -1
  150. package/dist/cjs/{animation-Dg4yiuR2.js → animation-BJq0kcy2.js} +1 -1
  151. package/dist/cjs/{app-globals-CLI8xCmk.js → app-globals-BlqrqKTN.js} +1 -1
  152. package/dist/cjs/{button-active-FscMI17-.js → button-active-0mPOKmV2.js} +1 -1
  153. package/dist/cjs/{config-BukYi_pW.js → config-xninhj0J.js} +1 -1
  154. package/dist/cjs/{data-BYlBjkMU.js → data-DLTUw-KF.js} +1 -1
  155. package/dist/cjs/{framework-delegate-CRgp8o_p.js → framework-delegate-BtICZDHr.js} +1 -1
  156. package/dist/cjs/{hardware-back-button-C4rMJ5uI.js → hardware-back-button-iUuF_76h.js} +1 -1
  157. package/dist/cjs/{helpers-CxTYJdbT.js → helpers-Cv23MFHM.js} +1 -1
  158. package/dist/cjs/{index-C845Ti6K.js → index-BERfRao3.js} +4 -4
  159. package/dist/cjs/{index-MbaBbWXk.js → index-CIrkNXqJ.js} +2 -2
  160. package/dist/cjs/{index-CqT-2gKy.js → index-Ct7gcRif.js} +67 -23
  161. package/dist/cjs/{index-YcSftOMz.js → index-D81eLYUM.js} +2 -2
  162. package/dist/cjs/{index-CFUwM5x_.js → index-aC4x3Fk3.js} +5 -5
  163. package/dist/cjs/index.cjs.js +12 -12
  164. package/dist/cjs/{input-shims-CPL2J8F-.js → input-shims-CFLg7uzj.js} +3 -3
  165. package/dist/cjs/{input.utils-DmeJ8dmo.js → input.utils-DetjmtH2.js} +2 -2
  166. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  167. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  168. package/dist/cjs/ion-alert.cjs.entry.js +9 -9
  169. package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
  170. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  171. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  172. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  173. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  174. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  175. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  176. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
  177. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  178. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  179. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  180. package/dist/cjs/ion-datetime_3.cjs.entry.js +9 -9
  181. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  182. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  183. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  184. package/dist/cjs/ion-input-otp.cjs.entry.js +6 -6
  185. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  186. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  187. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  188. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  189. package/dist/cjs/ion-loading.cjs.entry.js +8 -8
  190. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  191. package/dist/cjs/ion-modal.cjs.entry.js +16 -13
  192. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  193. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
  194. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  195. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  196. package/dist/cjs/ion-popover.cjs.entry.js +8 -8
  197. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  198. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  199. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  200. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  201. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
  202. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  203. package/dist/cjs/ion-route_4.cjs.entry.js +187 -21
  204. package/dist/cjs/ion-searchbar.cjs.entry.js +29 -8
  205. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  206. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  207. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  208. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  209. package/dist/cjs/ion-select_3.cjs.entry.js +7 -7
  210. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  211. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  212. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  213. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  214. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  215. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  216. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  217. package/dist/cjs/ion-toggle.cjs.entry.js +5 -5
  218. package/dist/cjs/{ionic-global-Bc3kJi1Z.js → ionic-global-B-cA6LkY.js} +1 -1
  219. package/dist/cjs/ionic.cjs.js +5 -5
  220. package/dist/cjs/{ios.transition-trBiC95R.js → ios.transition-BOSWOaiK.js} +4 -4
  221. package/dist/cjs/loader.cjs.js +4 -4
  222. package/dist/cjs/{md.transition-CUQECuvD.js → md.transition-B8-wBZqt.js} +4 -4
  223. package/dist/cjs/{notch-controller-sD-lTpdc.js → notch-controller-18PzRGXd.js} +1 -1
  224. package/dist/cjs/{overlays-C2jiBSNQ.js → overlays-TbKsuC-K.js} +5 -5
  225. package/dist/cjs/{status-tap-CCJk5VgT.js → status-tap-BXX8H8_Y.js} +3 -3
  226. package/dist/cjs/{swipe-back-CCpyQb6R.js → swipe-back-CCMaNiP2.js} +2 -2
  227. package/dist/collection/collection-manifest.json +2 -1
  228. package/dist/collection/components/input-otp/input-otp.js +3 -3
  229. package/dist/collection/components/modal/modal.js +7 -4
  230. package/dist/collection/components/picker-column-option/picker-column-option.md.css +13 -1
  231. package/dist/collection/components/router/router.js +55 -14
  232. package/dist/collection/components/router/utils/dom.js +114 -1
  233. package/dist/collection/components/router/utils/path.js +17 -5
  234. package/dist/collection/components/searchbar/searchbar.js +26 -5
  235. package/dist/collection/components/split-pane/split-pane.js +1 -1
  236. package/dist/docs.json +4 -4
  237. package/dist/esm/{animation-CnGMT4ji.js → animation-DLJpuoEz.js} +1 -1
  238. package/dist/esm/{app-globals-DhZjtldk.js → app-globals-D0C5S4hU.js} +1 -1
  239. package/dist/esm/{button-active-BBx21brx.js → button-active-BSpTQmS9.js} +1 -1
  240. package/dist/esm/{config-TO1rZH52.js → config-DQCONYYp.js} +1 -1
  241. package/dist/esm/{data-B9iGR5YO.js → data-DZI70dKr.js} +1 -1
  242. package/dist/esm/{framework-delegate-CyxE1S_P.js → framework-delegate-FnPGymXL.js} +1 -1
  243. package/dist/esm/{hardware-back-button-CTe4XmL7.js → hardware-back-button-B93Gru0Y.js} +1 -1
  244. package/dist/esm/{helpers-Tl8jw6S2.js → helpers-HEqiOzXb.js} +1 -1
  245. package/dist/esm/{index-BtUdxPjv.js → index-BRHzoo00.js} +2 -2
  246. package/dist/esm/{index-B-hkiOUh.js → index-B_dQk_WE.js} +4 -4
  247. package/dist/esm/{index-hW6eNZ3o.js → index-MEDq2S8l.js} +2 -2
  248. package/dist/esm/{index-B2KwgBLx.js → index-Q6UPU0Ay.js} +5 -5
  249. package/dist/esm/{index-IGIE5vDm.js → index-tcQvqkiX.js} +67 -23
  250. package/dist/esm/index.js +12 -12
  251. package/dist/esm/{input-shims-DbrgeeNb.js → input-shims-D10mwcw1.js} +3 -3
  252. package/dist/esm/{input.utils-Bxa_DQ7-.js → input.utils-Y6NgW8bw.js} +2 -2
  253. package/dist/esm/ion-accordion_2.entry.js +3 -3
  254. package/dist/esm/ion-action-sheet.entry.js +8 -8
  255. package/dist/esm/ion-alert.entry.js +9 -9
  256. package/dist/esm/ion-app_8.entry.js +12 -12
  257. package/dist/esm/ion-avatar_3.entry.js +2 -2
  258. package/dist/esm/ion-back-button.entry.js +3 -3
  259. package/dist/esm/ion-backdrop.entry.js +2 -2
  260. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  261. package/dist/esm/ion-button_2.entry.js +3 -3
  262. package/dist/esm/ion-card_5.entry.js +3 -3
  263. package/dist/esm/ion-checkbox.entry.js +3 -3
  264. package/dist/esm/ion-chip.entry.js +2 -2
  265. package/dist/esm/ion-col_3.entry.js +2 -2
  266. package/dist/esm/ion-datetime-button.entry.js +4 -4
  267. package/dist/esm/ion-datetime_3.entry.js +9 -9
  268. package/dist/esm/ion-fab_3.entry.js +3 -3
  269. package/dist/esm/ion-img.entry.js +3 -3
  270. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  271. package/dist/esm/ion-input-otp.entry.js +6 -6
  272. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  273. package/dist/esm/ion-input.entry.js +5 -5
  274. package/dist/esm/ion-item-option_3.entry.js +4 -4
  275. package/dist/esm/ion-item_8.entry.js +3 -3
  276. package/dist/esm/ion-loading.entry.js +8 -8
  277. package/dist/esm/ion-menu_3.entry.js +8 -8
  278. package/dist/esm/ion-modal.entry.js +16 -13
  279. package/dist/esm/ion-nav_2.entry.js +6 -6
  280. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  281. package/dist/esm/ion-picker-column.entry.js +3 -3
  282. package/dist/esm/ion-picker.entry.js +2 -2
  283. package/dist/esm/ion-popover.entry.js +8 -8
  284. package/dist/esm/ion-progress-bar.entry.js +3 -3
  285. package/dist/esm/ion-radio_2.entry.js +3 -3
  286. package/dist/esm/ion-range.entry.js +4 -4
  287. package/dist/esm/ion-refresher_2.entry.js +6 -6
  288. package/dist/esm/ion-reorder_2.entry.js +5 -5
  289. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  290. package/dist/esm/ion-route_4.entry.js +187 -21
  291. package/dist/esm/ion-searchbar.entry.js +29 -8
  292. package/dist/esm/ion-segment-content.entry.js +1 -1
  293. package/dist/esm/ion-segment-view.entry.js +1 -1
  294. package/dist/esm/ion-segment_2.entry.js +3 -3
  295. package/dist/esm/ion-select-modal.entry.js +6 -6
  296. package/dist/esm/ion-select_3.entry.js +7 -7
  297. package/dist/esm/ion-spinner.entry.js +2 -2
  298. package/dist/esm/ion-split-pane.entry.js +2 -2
  299. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  300. package/dist/esm/ion-tab_2.entry.js +3 -3
  301. package/dist/esm/ion-text.entry.js +2 -2
  302. package/dist/esm/ion-textarea.entry.js +5 -5
  303. package/dist/esm/ion-toast.entry.js +9 -9
  304. package/dist/esm/ion-toggle.entry.js +5 -5
  305. package/dist/esm/{ionic-global-DfbeLwcV.js → ionic-global-Cp_eT4sZ.js} +1 -1
  306. package/dist/esm/ionic.js +6 -6
  307. package/dist/esm/{ios.transition--aMF-pDH.js → ios.transition-ClFrsIrS.js} +4 -4
  308. package/dist/esm/loader.js +5 -5
  309. package/dist/esm/{md.transition-BEVbfm8j.js → md.transition-D0msQmzI.js} +4 -4
  310. package/dist/esm/{notch-controller-DAcvKU57.js → notch-controller-DKDjU_O7.js} +1 -1
  311. package/dist/esm/{overlays-F8GHPo-e.js → overlays-TbiM4mdr.js} +5 -5
  312. package/dist/esm/{status-tap-BfJqFSLF.js → status-tap-Kan2W7sh.js} +3 -3
  313. package/dist/esm/{swipe-back-D6Ce7Ca3.js → swipe-back-ZUWwA-KF.js} +2 -2
  314. package/dist/ionic/index.esm.js +1 -1
  315. package/dist/ionic/ionic.esm.js +1 -1
  316. package/dist/ionic/{p-f3e7b155.entry.js → p-00dbb17e.entry.js} +1 -1
  317. package/dist/ionic/{p-f2deaceb.entry.js → p-01f81ea5.entry.js} +1 -1
  318. package/dist/ionic/{p-078037da.entry.js → p-06c232a4.entry.js} +1 -1
  319. package/dist/ionic/{p-1ca9c36b.entry.js → p-0d005398.entry.js} +1 -1
  320. package/dist/ionic/{p-b325a113.entry.js → p-0fa9c382.entry.js} +1 -1
  321. package/dist/ionic/{p-6b97f2a3.entry.js → p-1ae21e4c.entry.js} +1 -1
  322. package/dist/ionic/{p-a805674e.entry.js → p-20b1a044.entry.js} +1 -1
  323. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  324. package/dist/ionic/{p-164f79c4.entry.js → p-2394a9a6.entry.js} +1 -1
  325. package/dist/ionic/{p-6b701daa.entry.js → p-27d30585.entry.js} +1 -1
  326. package/dist/ionic/{p-f8186550.entry.js → p-2bb2cb18.entry.js} +1 -1
  327. package/dist/ionic/{p-8fda6a62.entry.js → p-2f55dc1a.entry.js} +1 -1
  328. package/dist/ionic/p-30bf9737.entry.js +4 -0
  329. package/dist/ionic/{p-031b76f7.entry.js → p-3353c229.entry.js} +1 -1
  330. package/dist/ionic/p-33704f20.entry.js +4 -0
  331. package/dist/ionic/{p-e863ffe8.entry.js → p-37e720da.entry.js} +1 -1
  332. package/dist/ionic/{p-d4e8b473.entry.js → p-390ca786.entry.js} +1 -1
  333. package/dist/ionic/{p-084c25b2.entry.js → p-3a126bca.entry.js} +1 -1
  334. package/dist/ionic/{p-7761ef65.entry.js → p-3a541154.entry.js} +1 -1
  335. package/dist/ionic/{p-2a68388b.entry.js → p-3a7d1e91.entry.js} +1 -1
  336. package/dist/ionic/{p-a893c61c.entry.js → p-3ae5f277.entry.js} +1 -1
  337. package/dist/ionic/{p-87125490.entry.js → p-4745f534.entry.js} +1 -1
  338. package/dist/ionic/{p-294f4bb5.entry.js → p-4858af1f.entry.js} +1 -1
  339. package/dist/ionic/{p-53f750a5.entry.js → p-4baa5b82.entry.js} +1 -1
  340. package/dist/ionic/{p-7ca71c83.entry.js → p-4dc1c33c.entry.js} +1 -1
  341. package/dist/ionic/{p-e663bc5a.entry.js → p-4e92a11f.entry.js} +1 -1
  342. package/dist/ionic/{p-6af16209.entry.js → p-50e1194a.entry.js} +1 -1
  343. package/dist/ionic/{p-c3cce9d8.entry.js → p-5d1da0a2.entry.js} +1 -1
  344. package/dist/ionic/{p-a84f2d21.entry.js → p-75dc25ba.entry.js} +1 -1
  345. package/dist/ionic/{p-f5dfb9a3.entry.js → p-81ea5652.entry.js} +1 -1
  346. package/dist/ionic/{p-1b169fb6.entry.js → p-84d5ce05.entry.js} +1 -1
  347. package/dist/ionic/{p-2fd110aa.entry.js → p-874b4bd8.entry.js} +1 -1
  348. package/dist/ionic/{p-23ec35e4.entry.js → p-8c8eee7d.entry.js} +1 -1
  349. package/dist/ionic/{p-301c43f8.entry.js → p-8eb8ee76.entry.js} +1 -1
  350. package/dist/ionic/p-8fce95d5.entry.js +4 -0
  351. package/dist/ionic/{p-7620be24.entry.js → p-94f2a736.entry.js} +1 -1
  352. package/dist/ionic/{p-aa812c4b.entry.js → p-9a65ac7f.entry.js} +1 -1
  353. package/dist/ionic/{p-bcaa827e.entry.js → p-9f1103ce.entry.js} +1 -1
  354. package/dist/ionic/{p-BAt5H1ac.js → p-BGqMS-oh.js} +1 -1
  355. package/dist/ionic/{p-DB_iPQC-.js → p-BUFIpxKM.js} +1 -1
  356. package/dist/ionic/{p-CmFz1Mjc.js → p-CFlfIb2g.js} +1 -1
  357. package/dist/ionic/p-CwdymDLH.js +4 -0
  358. package/dist/ionic/p-Cx3IXROA.js +4 -0
  359. package/{components/p-BS1TtEiJ.js → dist/ionic/p-DAAFkPFT.js} +1 -1
  360. package/{components/p-ak_d-z48.js → dist/ionic/p-DC3RagnA.js} +1 -1
  361. package/dist/ionic/{p-CGmVTdWh.js → p-DIuEbVLu.js} +1 -1
  362. package/dist/ionic/p-DSG2s2Eb.js +4 -0
  363. package/dist/ionic/{p-DcSNwXfb.js → p-Dfbt-q2k.js} +1 -1
  364. package/dist/ionic/p-DoJvtrbw.js +4 -0
  365. package/dist/ionic/{p-gbVXD275.js → p-DzWaWHGc.js} +1 -1
  366. package/{components/p-D6NJwNJN.js → dist/ionic/p-KjNvRoEp.js} +1 -1
  367. package/dist/ionic/{p-NFFyoJ4Q.js → p-Nqf6uvGh.js} +1 -1
  368. package/dist/ionic/p-SNAkTDfm.js +4 -0
  369. package/{components/p-9VcRUwdB.js → dist/ionic/p-VAemlbDS.js} +1 -1
  370. package/dist/ionic/{p-B8xlpH8p.js → p-Wk5HzclC.js} +1 -1
  371. package/dist/ionic/{p-9cbc6f1f.entry.js → p-a21add2f.entry.js} +1 -1
  372. package/dist/ionic/{p-370a60ee.entry.js → p-a3bdcae6.entry.js} +1 -1
  373. package/dist/ionic/{p-28a9e720.entry.js → p-aa5d6b8f.entry.js} +1 -1
  374. package/dist/ionic/{p-045a6a42.entry.js → p-c0fb8edd.entry.js} +1 -1
  375. package/dist/ionic/{p-80cac7a2.entry.js → p-c4d8641b.entry.js} +1 -1
  376. package/dist/ionic/{p-9833cf63.entry.js → p-c6e49f3f.entry.js} +1 -1
  377. package/dist/ionic/{p-ca31010f.entry.js → p-dfa8d673.entry.js} +1 -1
  378. package/dist/ionic/{p-0d8b5c38.entry.js → p-e0be05c5.entry.js} +1 -1
  379. package/dist/ionic/{p-f69a5f71.entry.js → p-e847a888.entry.js} +1 -1
  380. package/dist/ionic/{p-16813ce7.entry.js → p-ec090e0a.entry.js} +1 -1
  381. package/dist/ionic/{p-07506134.entry.js → p-ef4c3bee.entry.js} +1 -1
  382. package/dist/ionic/{p-fdbc90d4.entry.js → p-fabcce6c.entry.js} +1 -1
  383. package/dist/ionic/{p-050873ec.entry.js → p-facfde02.entry.js} +1 -1
  384. package/dist/ionic/{p-9a851035.entry.js → p-fd7eebc4.entry.js} +1 -1
  385. package/dist/ionic/p-mjKAFv89.js +4 -0
  386. package/dist/ionic/p-tcQvqkiX.js +5 -0
  387. package/{components/p-Cy5XSfIk.js → dist/ionic/p-viFHDgRs.js} +1 -1
  388. package/dist/ionic/{p-DTPR1Wpn.js → p-xOfi7-Zn.js} +1 -1
  389. package/dist/ionic/p-xWb6fgfq.js +4 -0
  390. package/dist/types/components/router/router.d.ts +7 -0
  391. package/dist/types/components/router/utils/dom.d.ts +10 -0
  392. package/dist/types/components/router/utils/interface.d.ts +2 -0
  393. package/dist/types/components/router/utils/path.d.ts +3 -2
  394. package/dist/types/components/searchbar/searchbar.d.ts +1 -0
  395. package/dist/types/components.d.ts +2 -2
  396. package/dist/types/stencil-public-runtime.d.ts +4 -1
  397. package/hydrate/index.js +1092 -428
  398. package/hydrate/index.mjs +1092 -428
  399. package/package.json +4 -4
  400. package/components/p-BJoMtgfR.js +0 -4
  401. package/components/p-BNAG-aVv.js +0 -4
  402. package/components/p-BeXMwcl5.js +0 -4
  403. package/components/p-BegtE7nr.js +0 -4
  404. package/components/p-C4jPsTQa.js +0 -4
  405. package/components/p-C59ryAuS.js +0 -4
  406. package/components/p-CU1SSH8_.js +0 -4
  407. package/components/p-CgqKJg96.js +0 -4
  408. package/components/p-CneGxKsZ.js +0 -4
  409. package/components/p-Csw8xuz4.js +0 -4
  410. package/components/p-DVJHuxRx.js +0 -4
  411. package/dist/ionic/p-23fac490.entry.js +0 -4
  412. package/dist/ionic/p-2f5a8140.entry.js +0 -4
  413. package/dist/ionic/p-771b27a5.entry.js +0 -4
  414. package/dist/ionic/p-BW_TRJm8.js +0 -4
  415. package/dist/ionic/p-Bum7H1fw.js +0 -4
  416. package/dist/ionic/p-BxIcPWoV.js +0 -4
  417. package/dist/ionic/p-CYbRmDdy.js +0 -4
  418. package/dist/ionic/p-CtA-yJYy.js +0 -4
  419. package/dist/ionic/p-Dt1wGZdq.js +0 -4
  420. package/dist/ionic/p-DtVZDHlS.js +0 -4
  421. package/dist/ionic/p-IGIE5vDm.js +0 -5
  422. package/dist/ionic/p-cbe95f72.entry.js +0 -4
  423. package/dist/ionic/p-hNN3VvaC.js +0 -4
@@ -3,10 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var helpers = require('./helpers-CxTYJdbT.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var helpers = require('./helpers-Cv23MFHM.js');
8
+ var index$1 = require('./index-CIrkNXqJ.js');
8
9
  var theme = require('./theme-CeDs6Hcv.js');
9
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
10
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
10
11
 
11
12
  const Route = class {
12
13
  constructor(hostRef) {
@@ -86,7 +87,7 @@ const generatePath = (segments) => {
86
87
  const path = segments.filter((s) => s.length > 0).join('/');
87
88
  return '/' + path;
88
89
  };
89
- const generateUrl = (segments, useHash, queryString) => {
90
+ const generateUrl = (segments, useHash, queryString, fragment) => {
90
91
  let url = generatePath(segments);
91
92
  if (useHash) {
92
93
  url = '#' + url;
@@ -94,10 +95,13 @@ const generateUrl = (segments, useHash, queryString) => {
94
95
  if (queryString !== undefined) {
95
96
  url += '?' + queryString;
96
97
  }
98
+ if (fragment !== undefined) {
99
+ url += '#' + fragment;
100
+ }
97
101
  return url;
98
102
  };
99
- const writeSegments = (history, root, useHash, segments, direction, state, queryString) => {
100
- const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString);
103
+ const writeSegments = (history, root, useHash, segments, direction, state, queryString, fragment) => {
104
+ const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString, fragment);
101
105
  if (direction === ROUTER_INTENT_FORWARD) {
102
106
  history.pushState(state, '', url);
103
107
  }
@@ -164,12 +168,21 @@ const readSegments = (loc, root, useHash) => {
164
168
  /**
165
169
  * Parses the path to:
166
170
  * - segments an array of '/' separated parts,
167
- * - queryString (undefined when no query string).
171
+ * - queryString (undefined when no query string),
172
+ * - fragment (undefined when no `#`).
168
173
  */
169
174
  const parsePath = (path) => {
170
175
  let segments = [''];
171
176
  let queryString;
177
+ let fragment;
172
178
  if (path != null) {
179
+ // The fragment ("#") starts a section that runs to the end of the URL.
180
+ // Anything inside it (including "?") is part of the fragment per RFC 3986.
181
+ const fragStart = path.indexOf('#');
182
+ if (fragStart > -1) {
183
+ fragment = path.substring(fragStart + 1);
184
+ path = path.substring(0, fragStart);
185
+ }
173
186
  const qsStart = path.indexOf('?');
174
187
  if (qsStart > -1) {
175
188
  queryString = path.substring(qsStart + 1);
@@ -183,7 +196,7 @@ const parsePath = (path) => {
183
196
  segments = [''];
184
197
  }
185
198
  }
186
- return { segments, queryString };
199
+ return { segments, queryString, fragment };
187
200
  };
188
201
 
189
202
  const printRoutes = (routes) => {
@@ -268,6 +281,118 @@ const readNavState = async (root) => {
268
281
  }
269
282
  return { ids, outlet };
270
283
  };
284
+ /** Max animation frames `scrollToFragment` polls while waiting for the target to mount. */
285
+ const FRAGMENT_POLL_FRAMES = 30;
286
+ /** Duration (ms) of the smooth-scroll animation that lands on the fragment target. */
287
+ const FRAGMENT_SCROLL_DURATION = 300;
288
+ const nextFrame = () => new Promise((resolve) => helpers.raf(() => resolve()));
289
+ /**
290
+ * Returns true when `el` lives inside an active `.ion-page`. `ion-page-hidden`
291
+ * marks nav back-stack entries; `tab-hidden` marks inactive `ion-tab` elements.
292
+ * Either class on the page's ancestor chain disqualifies it. When no `.ion-page`
293
+ * exists in the document at all (non-router pages), the candidate is accepted
294
+ * so plain anchors still work.
295
+ */
296
+ const isInActivePage = (el) => {
297
+ const page = el.closest('.ion-page');
298
+ if (page === null) {
299
+ return document.querySelector('.ion-page') === null;
300
+ }
301
+ return page.closest('.ion-page-hidden, .tab-hidden') === null;
302
+ };
303
+ /**
304
+ * Polls across animation frames for an element matching `fragment` that lives
305
+ * in the active page. Scoping by "last `.ion-page:not(.ion-page-hidden)`" is
306
+ * unreliable: inactive `ion-tab` siblings carry `.ion-page` (gated by
307
+ * `.tab-hidden`, not `.ion-page-hidden`) and can be ordered after the leaf.
308
+ * Instead, locate candidates globally and walk them from last to first,
309
+ * accepting the deepest one whose `.ion-page` ancestor is not hidden. The
310
+ * last-to-first order preserves leaf-most preference for nested outlets.
311
+ */
312
+ const findFragmentTarget = async (fragment, shouldContinue) => {
313
+ // CSS.escape is unavailable on very old WebViews; the fallback path uses
314
+ // `getElementById` and drops the legacy `<a name>` branch.
315
+ const canEscape = typeof CSS !== 'undefined' && typeof CSS.escape === 'function';
316
+ const escaped = canEscape ? CSS.escape(fragment) : null;
317
+ for (let i = 0; i < FRAGMENT_POLL_FRAMES; i++) {
318
+ if (!shouldContinue())
319
+ return null;
320
+ let candidates = [];
321
+ if (escaped !== null) {
322
+ try {
323
+ candidates = [...document.querySelectorAll(`#${escaped}, a[name="${escaped}"]`)];
324
+ }
325
+ catch (_a) {
326
+ candidates = [...document.querySelectorAll(`#${escaped}`)];
327
+ }
328
+ }
329
+ else {
330
+ const byId = document.getElementById(fragment);
331
+ if (byId !== null)
332
+ candidates = [byId];
333
+ }
334
+ for (let j = candidates.length - 1; j >= 0; j--) {
335
+ if (isInActivePage(candidates[j])) {
336
+ return candidates[j];
337
+ }
338
+ }
339
+ await nextFrame();
340
+ }
341
+ return null;
342
+ };
343
+ /**
344
+ * Scrolls to the element whose id matches `fragment`, falling back to a legacy
345
+ * `<a name="...">` target. When the target lives inside an `ion-content`, the
346
+ * scroll uses its smooth-animated scroll API; otherwise it falls back to
347
+ * `Element.scrollIntoView`.
348
+ *
349
+ * `shouldContinue` lets callers cancel in-flight scrolls when a newer
350
+ * navigation supersedes this one. It is checked between async steps.
351
+ */
352
+ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
353
+ if (fragment == null || fragment === '') {
354
+ return false;
355
+ }
356
+ // URL fragments are percent-encoded but element ids are not; decode for
357
+ // matching per the HTML spec's indicated-element resolution.
358
+ let decoded;
359
+ try {
360
+ decoded = decodeURIComponent(fragment);
361
+ }
362
+ catch (_a) {
363
+ decoded = fragment;
364
+ }
365
+ const target = await findFragmentTarget(decoded, shouldContinue);
366
+ if (!target || !shouldContinue()) {
367
+ return false;
368
+ }
369
+ // Best-effort scroll: swallow exceptions if the page tears down mid-animation.
370
+ try {
371
+ const contentHost = index$1.findClosestIonContent(target);
372
+ if (contentHost && index$1.isIonContent(contentHost)) {
373
+ const content = contentHost;
374
+ const scrollEl = await index$1.getScrollElement(content);
375
+ // Yield one frame so the newly mounted target's layout is stable
376
+ // before we measure its rect.
377
+ await nextFrame();
378
+ if (!shouldContinue())
379
+ return false;
380
+ const targetRect = target.getBoundingClientRect();
381
+ const scrollRect = scrollEl.getBoundingClientRect();
382
+ const top = targetRect.top - scrollRect.top + scrollEl.scrollTop;
383
+ // Preserve scrollLeft so RTL and horizontally-scrolling pages aren't reset.
384
+ await content.scrollToPoint(scrollEl.scrollLeft, top, FRAGMENT_SCROLL_DURATION);
385
+ }
386
+ else {
387
+ target.scrollIntoView({ behavior: 'smooth' });
388
+ }
389
+ return true;
390
+ }
391
+ catch (e) {
392
+ index.printIonError('[ion-router] - Exception in scrollToFragment:', e);
393
+ return false;
394
+ }
395
+ };
271
396
  const waitUntilNavNode = () => {
272
397
  if (searchNavNode(document.body)) {
273
398
  return Promise.resolve();
@@ -609,6 +734,7 @@ const Router = class {
609
734
  this.busy = false;
610
735
  this.state = 0;
611
736
  this.lastState = 0;
737
+ this.fragmentScrollToken = 0;
612
738
  /**
613
739
  * The root path to use when matching URLs. By default, this is set to "/", but you can specify
614
740
  * an alternate prefix for all URL paths.
@@ -637,12 +763,17 @@ const Router = class {
637
763
  if (typeof canProceed === 'object') {
638
764
  const { redirect } = canProceed;
639
765
  const path = parsePath(redirect);
640
- this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString);
641
- await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
766
+ this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString, path.fragment);
767
+ const result = await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
768
+ if (result) {
769
+ this.maybeScrollToFragment();
770
+ }
642
771
  }
772
+ return;
643
773
  }
644
- else {
645
- await this.onRoutesChanged();
774
+ const result = await this.onRoutesChanged();
775
+ if (result) {
776
+ this.maybeScrollToFragment();
646
777
  }
647
778
  }
648
779
  componentDidLoad() {
@@ -661,7 +792,11 @@ const Router = class {
661
792
  return false;
662
793
  }
663
794
  }
664
- return this.writeNavStateRoot(segments, direction);
795
+ const result = await this.writeNavStateRoot(segments, direction);
796
+ if (result) {
797
+ this.maybeScrollToFragment();
798
+ }
799
+ return result;
665
800
  }
666
801
  onBackButton(ev) {
667
802
  ev.detail.register(0, (processNextHandler) => {
@@ -695,7 +830,7 @@ const Router = class {
695
830
  const currentPath = (_a = this.previousPath) !== null && _a !== void 0 ? _a : '/';
696
831
  // Convert currentPath to an URL by pre-pending a protocol and a host to resolve the relative path.
697
832
  const url = new URL(path, `https://host/${currentPath}`);
698
- path = url.pathname + url.search;
833
+ path = url.pathname + url.search + url.hash;
699
834
  }
700
835
  let parsedPath = parsePath(path);
701
836
  const canProceed = await this.runGuards(parsedPath.segments);
@@ -707,8 +842,12 @@ const Router = class {
707
842
  return false;
708
843
  }
709
844
  }
710
- this.setSegments(parsedPath.segments, direction, parsedPath.queryString);
711
- return this.writeNavStateRoot(parsedPath.segments, direction, animation);
845
+ this.setSegments(parsedPath.segments, direction, parsedPath.queryString, parsedPath.fragment);
846
+ const result = await this.writeNavStateRoot(parsedPath.segments, direction, animation);
847
+ if (result) {
848
+ this.maybeScrollToFragment();
849
+ }
850
+ return result;
712
851
  }
713
852
  /** Go back to previous page in the window.history. */
714
853
  back() {
@@ -738,7 +877,12 @@ const Router = class {
738
877
  index.printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
739
878
  return false;
740
879
  }
741
- this.setSegments(segments, direction);
880
+ // navChanged is an outlet-driven URL sync. Only keep the fragment when
881
+ // the path is unchanged; on a real navigation it refers to an anchor on
882
+ // the page being left and would be stale.
883
+ const newPath = generatePath(segments);
884
+ const fragment = newPath === this.previousPath ? this.getFragment() : undefined;
885
+ this.setSegments(segments, direction, undefined, fragment);
742
886
  await this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, segments, null, ids.length);
743
887
  return true;
744
888
  }
@@ -781,8 +925,8 @@ const Router = class {
781
925
  const redirect = findRouteRedirect(segments, redirects);
782
926
  let redirectFrom = null;
783
927
  if (redirect) {
784
- const { segments: toSegments, queryString } = redirect.to;
785
- this.setSegments(toSegments, direction, queryString);
928
+ const { segments: toSegments, queryString, fragment } = redirect.to;
929
+ this.setSegments(toSegments, direction, queryString, fragment);
786
930
  redirectFrom = redirect.from;
787
931
  segments = toSegments;
788
932
  }
@@ -862,13 +1006,35 @@ const Router = class {
862
1006
  }
863
1007
  return changed;
864
1008
  }
865
- setSegments(segments, direction, queryString) {
1009
+ setSegments(segments, direction, queryString, fragment) {
866
1010
  this.state++;
867
- writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString);
1011
+ // Every URL write invalidates any in-flight fragment scroll: a newer nav
1012
+ // (with or without a fragment, successful or not) should always supersede.
1013
+ this.fragmentScrollToken++;
1014
+ writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString, fragment);
868
1015
  }
869
1016
  getSegments() {
870
1017
  return readSegments(window.location, this.root, this.useHash);
871
1018
  }
1019
+ getFragment() {
1020
+ // In hash mode the URL fragment trails a second `#` (e.g. `#/path#anchor`);
1021
+ // parse the routing portion to extract it.
1022
+ const raw = this.useHash ? parsePath(window.location.hash.slice(1)).fragment : window.location.hash.slice(1);
1023
+ return raw ? raw : undefined;
1024
+ }
1025
+ /**
1026
+ * Fires a best-effort scroll to the current URL fragment. The scroll bails
1027
+ * if a newer `setSegments` advances `fragmentScrollToken` mid-flight.
1028
+ */
1029
+ maybeScrollToFragment() {
1030
+ const fragment = this.getFragment();
1031
+ if (!fragment)
1032
+ return;
1033
+ const token = this.fragmentScrollToken;
1034
+ // Fire-and-forget; the returned promise resolves only after the scroll
1035
+ // animation completes, which the caller does not need to await.
1036
+ scrollToFragment(fragment, () => token === this.fragmentScrollToken).catch(() => { });
1037
+ }
872
1038
  routeChangeEvent(toSegments, redirectFromSegments) {
873
1039
  const from = this.previousPath;
874
1040
  const to = generatePath(toSegments);
@@ -3,12 +3,12 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var helpers = require('./helpers-CxTYJdbT.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var helpers = require('./helpers-Cv23MFHM.js');
8
8
  var dir = require('./dir-Cn0z1rJH.js');
9
9
  var theme = require('./theme-CeDs6Hcv.js');
10
10
  var index$1 = require('./index-DqmRDbxg.js');
11
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
11
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
12
12
 
13
13
  const searchbarIosCss = () => `.sc-ion-searchbar-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-ios-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:inherit}.searchbar-search-icon.sc-ion-searchbar-ios{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ios{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ios{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;border-radius:var(--border-radius);display:block;width:100%;min-height:inherit;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ios::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ios>div.sc-ion-searchbar-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ios:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{display:block}.searchbar-disabled.sc-ion-searchbar-ios-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-ios-h{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.07);--border-radius:10px;--box-shadow:none;--cancel-button-color:var(--ion-color-primary, #0054e9);--clear-button-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));--color:var(--ion-text-color, #000);--icon-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:12px;padding-bottom:12px;min-height:60px;contain:content}.searchbar-input-container.sc-ion-searchbar-ios{min-height:36px}.searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:calc(50% - 60px);margin-inline-start:calc(50% - 60px);top:0;position:absolute;width:1.375rem;height:100%;contain:strict}.searchbar-search-icon.sc-ion-searchbar-ios{inset-inline-start:5px}.searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:6px;padding-bottom:6px;height:100%;font-size:1.0625rem;font-weight:400;contain:strict}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem;-webkit-padding-end:1.75rem;padding-inline-end:1.75rem}.searchbar-clear-button.sc-ion-searchbar-ios{top:0;background-position:center;position:absolute;width:1.875rem;height:100%;border:0;background-color:transparent}.searchbar-clear-button.sc-ion-searchbar-ios{inset-inline-end:0}.searchbar-clear-icon.sc-ion-searchbar-ios{width:1.125rem;height:100%}.searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0;background-color:transparent;font-size:17px}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:0;margin-inline-start:0}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:1.875rem;padding-inline-start:1.875rem}.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{display:block}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-transition:all 300ms ease;transition:all 300ms ease}.searchbar-animated.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{opacity:1;pointer-events:auto}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-margin-end:-100%;margin-inline-end:-100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:all 300ms ease;transition:all 300ms ease;opacity:0;pointer-events:none}.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-transition-duration:0ms;transition-duration:0ms}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{color:var(--ion-color-base)}@media (any-hover: hover){.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios:hover{color:var(--ion-color-tint)}}ion-toolbar.sc-ion-searchbar-ios-h,ion-toolbar .sc-ion-searchbar-ios-h{padding-top:1px;padding-bottom:15px;min-height:52px}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color),ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color){color:inherit}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios{color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios{background:rgba(var(--ion-color-contrast-rgb), 0.07);color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}`;
14
14
 
@@ -254,12 +254,14 @@ const Searchbar = class {
254
254
  }, 300);
255
255
  }
256
256
  disconnectedCallback() {
257
+ var _a;
257
258
  if (this.loadTimeout) {
258
259
  clearTimeout(this.loadTimeout);
259
260
  }
260
261
  if (this.clearTimeout) {
261
262
  clearTimeout(this.clearTimeout);
262
263
  }
264
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
263
265
  }
264
266
  emitStyle() {
265
267
  this.ionStyle.emit({
@@ -357,6 +359,7 @@ const Searchbar = class {
357
359
  doc.body.appendChild(tempSpan);
358
360
  // Get the width of the span then remove it
359
361
  helpers.raf(() => {
362
+ var _a, _b;
360
363
  const textWidth = tempSpan.offsetWidth;
361
364
  tempSpan.remove();
362
365
  // Calculate the input padding
@@ -368,7 +371,25 @@ const Searchbar = class {
368
371
  * such as Dynamic Type on iOS as well as 8px
369
372
  * of padding.
370
373
  */
371
- const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconEl.clientWidth + 8) + 'px)';
374
+ const iconWidth = iconEl.clientWidth;
375
+ /**
376
+ * Fix for https://github.com/ionic-team/ionic-framework/issues/30434:
377
+ * iconEl.clientWidth can very briefly be 0 when this is called from componentDidLoad.
378
+ * If it is zero, set up a ResizeObserver and call this function when it observes a width greater than 0.
379
+ */
380
+ if (iconWidth === 0) {
381
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
382
+ this.searchIconResizeObserver = new ResizeObserver((entries) => {
383
+ var _a;
384
+ if (entries[0].contentRect.width > 0) {
385
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
386
+ this.positionPlaceholder();
387
+ }
388
+ });
389
+ (_b = this.searchIconResizeObserver) === null || _b === void 0 ? void 0 : _b.observe(iconEl);
390
+ return;
391
+ }
392
+ const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconWidth + 8) + 'px)';
372
393
  // Set the input padding start and icon margin start
373
394
  if (rtl) {
374
395
  inputEl.style.paddingRight = inputLeft;
@@ -449,8 +470,8 @@ const Searchbar = class {
449
470
  const clearIcon = this.clearIcon || (mode === 'ios' ? index$1.closeCircle : index$1.closeSharp);
450
471
  const searchIcon = this.searchIcon || (mode === 'ios' ? index$1.searchOutline : index$1.searchSharp);
451
472
  const shouldShowCancelButton = this.shouldShowCancelButton();
452
- const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '9e9f3a7f6ee66140181f8c3cfa42bbeee75adafc', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '5f83fbcc0708830637815e8c0b69356cad381870', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
453
- return (index.h(index.Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
473
+ const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '226b7a676b4819cda4062b8334fa8d4c4cee6f1a', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '89adb4efa17a78c973bbd5527cfac91d99ceb9bb', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
474
+ return (index.h(index.Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
454
475
  [mode]: true,
455
476
  'searchbar-animated': animated,
456
477
  'searchbar-disabled': this.disabled,
@@ -460,14 +481,14 @@ const Searchbar = class {
460
481
  'searchbar-has-focus': this.focused,
461
482
  'searchbar-should-show-clear': this.shouldShowClearButton(),
462
483
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
463
- }) }, index.h("div", { key: '3f1c25442d6d87c0df67f79482a925b80dcc403d', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: 'a386fecafda0fab449ea1488906ba6cfc55e2b5c', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, index.h("ion-icon", { key: '5f81642628335def39a14f0726e0fafdc7203776', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: 'da3073646f2d7f639261b556517fbadabc3c10e9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
484
+ }) }, index.h("div", { key: '5b4bdf7280bea710304b6975e76390fe6ceb7417', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: '01a0820a2cf904aec1c7d84b542ab7918d435632', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, index.h("ion-icon", { key: 'cd64973206b1cc59d221112861733b7ee25f0323', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '2061fa8449bbc576cf8c5130ea613378ea492944', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
464
485
  /**
465
486
  * This prevents mobile browsers from
466
487
  * blurring the input when the clear
467
488
  * button is activated.
468
489
  */
469
490
  ev.preventDefault();
470
- }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '065cd6c707ae462c0767df1bab04ce8045f340a4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
491
+ }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '00df6f7742bff70b1b088d544b8c00e962e7216c', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
471
492
  }
472
493
  get el() { return index.getElement(this); }
473
494
  static get watchers() { return {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
7
 
8
8
  const segmentContentCss = () => `:host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%;min-height:1px;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;}:host::-webkit-scrollbar{display:none}`;
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
7
  var dir = require('./dir-Cn0z1rJH.js');
8
8
 
9
9
  const segmentViewIosCss = () => `:host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled),:host(.segment-view-swipe-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}`;
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var helpers = require('./helpers-CxTYJdbT.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var helpers = require('./helpers-Cv23MFHM.js');
8
8
  var dir = require('./dir-Cn0z1rJH.js');
9
9
  var theme = require('./theme-CeDs6Hcv.js');
10
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
10
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
11
11
 
12
12
  const segmentIosCss = () => `:host{--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:grid;grid-auto-columns:1fr;position:relative;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;width:100%;background:var(--background);font-family:var(--ion-font-family, inherit);text-align:center;contain:paint;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.segment-scrollable){-ms-flex-pack:start;justify-content:start;width:auto;overflow-x:auto;grid-auto-columns:minmax(-webkit-min-content, 1fr);grid-auto-columns:minmax(min-content, 1fr)}:host(.segment-scrollable::-webkit-scrollbar){display:none}:host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.065);border-radius:8px;overflow:hidden;z-index:0}:host(.ion-color){background:rgba(var(--ion-color-base-rgb), 0.065)}:host(.in-toolbar){-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;width:auto}:host(.in-toolbar:not(.ion-color)){background:var(--ion-toolbar-segment-background, var(--background))}:host(.in-toolbar-color:not(.ion-color)){background:rgba(var(--ion-color-contrast-rgb), 0.11)}`;
13
13
 
@@ -3,14 +3,14 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
8
- var overlays = require('./overlays-C2jiBSNQ.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
8
+ var overlays = require('./overlays-TbKsuC-K.js');
9
9
  var theme = require('./theme-CeDs6Hcv.js');
10
10
  require('./index-DkNv4J_i.js');
11
- require('./helpers-CxTYJdbT.js');
12
- require('./hardware-back-button-C4rMJ5uI.js');
13
- require('./framework-delegate-CRgp8o_p.js');
11
+ require('./helpers-Cv23MFHM.js');
12
+ require('./hardware-back-button-iUuF_76h.js');
13
+ require('./framework-delegate-BtICZDHr.js');
14
14
  require('./gesture-controller-dtqlP_q4.js');
15
15
 
16
16
  const ionicSelectModalMdCss = () => `.sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
@@ -3,20 +3,20 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var notchController = require('./notch-controller-sD-lTpdc.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var notchController = require('./notch-controller-18PzRGXd.js');
8
8
  var compareWithUtils = require('./compare-with-utils-DSicavqM.js');
9
9
  var validity = require('./validity-BpS37YFM.js');
10
- var helpers = require('./helpers-CxTYJdbT.js');
11
- var overlays = require('./overlays-C2jiBSNQ.js');
10
+ var helpers = require('./helpers-Cv23MFHM.js');
11
+ var overlays = require('./overlays-TbKsuC-K.js');
12
12
  var dir = require('./dir-Cn0z1rJH.js');
13
13
  var theme = require('./theme-CeDs6Hcv.js');
14
14
  var watchOptions = require('./watch-options-CviOsrTS.js');
15
15
  var index$1 = require('./index-DqmRDbxg.js');
16
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
16
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
17
17
  require('./index-DkNv4J_i.js');
18
- require('./hardware-back-button-C4rMJ5uI.js');
19
- require('./framework-delegate-CRgp8o_p.js');
18
+ require('./hardware-back-button-iUuF_76h.js');
19
+ require('./framework-delegate-BtICZDHr.js');
20
20
  require('./gesture-controller-dtqlP_q4.js');
21
21
 
22
22
  const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
7
  var theme = require('./theme-CeDs6Hcv.js');
8
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
8
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
9
9
  var spinnerConfigs = require('./spinner-configs-DxHKnd3-.js');
10
10
 
11
11
  const spinnerCss = () => `:host{display:inline-block;position:relative;width:28px;height:28px;color:var(--color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.ion-color){color:var(--ion-color-base)}svg{-webkit-transform-origin:center;transform-origin:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}:host-context([dir=rtl]) svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){svg:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}:host(.spinner-lines) line,:host(.spinner-lines-small) line{stroke-width:7px}:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-width:4px}:host(.spinner-lines) line,:host(.spinner-lines-small) line,:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-linecap:round;stroke:currentColor}:host(.spinner-lines) svg,:host(.spinner-lines-small) svg,:host(.spinner-lines-sharp) svg,:host(.spinner-lines-sharp-small) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite}:host(.spinner-bubbles) svg{-webkit-animation:spinner-scale-out 1s linear infinite;animation:spinner-scale-out 1s linear infinite;fill:currentColor}:host(.spinner-circles) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite;fill:currentColor}:host(.spinner-crescent) circle{fill:transparent;stroke-width:4px;stroke-dasharray:128px;stroke-dashoffset:82px;stroke:currentColor}:host(.spinner-crescent) svg{-webkit-animation:spinner-rotate 1s linear infinite;animation:spinner-rotate 1s linear infinite}:host(.spinner-dots) circle{stroke-width:0;fill:currentColor}:host(.spinner-dots) svg{-webkit-animation:spinner-dots 1s linear infinite;animation:spinner-dots 1s linear infinite}:host(.spinner-circular) svg{-webkit-animation:spinner-circular linear infinite;animation:spinner-circular linear infinite}:host(.spinner-circular) circle{-webkit-animation:spinner-circular-inner ease-in-out infinite;animation:spinner-circular-inner ease-in-out infinite;stroke:currentColor;stroke-dasharray:80px, 200px;stroke-dashoffset:0px;stroke-width:5.6;fill:none}:host(.spinner-paused),:host(.spinner-paused) svg,:host(.spinner-paused) circle{-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@-webkit-keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@-webkit-keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}@keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}`;
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
8
8
 
9
9
  const splitPaneIosCss = () => `:host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--side-min-width:270px;--side-max-width:28%}`;
10
10
 
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
7
  var keyboardController = require('./keyboard-controller-GXBiBRKS.js');
8
8
  var theme = require('./theme-CeDs6Hcv.js');
9
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
10
- var helpers = require('./helpers-CxTYJdbT.js');
9
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
10
+ var helpers = require('./helpers-Cv23MFHM.js');
11
11
  require('./index-DkNv4J_i.js');
12
12
  require('./keyboard-UuAS4D_9.js');
13
13
  require('./capacitor-DmA66EwP.js');
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
7
- var frameworkDelegate = require('./framework-delegate-CRgp8o_p.js');
8
- require('./helpers-CxTYJdbT.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var frameworkDelegate = require('./framework-delegate-BtICZDHr.js');
8
+ require('./helpers-Cv23MFHM.js');
9
9
 
10
10
  const tabCss = () => `:host(.tab-hidden){display:none !important}`;
11
11
 
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CqT-2gKy.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
7
  var theme = require('./theme-CeDs6Hcv.js');
8
- var ionicGlobal = require('./ionic-global-Bc3kJi1Z.js');
8
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
9
9
 
10
10
  const textCss = () => `:host(.ion-color){color:var(--ion-color-base)}`;
11
11