@ionic/core 7.8.1-dev.11710449785.14ebd5a0 → 7.8.1-dev.11710452743.1ca99e5e

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 (294) hide show
  1. package/components/ion-datetime-button.js +1 -1
  2. package/components/ion-datetime.js +6 -7
  3. package/components/ion-fab-button.js +2 -2
  4. package/components/ion-fab-list.js +2 -2
  5. package/components/ion-fab.js +2 -2
  6. package/components/ion-footer.js +2 -2
  7. package/components/ion-grid.js +2 -2
  8. package/components/ion-header.js +3 -3
  9. package/components/ion-img.js +1 -1
  10. package/components/ion-infinite-scroll-content.js +2 -2
  11. package/components/ion-infinite-scroll.js +1 -1
  12. package/components/ion-item-divider.js +2 -2
  13. package/components/ion-item-group.js +1 -1
  14. package/components/ion-item-option.js +2 -2
  15. package/components/ion-item-options.js +1 -1
  16. package/components/ion-item-sliding.js +1 -1
  17. package/components/ion-loading.js +2 -2
  18. package/components/ion-menu-button.js +2 -2
  19. package/components/ion-menu-toggle.js +2 -2
  20. package/components/ion-menu.js +2 -2
  21. package/components/ion-modal.js +3 -3
  22. package/components/ion-nav-link.js +1 -1
  23. package/components/ion-nav.js +1 -1
  24. package/components/ion-picker.js +2 -2
  25. package/components/ion-progress-bar.js +1 -1
  26. package/components/ion-refresher-content.js +1 -1
  27. package/components/ion-refresher.js +1 -1
  28. package/components/ion-reorder-group.js +1 -1
  29. package/components/ion-reorder.js +1 -1
  30. package/components/ion-router-link.js +2 -2
  31. package/components/ion-router-outlet.js +1 -1
  32. package/components/ion-row.js +1 -1
  33. package/components/ion-searchbar.js +4 -4
  34. package/components/ion-segment-button.js +3 -3
  35. package/components/ion-segment.js +2 -2
  36. package/components/ion-select-option.js +1 -1
  37. package/components/ion-skeleton-text.js +2 -2
  38. package/components/ion-split-pane.js +2 -2
  39. package/components/ion-tab-bar.js +2 -2
  40. package/components/ion-tab-button.js +2 -2
  41. package/components/ion-tab.js +2 -2
  42. package/components/ion-tabs.js +1 -1
  43. package/components/ion-text.js +2 -2
  44. package/components/ion-thumbnail.js +1 -1
  45. package/components/ion-title.js +2 -2
  46. package/components/ion-toast.js +2 -2
  47. package/components/ion-toolbar.js +2 -2
  48. package/components/label.js +1 -1
  49. package/components/list-header.js +2 -2
  50. package/components/list.js +1 -1
  51. package/components/note.js +2 -2
  52. package/components/picker-column-internal.js +3 -3
  53. package/components/picker-column.js +2 -2
  54. package/components/picker-internal.js +2 -2
  55. package/components/popover.js +2 -2
  56. package/components/radio-group.js +1 -1
  57. package/components/ripple-effect.js +1 -1
  58. package/components/select-popover.js +1 -1
  59. package/components/spinner.js +1 -1
  60. package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
  61. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  62. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  63. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  64. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -11
  65. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  66. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  67. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  68. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  69. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  70. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  72. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  73. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  75. package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  78. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  82. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  84. package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
  85. package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  87. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  89. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  90. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  91. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  92. package/dist/collection/components/datetime/datetime.js +6 -7
  93. package/dist/collection/components/datetime-button/datetime-button.js +1 -1
  94. package/dist/collection/components/fab/fab.js +2 -2
  95. package/dist/collection/components/fab-button/fab-button.js +2 -2
  96. package/dist/collection/components/fab-list/fab-list.js +2 -2
  97. package/dist/collection/components/footer/footer.js +2 -2
  98. package/dist/collection/components/grid/grid.js +2 -2
  99. package/dist/collection/components/header/header.ios.css +2 -2
  100. package/dist/collection/components/header/header.js +2 -2
  101. package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
  102. package/dist/collection/components/img/img.js +1 -1
  103. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  104. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  105. package/dist/collection/components/item-divider/item-divider.js +2 -2
  106. package/dist/collection/components/item-group/item-group.js +1 -1
  107. package/dist/collection/components/item-option/item-option.js +2 -2
  108. package/dist/collection/components/item-options/item-options.js +1 -1
  109. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  110. package/dist/collection/components/label/label.js +1 -1
  111. package/dist/collection/components/list/list.js +1 -1
  112. package/dist/collection/components/list-header/list-header.js +2 -2
  113. package/dist/collection/components/loading/loading.js +2 -2
  114. package/dist/collection/components/menu/menu.js +2 -2
  115. package/dist/collection/components/menu-button/menu-button.js +2 -2
  116. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  117. package/dist/collection/components/modal/modal.js +3 -3
  118. package/dist/collection/components/nav/nav.js +1 -1
  119. package/dist/collection/components/nav-link/nav-link.js +1 -1
  120. package/dist/collection/components/note/note.js +2 -2
  121. package/dist/collection/components/picker/picker.js +2 -2
  122. package/dist/collection/components/picker-column/picker-column.js +2 -2
  123. package/dist/collection/components/picker-column-internal/picker-column-internal.js +3 -3
  124. package/dist/collection/components/picker-internal/picker-internal.js +2 -2
  125. package/dist/collection/components/popover/popover.js +2 -2
  126. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  127. package/dist/collection/components/radio-group/radio-group.js +1 -1
  128. package/dist/collection/components/refresher/refresher.js +1 -1
  129. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  130. package/dist/collection/components/reorder/reorder.js +1 -1
  131. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  132. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  133. package/dist/collection/components/router-link/router-link.js +2 -2
  134. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  135. package/dist/collection/components/row/row.js +1 -1
  136. package/dist/collection/components/searchbar/searchbar.js +4 -4
  137. package/dist/collection/components/segment/segment.js +2 -2
  138. package/dist/collection/components/segment-button/segment-button.js +3 -3
  139. package/dist/collection/components/select-option/select-option.js +1 -1
  140. package/dist/collection/components/select-popover/select-popover.js +1 -1
  141. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  142. package/dist/collection/components/spinner/spinner.js +1 -1
  143. package/dist/collection/components/split-pane/split-pane.js +2 -2
  144. package/dist/collection/components/tab/tab.js +2 -2
  145. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  146. package/dist/collection/components/tab-button/tab-button.js +2 -2
  147. package/dist/collection/components/tabs/tabs.js +1 -1
  148. package/dist/collection/components/text/text.js +2 -2
  149. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  150. package/dist/collection/components/title/title.js +2 -2
  151. package/dist/collection/components/toast/toast.js +2 -2
  152. package/dist/collection/components/toolbar/toolbar.js +2 -2
  153. package/dist/docs.json +1 -1
  154. package/dist/esm/ion-app_8.entry.js +10 -10
  155. package/dist/esm/ion-avatar_3.entry.js +1 -1
  156. package/dist/esm/ion-col_3.entry.js +3 -3
  157. package/dist/esm/ion-datetime-button.entry.js +1 -1
  158. package/dist/esm/ion-datetime_3.entry.js +10 -11
  159. package/dist/esm/ion-fab_3.entry.js +6 -6
  160. package/dist/esm/ion-img.entry.js +1 -1
  161. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  162. package/dist/esm/ion-item-option_3.entry.js +4 -4
  163. package/dist/esm/ion-item_8.entry.js +11 -11
  164. package/dist/esm/ion-loading.entry.js +2 -2
  165. package/dist/esm/ion-menu_3.entry.js +6 -6
  166. package/dist/esm/ion-modal.entry.js +3 -3
  167. package/dist/esm/ion-nav_2.entry.js +2 -2
  168. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  169. package/dist/esm/ion-picker-internal.entry.js +2 -2
  170. package/dist/esm/ion-popover.entry.js +2 -2
  171. package/dist/esm/ion-progress-bar.entry.js +1 -1
  172. package/dist/esm/ion-radio_2.entry.js +1 -1
  173. package/dist/esm/ion-refresher_2.entry.js +2 -2
  174. package/dist/esm/ion-reorder_2.entry.js +2 -2
  175. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  176. package/dist/esm/ion-route_4.entry.js +2 -2
  177. package/dist/esm/ion-searchbar.entry.js +4 -4
  178. package/dist/esm/ion-segment_2.entry.js +5 -5
  179. package/dist/esm/ion-select_3.entry.js +2 -2
  180. package/dist/esm/ion-spinner.entry.js +1 -1
  181. package/dist/esm/ion-split-pane.entry.js +2 -2
  182. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  183. package/dist/esm/ion-tab_2.entry.js +3 -3
  184. package/dist/esm/ion-text.entry.js +2 -2
  185. package/dist/esm/ion-toast.entry.js +2 -2
  186. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  187. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  188. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  189. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  190. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  191. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  192. package/dist/esm-es5/ion-img.entry.js +1 -1
  193. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  195. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  196. package/dist/esm-es5/ion-loading.entry.js +1 -1
  197. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  198. package/dist/esm-es5/ion-modal.entry.js +1 -1
  199. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  200. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  201. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  202. package/dist/esm-es5/ion-popover.entry.js +1 -1
  203. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  204. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  205. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  207. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  208. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  209. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  210. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  212. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  213. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  214. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  215. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  216. package/dist/esm-es5/ion-text.entry.js +1 -1
  217. package/dist/esm-es5/ion-toast.entry.js +1 -1
  218. package/dist/ionic/ionic.esm.js +1 -1
  219. package/dist/ionic/{p-c1a58ab3.system.entry.js → p-04721936.system.entry.js} +1 -1
  220. package/dist/ionic/{p-43438ce1.system.entry.js → p-059fcb53.system.entry.js} +2 -2
  221. package/dist/ionic/{p-4e74f845.system.entry.js → p-08410e29.system.entry.js} +1 -1
  222. package/dist/ionic/{p-0188824c.entry.js → p-08a5d8eb.entry.js} +1 -1
  223. package/dist/ionic/{p-dd5a925f.entry.js → p-09b047e0.entry.js} +1 -1
  224. package/dist/ionic/{p-8be61e52.entry.js → p-09fc100a.entry.js} +1 -1
  225. package/dist/ionic/p-1522bf28.entry.js +4 -0
  226. package/dist/ionic/{p-a53d569a.system.entry.js → p-231a3636.system.entry.js} +1 -1
  227. package/dist/ionic/{p-45362829.system.entry.js → p-2b77099e.system.entry.js} +1 -1
  228. package/dist/ionic/{p-a7959307.entry.js → p-3270e211.entry.js} +1 -1
  229. package/dist/ionic/{p-5e3e64b5.entry.js → p-3377236e.entry.js} +1 -1
  230. package/dist/ionic/{p-8a21c7b4.system.entry.js → p-33dd4d0b.system.entry.js} +1 -1
  231. package/dist/ionic/{p-51dd4f12.system.entry.js → p-345e2dac.system.entry.js} +1 -1
  232. package/dist/ionic/{p-c0d7aace.entry.js → p-36a80e5c.entry.js} +1 -1
  233. package/dist/ionic/{p-62f36e54.entry.js → p-3ca0c7f2.entry.js} +1 -1
  234. package/dist/ionic/{p-15ced5aa.entry.js → p-45ea497f.entry.js} +1 -1
  235. package/dist/ionic/{p-2c94053b.entry.js → p-479402e1.entry.js} +1 -1
  236. package/dist/ionic/{p-7126abb8.system.entry.js → p-4830fae8.system.entry.js} +1 -1
  237. package/dist/ionic/p-4abb3f9e.entry.js +4 -0
  238. package/dist/ionic/{p-51ebe7c6.entry.js → p-5d8fca58.entry.js} +1 -1
  239. package/dist/ionic/p-60c9fd9e.system.js +1 -1
  240. package/dist/ionic/{p-7c91266e.system.entry.js → p-6b5630b9.system.entry.js} +1 -1
  241. package/dist/ionic/{p-2bc25d50.system.entry.js → p-72c8ca65.system.entry.js} +2 -2
  242. package/dist/ionic/{p-4f73a163.system.entry.js → p-7b809cc0.system.entry.js} +1 -1
  243. package/dist/ionic/{p-ab7c79d9.entry.js → p-7f865669.entry.js} +1 -1
  244. package/dist/ionic/{p-c63a69cd.entry.js → p-84283745.entry.js} +1 -1
  245. package/dist/ionic/{p-0fa9c8f7.system.entry.js → p-86438241.system.entry.js} +1 -1
  246. package/dist/ionic/{p-6a110cb2.entry.js → p-8a5c2121.entry.js} +1 -1
  247. package/dist/ionic/{p-e7bdaac8.system.entry.js → p-8c74bd0e.system.entry.js} +2 -2
  248. package/dist/ionic/{p-c99bfffe.entry.js → p-8ce6d551.entry.js} +1 -1
  249. package/dist/ionic/{p-2791b018.system.entry.js → p-8e6ecbad.system.entry.js} +1 -1
  250. package/dist/ionic/{p-11d480a7.system.entry.js → p-8f466a2c.system.entry.js} +1 -1
  251. package/dist/ionic/{p-2d88f64e.system.entry.js → p-9074a84e.system.entry.js} +1 -1
  252. package/dist/ionic/{p-e2236935.entry.js → p-95c2fa04.entry.js} +1 -1
  253. package/dist/ionic/{p-0ef05e5d.system.entry.js → p-996922b4.system.entry.js} +1 -1
  254. package/dist/ionic/p-a722d78f.system.entry.js +4 -0
  255. package/dist/ionic/{p-deb09b58.entry.js → p-abbc6d5b.entry.js} +1 -1
  256. package/dist/ionic/{p-e631799d.entry.js → p-abcc9680.entry.js} +1 -1
  257. package/dist/ionic/p-addb7662.entry.js +4 -0
  258. package/dist/ionic/{p-98bac954.entry.js → p-ae3aeb39.entry.js} +1 -1
  259. package/dist/ionic/{p-7186eb03.system.entry.js → p-b0ccd173.system.entry.js} +1 -1
  260. package/dist/ionic/{p-0971ee6d.system.entry.js → p-b13b7128.system.entry.js} +1 -1
  261. package/dist/ionic/p-b80ef521.entry.js +4 -0
  262. package/dist/ionic/{p-5f3fc112.system.entry.js → p-b9b8e462.system.entry.js} +1 -1
  263. package/dist/ionic/{p-079817f9.system.entry.js → p-ba385465.system.entry.js} +1 -1
  264. package/dist/ionic/{p-2fec06f2.entry.js → p-bc56a728.entry.js} +1 -1
  265. package/dist/ionic/{p-966a5ae4.system.entry.js → p-c2a9829c.system.entry.js} +1 -1
  266. package/dist/ionic/{p-d637b857.entry.js → p-c6f9f608.entry.js} +1 -1
  267. package/dist/ionic/{p-3b85bb44.entry.js → p-c7d8cec2.entry.js} +1 -1
  268. package/dist/ionic/{p-bc68a14a.entry.js → p-ca935c03.entry.js} +1 -1
  269. package/dist/ionic/{p-25f56cd7.system.entry.js → p-cf88a096.system.entry.js} +1 -1
  270. package/dist/ionic/{p-f89380a5.system.entry.js → p-cfd31f45.system.entry.js} +1 -1
  271. package/dist/ionic/{p-526258be.entry.js → p-cfe767f1.entry.js} +1 -1
  272. package/dist/ionic/p-d070ab1e.system.entry.js +4 -0
  273. package/dist/ionic/{p-0dbbf52a.system.entry.js → p-db6a5af3.system.entry.js} +1 -1
  274. package/dist/ionic/p-de0392f4.entry.js +4 -0
  275. package/dist/ionic/p-e02681a6.entry.js +4 -0
  276. package/dist/ionic/{p-e6c115f6.system.entry.js → p-e155f315.system.entry.js} +1 -1
  277. package/dist/ionic/{p-8e127a08.system.entry.js → p-e4bf5d87.system.entry.js} +1 -1
  278. package/dist/ionic/{p-2b78245e.entry.js → p-e59803ca.entry.js} +1 -1
  279. package/dist/ionic/{p-65409f36.entry.js → p-e8d46a2e.entry.js} +1 -1
  280. package/dist/ionic/{p-0eb111e7.system.entry.js → p-f5bc27d6.system.entry.js} +1 -1
  281. package/dist/ionic/{p-80808af6.entry.js → p-f5dce0c6.entry.js} +1 -1
  282. package/dist/ionic/{p-1561982b.system.entry.js → p-f9f7b24a.system.entry.js} +1 -1
  283. package/dist/ionic/{p-58b335fd.system.entry.js → p-fef4907e.system.entry.js} +1 -1
  284. package/dist/types/components/datetime/datetime.d.ts +0 -1
  285. package/hydrate/index.js +104 -105
  286. package/package.json +1 -1
  287. package/dist/ionic/p-2055bdba.entry.js +0 -4
  288. package/dist/ionic/p-327f8d66.entry.js +0 -4
  289. package/dist/ionic/p-46ca8bb1.entry.js +0 -4
  290. package/dist/ionic/p-6ec0c1ee.system.entry.js +0 -4
  291. package/dist/ionic/p-b7aec03b.entry.js +0 -4
  292. package/dist/ionic/p-bbb655e2.system.entry.js +0 -4
  293. package/dist/ionic/p-f520f6a5.entry.js +0 -4
  294. package/dist/ionic/p-f98bd898.entry.js +0 -4
@@ -66,11 +66,11 @@ const TabBar = class {
66
66
  const { color, translucent, keyboardVisible } = this;
67
67
  const mode = ionicGlobal.getIonMode(this);
68
68
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
69
- return (index.h(index.Host, { key: '51e4bdbce8c7107c1114a39618b4a9a941876bb1', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: theme.createColorClasses(color, {
69
+ return (index.h(index.Host, { key: 'e2b4b50270f171ed251359df6c65c5e7e4d526a4', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: theme.createColorClasses(color, {
70
70
  [mode]: true,
71
71
  'tab-bar-translucent': translucent,
72
72
  'tab-bar-hidden': shouldHide,
73
- }) }, index.h("slot", { key: 'c11618f97e93deb0a56f33c904481b4811c685ec' })));
73
+ }) }, index.h("slot", { key: '37495b2eddd01a758ceaeb36426abc9bd20bcca3' })));
74
74
  }
75
75
  get el() { return index.getElement(this); }
76
76
  static get watchers() { return {
@@ -150,7 +150,7 @@ const TabButton = class {
150
150
  rel,
151
151
  target,
152
152
  };
153
- return (index.h(index.Host, { key: '32ec1fb183523dadaaed6689add4a042d0fdd69a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
153
+ return (index.h(index.Host, { key: '9926f9392e7910ff3159397e4f907e0d7d2cf5a0', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
154
154
  [mode]: true,
155
155
  'tab-selected': selected,
156
156
  'tab-disabled': disabled,
@@ -162,7 +162,7 @@ const TabButton = class {
162
162
  'ion-activatable': true,
163
163
  'ion-selectable': true,
164
164
  'ion-focusable': true,
165
- } }, index.h("a", Object.assign({ key: '9e56304c52e30ae3a3dca434fa0b41eccc873faa' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), index.h("span", { key: '34eae18c23584742a25d20b4038aa1742d9ab0d8', class: "button-inner" }, index.h("slot", { key: '4bc9629861f5ce3f1ef87ac77bc027ba0dea694c' })), mode === 'md' && index.h("ion-ripple-effect", { type: "unbounded" }))));
165
+ } }, index.h("a", Object.assign({ key: '4b3ace749583a5502e94462f9a70c5158fe0194a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), index.h("span", { key: 'a2a30c02fbd5052da12586a5ab00a45f3bf53b88', class: "button-inner" }, index.h("slot", { key: '3fb22ffbb09000d99537b531220c029330ae6940' })), mode === 'md' && index.h("ion-ripple-effect", { type: "unbounded" }))));
166
166
  }
167
167
  get el() { return index.getElement(this); }
168
168
  };
@@ -50,10 +50,10 @@ const Tab = class {
50
50
  }
51
51
  render() {
52
52
  const { tab, active, component } = this;
53
- return (index.h(index.Host, { key: 'fa5c567bf59eb8bd46a7d2b85a560e43c43563fe', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
53
+ return (index.h(index.Host, { key: '0f4b90f0b1027e89bd447ace17af31c8e155a827', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
54
54
  'ion-page': component === undefined,
55
55
  'tab-hidden': !active,
56
- } }, index.h("slot", { key: '133871ad0bafa16539dfec4a6bd640367c998039' })));
56
+ } }, index.h("slot", { key: 'ec3eaacf8b7085510e89273aa8373805ee98a381' })));
57
57
  }
58
58
  get el() { return index.getElement(this); }
59
59
  static get watchers() { return {
@@ -197,7 +197,7 @@ const Tabs = class {
197
197
  return Array.from(this.el.querySelectorAll('ion-tab'));
198
198
  }
199
199
  render() {
200
- return (index.h(index.Host, { key: '5c76b077d508b1379a985503618dade63a9db514', onIonTabButtonClick: this.onTabClicked }, index.h("slot", { key: '357ba85e01de10d3c0e52adcb1977bbc0dbbf587', name: "top" }), index.h("div", { key: 'c8c59aac4e1394a1a7505f201cbf609b9b0c6ea9', class: "tabs-inner" }, index.h("slot", { key: '00951068088580ab408f9c24ede39144b212b0d6' })), index.h("slot", { key: 'a1118402fbd5995b07f7676f216b2efbc6052f12', name: "bottom" })));
200
+ return (index.h(index.Host, { key: '9044f05f4716fd9c158864175290dfb044e63539', onIonTabButtonClick: this.onTabClicked }, index.h("slot", { key: '178492f52f15a042e47531007a3564a935847818', name: "top" }), index.h("div", { key: 'b3affaaeb7752194acde36d9de74dbe2b3280cd1', class: "tabs-inner" }, index.h("slot", { key: '98f0f4e2903f1a6cec041e06b75073c57960a912' })), index.h("slot", { key: '0899482561bdaf35e97e5a40860c40978daca03a', name: "bottom" })));
201
201
  }
202
202
  get el() { return index.getElement(this); }
203
203
  };
@@ -19,9 +19,9 @@ const Text = class {
19
19
  }
20
20
  render() {
21
21
  const mode = ionicGlobal.getIonMode(this);
22
- return (index.h(index.Host, { key: '66ed5ea3af47d2a4bdaee79914a2f5ae2cb54a9d', class: theme.createColorClasses(this.color, {
22
+ return (index.h(index.Host, { key: '8922ebdd7486c9cb9f9b547a49e5be2261df4ba1', class: theme.createColorClasses(this.color, {
23
23
  [mode]: true,
24
- }) }, index.h("slot", { key: '61239138ae5e25c2cceb839f70c50069fc42338e' })));
24
+ }) }, index.h("slot", { key: '164cbd0f81a00adfac04f544524e905f721c121c' })));
25
25
  }
26
26
  };
27
27
  Text.style = IonTextStyle0;
@@ -829,9 +829,9 @@ const Toast = class {
829
829
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
830
830
  index$1.printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
831
831
  }
832
- return (index$3.h(index$3.Host, Object.assign({ key: 'f01e1dd2f7cc0680a24f6aa4ee3f677f86d255f4', tabindex: "-1" }, this.htmlAttributes, { style: {
832
+ return (index$3.h(index$3.Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
833
833
  zIndex: `${60000 + this.overlayIndex}`,
834
- }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), index$3.h("div", { key: '603468c5e6abfb284df3fcdfa33c4f45d899fb2a', class: wrapperClass }, index$3.h("div", { key: '0eebff71a0caf3bece4d042199cbf9226251a1a0', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index$3.h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index$3.h("div", { key: 'a84a9b0c0b719f588aa1ace4ef822bb105578c29', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
834
+ }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), index$3.h("div", { key: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, index$3.h("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index$3.h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index$3.h("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
835
835
  }
836
836
  get el() { return index$3.getElement(this); }
837
837
  static get watchers() { return {
@@ -799,7 +799,6 @@ export class Datetime {
799
799
  this.initializeKeyboardListeners();
800
800
  }
801
801
  componentDidLoad() {
802
- const { el, intersectionTrackerRef } = this;
803
802
  /**
804
803
  * If a scrollable element is hidden using `display: none`,
805
804
  * it will not have a scroll height meaning we cannot scroll elements
@@ -825,14 +824,14 @@ export class Datetime {
825
824
  this.el.classList.add('datetime-ready');
826
825
  });
827
826
  };
828
- const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
827
+ const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });
829
828
  /**
830
829
  * Use raf to avoid a race condition between the component loading and
831
830
  * its display animation starting (such as when shown in a modal). This
832
831
  * could cause the datetime to start at a visibility of 0, erroneously
833
832
  * triggering the `hiddenIO` observer below.
834
833
  */
835
- raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
834
+ raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(this.el));
836
835
  /**
837
836
  * We need to clean up listeners when the datetime is hidden
838
837
  * in a popover/modal so that we can properly scroll containers
@@ -858,8 +857,8 @@ export class Datetime {
858
857
  this.el.classList.remove('datetime-ready');
859
858
  });
860
859
  };
861
- const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0, root: el });
862
- raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(intersectionTrackerRef));
860
+ const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });
861
+ raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(this.el));
863
862
  /**
864
863
  * Datetime uses Ionic components that emit
865
864
  * ionFocus and ionBlur. These events are
@@ -1610,7 +1609,7 @@ export class Datetime {
1610
1609
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1611
1610
  const hasWheelVariant = hasDatePresentation && preferWheel;
1612
1611
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1613
- return (h(Host, { key: '064dc72b5494a687e93e7605f7e1ec2d00f523ad', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1612
+ return (h(Host, { key: 'b12b07aebad0a686f93f70dbe29bd039b4c4104f', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1614
1613
  [mode]: true,
1615
1614
  ['datetime-readonly']: readonly,
1616
1615
  ['datetime-disabled']: disabled,
@@ -1620,7 +1619,7 @@ export class Datetime {
1620
1619
  [`datetime-size-${size}`]: true,
1621
1620
  [`datetime-prefer-wheel`]: hasWheelVariant,
1622
1621
  [`datetime-grid`]: isGridStyle,
1623
- })) }, h("div", { key: '258b34ca5d9bacfaa886a7de278f41a30be48c44', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1622
+ })) }, this.renderDatetime(mode)));
1624
1623
  }
1625
1624
  static get is() { return "ion-datetime"; }
1626
1625
  static get encapsulation() { return "shadow"; }
@@ -337,7 +337,7 @@ export class DatetimeButton {
337
337
  render() {
338
338
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
339
339
  const mode = getIonMode(this);
340
- return (h(Host, { key: 'a38773e24ea0a28315be89baf0ef97f564b5d74b', class: createColorClasses(color, {
340
+ return (h(Host, { key: '861a08f4a239de771875aee9b505e06ac7064b32', class: createColorClasses(color, {
341
341
  [mode]: true,
342
342
  [`${selectedButton}-active`]: datetimeActive,
343
343
  ['datetime-button-disabled']: disabled,
@@ -47,12 +47,12 @@ export class Fab {
47
47
  render() {
48
48
  const { horizontal, vertical, edge } = this;
49
49
  const mode = getIonMode(this);
50
- return (h(Host, { key: '2960656845d8ab1d643e56870cfeefbceb44fb20', class: {
50
+ return (h(Host, { key: 'eb7470763cfaadd229036fe4e04913cb4a0551c7', class: {
51
51
  [mode]: true,
52
52
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
53
53
  [`fab-vertical-${vertical}`]: vertical !== undefined,
54
54
  'fab-edge': edge,
55
- } }, h("slot", { key: 'eed164a50594167959905a90d678d417bc99098d' })));
55
+ } }, h("slot", { key: 'daf53f8c644db866f69d41401dba7a2791c37ac3' })));
56
56
  }
57
57
  static get is() { return "ion-fab"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -63,7 +63,7 @@ export class FabButton {
63
63
  rel: this.rel,
64
64
  target: this.target,
65
65
  };
66
- return (h(Host, { key: 'c6d1a3ea95ee1fb6c86447881ff8ed7d885b9fb5', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
66
+ return (h(Host, { key: '78f11aaac39bf0fcb25b64885ee61619223e4241', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
67
67
  [mode]: true,
68
68
  'fab-button-in-list': inList,
69
69
  'fab-button-translucent-in-list': inList && translucent,
@@ -74,7 +74,7 @@ export class FabButton {
74
74
  'ion-activatable': true,
75
75
  'ion-focusable': true,
76
76
  [`fab-button-${size}`]: size !== undefined,
77
- }) }, h(TagType, Object.assign({ key: 'd57e55e43e3e1fa7a255e25bfb9eb81a20200aa4' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), h("ion-icon", { key: '561252585dc5f5ed260987fc8fef2558700b2700', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), h("span", { key: 'd156660a55d4d849c24368ee79217e66c6423b37', class: "button-inner" }, h("slot", { key: '35d4507eec7e4f646e1ef9206b8d6c9fd5a43c37' })), mode === 'md' && h("ion-ripple-effect", null))));
77
+ }) }, h(TagType, Object.assign({ key: 'a29b5eff122006d463ef3e10e1abe8378de07dc5' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), h("ion-icon", { key: 'e554c978fd9825eec9ca958f5b481f662ed6daa4', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), h("span", { key: 'd7dd93e93343767d223800899f0fd4c405845023', class: "button-inner" }, h("slot", { key: 'dd5df0945385480e7551e24117d136cd6b231638' })), mode === 'md' && h("ion-ripple-effect", null))));
78
78
  }
79
79
  static get is() { return "ion-fab-button"; }
80
80
  static get encapsulation() { return "shadow"; }
@@ -18,11 +18,11 @@ export class FabList {
18
18
  }
19
19
  render() {
20
20
  const mode = getIonMode(this);
21
- return (h(Host, { key: 'edbed7730aa2f177a6fb39a89af805b9699bc9ae', class: {
21
+ return (h(Host, { key: 'c786680f9868700913a182f908f25a612ec08498', class: {
22
22
  [mode]: true,
23
23
  'fab-list-active': this.activated,
24
24
  [`fab-list-side-${this.side}`]: true,
25
- } }, h("slot", { key: '3ecb467b6d09dc02a1ab3cb76403f7c56e8ec6b2' })));
25
+ } }, h("slot", { key: '547f8cb69ab2371095e3deeef1dc13fc1053bdf6' })));
26
26
  }
27
27
  static get is() { return "ion-fab-list"; }
28
28
  static get encapsulation() { return "shadow"; }
@@ -80,7 +80,7 @@ export class Footer {
80
80
  const mode = getIonMode(this);
81
81
  const tabs = this.el.closest('ion-tabs');
82
82
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
83
- return (h(Host, { key: '6f2827ba2e64d1a889c0631bc2a6d5df97b338ce', role: "contentinfo", class: {
83
+ return (h(Host, { key: '550b8b8fb614e541e1d369fc1ac5ba1f083913b4', role: "contentinfo", class: {
84
84
  [mode]: true,
85
85
  // Used internally for styling
86
86
  [`footer-${mode}`]: true,
@@ -88,7 +88,7 @@ export class Footer {
88
88
  [`footer-translucent-${mode}`]: translucent,
89
89
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
90
90
  [`footer-collapse-${collapse}`]: collapse !== undefined,
91
- } }, mode === 'ios' && translucent && h("div", { class: "footer-background" }), h("slot", { key: 'b07574feb587a1089b001e7d158fd8d05e32304b' })));
91
+ } }, mode === 'ios' && translucent && h("div", { class: "footer-background" }), h("slot", { key: 'd25187ecc2ce7848ba882af078cb634e9d5e8814' })));
92
92
  }
93
93
  static get is() { return "ion-footer"; }
94
94
  static get originalStyleUrls() {
@@ -9,10 +9,10 @@ export class Grid {
9
9
  }
10
10
  render() {
11
11
  const mode = getIonMode(this);
12
- return (h(Host, { key: '265ab989098511c0b7e7d99edc792081f3ac7dfe', class: {
12
+ return (h(Host, { key: '03a8975bb9320192033219fc9e06fe7afa4fae4a', class: {
13
13
  [mode]: true,
14
14
  'grid-fixed': this.fixed,
15
- } }, h("slot", { key: '83e3ea4d1a60d1a6dab6b592e70a98924c0cfd7c' })));
15
+ } }, h("slot", { key: '8d95abb4614e73a46a274668c13fe7c7f011c537' })));
16
16
  }
17
17
  static get is() { return "ion-grid"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -241,7 +241,7 @@ ion-header ion-toolbar:first-of-type {
241
241
  * We target both the attribute and the class in the event that the attribute
242
242
  * is not reflected on the host in some frameworks.
243
243
  */
244
- ion-header:not(.header-collapse-main):has(~ ion-content ion-header[collapse=condense],
245
- ~ ion-content ion-header.header-collapse-condense) {
244
+ ion-header.header-ios:not(.header-collapse-main):has(~ ion-content ion-header.header-ios[collapse=condense],
245
+ ~ ion-content ion-header.header-ios.header-collapse-condense) {
246
246
  opacity: 0;
247
247
  }
@@ -140,14 +140,14 @@ export class Header {
140
140
  const collapse = this.collapse || 'none';
141
141
  // banner role must be at top level, so remove role if inside a menu
142
142
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
143
- return (h(Host, Object.assign({ key: 'be4386a218c20dc4c18320dbbcfb25574d13d27e', role: roleType, class: {
143
+ return (h(Host, Object.assign({ key: 'a33e7e1818cb4718ae36b8bcfa811c4138b85fac', role: roleType, class: {
144
144
  [mode]: true,
145
145
  // Used internally for styling
146
146
  [`header-${mode}`]: true,
147
147
  [`header-translucent`]: this.translucent,
148
148
  [`header-collapse-${collapse}`]: true,
149
149
  [`header-translucent-${mode}`]: this.translucent,
150
- } }, inheritedAttributes), mode === 'ios' && translucent && h("div", { class: "header-background" }), h("slot", { key: '74c401fb331aeb40c733605fd580949ad53989b8' })));
150
+ } }, inheritedAttributes), mode === 'ios' && translucent && h("div", { class: "header-background" }), h("slot", { key: '7e2fa75034f7422a3dc5691e9b3c25393e16c0ca' })));
151
151
  }
152
152
  static get is() { return "ion-header"; }
153
153
  static get originalStyleUrls() {
@@ -68,3 +68,80 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
68
68
  });
69
69
  });
70
70
  });
71
+ /**
72
+ * This test only impacts MD applications
73
+ */
74
+ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
75
+ test.describe.only(title('header: translucent'), () => {
76
+ test('should not hide MD headers when using a descendant iOS header in an MD app', async ({ page }) => {
77
+ test.info().annotations.push({
78
+ type: 'issue',
79
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28867',
80
+ });
81
+ await page.setContent(`
82
+ <ion-header id="main-header">
83
+ <ion-toolbar>
84
+ <ion-title>Header</ion-title>
85
+ </ion-toolbar>
86
+ </ion-header>
87
+ <ion-content>
88
+ <ion-header collapse="condense">
89
+ <ion-toolbar>
90
+ <ion-title size="large">Header</ion-title>
91
+ </ion-toolbar>
92
+ </ion-header>
93
+
94
+ <ion-header mode="ios">
95
+ <ion-toolbar>
96
+ <ion-title>Welcome</ion-title>
97
+ </ion-toolbar>
98
+ </ion-header>
99
+ </ion-content>
100
+ `, config);
101
+ const header = page.locator('ion-header#main-header');
102
+ /**
103
+ * The existence of the iOS header in an MD app should not cause the main MD header
104
+ * to be hidden. We do not have toHaveVisible because the behavior that hides
105
+ * the header under correct circumstances does it using opacity: 0.
106
+ * Playwright considers an element with opacity: 0 to still be visible
107
+ * because it has a non-zero bounding box.
108
+ */
109
+ await expect(header).toHaveScreenshot(screenshot('header-md-visibility-ios-descendant'));
110
+ });
111
+ test('should not hide MD headers when using a root iOS header in an MD app', async ({ page }) => {
112
+ test.info().annotations.push({
113
+ type: 'issue',
114
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28867',
115
+ });
116
+ await page.setContent(`
117
+ <ion-header id="main-header" mode="ios">
118
+ <ion-toolbar>
119
+ <ion-title>Header</ion-title>
120
+ </ion-toolbar>
121
+ </ion-header>
122
+ <ion-content>
123
+ <ion-header collapse="condense">
124
+ <ion-toolbar>
125
+ <ion-title size="large">Header</ion-title>
126
+ </ion-toolbar>
127
+ </ion-header>
128
+
129
+ <ion-header>
130
+ <ion-toolbar>
131
+ <ion-title>Welcome</ion-title>
132
+ </ion-toolbar>
133
+ </ion-header>
134
+ </ion-content>
135
+ `, config);
136
+ const header = page.locator('ion-header#main-header');
137
+ /**
138
+ * The existence of the iOS header in an MD app should not cause the main MD header
139
+ * to be hidden. We do not have toHaveVisible because the behavior that hides
140
+ * the header under correct circumstances does it using opacity: 0.
141
+ * Playwright considers an element with opacity: 0 to still be visible
142
+ * because it has a non-zero bounding box.
143
+ */
144
+ await expect(header).toHaveScreenshot(screenshot('header-md-visibility-ios-main'));
145
+ });
146
+ });
147
+ });
@@ -71,7 +71,7 @@ export class Img {
71
71
  render() {
72
72
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
73
73
  const { draggable } = inheritedAttributes;
74
- return (h(Host, { key: '212cb19b83defa47a677e44659eccc5e7e1bc5a2', class: getIonMode(this) }, h("img", { key: '975230d5ef5f262c8e5f040eb59cd1033241f3c8', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
74
+ return (h(Host, { key: '1983ddd575d8f870f249d37a3897dbcc110bf4d7', class: getIonMode(this) }, h("img", { key: 'f2ba013804f6ed9e5dadb08c75e47c0f844e67f3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
75
75
  }
76
76
  static get is() { return "ion-img"; }
77
77
  static get encapsulation() { return "shadow"; }
@@ -167,7 +167,7 @@ export class InfiniteScroll {
167
167
  render() {
168
168
  const mode = getIonMode(this);
169
169
  const disabled = this.disabled;
170
- return (h(Host, { key: 'cf712b0f22fe89b41377402da44f5575118ed34f', class: {
170
+ return (h(Host, { key: '8b5da92c7a1c118cd6c6a6be8f21b11b79f166bd', class: {
171
171
  [mode]: true,
172
172
  'infinite-scroll-loading': this.isLoading,
173
173
  'infinite-scroll-enabled': !disabled,
@@ -27,11 +27,11 @@ export class InfiniteScrollContent {
27
27
  }
28
28
  render() {
29
29
  const mode = getIonMode(this);
30
- return (h(Host, { key: '38c67d2c7ea4c304e71dacea64add0bffab69906', class: {
30
+ return (h(Host, { key: '8ffd8ff4c951be0c2b1f48fd4be3a2d7765a989f', class: {
31
31
  [mode]: true,
32
32
  // Used internally for styling
33
33
  [`infinite-scroll-content-${mode}`]: true,
34
- } }, h("div", { key: 'a23484ccbaf65e0e3ecb59befea425cfdbc782fd', class: "infinite-loading" }, this.loadingSpinner && (h("div", { class: "infinite-loading-spinner" }, h("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
34
+ } }, h("div", { key: 'd7d03485501b5e2fde7c132309bb6358818eb0cd', class: "infinite-loading" }, this.loadingSpinner && (h("div", { class: "infinite-loading-spinner" }, h("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
35
35
  }
36
36
  static get is() { return "ion-infinite-scroll-content"; }
37
37
  static get originalStyleUrls() {
@@ -18,11 +18,11 @@ export class ItemDivider {
18
18
  }
19
19
  render() {
20
20
  const mode = getIonMode(this);
21
- return (h(Host, { key: 'd9d5993694639e8f1ed589f0e8c3f4920ce30e02', class: createColorClasses(this.color, {
21
+ return (h(Host, { key: '8422b960dfcce4ff1370d9c185e285bb4a3688d5', class: createColorClasses(this.color, {
22
22
  [mode]: true,
23
23
  'item-divider-sticky': this.sticky,
24
24
  item: true,
25
- }) }, h("slot", { key: '1da8c38cbf07ef591ceae94b0d70bf620990e568', name: "start" }), h("div", { key: '349a581fd1688b01ce7c67da99ae22cb4a5a85f7', class: "item-divider-inner" }, h("div", { key: '80e22ba4f5da2af40bb32a445b840baa59edfbcc', class: "item-divider-wrapper" }, h("slot", { key: '6d3fb95c8eba128e56defccbcc5d4b1fa3ec4c4a' })), h("slot", { key: '83a97c131348c8cf840c30ccbf83c78edc125c14', name: "end" }))));
25
+ }) }, h("slot", { key: '240514b96ec48262040460775c8eb0a58d6acfa8', name: "start" }), h("div", { key: 'ec18c092c81cb96f8c49ed7d4dede96c9a3e3f97', class: "item-divider-inner" }, h("div", { key: '9c3f3dcb9b14fd1d37fb1104b3ba953dc9a3e894', class: "item-divider-wrapper" }, h("slot", { key: '6b8e51eb86a5567b80a91034b26228105796a82d' })), h("slot", { key: '7ccb661e1309c1ecca09a823f8e08b1cf90d95dd', name: "end" }))));
26
26
  }
27
27
  static get is() { return "ion-item-divider"; }
28
28
  static get encapsulation() { return "shadow"; }
@@ -6,7 +6,7 @@ import { getIonMode } from "../../global/ionic-global";
6
6
  export class ItemGroup {
7
7
  render() {
8
8
  const mode = getIonMode(this);
9
- return (h(Host, { key: '1d7de42c40d5f37324342fa7be2420bf6499705e', role: "group", class: {
9
+ return (h(Host, { key: 'b33f23544ddeeeb61847b146b1dcb7a9ba30af18', role: "group", class: {
10
10
  [mode]: true,
11
11
  // Used internally for styling
12
12
  [`item-group-${mode}`]: true,
@@ -44,12 +44,12 @@ export class ItemOption {
44
44
  href: this.href,
45
45
  target: this.target,
46
46
  };
47
- return (h(Host, { key: '7e208b463b2d36984791a7c9c1d24af88b468a03', onClick: this.onClick, class: createColorClasses(this.color, {
47
+ return (h(Host, { key: '8d8ef0455e0e46d31a84b6f9e83e377e0579f04b', onClick: this.onClick, class: createColorClasses(this.color, {
48
48
  [mode]: true,
49
49
  'item-option-disabled': disabled,
50
50
  'item-option-expandable': expandable,
51
51
  'ion-activatable': true,
52
- }) }, h(TagType, Object.assign({ key: '9f48210793e88f25b675add863453432e6d8be51' }, attrs, { class: "button-native", part: "native", disabled: disabled }), h("span", { key: '3ebb5d9b7369f77ca49c8d700a95e4e2335a7f24', class: "button-inner" }, h("slot", { key: '7df01a2c40554effe0e36e7fe29ac469a89ad395', name: "top" }), h("div", { key: '1bdc411990a89a0523dd170bf4d61c2f28af3018', class: "horizontal-wrapper" }, h("slot", { key: '967a0cc8ff611439fddf28c20c3f197be1a314a5', name: "start" }), h("slot", { key: '7848ded44ce1b0e303f1c1a423fc1ae51e5997d4', name: "icon-only" }), h("slot", { key: '6076bb1a50cebe374ecd8507133eaccd2ee2d08b' }), h("slot", { key: '71505008df081744492fb22b41229ada64506834', name: "end" })), h("slot", { key: 'c213321eafe801c1ace8573b4736c2f0ab585703', name: "bottom" })), mode === 'md' && h("ion-ripple-effect", null))));
52
+ }) }, h(TagType, Object.assign({ key: '0d4833cefd206862a75fdef8744e659cff24a39f' }, attrs, { class: "button-native", part: "native", disabled: disabled }), h("span", { key: 'bfbdab3ee6cfc884eb2bd60c92cf919f4b671c27', class: "button-inner" }, h("slot", { key: '968ebecbd9e8ca5015106d79e5d29b4a1999d39b', name: "top" }), h("div", { key: '38677cd72df6447a4e934695ab08857460be800d', class: "horizontal-wrapper" }, h("slot", { key: 'e65131d2e3f12c3743c7229b0a7f381824a45281', name: "start" }), h("slot", { key: 'c3a9bd83c455a79395574ff4d862299fd9340cd2', name: "icon-only" }), h("slot", { key: '161ca1daed265e8990d28f74744476a37d555d85' }), h("slot", { key: 'd5ecafceada1f8c3c16a2cb6511368828009081f', name: "end" })), h("slot", { key: '39e6a9dffc2cb9e2e9a200f6c669ed47f9a485aa', name: "bottom" })), mode === 'md' && h("ion-ripple-effect", null))));
53
53
  }
54
54
  static get is() { return "ion-item-option"; }
55
55
  static get encapsulation() { return "shadow"; }
@@ -17,7 +17,7 @@ export class ItemOptions {
17
17
  render() {
18
18
  const mode = getIonMode(this);
19
19
  const isEnd = isEndSide(this.side);
20
- return (h(Host, { key: '42ec58a1a2a6a886309595103468d2c39e81f58b', class: {
20
+ return (h(Host, { key: '04d6baf62154da6ab9db5e679f982fe3fe276f89', class: {
21
21
  [mode]: true,
22
22
  // Used internally for styling
23
23
  [`item-options-${mode}`]: true,
@@ -386,7 +386,7 @@ export class ItemSliding {
386
386
  }
387
387
  render() {
388
388
  const mode = getIonMode(this);
389
- return (h(Host, { key: '83e1673fc5af892612deb9b49d5e792b8b0b6473', class: {
389
+ return (h(Host, { key: 'f666dd119a72247feac11dcd704059fce7677325', class: {
390
390
  [mode]: true,
391
391
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
392
392
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -55,7 +55,7 @@ export class Label {
55
55
  render() {
56
56
  const position = this.position;
57
57
  const mode = getIonMode(this);
58
- return (h(Host, { key: 'c80cc1b4dcd56f614efc1e63ca80bca2f20a7151', class: createColorClasses(this.color, {
58
+ return (h(Host, { key: '813192a6460057c6d1e42f50f3f257bee2f550d8', class: createColorClasses(this.color, {
59
59
  [mode]: true,
60
60
  'in-item-color': hostContext('ion-item.ion-color', this.el),
61
61
  [`label-${position}`]: position !== undefined,
@@ -27,7 +27,7 @@ export class List {
27
27
  render() {
28
28
  const mode = getIonMode(this);
29
29
  const { lines, inset } = this;
30
- return (h(Host, { key: '7f259d2a107807065a440cca848ececa0da60458', role: "list", class: {
30
+ return (h(Host, { key: '2cb1b689d9460d9576b471bb8b13d14fe34d1c2c', role: "list", class: {
31
31
  [mode]: true,
32
32
  // Used internally for styling
33
33
  [`list-${mode}`]: true,
@@ -15,10 +15,10 @@ export class ListHeader {
15
15
  render() {
16
16
  const { lines } = this;
17
17
  const mode = getIonMode(this);
18
- return (h(Host, { key: '27a08e9dc880db9377608ea262e254b0856b0d5c', class: createColorClasses(this.color, {
18
+ return (h(Host, { key: '1b832a6882307d40fe4afc9a95a5db4fbdff60a3', class: createColorClasses(this.color, {
19
19
  [mode]: true,
20
20
  [`list-header-lines-${lines}`]: lines !== undefined,
21
- }) }, h("div", { key: 'edd68f126ee5d815e6ae13e9662e8cedbd2d46e5', class: "list-header-inner" }, h("slot", { key: 'dae94a382ef09bb90d3ff3fbb2306515acfc2014' }))));
21
+ }) }, h("div", { key: 'a53a3f05727b510d1b912c10c92a4aa58f4fe860', class: "list-header-inner" }, h("slot", { key: '9377dee83f050b2cb2c5b7c5d106668cc81d8f90' }))));
22
22
  }
23
23
  static get is() { return "ion-list-header"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -158,9 +158,9 @@ export class Loading {
158
158
  * Otherwise, don't set aria-labelledby.
159
159
  */
160
160
  const ariaLabelledBy = message !== undefined ? msgId : null;
161
- return (h(Host, Object.assign({ key: '7d4f3df4a869e66b59ce237b50b374cac4a296d3', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
161
+ return (h(Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
162
162
  zIndex: `${40000 + this.overlayIndex}`,
163
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '9d72026f73b56bc38a5317992caa17068f8402b5', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '67848b3058d4875b55cef88ccc0b5160cc9f5d9d', tabindex: "0" }), h("div", { key: 'c275700b6cd77d7a0404b59e89ea97a75a4a22e9', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '2333ff2f0d76bebe58cba85da0e5a38262ce33e7', tabindex: "0" })));
163
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), h("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
164
164
  }
165
165
  static get is() { return "ion-loading"; }
166
166
  static get encapsulation() { return "scoped"; }
@@ -601,13 +601,13 @@ export class Menu {
601
601
  * the ionBackButton listener in the menu controller
602
602
  * will handle closing the menu when Escape is pressed.
603
603
  */
604
- return (h(Host, { key: '6c63bd340b8e2fc19b638189af44eae3627f8c0a', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
604
+ return (h(Host, { key: 'c6bf01fd87e31cda09c0c35900cb01ea19d61781', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
605
605
  [mode]: true,
606
606
  [`menu-type-${type}`]: true,
607
607
  'menu-enabled': !disabled,
608
608
  [`menu-side-${side}`]: true,
609
609
  'menu-pane-visible': isPaneVisible,
610
- } }, h("div", { key: '8cad9e601c8ca1d1dca32681937362a55311e015', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: 'ce8ab737360c3a71ac6408d21fcb71485a189827' })), h("ion-backdrop", { key: 'a7e5f9ebe98996c7f5ab0ef27223a2f24bf63646', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
610
+ } }, h("div", { key: '6d818a470a74c11c10554d45d8586436a51f961e', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '3512e444ec6c6bf2a719b1dd713be9a7652f77c9' })), h("ion-backdrop", { key: '618a5316462406fa47929e4dcd5a8e8c9057a418', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
611
611
  }
612
612
  static get is() { return "ion-menu"; }
613
613
  static get encapsulation() { return "shadow"; }
@@ -46,7 +46,7 @@ export class MenuButton {
46
46
  type: this.type,
47
47
  };
48
48
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
49
- return (h(Host, { key: '23364bf8eae83c3a422bacb0f43bf957551a7b7a', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
49
+ return (h(Host, { key: '2fd7130b8d28695162f7efebbd2131e5e9e4f330', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
50
50
  [mode]: true,
51
51
  button: true, // ion-buttons target .button
52
52
  'menu-button-hidden': hidden,
@@ -55,7 +55,7 @@ export class MenuButton {
55
55
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
56
56
  'ion-activatable': true,
57
57
  'ion-focusable': true,
58
- }) }, h("button", Object.assign({ key: 'dacfa6f0881366385f3c3305fb656e5e8d4eaab8' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: '2a11edcf830bde847cca810af461f4bcffd6aa30', class: "button-inner" }, h("slot", { key: 'f6b1299cf096abe6f25e1f60ce6be2bbdfddcc73' }, h("ion-icon", { key: '32c900a4b75ab90b149227075df4598539d09b5f', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
58
+ }) }, h("button", Object.assign({ key: 'fa6b1fb9291df812b04065b4b0ebdfd28e5217eb' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: '88106a08070ebff7457c581301efe649829aded2', class: "button-inner" }, h("slot", { key: 'e3edfb89e5705b2c08c66f3d3452457667de3657' }, h("ion-icon", { key: '24678e9c3bb2f1f3db113a2ae0ec93e407a7de0c', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
59
59
  }
60
60
  static get is() { return "ion-menu-button"; }
61
61
  static get encapsulation() { return "shadow"; }
@@ -26,10 +26,10 @@ export class MenuToggle {
26
26
  render() {
27
27
  const mode = getIonMode(this);
28
28
  const hidden = this.autoHide && !this.visible;
29
- return (h(Host, { key: '981008b9e03870363f2eba75d9d22823ed79753e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
29
+ return (h(Host, { key: '5b75baade530bf9e7ed9165a5db3e513975e22f2', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
30
30
  [mode]: true,
31
31
  'menu-toggle-hidden': hidden,
32
- } }, h("slot", { key: '1c88aec9c2ee7c67ee37be71814fed35144bbea7' })));
32
+ } }, h("slot", { key: '65dea458274b685125c22af54aa153cf4977113c' })));
33
33
  }
34
34
  static get is() { return "ion-menu-toggle"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -562,9 +562,9 @@ export class Modal {
562
562
  const mode = getIonMode(this);
563
563
  const isCardModal = presentingElement !== undefined && mode === 'ios';
564
564
  const isHandleCycle = handleBehavior === 'cycle';
565
- return (h(Host, Object.assign({ key: '67ef0269a5e9b542d0c2acaa03a2f7f46b8cf0b5', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
565
+ return (h(Host, Object.assign({ key: '856aa156d687382cbd4a7ee47f553b96105fcf7d', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
566
566
  zIndex: `${20000 + this.overlayIndex}`,
567
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'edd98375e98d887dbea232adb81b74f164fa058b', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '40437670391544b57b8a9943ef3b49de7acbd873',
567
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '98205df704505f77c4878cd0b92598c1525b1a85', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '412e76909a459f80bdd3c311d88407890c9aed4f',
568
568
  /*
569
569
  role and aria-modal must be used on the
570
570
  same element. They must also be set inside the
@@ -573,7 +573,7 @@ export class Modal {
573
573
  */
574
574
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
575
575
  // Prevents the handle from receiving keyboard focus when it does not cycle
576
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'dfe2095d9e1adb075dc09d1927ef24ea09ea5435' }))));
576
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '3e532328bc1eeb1d1213f9b3c098e89b77590620' }))));
577
577
  }
578
578
  static get is() { return "ion-modal"; }
579
579
  static get encapsulation() { return "shadow"; }
@@ -827,7 +827,7 @@ export class Nav {
827
827
  }
828
828
  }
829
829
  render() {
830
- return h("slot", { key: '8254ea10bef0575c13f8b0ddbe4643bec19f2366' });
830
+ return h("slot", { key: '654286a8a7ef03d4a22497eb51e781a9a8979774' });
831
831
  }
832
832
  static get is() { return "ion-nav"; }
833
833
  static get encapsulation() { return "shadow"; }
@@ -14,7 +14,7 @@ export class NavLink {
14
14
  this.routerAnimation = undefined;
15
15
  }
16
16
  render() {
17
- return h(Host, { key: 'dfbfc1a69c48248a8861463ed31c693be6543f32', onClick: this.onClick });
17
+ return h(Host, { key: 'a781794425ad0866705bc6691256184b93477a74', onClick: this.onClick });
18
18
  }
19
19
  static get is() { return "ion-nav-link"; }
20
20
  static get properties() {