@ionic/core 8.7.6-dev.11761057729.1bfdf1ab → 8.7.6-dev.11761146245.19b2e6db

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 (513) hide show
  1. package/components/action-sheet.js +8 -6
  2. package/components/alert.js +8 -6
  3. package/components/backdrop.js +5 -3
  4. package/components/button.js +6 -4
  5. package/components/buttons.js +5 -3
  6. package/components/checkbox.js +5 -3
  7. package/components/content.js +5 -3
  8. package/components/data.js +9 -6
  9. package/components/header.js +5 -3
  10. package/components/icon.js +5 -3
  11. package/components/ion-accordion-group.js +5 -3
  12. package/components/ion-accordion.js +5 -3
  13. package/components/ion-app.js +5 -3
  14. package/components/ion-avatar.js +5 -3
  15. package/components/ion-back-button.js +6 -4
  16. package/components/ion-badge.js +5 -3
  17. package/components/ion-breadcrumb.js +6 -4
  18. package/components/ion-breadcrumbs.js +5 -3
  19. package/components/ion-card-content.js +5 -3
  20. package/components/ion-card-header.js +5 -3
  21. package/components/ion-card-subtitle.js +5 -3
  22. package/components/ion-card-title.js +5 -3
  23. package/components/ion-card.js +6 -4
  24. package/components/ion-chip.js +5 -3
  25. package/components/ion-col.js +5 -3
  26. package/components/ion-datetime-button.js +5 -3
  27. package/components/ion-datetime.js +9 -7
  28. package/components/ion-divider.js +5 -3
  29. package/components/ion-fab-button.js +6 -4
  30. package/components/ion-fab-list.js +5 -3
  31. package/components/ion-fab.js +5 -3
  32. package/components/ion-footer.js +5 -3
  33. package/components/ion-grid.js +5 -3
  34. package/components/ion-img.js +5 -3
  35. package/components/ion-infinite-scroll-content.js +5 -3
  36. package/components/ion-infinite-scroll.js +5 -3
  37. package/components/ion-input-otp.js +5 -3
  38. package/components/ion-input-password-toggle.js +5 -3
  39. package/components/ion-input.js +6 -4
  40. package/components/ion-item-divider.js +5 -3
  41. package/components/ion-item-group.js +5 -3
  42. package/components/ion-item-option.js +5 -3
  43. package/components/ion-item-options.js +5 -3
  44. package/components/ion-item-sliding.js +5 -3
  45. package/components/ion-loading.js +8 -6
  46. package/components/ion-menu-button.js +5 -3
  47. package/components/ion-menu-toggle.js +5 -3
  48. package/components/ion-menu.js +5 -3
  49. package/components/ion-nav-link.js +7 -5
  50. package/components/ion-nav.js +6 -4
  51. package/components/ion-note.js +5 -3
  52. package/components/ion-picker-legacy.js +8 -6
  53. package/components/ion-progress-bar.js +5 -3
  54. package/components/ion-range.js +6 -4
  55. package/components/ion-refresher-content.js +5 -3
  56. package/components/ion-refresher.js +5 -3
  57. package/components/ion-reorder-group.js +5 -3
  58. package/components/ion-reorder.js +5 -3
  59. package/components/ion-route-redirect.js +4 -2
  60. package/components/ion-route.js +7 -5
  61. package/components/ion-router-link.js +6 -4
  62. package/components/ion-router-outlet.js +6 -4
  63. package/components/ion-router.js +4 -2
  64. package/components/ion-row.js +5 -3
  65. package/components/ion-searchbar.js +5 -3
  66. package/components/ion-segment-button.js +5 -3
  67. package/components/ion-segment-content.js +5 -3
  68. package/components/ion-segment-view.js +5 -3
  69. package/components/ion-segment.js +5 -3
  70. package/components/ion-select-option.js +5 -3
  71. package/components/ion-select.js +5 -3
  72. package/components/ion-skeleton-text.js +5 -3
  73. package/components/ion-split-pane.js +5 -3
  74. package/components/ion-tab-bar.js +5 -3
  75. package/components/ion-tab-button.js +5 -3
  76. package/components/ion-tab.js +5 -3
  77. package/components/ion-tabs.js +5 -3
  78. package/components/ion-text.js +5 -3
  79. package/components/ion-textarea.js +6 -4
  80. package/components/ion-thumbnail.js +5 -3
  81. package/components/ion-toast.js +8 -6
  82. package/components/ion-toggle.js +5 -3
  83. package/components/item.js +7 -5
  84. package/components/label.js +5 -3
  85. package/components/list-header.js +5 -3
  86. package/components/list.js +5 -3
  87. package/components/modal.js +10 -8
  88. package/components/picker-column-option.js +5 -3
  89. package/components/picker-column.js +5 -3
  90. package/components/picker-column2.js +5 -3
  91. package/components/picker.js +5 -3
  92. package/components/popover.js +9 -7
  93. package/components/radio-group.js +5 -3
  94. package/components/radio.js +5 -3
  95. package/components/ripple-effect.js +5 -3
  96. package/components/select-modal.js +7 -5
  97. package/components/select-popover.js +7 -5
  98. package/components/spinner.js +5 -3
  99. package/components/title.js +5 -3
  100. package/components/toolbar.js +5 -3
  101. package/dist/cjs/{animation-Bcz4qmJk.js → animation-BYsP2q5j.js} +3 -2
  102. package/dist/cjs/app-globals-CrtAvKxl.js +10 -0
  103. package/dist/cjs/{button-active-1nO6qpCH.js → button-active-CDa7BeCl.js} +2 -2
  104. package/dist/cjs/{capacitor-CzFst28-.js → capacitor-BMhHF0O5.js} +3 -3
  105. package/dist/cjs/{config-DGKt4XfG.js → config-C5fsO43a.js} +1 -1
  106. package/dist/cjs/{data-B3i-krcw.js → data-MoL8Ckx5.js} +10 -7
  107. package/dist/cjs/{framework-delegate-DfEY5uyC.js → framework-delegate-Bwdk9vFS.js} +2 -2
  108. package/dist/cjs/{haptic-DbqPcCc9.js → haptic-Cy3moXzO.js} +1 -1
  109. package/dist/cjs/{helpers-DmAvmm2T.js → helpers-DnouLczu.js} +1 -1
  110. package/dist/cjs/{index-YEjC0pvJ.js → index-Bq6U5NAb.js} +8 -7
  111. package/dist/cjs/{index-CmckMMX1.js → index-D6Wc6v08.js} +310 -691
  112. package/dist/cjs/{index-CaZ3uzAD.js → index-DUoP_H1L.js} +2 -2
  113. package/dist/cjs/{index-DxVhwe3d.js → index-Dbl8V7hw.js} +4 -4
  114. package/dist/cjs/{index-DcPe_YcG.js → index-XjN3PjKG.js} +9 -8
  115. package/dist/cjs/index.cjs.js +15 -14
  116. package/dist/cjs/{input-shims-BwdlNkON.js → input-shims-D6DHFHsE.js} +17 -16
  117. package/dist/cjs/{input.utils-CfjyQhpu.js → input.utils-BVyJKWft.js} +4 -3
  118. package/dist/cjs/ion-accordion_2.cjs.entry.js +7 -6
  119. package/dist/cjs/ion-action-sheet.cjs.entry.js +11 -10
  120. package/dist/cjs/ion-alert.cjs.entry.js +14 -13
  121. package/dist/cjs/ion-app_8.cjs.entry.js +22 -21
  122. package/dist/cjs/ion-avatar_3.cjs.entry.js +9 -8
  123. package/dist/cjs/ion-back-button.cjs.entry.js +6 -5
  124. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -2
  125. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +7 -6
  126. package/dist/cjs/ion-button_2.cjs.entry.js +6 -5
  127. package/dist/cjs/ion-card_5.cjs.entry.js +8 -7
  128. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -3
  129. package/dist/cjs/ion-chip.cjs.entry.js +5 -4
  130. package/dist/cjs/ion-col_3.cjs.entry.js +5 -4
  131. package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -4
  132. package/dist/cjs/ion-datetime_3.cjs.entry.js +19 -18
  133. package/dist/cjs/ion-divider.cjs.entry.js +3 -2
  134. package/dist/cjs/ion-fab_3.cjs.entry.js +7 -6
  135. package/dist/cjs/ion-img.cjs.entry.js +4 -3
  136. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +8 -7
  137. package/dist/cjs/ion-input-otp.cjs.entry.js +4 -3
  138. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +5 -4
  139. package/dist/cjs/ion-input.cjs.entry.js +13 -12
  140. package/dist/cjs/ion-item-option_3.cjs.entry.js +8 -7
  141. package/dist/cjs/ion-item_8.cjs.entry.js +14 -13
  142. package/dist/cjs/ion-loading.cjs.entry.js +9 -8
  143. package/dist/cjs/ion-menu_3.cjs.entry.js +15 -14
  144. package/dist/cjs/ion-modal.cjs.entry.js +63 -62
  145. package/dist/cjs/ion-nav_2.cjs.entry.js +9 -8
  146. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -3
  147. package/dist/cjs/ion-picker-column.cjs.entry.js +9 -8
  148. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  149. package/dist/cjs/ion-popover.cjs.entry.js +10 -9
  150. package/dist/cjs/ion-progress-bar.cjs.entry.js +5 -4
  151. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -4
  152. package/dist/cjs/ion-range.cjs.entry.js +5 -4
  153. package/dist/cjs/ion-refresher_2.cjs.entry.js +15 -14
  154. package/dist/cjs/ion-reorder_2.cjs.entry.js +9 -8
  155. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -2
  156. package/dist/cjs/ion-route_4.cjs.entry.js +4 -3
  157. package/dist/cjs/ion-searchbar.cjs.entry.js +11 -10
  158. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  159. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  160. package/dist/cjs/ion-segment_2.cjs.entry.js +5 -4
  161. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -7
  162. package/dist/cjs/ion-select_3.cjs.entry.js +20 -19
  163. package/dist/cjs/ion-spinner.cjs.entry.js +5 -4
  164. package/dist/cjs/ion-split-pane.cjs.entry.js +3 -2
  165. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +10 -9
  166. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  167. package/dist/cjs/ion-text.cjs.entry.js +3 -2
  168. package/dist/cjs/ion-textarea.cjs.entry.js +9 -8
  169. package/dist/cjs/ion-toast.cjs.entry.js +14 -13
  170. package/dist/cjs/ion-toggle.cjs.entry.js +10 -9
  171. package/dist/cjs/ionic-global-DuRUel5m.js +491 -0
  172. package/dist/cjs/ionic.cjs.js +6 -4
  173. package/dist/cjs/{ios.transition-BMRClUxZ.js → ios.transition-2wtm_6Ok.js} +5 -4
  174. package/dist/cjs/{keyboard-nXDIskl9.js → keyboard-C1Ds9WQH.js} +4 -3
  175. package/dist/cjs/{keyboard-Chl5cusY.js → keyboard-UYQhk8rB.js} +1 -1
  176. package/dist/cjs/{keyboard-controller-yLvXRMuh.js → keyboard-controller-ts0z4BIe.js} +10 -9
  177. package/dist/cjs/loader.cjs.js +5 -3
  178. package/dist/cjs/{md.transition-D2ZL4jgW.js → md.transition-DCNdoS7u.js} +5 -4
  179. package/dist/cjs/{notch-controller-S50JyZJs.js → notch-controller-BX7CnNaL.js} +4 -4
  180. package/dist/cjs/{overlays-XYRfwd6H.js → overlays-pdcfssMG.js} +9 -8
  181. package/dist/cjs/{status-tap-DMaRrHIS.js → status-tap-e-hyosXV.js} +3 -3
  182. package/dist/cjs/{swipe-back-CEVlQT7C.js → swipe-back-CR060nOX.js} +2 -2
  183. package/dist/collection/collection-manifest.json +1 -1
  184. package/dist/collection/components/accordion/accordion.js +6 -6
  185. package/dist/collection/components/accordion-group/accordion-group.js +10 -10
  186. package/dist/collection/components/action-sheet/action-sheet.js +16 -21
  187. package/dist/collection/components/alert/alert.js +18 -24
  188. package/dist/collection/components/avatar/avatar.js +5 -5
  189. package/dist/collection/components/back-button/back-button.js +10 -11
  190. package/dist/collection/components/backdrop/backdrop.js +3 -3
  191. package/dist/collection/components/badge/badge.js +10 -10
  192. package/dist/collection/components/breadcrumb/breadcrumb.js +20 -21
  193. package/dist/collection/components/breadcrumbs/breadcrumbs.js +6 -6
  194. package/dist/collection/components/button/button.js +25 -26
  195. package/dist/collection/components/buttons/buttons.js +1 -1
  196. package/dist/collection/components/card/card.js +15 -16
  197. package/dist/collection/components/card-header/card-header.js +3 -3
  198. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  199. package/dist/collection/components/card-title/card-title.js +2 -2
  200. package/dist/collection/components/checkbox/checkbox.js +20 -20
  201. package/dist/collection/components/chip/chip.js +9 -9
  202. package/dist/collection/components/col/col.js +60 -60
  203. package/dist/collection/components/content/content.js +9 -9
  204. package/dist/collection/components/datetime/datetime.js +36 -40
  205. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  206. package/dist/collection/components/divider/divider.js +2 -2
  207. package/dist/collection/components/fab/fab.js +6 -6
  208. package/dist/collection/components/fab-button/fab-button.js +20 -21
  209. package/dist/collection/components/fab-list/fab-list.js +2 -2
  210. package/dist/collection/components/footer/footer.js +3 -3
  211. package/dist/collection/components/grid/grid.js +1 -1
  212. package/dist/collection/components/header/header.js +4 -4
  213. package/dist/collection/components/img/img.js +4 -4
  214. package/dist/collection/components/infinite-scroll/infinite-scroll.js +4 -4
  215. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +4 -4
  216. package/dist/collection/components/input/input.js +54 -55
  217. package/dist/collection/components/input-otp/input-otp.js +17 -17
  218. package/dist/collection/components/input-password-toggle/input-password-toggle.js +7 -7
  219. package/dist/collection/components/item/item.ionic.css +0 -5
  220. package/dist/collection/components/item/item.js +20 -21
  221. package/dist/collection/components/item-divider/item-divider.js +3 -3
  222. package/dist/collection/components/item-option/item-option.js +16 -16
  223. package/dist/collection/components/item-options/item-options.js +1 -1
  224. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  225. package/dist/collection/components/label/label.js +4 -4
  226. package/dist/collection/components/list/list.js +5 -5
  227. package/dist/collection/components/list-header/list-header.js +4 -4
  228. package/dist/collection/components/loading/loading.js +18 -22
  229. package/dist/collection/components/menu/menu.js +10 -10
  230. package/dist/collection/components/menu-button/menu-button.js +7 -7
  231. package/dist/collection/components/menu-toggle/menu-toggle.js +3 -3
  232. package/dist/collection/components/modal/modal.js +26 -33
  233. package/dist/collection/components/nav/nav.js +5 -8
  234. package/dist/collection/components/nav-link/nav-link.js +3 -5
  235. package/dist/collection/components/note/note.js +2 -2
  236. package/dist/collection/components/picker-column/picker-column.js +5 -5
  237. package/dist/collection/components/picker-column-option/picker-column-option.js +4 -4
  238. package/dist/collection/components/picker-legacy/picker.js +13 -19
  239. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -1
  240. package/dist/collection/components/popover/popover.js +28 -33
  241. package/dist/collection/components/progress-bar/progress-bar.js +8 -8
  242. package/dist/collection/components/radio/radio.js +11 -11
  243. package/dist/collection/components/radio-group/radio-group.js +10 -10
  244. package/dist/collection/components/range/range.js +19 -20
  245. package/dist/collection/components/refresher/refresher.js +6 -6
  246. package/dist/collection/components/refresher-content/refresher-content.js +8 -8
  247. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  248. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  249. package/dist/collection/components/route/route.js +3 -6
  250. package/dist/collection/components/route-redirect/route-redirect.js +4 -4
  251. package/dist/collection/components/router/router.js +2 -2
  252. package/dist/collection/components/router-link/router-link.js +9 -10
  253. package/dist/collection/components/router-outlet/router-outlet.js +2 -5
  254. package/dist/collection/components/searchbar/searchbar.js +35 -35
  255. package/dist/collection/components/segment/segment.js +8 -8
  256. package/dist/collection/components/segment-button/segment-button.js +6 -6
  257. package/dist/collection/components/segment-view/segment-view.js +1 -1
  258. package/dist/collection/components/select/select.js +37 -37
  259. package/dist/collection/components/select-modal/select-modal.js +4 -5
  260. package/dist/collection/components/select-option/select-option.js +3 -3
  261. package/dist/collection/components/select-popover/select-popover.js +8 -9
  262. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  263. package/dist/collection/components/spinner/spinner.js +9 -9
  264. package/dist/collection/components/split-pane/split-pane.js +4 -4
  265. package/dist/collection/components/tab/tab.js +5 -6
  266. package/dist/collection/components/tab-bar/tab-bar.js +8 -8
  267. package/dist/collection/components/tab-button/tab-button.js +16 -16
  268. package/dist/collection/components/tabs/tabs.js +1 -1
  269. package/dist/collection/components/text/text.js +2 -2
  270. package/dist/collection/components/textarea/textarea.js +43 -44
  271. package/dist/collection/components/title/title.js +4 -4
  272. package/dist/collection/components/toast/toast.js +29 -34
  273. package/dist/collection/components/toggle/toggle.js +17 -17
  274. package/dist/collection/components/toolbar/toolbar.js +2 -2
  275. package/dist/docs.json +2 -55
  276. package/dist/esm/{animation-Cgfm6Out.js → animation-DGDOQ6ES.js} +2 -1
  277. package/dist/esm/app-globals-BNKecRVD.js +8 -0
  278. package/dist/esm/{button-active-DvzVF2u_.js → button-active-C_l8DIlb.js} +2 -2
  279. package/dist/esm/{capacitor-Dvc8Ydvg.js → capacitor-CiBLEyrT.js} +1 -1
  280. package/dist/esm/{config-DwiPHIF5.js → config-mCdtaoPe.js} +1 -1
  281. package/dist/esm/{data-HHZs0eLV.js → data-DFCY8gnk.js} +10 -7
  282. package/dist/esm/{framework-delegate-B4Rily6A.js → framework-delegate-D2mUP0WI.js} +2 -2
  283. package/dist/esm/{haptic-ZZTn7IWt.js → haptic-7RTk38ue.js} +1 -1
  284. package/dist/esm/{helpers-D_90HVv6.js → helpers-Bsml3FcE.js} +1 -1
  285. package/dist/esm/{index-ByqmqxGO.js → index-BpFi2B8W.js} +2 -2
  286. package/dist/esm/{index-BBrR3goV.js → index-C8IsBmNU.js} +306 -681
  287. package/dist/esm/{index-D4D_NUAr.js → index-DWD4QoaP.js} +4 -3
  288. package/dist/esm/{index-BoSPzYKk.js → index-Djo-Eq70.js} +4 -4
  289. package/dist/esm/{index-k4x4i7EL.js → index-rXea6WR_.js} +3 -2
  290. package/dist/esm/index.js +11 -10
  291. package/dist/esm/{input-shims-DEtEJcaS.js → input-shims-Bz3HiPwU.js} +6 -5
  292. package/dist/esm/{input.utils-DNE0LB5g.js → input.utils-BQAE1QTA.js} +3 -2
  293. package/dist/esm/ion-accordion_2.entry.js +3 -2
  294. package/dist/esm/ion-action-sheet.entry.js +9 -8
  295. package/dist/esm/ion-alert.entry.js +10 -9
  296. package/dist/esm/ion-app_8.entry.js +10 -9
  297. package/dist/esm/ion-avatar_3.entry.js +2 -1
  298. package/dist/esm/ion-back-button.entry.js +3 -2
  299. package/dist/esm/ion-backdrop.entry.js +2 -1
  300. package/dist/esm/ion-breadcrumb_2.entry.js +3 -2
  301. package/dist/esm/ion-button_2.entry.js +3 -2
  302. package/dist/esm/ion-card_5.entry.js +3 -2
  303. package/dist/esm/ion-checkbox.entry.js +3 -2
  304. package/dist/esm/ion-chip.entry.js +2 -1
  305. package/dist/esm/ion-col_3.entry.js +2 -1
  306. package/dist/esm/ion-datetime-button.entry.js +4 -3
  307. package/dist/esm/ion-datetime_3.entry.js +9 -8
  308. package/dist/esm/ion-divider.entry.js +2 -1
  309. package/dist/esm/ion-fab_3.entry.js +3 -2
  310. package/dist/esm/ion-img.entry.js +3 -2
  311. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -4
  312. package/dist/esm/ion-input-otp.entry.js +3 -2
  313. package/dist/esm/ion-input-password-toggle.entry.js +2 -1
  314. package/dist/esm/ion-input.entry.js +5 -4
  315. package/dist/esm/ion-item-option_3.entry.js +4 -3
  316. package/dist/esm/ion-item_8.entry.js +4 -3
  317. package/dist/esm/ion-loading.entry.js +7 -6
  318. package/dist/esm/ion-menu_3.entry.js +7 -6
  319. package/dist/esm/ion-modal.entry.js +11 -10
  320. package/dist/esm/ion-nav_2.entry.js +6 -5
  321. package/dist/esm/ion-picker-column-option.entry.js +3 -2
  322. package/dist/esm/ion-picker-column.entry.js +5 -4
  323. package/dist/esm/ion-picker.entry.js +2 -2
  324. package/dist/esm/ion-popover.entry.js +7 -6
  325. package/dist/esm/ion-progress-bar.entry.js +3 -2
  326. package/dist/esm/ion-radio_2.entry.js +3 -2
  327. package/dist/esm/ion-range.entry.js +4 -3
  328. package/dist/esm/ion-refresher_2.entry.js +8 -7
  329. package/dist/esm/ion-reorder_2.entry.js +6 -5
  330. package/dist/esm/ion-ripple-effect.entry.js +2 -1
  331. package/dist/esm/ion-route_4.entry.js +3 -2
  332. package/dist/esm/ion-searchbar.entry.js +3 -2
  333. package/dist/esm/ion-segment-content.entry.js +1 -1
  334. package/dist/esm/ion-segment-view.entry.js +1 -1
  335. package/dist/esm/ion-segment_2.entry.js +3 -2
  336. package/dist/esm/ion-select-modal.entry.js +7 -6
  337. package/dist/esm/ion-select_3.entry.js +8 -7
  338. package/dist/esm/ion-spinner.entry.js +2 -1
  339. package/dist/esm/ion-split-pane.entry.js +2 -1
  340. package/dist/esm/ion-tab-bar_2.entry.js +6 -5
  341. package/dist/esm/ion-tab_2.entry.js +3 -3
  342. package/dist/esm/ion-text.entry.js +2 -1
  343. package/dist/esm/ion-textarea.entry.js +5 -4
  344. package/dist/esm/ion-toast.entry.js +7 -6
  345. package/dist/esm/ion-toggle.entry.js +5 -4
  346. package/dist/esm/ionic-global-2R0iPB51.js +480 -0
  347. package/dist/esm/ionic.js +6 -4
  348. package/dist/esm/{ios.transition-C_-UP8wE.js → ios.transition-cQ5XYp4s.js} +5 -4
  349. package/dist/esm/{keyboard-BsZp3qPH.js → keyboard-DuUgrXrK.js} +4 -3
  350. package/dist/esm/{keyboard-Cvigb3Rv.js → keyboard-WCK1pWfR.js} +1 -1
  351. package/dist/esm/{keyboard-controller-lts2Pswq.js → keyboard-controller-Bc4alOiF.js} +3 -2
  352. package/dist/esm/loader.js +5 -3
  353. package/dist/esm/{md.transition-BDWkLsNw.js → md.transition-CYFYc3-3.js} +5 -4
  354. package/dist/esm/{notch-controller-ClKrf2l9.js → notch-controller-DO30Bsls.js} +2 -2
  355. package/dist/esm/{overlays-C1ahtepl.js → overlays-Da_6xSKI.js} +4 -3
  356. package/dist/esm/{status-tap-DLatL9pG.js → status-tap-DXVlluKS.js} +3 -3
  357. package/dist/esm/{swipe-back-YYylMb0l.js → swipe-back-DNhAt9fY.js} +2 -2
  358. package/dist/html.html-data.json +0 -212
  359. package/dist/ionic/index.esm.js +1 -1
  360. package/dist/ionic/ionic.esm.js +1 -1
  361. package/dist/ionic/p--8Ga2Cg0.js +4 -0
  362. package/dist/ionic/p-16c5a01c.entry.js +4 -0
  363. package/dist/ionic/p-1f981d06.entry.js +4 -0
  364. package/dist/ionic/p-22c02aea.entry.js +4 -0
  365. package/dist/ionic/p-23e4b68a.entry.js +4 -0
  366. package/dist/ionic/p-28571945.entry.js +4 -0
  367. package/dist/ionic/p-2bab0853.entry.js +4 -0
  368. package/dist/ionic/p-2e19a4dd.entry.js +4 -0
  369. package/dist/ionic/p-2e900f67.entry.js +4 -0
  370. package/dist/ionic/p-3622a9ea.entry.js +4 -0
  371. package/dist/ionic/p-3a6a92ab.entry.js +4 -0
  372. package/dist/ionic/{p-c428cbac.entry.js → p-3cb3d194.entry.js} +1 -1
  373. package/dist/ionic/p-418e4330.entry.js +4 -0
  374. package/dist/ionic/p-4261dc5d.entry.js +4 -0
  375. package/dist/ionic/p-4e13d498.entry.js +4 -0
  376. package/dist/ionic/p-55e2352e.entry.js +4 -0
  377. package/dist/ionic/p-56a9319e.entry.js +4 -0
  378. package/dist/ionic/{p-6ea34add.entry.js → p-59a79bd9.entry.js} +1 -1
  379. package/dist/ionic/p-59e6c978.entry.js +4 -0
  380. package/dist/ionic/p-642b022d.entry.js +4 -0
  381. package/dist/ionic/p-64385b66.entry.js +4 -0
  382. package/dist/ionic/p-66397fac.entry.js +4 -0
  383. package/dist/ionic/p-66d094b2.entry.js +4 -0
  384. package/dist/ionic/p-6fac73e6.entry.js +4 -0
  385. package/dist/ionic/p-7d450184.entry.js +4 -0
  386. package/dist/ionic/p-81770a5c.entry.js +4 -0
  387. package/dist/ionic/p-844bd58c.entry.js +4 -0
  388. package/dist/ionic/p-86b82096.entry.js +4 -0
  389. package/dist/ionic/p-87678140.entry.js +4 -0
  390. package/dist/ionic/p-88ef6829.entry.js +4 -0
  391. package/dist/ionic/{p-ae10fb4c.entry.js → p-89743bba.entry.js} +1 -1
  392. package/dist/ionic/p-90320028.entry.js +4 -0
  393. package/dist/ionic/p-916685a9.entry.js +4 -0
  394. package/dist/ionic/p-91966afa.entry.js +4 -0
  395. package/dist/ionic/p-B-N4FEiY.js +4 -0
  396. package/dist/ionic/p-B3uz75uZ.js +4 -0
  397. package/dist/ionic/p-BRd1Ag6P.js +4 -0
  398. package/dist/ionic/p-BbT4IAlw.js +4 -0
  399. package/dist/ionic/{p-BZSKvxFv.js → p-BiTKUjko.js} +1 -1
  400. package/dist/ionic/p-C8IsBmNU.js +5 -0
  401. package/dist/ionic/p-CK1xn1Nt.js +4 -0
  402. package/dist/ionic/p-CK4YXTyz.js +4 -0
  403. package/dist/ionic/p-CeO9Shc9.js +4 -0
  404. package/dist/ionic/p-Cm5sQeXL.js +4 -0
  405. package/dist/ionic/{p-DIZM2shZ.js → p-DBaOCAfc.js} +1 -1
  406. package/dist/ionic/p-DHCQ1qFC.js +4 -0
  407. package/dist/ionic/p-DPNSAVjP.js +4 -0
  408. package/dist/ionic/p-D_8SMvQ3.js +4 -0
  409. package/dist/ionic/p-DbQ5QkTP.js +4 -0
  410. package/dist/ionic/p-DdaOdN_z.js +4 -0
  411. package/dist/ionic/p-Dq8ap6AD.js +4 -0
  412. package/dist/ionic/p-Dv5UHqHj.js +4 -0
  413. package/dist/ionic/{p-BuAY53fC.js → p-DxFexTIr.js} +1 -1
  414. package/dist/ionic/{p-BaAcx1TO.js → p-DyaKZbAH.js} +1 -1
  415. package/dist/ionic/{p-D-g7JYuH.js → p-HpOiAvpC.js} +1 -1
  416. package/dist/ionic/{p-Bi_aZreq.js → p-Q7JLYEUZ.js} +1 -1
  417. package/dist/ionic/p-W-2TssC9.js +4 -0
  418. package/dist/ionic/p-a1128f7f.entry.js +4 -0
  419. package/dist/ionic/p-a57c0cce.entry.js +4 -0
  420. package/dist/ionic/p-acb9905c.entry.js +4 -0
  421. package/dist/ionic/p-b2291ef0.entry.js +4 -0
  422. package/dist/ionic/p-b26aeaf8.entry.js +4 -0
  423. package/dist/ionic/p-bf461512.entry.js +4 -0
  424. package/dist/ionic/p-c289efa5.entry.js +4 -0
  425. package/dist/ionic/p-c2f738d2.entry.js +4 -0
  426. package/dist/ionic/p-c775e3c0.entry.js +4 -0
  427. package/dist/ionic/p-ce510c06.entry.js +4 -0
  428. package/dist/ionic/p-cea1ee31.entry.js +4 -0
  429. package/dist/ionic/p-d1c60c1c.entry.js +4 -0
  430. package/dist/ionic/p-db90b95a.entry.js +4 -0
  431. package/dist/ionic/p-dcfb2b1d.entry.js +4 -0
  432. package/dist/ionic/p-e2171c27.entry.js +4 -0
  433. package/dist/ionic/p-e28d6a81.entry.js +4 -0
  434. package/dist/ionic/p-ec02238a.entry.js +4 -0
  435. package/dist/ionic/p-ecc8aebb.entry.js +4 -0
  436. package/dist/ionic/p-f3de58bd.entry.js +4 -0
  437. package/dist/ionic/p-ff757a50.entry.js +4 -0
  438. package/dist/ionic/p-szCM2gDt.js +4 -0
  439. package/dist/ionic/p-vpXGWZiy.js +4 -0
  440. package/dist/types/stencil-public-runtime.d.ts +51 -7
  441. package/hydrate/index.d.ts +2 -0
  442. package/hydrate/index.js +543 -345
  443. package/hydrate/index.mjs +543 -345
  444. package/package.json +2 -2
  445. package/dist/ionic/p-034ef39b.entry.js +0 -4
  446. package/dist/ionic/p-05030d1b.entry.js +0 -4
  447. package/dist/ionic/p-059ceab8.entry.js +0 -4
  448. package/dist/ionic/p-096b5789.entry.js +0 -4
  449. package/dist/ionic/p-09eaefc0.entry.js +0 -4
  450. package/dist/ionic/p-156bba30.entry.js +0 -4
  451. package/dist/ionic/p-238ad727.entry.js +0 -4
  452. package/dist/ionic/p-2c28e54a.entry.js +0 -4
  453. package/dist/ionic/p-2c9459f5.entry.js +0 -4
  454. package/dist/ionic/p-2f1d100c.entry.js +0 -4
  455. package/dist/ionic/p-31331fc3.entry.js +0 -4
  456. package/dist/ionic/p-340e4f62.entry.js +0 -4
  457. package/dist/ionic/p-3bef3778.entry.js +0 -4
  458. package/dist/ionic/p-3c773ecd.entry.js +0 -4
  459. package/dist/ionic/p-47432157.entry.js +0 -4
  460. package/dist/ionic/p-52535bba.entry.js +0 -4
  461. package/dist/ionic/p-56e51161.entry.js +0 -4
  462. package/dist/ionic/p-5770869f.entry.js +0 -4
  463. package/dist/ionic/p-5af619ff.entry.js +0 -4
  464. package/dist/ionic/p-5b44ac3a.entry.js +0 -4
  465. package/dist/ionic/p-5ca4c3b8.entry.js +0 -4
  466. package/dist/ionic/p-6469a540.entry.js +0 -4
  467. package/dist/ionic/p-649e2f92.entry.js +0 -4
  468. package/dist/ionic/p-6d38d3f3.entry.js +0 -4
  469. package/dist/ionic/p-6e6ce506.entry.js +0 -4
  470. package/dist/ionic/p-6f17f8ed.entry.js +0 -4
  471. package/dist/ionic/p-80cc8511.entry.js +0 -4
  472. package/dist/ionic/p-82796bb0.entry.js +0 -4
  473. package/dist/ionic/p-8b236d62.entry.js +0 -4
  474. package/dist/ionic/p-8c3d3bca.entry.js +0 -4
  475. package/dist/ionic/p-9000bd9f.entry.js +0 -4
  476. package/dist/ionic/p-9cbab197.entry.js +0 -4
  477. package/dist/ionic/p-BJ-EYogw.js +0 -4
  478. package/dist/ionic/p-BKDxK6_S.js +0 -4
  479. package/dist/ionic/p-BMPzyWDm.js +0 -4
  480. package/dist/ionic/p-BTqHM5hg.js +0 -4
  481. package/dist/ionic/p-BZR5I9yn.js +0 -4
  482. package/dist/ionic/p-BeJdFlAB.js +0 -4
  483. package/dist/ionic/p-BpUl-Ubc.js +0 -4
  484. package/dist/ionic/p-CnPZjTVf.js +0 -4
  485. package/dist/ionic/p-D6quDhlh.js +0 -4
  486. package/dist/ionic/p-DJD59Sq4.js +0 -4
  487. package/dist/ionic/p-DZmL55Qn.js +0 -4
  488. package/dist/ionic/p-DjxV6ul_.js +0 -4
  489. package/dist/ionic/p-DkXsr7m2.js +0 -4
  490. package/dist/ionic/p-DnNglnwY.js +0 -4
  491. package/dist/ionic/p-Dpa-63kX.js +0 -4
  492. package/dist/ionic/p-HOJ_eq4V.js +0 -5
  493. package/dist/ionic/p-MBiM0IFp.js +0 -4
  494. package/dist/ionic/p-a1af546a.entry.js +0 -4
  495. package/dist/ionic/p-a2218a8b.entry.js +0 -4
  496. package/dist/ionic/p-a22b46e4.entry.js +0 -4
  497. package/dist/ionic/p-c2122301.entry.js +0 -4
  498. package/dist/ionic/p-c565e353.entry.js +0 -4
  499. package/dist/ionic/p-c6301ef9.entry.js +0 -4
  500. package/dist/ionic/p-c83a1254.entry.js +0 -4
  501. package/dist/ionic/p-c9313bb8.entry.js +0 -4
  502. package/dist/ionic/p-cb6bb34f.entry.js +0 -4
  503. package/dist/ionic/p-d215bbdc.entry.js +0 -4
  504. package/dist/ionic/p-de6964a2.entry.js +0 -4
  505. package/dist/ionic/p-ded5613d.entry.js +0 -4
  506. package/dist/ionic/p-e0eae83d.entry.js +0 -4
  507. package/dist/ionic/p-e5005342.entry.js +0 -4
  508. package/dist/ionic/p-e7925263.entry.js +0 -4
  509. package/dist/ionic/p-eZzo_1L1.js +0 -4
  510. package/dist/ionic/p-eebf0420.entry.js +0 -4
  511. package/dist/ionic/p-f1bb4947.entry.js +0 -4
  512. package/dist/ionic/p-facf3c23.entry.js +0 -4
  513. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -143
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const NAMESPACE = 'ionic';
7
- const BUILD = /* ionic */ { experimentalSlotFixes: true, hydratedSelectorName: "hydrated", lazyLoad: true, shadowDom: true, slotRelocation: true, updatable: true};
7
+ const BUILD = /* ionic */ { experimentalSlotFixes: true, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, shadowDom: true, slotRelocation: true, updatable: true};
8
8
 
9
9
  // TODO(FW-2832): types
10
10
  class Config {
@@ -123,485 +123,8 @@ const printRequiredElementError = (el, ...targetSelectors) => {
123
123
  return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
124
124
  };
125
125
 
126
- const win$1 = typeof window !== 'undefined' ? window : undefined;
127
- const doc = typeof document !== 'undefined' ? document : undefined;
128
-
129
- /**
130
- * CloseWatcher is a newer API that lets
131
- * use detect the hardware back button event
132
- * in a web browser: https://caniuse.com/?search=closewatcher
133
- * However, not every browser supports it yet.
134
- *
135
- * This needs to be a function so that we can
136
- * check the config once it has been set.
137
- * Otherwise, this code would be evaluated the
138
- * moment this file is evaluated which could be
139
- * before the config is set.
140
- */
141
- const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win$1 !== undefined && 'CloseWatcher' in win$1;
142
- /**
143
- * When hardwareBackButton: false in config,
144
- * we need to make sure we also block the default
145
- * webview behavior. If we don't then it will be
146
- * possible for users to navigate backward while
147
- * an overlay is still open. Additionally, it will
148
- * give the appearance that the hardwareBackButton
149
- * config is not working as the page transition
150
- * will still happen.
151
- */
152
- const blockHardwareBackButton = () => {
153
- document.addEventListener('backbutton', () => { }); // eslint-disable-line
154
- };
155
- const startHardwareBackButton = () => {
156
- const doc = document;
157
- let busy = false;
158
- const backButtonCallback = () => {
159
- if (busy) {
160
- return;
161
- }
162
- let index = 0;
163
- let handlers = [];
164
- const ev = new CustomEvent('ionBackButton', {
165
- bubbles: false,
166
- detail: {
167
- register(priority, handler) {
168
- handlers.push({ priority, handler, id: index++ });
169
- },
170
- },
171
- });
172
- doc.dispatchEvent(ev);
173
- const executeAction = async (handlerRegister) => {
174
- try {
175
- if (handlerRegister === null || handlerRegister === void 0 ? void 0 : handlerRegister.handler) {
176
- const result = handlerRegister.handler(processHandlers);
177
- if (result != null) {
178
- await result;
179
- }
180
- }
181
- }
182
- catch (e) {
183
- printIonError('[ion-app] - Exception in startHardwareBackButton:', e);
184
- }
185
- };
186
- const processHandlers = () => {
187
- if (handlers.length > 0) {
188
- let selectedHandler = {
189
- priority: Number.MIN_SAFE_INTEGER,
190
- handler: () => undefined,
191
- id: -1,
192
- };
193
- handlers.forEach((handler) => {
194
- if (handler.priority >= selectedHandler.priority) {
195
- selectedHandler = handler;
196
- }
197
- });
198
- busy = true;
199
- handlers = handlers.filter((handler) => handler.id !== selectedHandler.id);
200
- executeAction(selectedHandler).then(() => (busy = false));
201
- }
202
- };
203
- processHandlers();
204
- };
205
- /**
206
- * If the CloseWatcher is defined then
207
- * we don't want to also listen for the native
208
- * backbutton event otherwise we may get duplicate
209
- * events firing.
210
- */
211
- if (shouldUseCloseWatcher()) {
212
- let watcher;
213
- const configureWatcher = () => {
214
- watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
215
- watcher = new win$1.CloseWatcher();
216
- /**
217
- * Once a close request happens
218
- * the watcher gets destroyed.
219
- * As a result, we need to re-configure
220
- * the watcher so we can respond to other
221
- * close requests.
222
- */
223
- watcher.onclose = () => {
224
- backButtonCallback();
225
- configureWatcher();
226
- };
227
- };
228
- configureWatcher();
229
- }
230
- else {
231
- doc.addEventListener('backbutton', backButtonCallback);
232
- }
233
- };
234
- const OVERLAY_BACK_BUTTON_PRIORITY = 100;
235
- const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
236
-
237
- var hardwareBackButton = /*#__PURE__*/Object.freeze({
238
- __proto__: null,
239
- MENU_BACK_BUTTON_PRIORITY: MENU_BACK_BUTTON_PRIORITY,
240
- OVERLAY_BACK_BUTTON_PRIORITY: OVERLAY_BACK_BUTTON_PRIORITY,
241
- blockHardwareBackButton: blockHardwareBackButton,
242
- shouldUseCloseWatcher: shouldUseCloseWatcher,
243
- startHardwareBackButton: startHardwareBackButton
244
- });
245
-
246
- const getPlatforms = (win) => setupPlatforms(win);
247
- const isPlatform = (winOrPlatform, platform) => {
248
- if (typeof winOrPlatform === 'string') {
249
- platform = winOrPlatform;
250
- winOrPlatform = undefined;
251
- }
252
- return getPlatforms(winOrPlatform).includes(platform);
253
- };
254
- const setupPlatforms = (win = window) => {
255
- if (typeof win === 'undefined') {
256
- return [];
257
- }
258
- win.Ionic = win.Ionic || {};
259
- let platforms = win.Ionic.platforms;
260
- if (platforms == null) {
261
- platforms = win.Ionic.platforms = detectPlatforms(win);
262
- platforms.forEach((p) => win.document.documentElement.classList.add(`plt-${p}`));
263
- }
264
- return platforms;
265
- };
266
- const detectPlatforms = (win) => {
267
- const customPlatformMethods = config.get('platform');
268
- return Object.keys(PLATFORMS_MAP).filter((p) => {
269
- const customMethod = customPlatformMethods === null || customPlatformMethods === void 0 ? void 0 : customPlatformMethods[p];
270
- return typeof customMethod === 'function' ? customMethod(win) : PLATFORMS_MAP[p](win);
271
- });
272
- };
273
- const isMobileWeb = (win) => isMobile(win) && !isHybrid(win);
274
- const isIpad = (win) => {
275
- // iOS 12 and below
276
- if (testUserAgent(win, /iPad/i)) {
277
- return true;
278
- }
279
- // iOS 13+
280
- if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
281
- return true;
282
- }
283
- return false;
284
- };
285
- const isIphone = (win) => testUserAgent(win, /iPhone/i);
286
- const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
287
- const isAndroid = (win) => testUserAgent(win, /android|sink/i);
288
- const isAndroidTablet = (win) => {
289
- return isAndroid(win) && !testUserAgent(win, /mobile/i);
290
- };
291
- const isPhablet = (win) => {
292
- const width = win.innerWidth;
293
- const height = win.innerHeight;
294
- const smallest = Math.min(width, height);
295
- const largest = Math.max(width, height);
296
- return smallest > 390 && smallest < 520 && largest > 620 && largest < 800;
297
- };
298
- const isTablet = (win) => {
299
- const width = win.innerWidth;
300
- const height = win.innerHeight;
301
- const smallest = Math.min(width, height);
302
- const largest = Math.max(width, height);
303
- return isIpad(win) || isAndroidTablet(win) || (smallest > 460 && smallest < 820 && largest > 780 && largest < 1400);
304
- };
305
- const isMobile = (win) => matchMedia(win, '(any-pointer:coarse)');
306
- const isDesktop = (win) => !isMobile(win);
307
- const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
308
- const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
309
- const isCapacitorNative = (win) => {
310
- const capacitor = win['Capacitor'];
311
- // TODO(ROU-11693): Remove when we no longer support Capacitor 2, which does not have isNativePlatform
312
- return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
313
- };
314
- const isElectron = (win) => testUserAgent(win, /electron/i);
315
- const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
316
- const testUserAgent = (win, expr) => expr.test(win.navigator.userAgent);
317
- const matchMedia = (win, query) => { var _a; return (_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, query).matches; };
318
- const PLATFORMS_MAP = {
319
- ipad: isIpad,
320
- iphone: isIphone,
321
- ios: isIOS,
322
- android: isAndroid,
323
- phablet: isPhablet,
324
- tablet: isTablet,
325
- cordova: isCordova,
326
- capacitor: isCapacitorNative,
327
- electron: isElectron,
328
- pwa: isPWA,
329
- mobile: isMobile,
330
- mobileweb: isMobileWeb,
331
- desktop: isDesktop,
332
- hybrid: isHybrid,
333
- };
334
-
335
- let defaultMode;
336
- let defaultTheme = 'md';
337
- /**
338
- * Prints a warning message to the developer to inform them of
339
- * an invalid configuration of mode and theme.
340
- * @param mode The invalid mode configuration.
341
- * @param theme The invalid theme configuration.
342
- */
343
- const printInvalidModeWarning = (mode, theme, ref) => {
344
- printIonWarning(`Invalid mode and theme combination provided: mode: ${mode}, theme: ${theme}. Fallback mode ${getDefaultModeForTheme(theme)} will be used.`, ref);
345
- };
346
- /**
347
- * Validates if a mode is accepted for a theme configuration.
348
- * @param mode The mode to validate.
349
- * @param theme The theme the mode is being used with.
350
- * @returns `true` if the mode is valid for the theme, `false` if invalid.
351
- */
352
- const isModeValidForTheme = (mode, theme) => {
353
- if (mode === 'md') {
354
- return theme === 'md' || theme === 'ionic';
355
- }
356
- else if (mode === 'ios') {
357
- return theme === 'ios' || theme === 'ionic';
358
- }
359
- return false;
360
- };
361
- /**
362
- * Returns the default mode for a specified theme.
363
- * @param theme The theme to return a default mode for.
364
- * @returns The default mode, either `ios` or `md`.
365
- */
366
- const getDefaultModeForTheme = (theme) => {
367
- if (theme === 'ios') {
368
- return 'ios';
369
- }
370
- return 'md';
371
- };
372
- /**
373
- * Returns the default theme for a specified mode.
374
- * @param mode The mode to return a default theme for.
375
- * @returns The default theme.
376
- */
377
- const getDefaultThemeForMode = (mode) => {
378
- if (mode === 'ios') {
379
- return 'ios';
380
- }
381
- return 'md';
382
- };
383
- const isModeSupported = (elmMode) => ['ios', 'md'].includes(elmMode);
384
- const isThemeSupported = (theme) => ['ios', 'md', 'ionic'].includes(theme);
385
- const isIonicElement = (elm) => { var _a; return (_a = elm.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('ION-'); };
386
- /**
387
- * Returns the mode value of the element reference or the closest
388
- * parent with a valid mode.
389
- * @param ref The element reference to look up the mode for.
390
- * @param theme Optionally can provide the theme to avoid an additional look-up.
391
- * @returns The mode value for the element reference.
392
- */
393
- const getIonMode = (ref, theme = getIonTheme(ref)) => {
394
- var _a;
395
- if ((ref === null || ref === void 0 ? void 0 : ref.mode) && isModeValidForTheme(ref === null || ref === void 0 ? void 0 : ref.mode, theme)) {
396
- /**
397
- * If the reference already has a mode configuration,
398
- * use it instead of performing a look-up.
399
- */
400
- return ref.mode;
401
- }
402
- else {
403
- const el = getElement(ref);
404
- const mode = ((_a = el.closest('[mode]')) === null || _a === void 0 ? void 0 : _a.getAttribute('mode')) || defaultMode;
405
- if (isModeValidForTheme(mode, theme)) {
406
- /**
407
- * The mode configuration is supported for the configured theme.
408
- */
409
- return mode;
410
- }
411
- else {
412
- printInvalidModeWarning(mode, theme, ref);
413
- }
414
- }
415
- return getDefaultModeForTheme(theme);
416
- };
417
- /**
418
- * Returns the theme value of the element reference or the closest
419
- * parent with a valid theme.
420
- *
421
- * @param ref The element reference to look up the theme for.
422
- * @returns The theme value for the element reference, defaults to
423
- * the default theme if it cannot be determined.
424
- */
425
- const getIonTheme = (ref) => {
426
- var _a, _b;
427
- const theme = ref && getMode(ref);
428
- if (theme) {
429
- return theme;
430
- }
431
- /**
432
- * If the theme cannot be detected, then fallback to using
433
- * the `mode` attribute to determine the style sheets to use.
434
- */
435
- const el = getElement(ref);
436
- const mode = (_a = ref === null || ref === void 0 ? void 0 : ref.mode) !== null && _a !== void 0 ? _a : (_b = el.closest('[mode]')) === null || _b === void 0 ? void 0 : _b.getAttribute('mode');
437
- if (mode) {
438
- return getDefaultThemeForMode(mode);
439
- }
440
- /**
441
- * If a mode is not detected, then fallback to using the
442
- * default theme.
443
- */
444
- return defaultTheme;
445
- };
446
- const rIC = (callback) => {
447
- if ('requestIdleCallback' in window) {
448
- window.requestIdleCallback(callback);
449
- }
450
- else {
451
- setTimeout(callback, 32);
452
- }
453
- };
454
- const needInputShims = () => {
455
- /**
456
- * iOS always needs input shims
457
- */
458
- const needsShimsIOS = isPlatform(window, 'ios') && isPlatform(window, 'mobile');
459
- if (needsShimsIOS) {
460
- return true;
461
- }
462
- /**
463
- * Android only needs input shims when running
464
- * in the browser and only if the browser is using the
465
- * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
466
- */
467
- const isAndroidMobileWeb = isPlatform(window, 'android') && isPlatform(window, 'mobileweb');
468
- if (isAndroidMobileWeb) {
469
- return true;
470
- }
471
- return false;
472
- };
473
- const initialize = (userConfig = {}) => {
474
- if (typeof window === 'undefined') {
475
- return;
476
- }
477
- const doc = window.document;
478
- const win = window;
479
- const Ionic = (win.Ionic = win.Ionic || {});
480
- // create the Ionic.config from raw config object (if it exists)
481
- // and convert Ionic.config into a ConfigApi that has a get() fn
482
- const configObj = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, configFromSession(win)), { persistConfig: false }), Ionic.config), configFromURL(win)), userConfig);
483
- config.reset(configObj);
484
- if (config.getBoolean('persistConfig')) {
485
- saveConfig(win, configObj);
486
- }
487
- // Setup platforms
488
- setupPlatforms(win);
489
- Ionic.config = config;
490
- /**
491
- * Check if the mode was set as an attribute on <html>
492
- * which could have been set by the user, or by pre-rendering
493
- * otherwise get the mode via config settings, and fallback to md.
494
- */
495
- Ionic.mode = defaultMode = config.get('mode', doc.documentElement.getAttribute('mode') || (isPlatform(win, 'ios') ? 'ios' : 'md'));
496
- /**
497
- * Check if the theme was set as an attribute on <html>
498
- * which could have been set by the user, or by pre-rendering
499
- * otherwise get the theme via config settings, and fallback to md.
500
- */
501
- Ionic.theme = defaultTheme = config.get('theme', doc.documentElement.getAttribute('theme') || getDefaultThemeForMode(defaultMode));
502
- if (!isModeValidForTheme(defaultMode, defaultTheme)) {
503
- printInvalidModeWarning(defaultMode, defaultTheme, configObj);
504
- defaultMode = getDefaultModeForTheme(defaultTheme);
505
- }
506
- config.set('mode', defaultMode);
507
- doc.documentElement.setAttribute('mode', defaultMode);
508
- doc.documentElement.classList.add(defaultMode);
509
- config.set('theme', defaultTheme);
510
- doc.documentElement.setAttribute('theme', defaultTheme);
511
- doc.documentElement.classList.add(defaultTheme);
512
- if (config.getBoolean('_testing')) {
513
- config.set('animated', false);
514
- }
515
- setMode((elm) => {
516
- /**
517
- * Iterate over all the element nodes, to both validate and
518
- * set the "mode" that is used for determining the styles to
519
- * apply to the element.
520
- *
521
- * setMode refers to Stencil's internal metadata for "mode",
522
- * which is used to set the correct styleUrl for the component.
523
- *
524
- * If the "theme" attribute or property is set, then use it
525
- * to determine the style sheets to use.
526
- *
527
- * If the "mode" attribute or property is set, then use it
528
- * to determine the style sheets to use. This is fallback
529
- * behavior for applications that are not setting the "theme".
530
- */
531
- while (elm) {
532
- const theme = elm.getAttribute('theme');
533
- if (theme) {
534
- if (isThemeSupported(theme)) {
535
- return theme;
536
- }
537
- else if (isIonicElement(elm)) {
538
- printIonWarning(`Invalid theme: "${theme}". Supported themes include: "ios" or "md".`);
539
- }
540
- }
541
- /**
542
- * If a theme is not detected, then fallback to using the
543
- * `mode` attribute to determine the style sheets to use.
544
- */
545
- const elmMode = elm.getAttribute('mode');
546
- if (elmMode) {
547
- if (isModeSupported(elmMode)) {
548
- return elmMode;
549
- }
550
- else if (isIonicElement(elm)) {
551
- printIonWarning(`Invalid mode: "${elmMode}". Ionic modes can be only "ios" or "md"`);
552
- }
553
- }
554
- elm = elm.parentElement;
555
- }
556
- return defaultTheme;
557
- });
558
- // `IonApp` code
559
- // ----------------------------------------------
560
- {
561
- rIC(async () => {
562
- const isHybrid = isPlatform(window, 'hybrid');
563
- if (!config.getBoolean('_testing')) {
564
- Promise.resolve().then(function () { return require('./index-YEjC0pvJ.js'); }).then((module) => module.startTapClick(config));
565
- }
566
- if (config.getBoolean('statusTap', isHybrid)) {
567
- Promise.resolve().then(function () { return require('./status-tap-DMaRrHIS.js'); }).then((module) => module.startStatusTap());
568
- }
569
- if (config.getBoolean('inputShims', needInputShims())) {
570
- /**
571
- * needInputShims() ensures that only iOS and Android
572
- * platforms proceed into this block.
573
- */
574
- const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
575
- Promise.resolve().then(function () { return require('./input-shims-BwdlNkON.js'); }).then((module) => module.startInputShims(config, platform));
576
- }
577
- const hardwareBackButtonModule = await Promise.resolve().then(function () { return hardwareBackButton; });
578
- const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
579
- if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
580
- hardwareBackButtonModule.startHardwareBackButton();
581
- }
582
- else {
583
- /**
584
- * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
585
- * then the close watcher will not be used.
586
- */
587
- if (shouldUseCloseWatcher()) {
588
- printIonWarning('[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
589
- }
590
- hardwareBackButtonModule.blockHardwareBackButton();
591
- }
592
- if (typeof window !== 'undefined') {
593
- Promise.resolve().then(function () { return require('./keyboard-nXDIskl9.js'); }).then((module) => module.startKeyboardAssist(window));
594
- }
595
- Promise.resolve().then(function () { return require('./focus-visible-BIj-I3-C.js'); }).then((module) => module.getOrInitFocusVisibleUtility());
596
- });
597
- }
598
- };
599
-
600
- const globalScripts = initialize;
601
- const globalStyles = "";
602
-
603
126
  /*
604
- Stencil Client Platform v4.33.1 | MIT Licensed | https://stenciljs.com
127
+ Stencil Client Platform v4.38.0 | MIT Licensed | https://stenciljs.com
605
128
  */
606
129
  var __defProp = Object.defineProperty;
607
130
  var __export = (target, all) => {
@@ -647,6 +170,7 @@ var getHostRef = (ref) => {
647
170
  return void 0;
648
171
  };
649
172
  var registerInstance = (lazyInstance, hostRef) => {
173
+ if (!hostRef) return;
650
174
  lazyInstance.__stencil__getHostRef = () => hostRef;
651
175
  hostRef.$lazyInstance$ = lazyInstance;
652
176
  };
@@ -655,7 +179,8 @@ var registerHost = (hostElement, cmpMeta) => {
655
179
  $flags$: 0,
656
180
  $hostElement$: hostElement,
657
181
  $cmpMeta$: cmpMeta,
658
- $instanceValues$: /* @__PURE__ */ new Map()
182
+ $instanceValues$: /* @__PURE__ */ new Map(),
183
+ $serializerValues$: /* @__PURE__ */ new Map()
659
184
  };
660
185
  {
661
186
  hostRef.$onInstancePromise$ = new Promise((r) => hostRef.$onInstanceResolve$ = r);
@@ -665,6 +190,9 @@ var registerHost = (hostElement, cmpMeta) => {
665
190
  hostElement["s-p"] = [];
666
191
  hostElement["s-rc"] = [];
667
192
  }
193
+ {
194
+ hostRef.$fetchedCbList$ = [];
195
+ }
668
196
  const ref = hostRef;
669
197
  hostElement.__stencil__getHostRef = () => ref;
670
198
  return ref;
@@ -759,6 +287,7 @@ var supportsConstructableStylesheets = /* @__PURE__ */ (() => {
759
287
  }
760
288
  return false;
761
289
  })() ;
290
+ var supportsMutableAdoptedStyleSheets = supportsConstructableStylesheets ? /* @__PURE__ */ (() => !!win.document && Object.getOwnPropertyDescriptor(win.document.adoptedStyleSheets, "length").writable)() : false;
762
291
  var queuePending = false;
763
292
  var queueDomReads = [];
764
293
  var queueDomWrites = [];
@@ -971,15 +500,27 @@ function deserializeProperty(value) {
971
500
  }
972
501
  return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
973
502
  }
503
+
504
+ // src/utils/style.ts
505
+ function createStyleSheetIfNeededAndSupported(styles2) {
506
+ return void 0;
507
+ }
508
+
509
+ // src/utils/shadow-root.ts
510
+ var globalStyleSheet;
974
511
  function createShadowRoot(cmpMeta) {
512
+ var _a;
975
513
  const shadowRoot = this.attachShadow({
976
514
  mode: "open",
977
515
  delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */)
978
516
  }) ;
979
- if (supportsConstructableStylesheets) {
980
- const sheet = new CSSStyleSheet();
981
- sheet.replaceSync(globalStyles);
982
- shadowRoot.adoptedStyleSheets.push(sheet);
517
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
518
+ if (globalStyleSheet) {
519
+ if (supportsMutableAdoptedStyleSheets) {
520
+ shadowRoot.adoptedStyleSheets.push(globalStyleSheet);
521
+ } else {
522
+ shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
523
+ }
983
524
  }
984
525
  }
985
526
  var updateFallbackSlotVisibility = (elm) => {
@@ -1087,7 +628,7 @@ function patchSlotNode(node) {
1087
628
  const slotName = this["s-sn"];
1088
629
  if (opts == null ? void 0 : opts.flatten) {
1089
630
  console.error(`
1090
- Flattening is not supported for Stencil non-shadow slots.
631
+ Flattening is not supported for Stencil non-shadow slots.
1091
632
  You can use \`.childNodes\` to nested slot fallback content.
1092
633
  If you have a particular use case, please open an issue on the Stencil repo.
1093
634
  `);
@@ -1474,6 +1015,9 @@ var validNodesPatches = [
1474
1015
  "parentNode"
1475
1016
  ];
1476
1017
  function patchHostOriginalAccessor(accessorName, node) {
1018
+ if (!globalThis.Node || !globalThis.Element) {
1019
+ return;
1020
+ }
1477
1021
  let accessor;
1478
1022
  if (validElementPatches.includes(accessorName)) {
1479
1023
  accessor = Object.getOwnPropertyDescriptor(Element.prototype, accessorName);
@@ -1509,6 +1053,125 @@ var uniqueTime = (key, measureText) => {
1509
1053
  };
1510
1054
  }
1511
1055
  };
1056
+ var rootAppliedStyles = /* @__PURE__ */ new WeakMap();
1057
+ var registerStyle = (scopeId2, cssText, allowCS) => {
1058
+ let style = styles.get(scopeId2);
1059
+ if (supportsConstructableStylesheets && allowCS) {
1060
+ style = style || new CSSStyleSheet();
1061
+ if (typeof style === "string") {
1062
+ style = cssText;
1063
+ } else {
1064
+ style.replaceSync(cssText);
1065
+ }
1066
+ } else {
1067
+ style = cssText;
1068
+ }
1069
+ styles.set(scopeId2, style);
1070
+ };
1071
+ var addStyle = (styleContainerNode, cmpMeta, mode) => {
1072
+ var _a;
1073
+ const scopeId2 = getScopeId(cmpMeta, mode);
1074
+ const style = styles.get(scopeId2);
1075
+ if (!win.document) {
1076
+ return scopeId2;
1077
+ }
1078
+ styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : win.document;
1079
+ if (style) {
1080
+ if (typeof style === "string") {
1081
+ styleContainerNode = styleContainerNode.head || styleContainerNode;
1082
+ let appliedStyles = rootAppliedStyles.get(styleContainerNode);
1083
+ let styleElm;
1084
+ if (!appliedStyles) {
1085
+ rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());
1086
+ }
1087
+ if (!appliedStyles.has(scopeId2)) {
1088
+ if (styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`))) {
1089
+ styleElm.innerHTML = style;
1090
+ } else {
1091
+ styleElm = win.document.createElement("style");
1092
+ styleElm.innerHTML = style;
1093
+ const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
1094
+ if (nonce != null) {
1095
+ styleElm.setAttribute("nonce", nonce);
1096
+ }
1097
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
1098
+ if (styleContainerNode.nodeName === "HEAD") {
1099
+ const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
1100
+ const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
1101
+ styleContainerNode.insertBefore(
1102
+ styleElm,
1103
+ (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null
1104
+ );
1105
+ } else if ("host" in styleContainerNode) {
1106
+ if (supportsConstructableStylesheets) {
1107
+ const stylesheet = new CSSStyleSheet();
1108
+ stylesheet.replaceSync(style);
1109
+ if (supportsMutableAdoptedStyleSheets) {
1110
+ styleContainerNode.adoptedStyleSheets.unshift(stylesheet);
1111
+ } else {
1112
+ styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
1113
+ }
1114
+ } else {
1115
+ const existingStyleContainer = styleContainerNode.querySelector("style");
1116
+ if (existingStyleContainer) {
1117
+ existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
1118
+ } else {
1119
+ styleContainerNode.prepend(styleElm);
1120
+ }
1121
+ }
1122
+ } else {
1123
+ styleContainerNode.append(styleElm);
1124
+ }
1125
+ }
1126
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1127
+ styleContainerNode.insertBefore(styleElm, null);
1128
+ }
1129
+ }
1130
+ if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
1131
+ styleElm.innerHTML += SLOT_FB_CSS;
1132
+ }
1133
+ if (appliedStyles) {
1134
+ appliedStyles.add(scopeId2);
1135
+ }
1136
+ }
1137
+ } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
1138
+ if (supportsMutableAdoptedStyleSheets) {
1139
+ styleContainerNode.adoptedStyleSheets.push(style);
1140
+ } else {
1141
+ styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
1142
+ }
1143
+ }
1144
+ }
1145
+ return scopeId2;
1146
+ };
1147
+ var attachStyles = (hostRef) => {
1148
+ const cmpMeta = hostRef.$cmpMeta$;
1149
+ const elm = hostRef.$hostElement$;
1150
+ const flags = cmpMeta.$flags$;
1151
+ const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
1152
+ const scopeId2 = addStyle(
1153
+ elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
1154
+ cmpMeta,
1155
+ hostRef.$modeName$
1156
+ );
1157
+ if (flags & 10 /* needsScopedEncapsulation */) {
1158
+ elm["s-sc"] = scopeId2;
1159
+ elm.classList.add(scopeId2 + "-h");
1160
+ }
1161
+ endAttachStyles();
1162
+ };
1163
+ var getScopeId = (cmp, mode) => "sc-" + (mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + "-" + mode : cmp.$tagName$);
1164
+ var convertScopedToShadow = (css) => css.replace(/\/\*!@([^\/]+)\*\/[^\{]+\{/g, "$1{");
1165
+ var hydrateScopedToShadow = () => {
1166
+ if (!win.document) {
1167
+ return;
1168
+ }
1169
+ const styles2 = win.document.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);
1170
+ let i2 = 0;
1171
+ for (; i2 < styles2.length; i2++) {
1172
+ registerStyle(styles2[i2].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles2[i2].innerHTML), true);
1173
+ }
1174
+ };
1512
1175
  var h = (nodeName, vnodeData, ...children) => {
1513
1176
  let child = null;
1514
1177
  let key = null;
@@ -1623,7 +1286,7 @@ var convertToPrivate = (node) => {
1623
1286
 
1624
1287
  // src/runtime/client-hydrate.ts
1625
1288
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1626
- var _a;
1289
+ var _a, _b;
1627
1290
  const endHydrate = createTime("hydrateClient", tagName);
1628
1291
  const shadowRoot = hostElm.shadowRoot;
1629
1292
  const childRenderNodes = [];
@@ -1632,19 +1295,6 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1632
1295
  const shadowRootNodes = shadowRoot ? [] : null;
1633
1296
  const vnode = newVNode(tagName, null);
1634
1297
  vnode.$elm$ = hostElm;
1635
- const members = Object.entries(((_a = hostRef.$cmpMeta$) == null ? void 0 : _a.$members$) || {});
1636
- members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
1637
- var _a2;
1638
- if (!(memberFlags & 31 /* Prop */)) {
1639
- return;
1640
- }
1641
- const attributeName = metaAttributeName || memberName;
1642
- const attrVal = hostElm.getAttribute(attributeName);
1643
- if (attrVal !== null) {
1644
- const attrPropVal = parsePropertyValue(attrVal, memberFlags);
1645
- (_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.set(memberName, attrPropVal);
1646
- }
1647
- });
1648
1298
  let scopeId2;
1649
1299
  {
1650
1300
  const cmpMeta = hostRef.$cmpMeta$;
@@ -1683,6 +1333,18 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1683
1333
  if (childRenderNode.$tag$ === "slot") {
1684
1334
  node["s-cr"] = hostElm["s-cr"];
1685
1335
  }
1336
+ } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1337
+ const cmpMeta = getHostRef(childRenderNode.$elm$);
1338
+ if (cmpMeta) {
1339
+ const scopeId3 = getScopeId(
1340
+ cmpMeta.$cmpMeta$,
1341
+ childRenderNode.$elm$.getAttribute("s-mode")
1342
+ );
1343
+ const styleSheet = win.document.querySelector(`style[sty-id="${scopeId3}"]`);
1344
+ if (styleSheet) {
1345
+ hostElm.shadowRoot.append(styleSheet.cloneNode(true));
1346
+ }
1347
+ }
1686
1348
  }
1687
1349
  if (childRenderNode.$tag$ === "slot") {
1688
1350
  childRenderNode.$name$ = childRenderNode.$elm$["s-sn"] || childRenderNode.$elm$["name"] || null;
@@ -1698,7 +1360,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1698
1360
  }
1699
1361
  }
1700
1362
  if (orgLocationNode && orgLocationNode.isConnected) {
1701
- if (shadowRoot && orgLocationNode["s-en"] === "") {
1363
+ if (orgLocationNode.parentElement.shadowRoot && orgLocationNode["s-en"] === "") {
1702
1364
  orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);
1703
1365
  }
1704
1366
  orgLocationNode.parentNode.removeChild(orgLocationNode);
@@ -1706,7 +1368,9 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1706
1368
  node["s-oo"] = parseInt(childRenderNode.$nodeId$);
1707
1369
  }
1708
1370
  }
1709
- plt.$orgLocNodes$.delete(orgLocationId);
1371
+ if (orgLocationNode && !orgLocationNode["s-id"]) {
1372
+ plt.$orgLocNodes$.delete(orgLocationId);
1373
+ }
1710
1374
  }
1711
1375
  const hosts = [];
1712
1376
  const snLen = slottedNodes.length;
@@ -1727,21 +1391,26 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1727
1391
  }
1728
1392
  if (!hosts[slottedItem.hostId]) continue;
1729
1393
  const hostEle = hosts[slottedItem.hostId];
1394
+ if (hostEle.shadowRoot && slottedItem.node.parentElement !== hostEle) {
1395
+ hostEle.appendChild(slottedItem.node);
1396
+ }
1730
1397
  if (!hostEle.shadowRoot || !shadowRoot) {
1731
- slottedItem.slot["s-cr"] = hostEle["s-cr"];
1732
- if (!slottedItem.slot["s-cr"] && hostEle.shadowRoot) {
1733
- slottedItem.slot["s-cr"] = hostEle;
1734
- } else {
1735
- slottedItem.slot["s-cr"] = (hostEle.__childNodes || hostEle.childNodes)[0];
1398
+ if (!slottedItem.slot["s-cr"]) {
1399
+ slottedItem.slot["s-cr"] = hostEle["s-cr"];
1400
+ if (!slottedItem.slot["s-cr"] && hostEle.shadowRoot) {
1401
+ slottedItem.slot["s-cr"] = hostEle;
1402
+ } else {
1403
+ slottedItem.slot["s-cr"] = (hostEle.__childNodes || hostEle.childNodes)[0];
1404
+ }
1736
1405
  }
1737
1406
  addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node["s-oo"]);
1407
+ if (((_b = slottedItem.node.parentElement) == null ? void 0 : _b.shadowRoot) && slottedItem.node["getAttribute"] && slottedItem.node.getAttribute("slot")) {
1408
+ slottedItem.node.removeAttribute("slot");
1409
+ }
1738
1410
  {
1739
1411
  patchSlottedNode(slottedItem.node);
1740
1412
  }
1741
1413
  }
1742
- if (hostEle.shadowRoot && slottedItem.node.parentElement !== hostEle) {
1743
- hostEle.appendChild(slottedItem.node);
1744
- }
1745
1414
  }
1746
1415
  }
1747
1416
  if (scopeId2 && slotNodes.length) {
@@ -1749,25 +1418,27 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1749
1418
  slot.$elm$.parentElement.classList.add(scopeId2 + "-s");
1750
1419
  });
1751
1420
  }
1752
- if (shadowRoot && !shadowRoot.childNodes.length) {
1421
+ if (shadowRoot) {
1753
1422
  let rnIdex = 0;
1754
1423
  const rnLen = shadowRootNodes.length;
1755
1424
  if (rnLen) {
1756
1425
  for (rnIdex; rnIdex < rnLen; rnIdex++) {
1757
- shadowRoot.appendChild(shadowRootNodes[rnIdex]);
1426
+ const node = shadowRootNodes[rnIdex];
1427
+ if (node) {
1428
+ shadowRoot.appendChild(node);
1429
+ }
1758
1430
  }
1759
1431
  Array.from(hostElm.childNodes).forEach((node) => {
1760
- if (typeof node["s-sn"] !== "string") {
1432
+ if (typeof node["s-en"] !== "string" && typeof node["s-sn"] !== "string") {
1761
1433
  if (node.nodeType === 1 /* ElementNode */ && node.slot && node.hidden) {
1762
1434
  node.removeAttribute("hidden");
1763
- } else if (node.nodeType === 8 /* CommentNode */ || node.nodeType === 3 /* TextNode */ && !node.wholeText.trim()) {
1435
+ } else if (node.nodeType === 8 /* CommentNode */ && !node.nodeValue || node.nodeType === 3 /* TextNode */ && !node.wholeText.trim()) {
1764
1436
  node.parentNode.removeChild(node);
1765
1437
  }
1766
1438
  }
1767
1439
  });
1768
1440
  }
1769
1441
  }
1770
- plt.$orgLocNodes$.delete(hostElm["s-id"]);
1771
1442
  hostRef.$hostElement$ = hostElm;
1772
1443
  endHydrate();
1773
1444
  };
@@ -1799,7 +1470,7 @@ var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes,
1799
1470
  if (!parentVNode.$children$) {
1800
1471
  parentVNode.$children$ = [];
1801
1472
  }
1802
- if (scopeId2) {
1473
+ if (scopeId2 && childIdSplt[0] === hostId) {
1803
1474
  node["s-si"] = scopeId2;
1804
1475
  childVNode.$attrs$.class += " " + scopeId2;
1805
1476
  }
@@ -1929,7 +1600,7 @@ var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes,
1929
1600
  vnode.$index$ = "0";
1930
1601
  parentVNode.$children$ = [vnode];
1931
1602
  } else {
1932
- if (node.nodeType === 3 /* TextNode */ && !node.wholeText.trim()) {
1603
+ if (node.nodeType === 3 /* TextNode */ && !node.wholeText.trim() && !node["s-nr"]) {
1933
1604
  node.remove();
1934
1605
  }
1935
1606
  }
@@ -1987,10 +1658,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1987
1658
  if (childVNode.$name$) {
1988
1659
  childVNode.$elm$.setAttribute("name", slotName);
1989
1660
  }
1990
- if (parentNodeId && parentNodeId !== childVNode.$hostId$) {
1991
- parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);
1661
+ if (parentVNode.$elm$.shadowRoot && parentNodeId && parentNodeId !== childVNode.$hostId$) {
1662
+ internalCall(parentVNode.$elm$, "insertBefore")(slot, internalCall(parentVNode.$elm$, "children")[0]);
1992
1663
  } else {
1993
- node.parentNode.insertBefore(childVNode.$elm$, node);
1664
+ internalCall(internalCall(node, "parentNode"), "insertBefore")(slot, node);
1994
1665
  }
1995
1666
  addSlottedNodes(slottedNodes, slotId, slotName, node, childVNode.$hostId$);
1996
1667
  node.remove();
@@ -2005,8 +1676,8 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
2005
1676
  if (shouldMove) {
2006
1677
  parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);
2007
1678
  }
2008
- childRenderNodes.push(childVNode);
2009
1679
  }
1680
+ childRenderNodes.push(childVNode);
2010
1681
  slotNodes.push(childVNode);
2011
1682
  if (!parentVNode.$children$) {
2012
1683
  parentVNode.$children$ = [];
@@ -2014,13 +1685,17 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
2014
1685
  parentVNode.$children$[childVNode.$index$] = childVNode;
2015
1686
  }
2016
1687
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1688
+ var _a, _b;
2017
1689
  let slottedNode = slotNode.nextSibling;
2018
1690
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
2019
- while (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (slottedNode.nodeType === 8 /* CommentNode */ && slottedNode.nodeValue.indexOf(".") !== 1 || slottedNode.nodeType === 3 /* TextNode */))) {
2020
- slottedNode["s-sn"] = slotName;
2021
- slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });
2022
- slottedNode = slottedNode.nextSibling;
2023
- }
1691
+ if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1692
+ do {
1693
+ if (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (!slottedNode["getAttribute"] || !slottedNode.getAttribute("slot")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {
1694
+ slottedNode["s-sn"] = slotName;
1695
+ slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });
1696
+ }
1697
+ slottedNode = slottedNode == null ? void 0 : slottedNode.nextSibling;
1698
+ } while (slottedNode && !((_b = slottedNode.nodeValue) == null ? void 0 : _b.startsWith(SLOT_NODE_ID + ".")));
2024
1699
  };
2025
1700
  var findCorrespondingNode = (node, type) => {
2026
1701
  let sibling = node;
@@ -2045,22 +1720,20 @@ createSupportsRuleRe(":host-context");
2045
1720
  // src/runtime/mode.ts
2046
1721
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
2047
1722
  var setMode = (handler) => modeResolutionChain.push(handler);
2048
- var getMode = (ref) => getHostRef(ref).$modeName$;
2049
- var parsePropertyValue = (propValue, propType) => {
2050
- if (typeof propValue === "string" && (propValue.startsWith("{") && propValue.endsWith("}") || propValue.startsWith("[") && propValue.endsWith("]"))) {
2051
- try {
2052
- propValue = JSON.parse(propValue);
2053
- return propValue;
2054
- } catch (e) {
2055
- }
2056
- }
1723
+ var getMode = (ref) => {
1724
+ var _a;
1725
+ return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
1726
+ };
1727
+ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2057
1728
  if (typeof propValue === "string" && propValue.startsWith(SERIALIZED_PREFIX)) {
2058
1729
  propValue = deserializeProperty(propValue);
2059
1730
  return propValue;
2060
1731
  }
2061
1732
  if (propValue != null && !isComplexType(propValue)) {
2062
1733
  if (propType & 4 /* Boolean */) {
2063
- return propValue === "false" ? false : propValue === "" || !!propValue;
1734
+ {
1735
+ return propValue === "false" ? false : propValue === "" || !!propValue;
1736
+ }
2064
1737
  }
2065
1738
  if (propType & 2 /* Number */) {
2066
1739
  return typeof propValue === "string" ? parseFloat(propValue) : typeof propValue === "number" ? propValue : NaN;
@@ -2072,7 +1745,10 @@ var parsePropertyValue = (propValue, propType) => {
2072
1745
  }
2073
1746
  return propValue;
2074
1747
  };
2075
- var getElement = (ref) => getHostRef(ref).$hostElement$ ;
1748
+ var getElement = (ref) => {
1749
+ var _a;
1750
+ return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
1751
+ };
2076
1752
 
2077
1753
  // src/runtime/event-emitter.ts
2078
1754
  var createEvent = (ref, name, flags) => {
@@ -2093,117 +1769,6 @@ var emitEvent = (elm, name, opts) => {
2093
1769
  elm.dispatchEvent(ev);
2094
1770
  return ev;
2095
1771
  };
2096
- var rootAppliedStyles = /* @__PURE__ */ new WeakMap();
2097
- var registerStyle = (scopeId2, cssText, allowCS) => {
2098
- let style = styles.get(scopeId2);
2099
- if (supportsConstructableStylesheets && allowCS) {
2100
- style = style || new CSSStyleSheet();
2101
- if (typeof style === "string") {
2102
- style = cssText;
2103
- } else {
2104
- style.replaceSync(cssText);
2105
- }
2106
- } else {
2107
- style = cssText;
2108
- }
2109
- styles.set(scopeId2, style);
2110
- };
2111
- var addStyle = (styleContainerNode, cmpMeta, mode) => {
2112
- var _a;
2113
- const scopeId2 = getScopeId(cmpMeta, mode);
2114
- const style = styles.get(scopeId2);
2115
- if (!win.document) {
2116
- return scopeId2;
2117
- }
2118
- styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : win.document;
2119
- if (style) {
2120
- if (typeof style === "string") {
2121
- styleContainerNode = styleContainerNode.head || styleContainerNode;
2122
- let appliedStyles = rootAppliedStyles.get(styleContainerNode);
2123
- let styleElm;
2124
- if (!appliedStyles) {
2125
- rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());
2126
- }
2127
- if (!appliedStyles.has(scopeId2)) {
2128
- if (styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`))) {
2129
- styleElm.innerHTML = style;
2130
- } else {
2131
- styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`) || win.document.createElement("style");
2132
- styleElm.innerHTML = style;
2133
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
2134
- if (nonce != null) {
2135
- styleElm.setAttribute("nonce", nonce);
2136
- }
2137
- if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
2138
- if (styleContainerNode.nodeName === "HEAD") {
2139
- const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
2140
- const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
2141
- styleContainerNode.insertBefore(
2142
- styleElm,
2143
- (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null
2144
- );
2145
- } else if ("host" in styleContainerNode) {
2146
- if (supportsConstructableStylesheets) {
2147
- const stylesheet = new CSSStyleSheet();
2148
- stylesheet.replaceSync(style);
2149
- styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
2150
- } else {
2151
- const existingStyleContainer = styleContainerNode.querySelector("style");
2152
- if (existingStyleContainer) {
2153
- existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
2154
- } else {
2155
- styleContainerNode.prepend(styleElm);
2156
- }
2157
- }
2158
- } else {
2159
- styleContainerNode.append(styleElm);
2160
- }
2161
- }
2162
- if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
2163
- styleContainerNode.insertBefore(styleElm, null);
2164
- }
2165
- }
2166
- if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
2167
- styleElm.innerHTML += SLOT_FB_CSS;
2168
- }
2169
- if (appliedStyles) {
2170
- appliedStyles.add(scopeId2);
2171
- }
2172
- }
2173
- } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
2174
- styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
2175
- }
2176
- }
2177
- return scopeId2;
2178
- };
2179
- var attachStyles = (hostRef) => {
2180
- const cmpMeta = hostRef.$cmpMeta$;
2181
- const elm = hostRef.$hostElement$;
2182
- const flags = cmpMeta.$flags$;
2183
- const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
2184
- const scopeId2 = addStyle(
2185
- elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
2186
- cmpMeta,
2187
- hostRef.$modeName$
2188
- );
2189
- if (flags & 10 /* needsScopedEncapsulation */) {
2190
- elm["s-sc"] = scopeId2;
2191
- elm.classList.add(scopeId2 + "-h");
2192
- }
2193
- endAttachStyles();
2194
- };
2195
- var getScopeId = (cmp, mode) => "sc-" + (mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + "-" + mode : cmp.$tagName$);
2196
- var convertScopedToShadow = (css) => css.replace(/\/\*!@([^\/]+)\*\/[^\{]+\{/g, "$1{");
2197
- var hydrateScopedToShadow = () => {
2198
- if (!win.document) {
2199
- return;
2200
- }
2201
- const styles2 = win.document.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);
2202
- let i2 = 0;
2203
- for (; i2 < styles2.length; i2++) {
2204
- registerStyle(styles2[i2].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles2[i2].innerHTML), true);
2205
- }
2206
- };
2207
1772
  var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {
2208
1773
  if (oldValue === newValue) {
2209
1774
  return;
@@ -2214,12 +1779,13 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2214
1779
  const classList = elm.classList;
2215
1780
  const oldClasses = parseClassList(oldValue);
2216
1781
  let newClasses = parseClassList(newValue);
2217
- if (elm["s-si"] && initialRender) {
2218
- newClasses.push(elm["s-si"]);
1782
+ if ((elm["s-si"] || elm["s-sc"]) && initialRender) {
1783
+ const scopeId2 = elm["s-sc"] || elm["s-si"];
1784
+ newClasses.push(scopeId2);
2219
1785
  oldClasses.forEach((c) => {
2220
- if (c.startsWith(elm["s-si"])) newClasses.push(c);
1786
+ if (c.startsWith(scopeId2)) newClasses.push(c);
2221
1787
  });
2222
- newClasses = [...new Set(newClasses)];
1788
+ newClasses = [...new Set(newClasses)].filter((c) => c);
2223
1789
  classList.add(...newClasses);
2224
1790
  } else {
2225
1791
  classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
@@ -2689,6 +2255,8 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
2689
2255
  !isInitialRender && BUILD.updatable && oldChildren !== null
2690
2256
  ) {
2691
2257
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
2258
+ } else if (isInitialRender && BUILD.updatable && oldChildren !== null && newChildren === null) {
2259
+ newVNode2.$children$ = oldChildren;
2692
2260
  }
2693
2261
  if (isSvgMode && tag === "svg") {
2694
2262
  isSvgMode = false;
@@ -2804,9 +2372,11 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2804
2372
  hostTagName = hostElm.tagName;
2805
2373
  if (cmpMeta.$attrsToReflect$) {
2806
2374
  rootVnode.$attrs$ = rootVnode.$attrs$ || {};
2807
- cmpMeta.$attrsToReflect$.map(
2808
- ([propName, attribute]) => rootVnode.$attrs$[attribute] = hostElm[propName]
2809
- );
2375
+ cmpMeta.$attrsToReflect$.forEach(([propName, attribute]) => {
2376
+ {
2377
+ rootVnode.$attrs$[attribute] = hostElm[propName];
2378
+ }
2379
+ });
2810
2380
  }
2811
2381
  if (isInitialLoad && rootVnode.$attrs$) {
2812
2382
  for (const key of Object.keys(rootVnode.$attrs$)) {
@@ -2927,6 +2497,12 @@ var scheduleUpdate = (hostRef, isInitialLoad) => {
2927
2497
  }
2928
2498
  attachToAncestor(hostRef, hostRef.$ancestorComponent$);
2929
2499
  const dispatch = () => dispatchHooks(hostRef, isInitialLoad);
2500
+ if (isInitialLoad) {
2501
+ queueMicrotask(() => {
2502
+ dispatch();
2503
+ });
2504
+ return;
2505
+ }
2930
2506
  return writeTask(dispatch) ;
2931
2507
  };
2932
2508
  var dispatchHooks = (hostRef, isInitialLoad) => {
@@ -2941,10 +2517,15 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
2941
2517
  let maybePromise;
2942
2518
  if (isInitialLoad) {
2943
2519
  {
2944
- hostRef.$flags$ |= 256 /* isListenReady */;
2945
- if (hostRef.$queuedListeners$) {
2946
- hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
2947
- hostRef.$queuedListeners$ = void 0;
2520
+ {
2521
+ hostRef.$flags$ |= 256 /* isListenReady */;
2522
+ if (hostRef.$queuedListeners$) {
2523
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
2524
+ hostRef.$queuedListeners$ = void 0;
2525
+ }
2526
+ }
2527
+ if (hostRef.$fetchedCbList$.length) {
2528
+ hostRef.$fetchedCbList$.forEach((cb) => cb(elm));
2948
2529
  }
2949
2530
  }
2950
2531
  maybePromise = safeCall(instance, "componentWillLoad", void 0, elm);
@@ -3050,9 +2631,10 @@ var postUpdateComponent = (hostRef) => {
3050
2631
  }
3051
2632
  };
3052
2633
  var forceUpdate = (ref) => {
2634
+ var _a;
3053
2635
  {
3054
2636
  const hostRef = getHostRef(ref);
3055
- const isConnected = hostRef.$hostElement$.isConnected;
2637
+ const isConnected = (_a = hostRef == null ? void 0 : hostRef.$hostElement$) == null ? void 0 : _a.isConnected;
3056
2638
  if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
3057
2639
  scheduleUpdate(hostRef, false);
3058
2640
  }
@@ -3060,7 +2642,13 @@ var forceUpdate = (ref) => {
3060
2642
  }
3061
2643
  };
3062
2644
  var appDidLoad = (who) => {
2645
+ var _a;
3063
2646
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
2647
+ {
2648
+ if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
2649
+ plt.$orgLocNodes$.clear();
2650
+ }
2651
+ }
3064
2652
  };
3065
2653
  var safeCall = (instance, method, arg, elm) => {
3066
2654
  if (instance && instance[method]) {
@@ -3081,6 +2669,9 @@ var addHydratedFlag = (elm) => {
3081
2669
  var getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
3082
2670
  var setValue = (ref, propName, newVal, cmpMeta) => {
3083
2671
  const hostRef = getHostRef(ref);
2672
+ if (!hostRef) {
2673
+ return;
2674
+ }
3084
2675
  if (!hostRef) {
3085
2676
  throw new Error(
3086
2677
  `Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`
@@ -3090,7 +2681,9 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3090
2681
  const oldVal = hostRef.$instanceValues$.get(propName);
3091
2682
  const flags = hostRef.$flags$;
3092
2683
  const instance = hostRef.$lazyInstance$ ;
3093
- newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);
2684
+ newVal = parsePropertyValue(
2685
+ newVal,
2686
+ cmpMeta.$members$[propName][0]);
3094
2687
  const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
3095
2688
  const didValueChange = newVal !== oldVal && !areBothNaN;
3096
2689
  if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
@@ -3124,9 +2717,17 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3124
2717
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3125
2718
  var _a, _b;
3126
2719
  const prototype = Cstr.prototype;
3127
- if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
3128
- if (Cstr.watchers && !cmpMeta.$watchers$) {
3129
- cmpMeta.$watchers$ = Cstr.watchers;
2720
+ if (cmpMeta.$members$ || BUILD.propChangeCallback) {
2721
+ {
2722
+ if (Cstr.watchers && !cmpMeta.$watchers$) {
2723
+ cmpMeta.$watchers$ = Cstr.watchers;
2724
+ }
2725
+ if (Cstr.deserializers && !cmpMeta.$deserializers$) {
2726
+ cmpMeta.$deserializers$ = Cstr.deserializers;
2727
+ }
2728
+ if (Cstr.serializers && !cmpMeta.$serializers$) {
2729
+ cmpMeta.$serializers$ = Cstr.serializers;
2730
+ }
3130
2731
  }
3131
2732
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3132
2733
  members.map(([memberName, [memberFlags]]) => {
@@ -3154,14 +2755,19 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3154
2755
  Object.defineProperty(prototype, memberName, {
3155
2756
  set(newValue) {
3156
2757
  const ref = getHostRef(this);
2758
+ if (!ref) {
2759
+ return;
2760
+ }
3157
2761
  if (origSetter) {
3158
2762
  const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
3159
2763
  if (typeof currentValue === "undefined" && ref.$instanceValues$.get(memberName)) {
3160
2764
  newValue = ref.$instanceValues$.get(memberName);
3161
- } else if (!ref.$instanceValues$.get(memberName) && currentValue) {
3162
- ref.$instanceValues$.set(memberName, currentValue);
3163
2765
  }
3164
- origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);
2766
+ origSetter.apply(this, [
2767
+ parsePropertyValue(
2768
+ newValue,
2769
+ memberFlags)
2770
+ ]);
3165
2771
  newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
3166
2772
  setValue(this, memberName, newValue, cmpMeta);
3167
2773
  return;
@@ -3170,7 +2776,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3170
2776
  if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {
3171
2777
  setValue(this, memberName, newValue, cmpMeta);
3172
2778
  if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {
3173
- ref.$onReadyPromise$.then(() => {
2779
+ ref.$fetchedCbList$.push(() => {
3174
2780
  if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {
3175
2781
  ref.$lazyInstance$[memberName] = newValue;
3176
2782
  }
@@ -3183,13 +2789,17 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3183
2789
  if (!ref.$instanceValues$.get(memberName) && currentValue) {
3184
2790
  ref.$instanceValues$.set(memberName, currentValue);
3185
2791
  }
3186
- ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);
2792
+ ref.$lazyInstance$[memberName] = parsePropertyValue(
2793
+ newValue,
2794
+ memberFlags);
3187
2795
  setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
3188
2796
  };
3189
2797
  if (ref.$lazyInstance$) {
3190
2798
  setterSetVal();
3191
2799
  } else {
3192
- ref.$onReadyPromise$.then(() => setterSetVal());
2800
+ ref.$fetchedCbList$.push(() => {
2801
+ setterSetVal();
2802
+ });
3193
2803
  }
3194
2804
  }
3195
2805
  }
@@ -3213,16 +2823,17 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3213
2823
  plt.jmp(() => {
3214
2824
  var _a2;
3215
2825
  const propName = attrNameToPropName.get(attrName);
2826
+ const hostRef = getHostRef(this);
3216
2827
  if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {
3217
2828
  newValue = this[propName];
3218
2829
  delete this[propName];
3219
- } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === "number" && // cast type to number to avoid TS compiler issues
2830
+ }
2831
+ if (prototype.hasOwnProperty(propName) && typeof this[propName] === "number" && // cast type to number to avoid TS compiler issues
3220
2832
  this[propName] == newValue) {
3221
2833
  return;
3222
2834
  } else if (propName == null) {
3223
- const hostRef = getHostRef(this);
3224
2835
  const flags2 = hostRef == null ? void 0 : hostRef.$flags$;
3225
- if (flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {
2836
+ if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {
3226
2837
  const instance = hostRef.$lazyInstance$ ;
3227
2838
  const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];
3228
2839
  entry == null ? void 0 : entry.forEach((callbackName) => {
@@ -3235,7 +2846,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3235
2846
  }
3236
2847
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
3237
2848
  newValue = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
3238
- if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {
2849
+ if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
3239
2850
  this[propName] = newValue;
3240
2851
  }
3241
2852
  });
@@ -3243,7 +2854,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3243
2854
  Cstr.observedAttributes = Array.from(
3244
2855
  /* @__PURE__ */ new Set([
3245
2856
  ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),
3246
- ...members.filter(([_, m]) => m[0] & 15 /* HasAttribute */).map(([propName, m]) => {
2857
+ ...members.filter(([_, m]) => m[0] & 31 /* HasAttribute */).map(([propName, m]) => {
3247
2858
  var _a2;
3248
2859
  const attrName = m[1] || propName;
3249
2860
  attrNameToPropName.set(attrName, propName);
@@ -3280,6 +2891,8 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3280
2891
  if (!Cstr.isProxied) {
3281
2892
  {
3282
2893
  cmpMeta.$watchers$ = Cstr.watchers;
2894
+ cmpMeta.$serializers$ = Cstr.serializers;
2895
+ cmpMeta.$deserializers$ = Cstr.deserializers;
3283
2896
  }
3284
2897
  proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
3285
2898
  Cstr.isProxied = true;
@@ -3342,6 +2955,9 @@ var fireConnectedCallback = (instance, elm) => {
3342
2955
  var connectedCallback = (elm) => {
3343
2956
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
3344
2957
  const hostRef = getHostRef(elm);
2958
+ if (!hostRef) {
2959
+ return;
2960
+ }
3345
2961
  const cmpMeta = hostRef.$cmpMeta$;
3346
2962
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
3347
2963
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
@@ -3377,7 +2993,7 @@ var connectedCallback = (elm) => {
3377
2993
  }
3378
2994
  if (cmpMeta.$members$) {
3379
2995
  Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {
3380
- if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {
2996
+ if (memberFlags & 31 /* Prop */ && memberName in elm && elm[memberName] !== Object.prototype[memberName]) {
3381
2997
  const value = elm[memberName];
3382
2998
  delete elm[memberName];
3383
2999
  elm[memberName] = value;
@@ -3417,7 +3033,7 @@ var disconnectedCallback = async (elm) => {
3417
3033
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
3418
3034
  const hostRef = getHostRef(elm);
3419
3035
  {
3420
- if (hostRef.$rmListeners$) {
3036
+ if (hostRef == null ? void 0 : hostRef.$rmListeners$) {
3421
3037
  hostRef.$rmListeners$.map((rmListener) => rmListener());
3422
3038
  hostRef.$rmListeners$ = void 0;
3423
3039
  }
@@ -3464,7 +3080,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
3464
3080
  let hasSlotRelocation = false;
3465
3081
  lazyBundles.map((lazyBundle) => {
3466
3082
  lazyBundle[1].map((compactMeta) => {
3467
- var _a2;
3083
+ var _a2, _b, _c;
3468
3084
  const cmpMeta = {
3469
3085
  $flags$: compactMeta[0],
3470
3086
  $tagName$: compactMeta[1],
@@ -3485,6 +3101,8 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
3485
3101
  }
3486
3102
  {
3487
3103
  cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
3104
+ cmpMeta.$serializers$ = (_b = compactMeta[5]) != null ? _b : {};
3105
+ cmpMeta.$deserializers$ = (_c = compactMeta[6]) != null ? _c : {};
3488
3106
  }
3489
3107
  const tagName = cmpMeta.$tagName$;
3490
3108
  const HostElement = class extends HTMLElement {
@@ -3510,6 +3128,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
3510
3128
  }
3511
3129
  connectedCallback() {
3512
3130
  const hostRef = getHostRef(this);
3131
+ if (!hostRef) {
3132
+ return;
3133
+ }
3513
3134
  if (!this.hasRegisteredEventListeners) {
3514
3135
  this.hasRegisteredEventListeners = true;
3515
3136
  addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
@@ -3529,6 +3150,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
3529
3150
  plt.raf(() => {
3530
3151
  var _a3;
3531
3152
  const hostRef = getHostRef(this);
3153
+ if (!hostRef) {
3154
+ return;
3155
+ }
3532
3156
  const i2 = deferredConnectedCallbacks.findIndex((host) => host === this);
3533
3157
  if (i2 > -1) {
3534
3158
  deferredConnectedCallbacks.splice(i2, 1);
@@ -3539,11 +3163,12 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
3539
3163
  });
3540
3164
  }
3541
3165
  componentOnReady() {
3542
- return getHostRef(this).$onReadyPromise$;
3166
+ var _a3;
3167
+ return (_a3 = getHostRef(this)) == null ? void 0 : _a3.$onReadyPromise$;
3543
3168
  }
3544
3169
  };
3545
- {
3546
- if (cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {
3170
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && cmpMeta.$flags$ & 256 /* hasRenderFn */) {
3171
+ {
3547
3172
  patchPseudoShadowDom(HostElement.prototype);
3548
3173
  }
3549
3174
  }
@@ -3635,29 +3260,23 @@ exports.Build = Build;
3635
3260
  exports.Fragment = Fragment;
3636
3261
  exports.H = H;
3637
3262
  exports.Host = Host;
3638
- exports.MENU_BACK_BUTTON_PRIORITY = MENU_BACK_BUTTON_PRIORITY;
3639
- exports.OVERLAY_BACK_BUTTON_PRIORITY = OVERLAY_BACK_BUTTON_PRIORITY;
3640
3263
  exports.bootstrapLazy = bootstrapLazy;
3641
3264
  exports.config = config;
3265
+ exports.configFromSession = configFromSession;
3266
+ exports.configFromURL = configFromURL;
3642
3267
  exports.createEvent = createEvent;
3643
- exports.doc = doc;
3644
3268
  exports.forceUpdate = forceUpdate;
3645
3269
  exports.getAssetPath = getAssetPath;
3646
3270
  exports.getElement = getElement;
3647
- exports.getIonMode = getIonMode;
3648
- exports.getIonTheme = getIonTheme;
3649
- exports.getPlatforms = getPlatforms;
3650
- exports.globalScripts = globalScripts;
3271
+ exports.getMode = getMode;
3651
3272
  exports.h = h;
3652
- exports.initialize = initialize;
3653
- exports.isPlatform = isPlatform;
3654
3273
  exports.printIonError = printIonError;
3655
3274
  exports.printIonWarning = printIonWarning;
3656
3275
  exports.printRequiredElementError = printRequiredElementError;
3657
3276
  exports.promiseResolve = promiseResolve;
3658
3277
  exports.readTask = readTask;
3659
3278
  exports.registerInstance = registerInstance;
3279
+ exports.saveConfig = saveConfig;
3280
+ exports.setMode = setMode;
3660
3281
  exports.setNonce = setNonce;
3661
- exports.shouldUseCloseWatcher = shouldUseCloseWatcher;
3662
- exports.win = win$1;
3663
3282
  exports.writeTask = writeTask;