@ionic/core 8.8.14-dev.11784037956.17449639 → 8.8.14-dev.11784216165.1ecbf364

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 (362) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-img.js +1 -1
  12. package/components/ion-infinite-scroll-content.js +1 -1
  13. package/components/ion-input-password-toggle.js +1 -1
  14. package/components/ion-input.js +1 -1
  15. package/components/ion-item-option.js +1 -1
  16. package/components/ion-item.js +1 -1
  17. package/components/ion-loading.js +1 -1
  18. package/components/ion-menu-button.js +1 -1
  19. package/components/ion-menu.js +1 -1
  20. package/components/ion-modal.js +1 -1
  21. package/components/ion-nav.js +1 -1
  22. package/components/ion-popover.js +1 -1
  23. package/components/ion-progress-bar.js +1 -1
  24. package/components/ion-radio.js +1 -1
  25. package/components/ion-range.js +1 -1
  26. package/components/ion-refresher-content.js +1 -1
  27. package/components/ion-refresher.js +1 -1
  28. package/components/ion-reorder-group.js +1 -1
  29. package/components/ion-reorder.js +1 -1
  30. package/components/ion-ripple-effect.js +1 -1
  31. package/components/ion-router-link.js +1 -1
  32. package/components/ion-router-outlet.js +1 -1
  33. package/components/ion-router.js +1 -1
  34. package/components/ion-row.js +1 -1
  35. package/components/ion-searchbar.js +1 -1
  36. package/components/ion-segment-button.js +1 -1
  37. package/components/ion-segment-content.js +1 -1
  38. package/components/ion-segment-view.js +1 -1
  39. package/components/ion-segment.js +1 -1
  40. package/components/ion-select-modal.js +1 -1
  41. package/components/ion-select-option.js +1 -1
  42. package/components/ion-select-popover.js +1 -1
  43. package/components/ion-select.js +1 -1
  44. package/components/ion-skeleton-text.js +1 -1
  45. package/components/ion-spinner.js +1 -1
  46. package/components/ion-split-pane.js +1 -1
  47. package/components/ion-tab-bar.js +1 -1
  48. package/components/ion-tab-button.js +1 -1
  49. package/components/ion-tab.js +1 -1
  50. package/components/ion-tabs.js +1 -1
  51. package/components/ion-text.js +1 -1
  52. package/components/ion-textarea.js +1 -1
  53. package/components/ion-thumbnail.js +1 -1
  54. package/components/ion-title.js +1 -1
  55. package/components/ion-toast.js +1 -1
  56. package/components/ion-toggle.js +1 -1
  57. package/components/ion-toolbar.js +1 -1
  58. package/components/p-279dFMvg.js +4 -0
  59. package/components/p-BSQPZ79H.js +4 -0
  60. package/components/{p-BHrrc-3d.js → p-Buf_7zcy.js} +1 -1
  61. package/components/p-BwKpO3Is.js +4 -0
  62. package/components/p-C-Rx1zny.js +4 -0
  63. package/components/p-CHzfYZbv.js +4 -0
  64. package/components/p-D4h1H_hh.js +4 -0
  65. package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
  66. package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
  67. package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
  68. package/components/p-LMGfIvTf.js +4 -0
  69. package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
  70. package/components/p-_lHSumhG.js +4 -0
  71. package/components/p-j9Da6cYO.js +4 -0
  72. package/components/p-jOtMJMv8.js +4 -0
  73. package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
  74. package/components/p-uTR_dEqg.js +4 -0
  75. package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
  76. package/dist/cjs/config-DWdFbSNK.js +35 -0
  77. package/dist/cjs/index-Cueg3U4w.js +429 -0
  78. package/dist/cjs/index.cjs.js +6 -6
  79. package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -7
  80. package/dist/cjs/ion-alert.cjs.entry.js +64 -25
  81. package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
  82. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  84. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
  85. package/dist/cjs/ion-img.cjs.entry.js +3 -1
  86. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -2
  87. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  88. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-loading.cjs.entry.js +10 -5
  90. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-modal.cjs.entry.js +23 -33
  92. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -115
  93. package/dist/cjs/ion-popover.cjs.entry.js +9 -5
  94. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  95. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  96. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  97. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -5
  98. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  100. package/dist/cjs/ion-route_4.cjs.entry.js +18 -4
  101. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  102. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  103. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  104. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-select-modal.cjs.entry.js +84 -30
  106. package/dist/cjs/ion-select_3.cjs.entry.js +407 -49
  107. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  108. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  110. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  111. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  112. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-toast.cjs.entry.js +6 -5
  114. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  115. package/dist/cjs/ionic.cjs.js +1 -1
  116. package/dist/cjs/loader.cjs.js +1 -1
  117. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  118. package/dist/cjs/{overlays-B9UiYZ4R.js → overlays-DSmSrd_4.js} +27 -30
  119. package/dist/cjs/select-option-render-DTF50t5r.js +124 -0
  120. package/dist/collection/collection-manifest.json +6 -10
  121. package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
  122. package/dist/collection/components/action-sheet/action-sheet.js +24 -5
  123. package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
  124. package/dist/collection/components/alert/alert.ios.css +280 -10
  125. package/dist/collection/components/alert/alert.js +59 -21
  126. package/dist/collection/components/alert/alert.md.css +269 -20
  127. package/dist/collection/components/img/img.js +6 -1
  128. package/dist/collection/components/input/input.js +8 -8
  129. package/dist/collection/components/loading/loading.js +7 -3
  130. package/dist/collection/components/modal/gestures/sheet.js +0 -8
  131. package/dist/collection/components/modal/gestures/swipe-to-close.js +0 -8
  132. package/dist/collection/components/modal/modal.ios.css +0 -8
  133. package/dist/collection/components/modal/modal.js +23 -17
  134. package/dist/collection/components/modal/modal.md.css +0 -8
  135. package/dist/collection/components/nav/nav.js +4 -219
  136. package/dist/collection/components/popover/popover.ios.css +15 -0
  137. package/dist/collection/components/popover/popover.js +7 -3
  138. package/dist/collection/components/popover/popover.md.css +15 -0
  139. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  140. package/dist/collection/components/radio/radio.js +4 -4
  141. package/dist/collection/components/range/range.js +3 -3
  142. package/dist/collection/components/refresher/refresher.js +1 -1
  143. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  144. package/dist/collection/components/reorder/reorder.js +1 -1
  145. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  146. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  147. package/dist/collection/components/route/route.js +1 -1
  148. package/dist/collection/components/router/utils/dom.js +22 -3
  149. package/dist/collection/components/router-link/router-link.js +2 -2
  150. package/dist/collection/components/router-outlet/router-outlet.js +38 -5
  151. package/dist/collection/components/row/row.js +1 -1
  152. package/dist/collection/components/searchbar/searchbar.js +9 -9
  153. package/dist/collection/components/segment/segment.js +2 -2
  154. package/dist/collection/components/segment-button/segment-button.js +2 -2
  155. package/dist/collection/components/segment-content/segment-content.js +1 -1
  156. package/dist/collection/components/segment-view/segment-view.js +2 -2
  157. package/dist/collection/components/select/select.ios.css +33 -0
  158. package/dist/collection/components/select/select.js +323 -16
  159. package/dist/collection/components/select/select.md.css +33 -0
  160. package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
  161. package/dist/collection/components/select-modal/select-modal.js +79 -26
  162. package/dist/collection/components/select-modal/select-modal.md.css +165 -0
  163. package/dist/collection/components/select-option/select-option.js +67 -3
  164. package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
  165. package/dist/collection/components/select-popover/select-popover.js +78 -26
  166. package/dist/collection/components/select-popover/select-popover.md.css +165 -0
  167. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  168. package/dist/collection/components/spinner/spinner.js +1 -1
  169. package/dist/collection/components/split-pane/split-pane.js +2 -2
  170. package/dist/collection/components/tab/tab.js +2 -2
  171. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  172. package/dist/collection/components/tab-button/tab-button.js +2 -2
  173. package/dist/collection/components/tabs/tabs.js +1 -1
  174. package/dist/collection/components/text/text.js +2 -2
  175. package/dist/collection/components/textarea/textarea.js +2 -2
  176. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  177. package/dist/collection/components/title/title.js +2 -2
  178. package/dist/collection/components/toast/toast.js +2 -2
  179. package/dist/collection/components/toggle/toggle.js +3 -3
  180. package/dist/collection/components/toolbar/toolbar.js +2 -2
  181. package/dist/collection/index.js +1 -1
  182. package/dist/collection/utils/overlay-control-label.js +45 -0
  183. package/dist/collection/utils/overlays.js +26 -29
  184. package/dist/collection/utils/sanitization/index.js +274 -18
  185. package/dist/collection/utils/select-option-render.js +119 -0
  186. package/dist/docs.json +497 -1189
  187. package/dist/esm/config-BwKpO3Is.js +31 -0
  188. package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
  189. package/dist/esm/index-DQSkZyOJ.js +424 -0
  190. package/dist/esm/index.js +3 -2
  191. package/dist/esm/ion-accordion_2.entry.js +1 -1
  192. package/dist/esm/ion-action-sheet.entry.js +27 -7
  193. package/dist/esm/ion-alert.entry.js +63 -24
  194. package/dist/esm/ion-app_8.entry.js +23 -9
  195. package/dist/esm/ion-avatar_3.entry.js +1 -1
  196. package/dist/esm/ion-back-button.entry.js +1 -1
  197. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  198. package/dist/esm/ion-col_3.entry.js +1 -1
  199. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
  200. package/dist/esm/ion-fab_3.entry.js +1 -1
  201. package/dist/esm/ion-img.entry.js +4 -2
  202. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -1
  203. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  204. package/dist/esm/ion-input.entry.js +5 -5
  205. package/dist/esm/ion-item_8.entry.js +3 -3
  206. package/dist/esm/ion-loading.entry.js +9 -4
  207. package/dist/esm/ion-menu_3.entry.js +2 -2
  208. package/dist/esm/ion-modal.entry.js +23 -33
  209. package/dist/esm/ion-nav_2.entry.js +3 -116
  210. package/dist/esm/ion-popover.entry.js +9 -5
  211. package/dist/esm/ion-progress-bar.entry.js +1 -1
  212. package/dist/esm/ion-radio_2.entry.js +3 -3
  213. package/dist/esm/ion-range.entry.js +3 -3
  214. package/dist/esm/ion-refresher_2.entry.js +5 -4
  215. package/dist/esm/ion-reorder_2.entry.js +3 -3
  216. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  217. package/dist/esm/ion-route_4.entry.js +18 -4
  218. package/dist/esm/ion-searchbar.entry.js +6 -6
  219. package/dist/esm/ion-segment-content.entry.js +1 -1
  220. package/dist/esm/ion-segment-view.entry.js +2 -2
  221. package/dist/esm/ion-segment_2.entry.js +4 -4
  222. package/dist/esm/ion-select-modal.entry.js +84 -30
  223. package/dist/esm/ion-select_3.entry.js +410 -52
  224. package/dist/esm/ion-spinner.entry.js +1 -1
  225. package/dist/esm/ion-split-pane.entry.js +2 -2
  226. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  227. package/dist/esm/ion-tab_2.entry.js +3 -3
  228. package/dist/esm/ion-text.entry.js +2 -2
  229. package/dist/esm/ion-textarea.entry.js +2 -2
  230. package/dist/esm/ion-toast.entry.js +5 -4
  231. package/dist/esm/ion-toggle.entry.js +4 -4
  232. package/dist/esm/ionic.js +1 -1
  233. package/dist/esm/loader.js +1 -1
  234. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  235. package/dist/esm/{overlays-Bmfhux69.js → overlays-DLNOHWNc.js} +28 -31
  236. package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
  237. package/dist/html.html-data.json +52 -80
  238. package/dist/ionic/index.esm.js +1 -1
  239. package/dist/ionic/ionic.esm.js +1 -1
  240. package/dist/ionic/p-038eb991.entry.js +4 -0
  241. package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
  242. package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
  243. package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
  244. package/dist/ionic/p-4621c387.entry.js +4 -0
  245. package/dist/ionic/p-4ace7762.entry.js +4 -0
  246. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  247. package/dist/ionic/p-4e9ec5c5.entry.js +4 -0
  248. package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
  249. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  250. package/dist/ionic/p-5d1ac2c7.entry.js +4 -0
  251. package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
  252. package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
  253. package/dist/ionic/p-700795f6.entry.js +4 -0
  254. package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
  255. package/dist/ionic/p-79a36078.entry.js +4 -0
  256. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  257. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  258. package/dist/ionic/p-913b218a.entry.js +4 -0
  259. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  260. package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
  261. package/dist/ionic/p-BDtODLZ4.js +4 -0
  262. package/dist/ionic/p-BSQPZ79H.js +4 -0
  263. package/dist/ionic/p-BwKpO3Is.js +4 -0
  264. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  265. package/dist/ionic/p-DCOvXkOm.js +4 -0
  266. package/dist/ionic/p-a18dcb3c.entry.js +4 -0
  267. package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
  268. package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
  269. package/dist/ionic/p-a9a33367.entry.js +4 -0
  270. package/dist/ionic/p-ad728198.entry.js +4 -0
  271. package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
  272. package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
  273. package/dist/ionic/p-bfc8c629.entry.js +4 -0
  274. package/dist/ionic/p-c08e666a.entry.js +4 -0
  275. package/dist/ionic/p-c474f471.entry.js +4 -0
  276. package/dist/ionic/{p-cf91e738.entry.js → p-c93553d2.entry.js} +1 -1
  277. package/dist/ionic/p-ce7992c4.entry.js +4 -0
  278. package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
  279. package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
  280. package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
  281. package/dist/ionic/p-ed797c72.entry.js +4 -0
  282. package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
  283. package/dist/ionic/p-f09f9642.entry.js +4 -0
  284. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  285. package/dist/ionic/p-f718fccb.entry.js +4 -0
  286. package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
  287. package/dist/types/components/img/img.d.ts +2 -0
  288. package/dist/types/components/input/input.d.ts +1 -1
  289. package/dist/types/components/modal/modal.d.ts +11 -4
  290. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  291. package/dist/types/components/nav/nav.d.ts +2 -22
  292. package/dist/types/components/route/route.d.ts +1 -1
  293. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  294. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  295. package/dist/types/components/select/select-interface.d.ts +31 -0
  296. package/dist/types/components/select/select.d.ts +18 -0
  297. package/dist/types/components/select-option/select-option.d.ts +42 -1
  298. package/dist/types/components.d.ts +74 -303
  299. package/dist/types/index.d.ts +1 -1
  300. package/dist/types/interface.d.ts +0 -1
  301. package/dist/types/utils/config.d.ts +0 -8
  302. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  303. package/dist/types/utils/overlays.d.ts +11 -9
  304. package/dist/types/utils/sanitization/index.d.ts +58 -2
  305. package/dist/types/utils/select-option-render.d.ts +53 -0
  306. package/hydrate/index.js +1410 -1292
  307. package/hydrate/index.mjs +1410 -1292
  308. package/package.json +37 -5
  309. package/components/ion-picker-legacy-column.d.ts +0 -11
  310. package/components/ion-picker-legacy-column.js +0 -4
  311. package/components/ion-picker-legacy.d.ts +0 -11
  312. package/components/ion-picker-legacy.js +0 -4
  313. package/components/p-B1BWKArA.js +0 -4
  314. package/components/p-B4PlLGHT.js +0 -4
  315. package/components/p-BFsEcwW9.js +0 -4
  316. package/components/p-CFRyvUvJ.js +0 -4
  317. package/components/p-CU5rbWAW.js +0 -4
  318. package/components/p-CgLiHbz0.js +0 -4
  319. package/components/p-MLyEeL3Q.js +0 -4
  320. package/components/p-PgMVWD8U.js +0 -4
  321. package/components/p-k_E4tX5Z.js +0 -4
  322. package/dist/cjs/config-xninhj0J.js +0 -201
  323. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  324. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  325. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  326. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  327. package/dist/collection/components/picker-legacy/picker.js +0 -890
  328. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  329. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  330. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  331. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  332. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  333. package/dist/esm/config-DQCONYYp.js +0 -195
  334. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  335. package/dist/ionic/p-02473803.entry.js +0 -4
  336. package/dist/ionic/p-20b1a044.entry.js +0 -4
  337. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  338. package/dist/ionic/p-27d30585.entry.js +0 -4
  339. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  340. package/dist/ionic/p-2f529a55.entry.js +0 -4
  341. package/dist/ionic/p-485fda23.entry.js +0 -4
  342. package/dist/ionic/p-48fa7fb1.entry.js +0 -4
  343. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  344. package/dist/ionic/p-4d9181c7.entry.js +0 -4
  345. package/dist/ionic/p-50e1194a.entry.js +0 -4
  346. package/dist/ionic/p-532eb373.entry.js +0 -4
  347. package/dist/ionic/p-8fce95d5.entry.js +0 -4
  348. package/dist/ionic/p-B0zdMdR0.js +0 -4
  349. package/dist/ionic/p-DzWaWHGc.js +0 -4
  350. package/dist/ionic/p-a21add2f.entry.js +0 -4
  351. package/dist/ionic/p-ab60b48a.entry.js +0 -4
  352. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  353. package/dist/ionic/p-f386f6ae.entry.js +0 -4
  354. package/dist/ionic/p-f994dc44.entry.js +0 -4
  355. package/dist/ionic/p-fd76f647.entry.js +0 -4
  356. package/dist/ionic/p-fda60562.entry.js +0 -4
  357. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  358. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  359. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  360. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  361. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  362. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Build, h } from "@stencil/core";
4
+ import { h } from "@stencil/core";
5
5
  import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
6
  import { assert } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
@@ -9,12 +9,11 @@ import { lifecycle, setPageHidden, transition } from "../../utils/transition/ind
9
9
  import { config } from "../../global/config";
10
10
  import { getIonMode } from "../../global/ionic-global";
11
11
  import { LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_LEAVE, LIFECYCLE_WILL_UNLOAD } from "./constants";
12
- import { VIEW_STATE_ATTACHED, VIEW_STATE_DESTROYED, VIEW_STATE_NEW, convertToViews, matches } from "./view-controller";
12
+ import { VIEW_STATE_ATTACHED, VIEW_STATE_DESTROYED, VIEW_STATE_NEW, convertToViews } from "./view-controller";
13
13
  export class Nav {
14
14
  constructor() {
15
15
  this.transInstr = [];
16
16
  this.gestureOrAnimationInProgress = false;
17
- this.useRouter = false;
18
17
  this.isTransitioning = false;
19
18
  this.destroyed = false;
20
19
  this.views = [];
@@ -30,7 +29,6 @@ export class Nav {
30
29
  }
31
30
  }
32
31
  rootChanged() {
33
- const isDev = Build.isDev;
34
32
  if (this.root === undefined) {
35
33
  return;
36
34
  }
@@ -41,17 +39,9 @@ export class Nav {
41
39
  */
42
40
  return;
43
41
  }
44
- if (!this.useRouter) {
45
- if (this.root !== undefined) {
46
- this.setRoot(this.root, this.rootParams);
47
- }
48
- }
49
- else if (isDev) {
50
- printIonWarning('[ion-nav] - A root attribute is not supported when using ion-router.', this.el);
51
- }
42
+ this.setRoot(this.root, this.rootParams);
52
43
  }
53
44
  componentWillLoad() {
54
- this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;
55
45
  if (this.swipeGesture === undefined) {
56
46
  const mode = getIonMode(this);
57
47
  this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');
@@ -216,78 +206,6 @@ export class Nav {
216
206
  opts,
217
207
  }, done);
218
208
  }
219
- /**
220
- * Called by the router to update the view.
221
- *
222
- * @param id The component tag.
223
- * @param params The component params.
224
- * @param direction A direction hint.
225
- * @param animation an AnimationBuilder.
226
- *
227
- * @return the status.
228
- * @internal
229
- */
230
- setRouteId(id, params, direction, animation) {
231
- const active = this.getActiveSync();
232
- if (matches(active, id, params)) {
233
- return Promise.resolve({
234
- changed: false,
235
- element: active.element,
236
- });
237
- }
238
- let resolve;
239
- const promise = new Promise((r) => (resolve = r));
240
- let finish;
241
- const commonOpts = {
242
- updateURL: false,
243
- viewIsReady: (enteringEl) => {
244
- let mark;
245
- const p = new Promise((r) => (mark = r));
246
- resolve({
247
- changed: true,
248
- element: enteringEl,
249
- markVisible: async () => {
250
- mark();
251
- await finish;
252
- },
253
- });
254
- return p;
255
- },
256
- };
257
- if (direction === 'root') {
258
- finish = this.setRoot(id, params, commonOpts);
259
- }
260
- else {
261
- // Look for a view matching the target in the view stack.
262
- const viewController = this.views.find((v) => matches(v, id, params));
263
- if (viewController) {
264
- finish = this.popTo(viewController, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animationBuilder: animation }));
265
- }
266
- else if (direction === 'forward') {
267
- finish = this.push(id, params, Object.assign(Object.assign({}, commonOpts), { animationBuilder: animation }));
268
- }
269
- else if (direction === 'back') {
270
- finish = this.setRoot(id, params, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animated: true, animationBuilder: animation }));
271
- }
272
- }
273
- return promise;
274
- }
275
- /**
276
- * Called by <ion-router> to retrieve the current component.
277
- *
278
- * @internal
279
- */
280
- async getRouteId() {
281
- const active = this.getActiveSync();
282
- if (active) {
283
- return {
284
- id: active.element.tagName,
285
- params: active.params,
286
- element: active.element,
287
- };
288
- }
289
- return undefined;
290
- }
291
209
  /**
292
210
  * Get the active view.
293
211
  */
@@ -353,25 +271,6 @@ export class Nav {
353
271
  ti.reject = reject;
354
272
  });
355
273
  ti.done = done;
356
- /**
357
- * If using router, check to see if navigation hooks
358
- * will allow us to perform this transition. This
359
- * is required in order for hooks to work with
360
- * the ion-back-button or swipe to go back.
361
- */
362
- if (ti.opts && ti.opts.updateURL !== false && this.useRouter) {
363
- const router = document.querySelector('ion-router');
364
- if (router) {
365
- const canTransition = await router.canTransition();
366
- if (canTransition === false) {
367
- return false;
368
- }
369
- if (typeof canTransition === 'string') {
370
- router.push(canTransition, ti.opts.direction || 'back');
371
- return false;
372
- }
373
- }
374
- }
375
274
  // Normalize empty
376
275
  if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {
377
276
  ti.insertViews = undefined;
@@ -392,13 +291,6 @@ export class Nav {
392
291
  ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);
393
292
  }
394
293
  ti.resolve(result.hasCompleted);
395
- if (ti.opts.updateURL !== false && this.useRouter) {
396
- const router = document.querySelector('ion-router');
397
- if (router) {
398
- const direction = result.direction === 'back' ? 'back' : 'forward';
399
- router.navChanged(direction);
400
- }
401
- }
402
294
  }
403
295
  failed(rejectReason, ti) {
404
296
  if (this.destroyed) {
@@ -828,7 +720,7 @@ export class Nav {
828
720
  }
829
721
  }
830
722
  render() {
831
- return h("slot", { key: 'a549286b51b1bb23c9ef51f71148452228d0ab14' });
723
+ return h("slot", { key: 'bb4a201a3a8079548f5474ff42293b28fc7599fb' });
832
724
  }
833
725
  static get is() { return "ion-nav"; }
834
726
  static get encapsulation() { return "shadow"; }
@@ -1601,113 +1493,6 @@ export class Nav {
1601
1493
  }]
1602
1494
  }
1603
1495
  },
1604
- "setRouteId": {
1605
- "complexType": {
1606
- "signature": "(id: string, params: ComponentProps | undefined, direction: RouterDirection, animation?: AnimationBuilder) => Promise<RouteWrite>",
1607
- "parameters": [{
1608
- "name": "id",
1609
- "type": "string",
1610
- "docs": "The component tag."
1611
- }, {
1612
- "name": "params",
1613
- "type": "ComponentProps | undefined",
1614
- "docs": "The component params."
1615
- }, {
1616
- "name": "direction",
1617
- "type": "\"root\" | \"back\" | \"forward\"",
1618
- "docs": "A direction hint."
1619
- }, {
1620
- "name": "animation",
1621
- "type": "AnimationBuilder | undefined",
1622
- "docs": "an AnimationBuilder."
1623
- }],
1624
- "references": {
1625
- "Promise": {
1626
- "location": "global",
1627
- "id": "global::Promise"
1628
- },
1629
- "RouteWrite": {
1630
- "location": "import",
1631
- "path": "../router/utils/interface",
1632
- "id": "src/components/router/utils/interface.ts::RouteWrite",
1633
- "referenceLocation": "RouteWrite"
1634
- },
1635
- "ComponentProps": {
1636
- "location": "import",
1637
- "path": "../../interface",
1638
- "id": "src/interface.d.ts::ComponentProps",
1639
- "referenceLocation": "ComponentProps"
1640
- },
1641
- "RouterDirection": {
1642
- "location": "import",
1643
- "path": "../router/utils/interface",
1644
- "id": "src/components/router/utils/interface.ts::RouterDirection",
1645
- "referenceLocation": "RouterDirection"
1646
- },
1647
- "AnimationBuilder": {
1648
- "location": "import",
1649
- "path": "../../interface",
1650
- "id": "src/interface.d.ts::AnimationBuilder",
1651
- "referenceLocation": "AnimationBuilder"
1652
- },
1653
- "NavOptions": {
1654
- "location": "import",
1655
- "path": "./nav-interface",
1656
- "id": "src/components/nav/nav-interface.ts::NavOptions",
1657
- "referenceLocation": "NavOptions"
1658
- }
1659
- },
1660
- "return": "Promise<RouteWrite>"
1661
- },
1662
- "docs": {
1663
- "text": "Called by the router to update the view.",
1664
- "tags": [{
1665
- "name": "param",
1666
- "text": "id The component tag."
1667
- }, {
1668
- "name": "param",
1669
- "text": "params The component params."
1670
- }, {
1671
- "name": "param",
1672
- "text": "direction A direction hint."
1673
- }, {
1674
- "name": "param",
1675
- "text": "animation an AnimationBuilder."
1676
- }, {
1677
- "name": "return",
1678
- "text": "the status."
1679
- }, {
1680
- "name": "internal",
1681
- "text": undefined
1682
- }]
1683
- }
1684
- },
1685
- "getRouteId": {
1686
- "complexType": {
1687
- "signature": "() => Promise<RouteID | undefined>",
1688
- "parameters": [],
1689
- "references": {
1690
- "Promise": {
1691
- "location": "global",
1692
- "id": "global::Promise"
1693
- },
1694
- "RouteID": {
1695
- "location": "import",
1696
- "path": "../router/utils/interface",
1697
- "id": "src/components/router/utils/interface.ts::RouteID",
1698
- "referenceLocation": "RouteID"
1699
- }
1700
- },
1701
- "return": "Promise<RouteID | undefined>"
1702
- },
1703
- "docs": {
1704
- "text": "Called by <ion-router> to retrieve the current component.",
1705
- "tags": [{
1706
- "name": "internal",
1707
- "text": undefined
1708
- }]
1709
- }
1710
- },
1711
1496
  "getActive": {
1712
1497
  "complexType": {
1713
1498
  "signature": "() => Promise<ViewController | undefined>",
@@ -177,6 +177,21 @@
177
177
  }
178
178
  }
179
179
 
180
+ :host(.select-popover-rich-content) {
181
+ /**
182
+ * Rich content options (start/end slots, descriptions) need
183
+ * more horizontal space than the default fixed width provides,
184
+ * otherwise content gets cut off.
185
+ *
186
+ * A viewport-relative value is used instead of `auto` or
187
+ * `max-content` because the enter animation reads `--width`
188
+ * via getBoundingClientRect() before the first layout pass
189
+ * completes. Intrinsic values return 0 at that point and
190
+ * cause the popover to be positioned off-screen on first open.
191
+ */
192
+ --width: clamp(250px, calc(100vw - 40px), 400px);
193
+ }
194
+
180
195
  /**
181
196
  * Convert a font size to a dynamic font size.
182
197
  * Fonts that participate in Dynamic Type should use
@@ -7,7 +7,7 @@ import { CoreDelegate, attachComponent, detachComponent } from "../../utils/fram
7
7
  import { addEventListener, raf, hasLazyBuild } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
- import { BACKDROP, dismiss, eventMethod, prepareOverlay, present, setOverlayId, FOCUS_TRAP_DISABLE_CLASS, } from "../../utils/overlays";
10
+ import { BACKDROP, cleanupRootFocusTrapAccessibility, dismiss, eventMethod, FOCUS_TRAP_DISABLE_CLASS, prepareOverlay, present, setOverlayId, } from "../../utils/overlays";
11
11
  import { isPlatform } from "../../utils/platform";
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { deepReady, waitForMount } from "../../utils/transition/index";
@@ -229,6 +229,10 @@ export class Popover {
229
229
  this.headerResizeObserver.disconnect();
230
230
  this.headerResizeObserver = undefined;
231
231
  }
232
+ // Clean up aria-hidden if removed without dismiss() being called
233
+ if (this.presented) {
234
+ cleanupRootFocusTrapAccessibility();
235
+ }
232
236
  }
233
237
  componentWillLoad() {
234
238
  var _a, _b;
@@ -467,9 +471,9 @@ export class Popover {
467
471
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
468
472
  const desktop = isPlatform('desktop');
469
473
  const enableArrow = arrow && !parentPopover;
470
- return (h(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
474
+ return (h(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
471
475
  zIndex: `${20000 + this.overlayIndex}`,
472
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), h("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, h("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
476
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), h("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, h("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
473
477
  }
474
478
  static get is() { return "ion-popover"; }
475
479
  static get encapsulation() { return "shadow"; }
@@ -177,6 +177,21 @@
177
177
  }
178
178
  }
179
179
 
180
+ :host(.select-popover-rich-content) {
181
+ /**
182
+ * Rich content options (start/end slots, descriptions) need
183
+ * more horizontal space than the default fixed width provides,
184
+ * otherwise content gets cut off.
185
+ *
186
+ * A viewport-relative value is used instead of `auto` or
187
+ * `max-content` because the enter animation reads `--width`
188
+ * via getBoundingClientRect() before the first layout pass
189
+ * completes. Intrinsic values return 0 at that point and
190
+ * cause the popover to be positioned off-screen on first open.
191
+ */
192
+ --width: clamp(250px, calc(100vw - 40px), 400px);
193
+ }
194
+
180
195
  /**
181
196
  * Convert a font size to a dynamic font size.
182
197
  * Fonts that participate in Dynamic Type should use
@@ -43,7 +43,7 @@ export class ProgressBar {
43
43
  const mode = getIonMode(this);
44
44
  // If the progress is displayed as a solid bar.
45
45
  const progressSolid = buffer === 1;
46
- return (h(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
46
+ return (h(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
47
47
  [mode]: true,
48
48
  [`progress-bar-${type}`]: true,
49
49
  'progress-paused': paused,
@@ -136,7 +136,7 @@ export class Radio {
136
136
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
137
137
  const mode = getIonMode(this);
138
138
  const inItem = hostContext('ion-item', el);
139
- return (h(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
139
+ return (h(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
140
140
  [mode]: true,
141
141
  'in-item': inItem,
142
142
  'radio-checked': checked,
@@ -147,10 +147,10 @@ export class Radio {
147
147
  // Focus and active styling should not apply when the radio is in an item
148
148
  'ion-activatable': !inItem,
149
149
  'ion-focusable': !inItem,
150
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, h("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
150
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, h("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
151
151
  'label-text-wrapper': true,
152
152
  'label-text-wrapper-hidden': !hasLabel,
153
- }, part: "label" }, h("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), h("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
153
+ }, part: "label" }, h("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), h("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
154
154
  }
155
155
  static get is() { return "ion-radio"; }
156
156
  static get encapsulation() { return "shadow"; }
@@ -250,7 +250,7 @@ export class Radio {
250
250
  },
251
251
  "getter": false,
252
252
  "setter": false,
253
- "reflect": false,
253
+ "reflect": true,
254
254
  "attribute": "value"
255
255
  },
256
256
  "labelPlacement": {
@@ -769,7 +769,7 @@ export class Range {
769
769
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
770
770
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
771
771
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
772
- return (h(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
772
+ return (h(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
773
773
  [mode]: true,
774
774
  'in-item': inItem,
775
775
  'range-disabled': disabled,
@@ -783,10 +783,10 @@ export class Range {
783
783
  'range-item-end-adjustment': needsEndAdjustment,
784
784
  'range-value-min': valueAtMin,
785
785
  'range-value-max': valueAtMax,
786
- }) }, h("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, h("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
786
+ }) }, h("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, h("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
787
787
  'label-text-wrapper': true,
788
788
  'label-text-wrapper-hidden': !hasLabel,
789
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, h("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), h("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
789
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, h("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
790
790
  }
791
791
  static get is() { return "ion-range"; }
792
792
  static get encapsulation() { return "shadow"; }
@@ -716,7 +716,7 @@ export class Refresher {
716
716
  }
717
717
  render() {
718
718
  const mode = getIonMode(this);
719
- return (h(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
719
+ return (h(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
720
720
  [mode]: true,
721
721
  // Used internally for styling
722
722
  [`refresher-${mode}`]: true,
@@ -48,7 +48,7 @@ export class RefresherContent {
48
48
  const pullingIcon = this.pullingIcon;
49
49
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
50
50
  const mode = getIonMode(this);
51
- return (h(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, h("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, h("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, h("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, h("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, h("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
51
+ return (h(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, h("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, h("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, h("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, h("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, h("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
52
52
  }
53
53
  static get is() { return "ion-refresher-content"; }
54
54
  static get properties() {
@@ -20,7 +20,7 @@ export class Reorder {
20
20
  render() {
21
21
  const mode = getIonMode(this);
22
22
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
23
- return (h(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, h("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, h("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
23
+ return (h(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, h("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, h("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
24
24
  }
25
25
  static get is() { return "ion-reorder"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -253,7 +253,7 @@ export class ReorderGroup {
253
253
  }
254
254
  render() {
255
255
  const mode = getIonMode(this);
256
- return (h(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
256
+ return (h(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
257
257
  [mode]: true,
258
258
  'reorder-enabled': !this.disabled,
259
259
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -68,7 +68,7 @@ export class RippleEffect {
68
68
  }
69
69
  render() {
70
70
  const mode = getIonMode(this);
71
- return (h(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
71
+ return (h(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
72
72
  [mode]: true,
73
73
  unbounded: this.unbounded,
74
74
  } }));
@@ -67,7 +67,7 @@ export class Route {
67
67
  "optional": false,
68
68
  "docs": {
69
69
  "tags": [],
70
- "text": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-nav`)\nwhen the route matches.\n\nThe value of this property is not always the tagname of the component to load,\nin `ion-tabs` it actually refers to the name of the `ion-tab` to select."
70
+ "text": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-router-outlet`)\nwhen the route matches.\n\nThe value of this property is not always the tagname of the component to load,\nin `ion-tabs` it actually refers to the name of the `ion-tab` to select."
71
71
  },
72
72
  "getter": false,
73
73
  "setter": false,
@@ -1,9 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { Build } from "@stencil/core";
4
5
  import { findClosestIonContent, getScrollElement, isIonContent } from "../../../utils/content/index";
5
6
  import { componentOnReady, raf } from "../../../utils/helpers";
6
- import { printIonError } from "../../../utils/logging/index";
7
+ import { printIonError, printIonWarning } from "../../../utils/logging/index";
7
8
  import { ROUTER_INTENT_NONE } from "./constants";
8
9
  /**
9
10
  * Activates the passed route chain.
@@ -179,16 +180,34 @@ export const scrollToFragment = async (fragment, shouldContinue = () => true) =>
179
180
  return false;
180
181
  }
181
182
  };
183
+ /** How long the router waits for a navigation outlet before giving up and proceeding. */
184
+ const NAV_NODE_TIMEOUT = 500;
182
185
  export const waitUntilNavNode = () => {
183
186
  if (searchNavNode(document.body)) {
184
187
  return Promise.resolve();
185
188
  }
186
189
  return new Promise((resolve) => {
187
- window.addEventListener('ionNavWillLoad', () => resolve(), { once: true });
190
+ /**
191
+ * Outlets emit `ionNavWillLoad` as they load, so resolve as soon as one does.
192
+ * A timeout backstops the case where the page has no outlet at all: without it
193
+ * the router would wait forever and its `componentWillLoad` would never settle,
194
+ * which in turn prevents the app from signalling that it has finished loading.
195
+ */
196
+ const done = () => {
197
+ window.removeEventListener('ionNavWillLoad', done);
198
+ clearTimeout(timeout);
199
+ if (Build.isDev && !searchNavNode(document.body)) {
200
+ printIonWarning('[ion-router] - No outlet found. The router requires an ion-router-outlet or ion-tabs to render routed views. ' +
201
+ 'Note that as of Ionic 9 ion-nav is no longer a router outlet.');
202
+ }
203
+ resolve();
204
+ };
205
+ const timeout = setTimeout(done, NAV_NODE_TIMEOUT);
206
+ window.addEventListener('ionNavWillLoad', done, { once: true });
188
207
  });
189
208
  };
190
209
  /** Selector for all the outlets supported by the router. */
191
- const OUTLET_SELECTOR = ':not([no-router]) ion-nav, :not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
210
+ const OUTLET_SELECTOR = ':not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
192
211
  const searchNavNode = (root) => {
193
212
  if (!root) {
194
213
  return undefined;
@@ -22,10 +22,10 @@ export class RouterLink {
22
22
  rel: this.rel,
23
23
  target: this.target,
24
24
  };
25
- return (h(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses(this.color, {
25
+ return (h(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses(this.color, {
26
26
  [mode]: true,
27
27
  'ion-activatable': true,
28
- }) }, h("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), h("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
28
+ }) }, h("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), h("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
29
29
  }
30
30
  static get is() { return "ion-router-link"; }
31
31
  static get encapsulation() { return "shadow"; }