@ionic/core 8.8.9-dev.11780493937.17fe092d → 8.8.9-dev.11780683233.1c5e9d9b

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 (329) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-alert.js +1 -1
  3. package/components/ion-back-button.js +1 -1
  4. package/components/ion-button.js +1 -1
  5. package/components/ion-card.js +1 -1
  6. package/components/ion-chip.js +1 -1
  7. package/components/ion-content.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-footer.js +1 -1
  12. package/components/ion-gallery-item.d.ts +11 -0
  13. package/components/ion-gallery-item.js +4 -0
  14. package/components/ion-gallery.js +1 -1
  15. package/components/ion-grid.js +1 -1
  16. package/components/ion-header.js +1 -1
  17. package/components/ion-img.js +1 -1
  18. package/components/ion-infinite-scroll-content.js +1 -1
  19. package/components/ion-infinite-scroll.js +1 -1
  20. package/components/ion-input-otp.js +1 -1
  21. package/components/ion-input-password-toggle.js +1 -1
  22. package/components/ion-input.js +1 -1
  23. package/components/ion-item-divider.js +1 -1
  24. package/components/ion-item-group.js +1 -1
  25. package/components/ion-item-option.js +1 -1
  26. package/components/ion-item-options.js +1 -1
  27. package/components/ion-item-sliding.js +1 -1
  28. package/components/ion-item.js +1 -1
  29. package/components/ion-label.js +1 -1
  30. package/components/ion-list-header.js +1 -1
  31. package/components/ion-list.js +1 -1
  32. package/components/ion-loading.js +1 -1
  33. package/components/ion-menu-button.js +1 -1
  34. package/components/ion-menu-toggle.js +1 -1
  35. package/components/ion-menu.js +1 -1
  36. package/components/ion-modal.js +1 -1
  37. package/components/ion-nav-link.js +1 -1
  38. package/components/ion-nav.js +1 -1
  39. package/components/ion-note.js +1 -1
  40. package/components/ion-picker-column-option.js +1 -1
  41. package/components/ion-picker-legacy-column.js +1 -1
  42. package/components/ion-picker-legacy.js +1 -1
  43. package/components/ion-popover.js +1 -1
  44. package/components/ion-progress-bar.js +1 -1
  45. package/components/ion-radio-group.js +1 -1
  46. package/components/ion-radio.js +1 -1
  47. package/components/ion-range.js +1 -1
  48. package/components/ion-refresher-content.js +1 -1
  49. package/components/ion-refresher.js +1 -1
  50. package/components/ion-reorder-group.js +1 -1
  51. package/components/ion-reorder.js +1 -1
  52. package/components/ion-ripple-effect.js +1 -1
  53. package/components/ion-router-link.js +1 -1
  54. package/components/ion-router-outlet.js +1 -1
  55. package/components/ion-row.js +1 -1
  56. package/components/ion-searchbar.js +1 -1
  57. package/components/ion-segment-button.js +1 -1
  58. package/components/ion-segment-content.js +1 -1
  59. package/components/ion-segment-view.js +1 -1
  60. package/components/ion-segment.js +1 -1
  61. package/components/ion-select-modal.js +1 -1
  62. package/components/ion-select-option.js +1 -1
  63. package/components/ion-select-popover.js +1 -1
  64. package/components/ion-select.js +1 -1
  65. package/components/ion-skeleton-text.js +1 -1
  66. package/components/ion-spinner.js +1 -1
  67. package/components/ion-split-pane.js +1 -1
  68. package/components/ion-tab-bar.js +1 -1
  69. package/components/ion-tab-button.js +1 -1
  70. package/components/ion-tab.js +1 -1
  71. package/components/ion-tabs.js +1 -1
  72. package/components/ion-text.js +1 -1
  73. package/components/ion-textarea.js +1 -1
  74. package/components/ion-thumbnail.js +1 -1
  75. package/components/ion-title.js +1 -1
  76. package/components/ion-toast.js +1 -1
  77. package/components/ion-toggle.js +1 -1
  78. package/components/ion-toolbar.js +1 -1
  79. package/components/p-7kL3tltU.js +4 -0
  80. package/components/{p-CPm7KgOP.js → p-BFZBl0TS.js} +1 -1
  81. package/components/{p-pvh0bjpw.js → p-BVi3gqm6.js} +1 -1
  82. package/components/{p-D6g8ud1e.js → p-BVk7LVs0.js} +1 -1
  83. package/components/{p-B9MABkWm.js → p-BdUtZxku.js} +1 -1
  84. package/components/{p-CzC_ZSgb.js → p-Be8tHurp.js} +1 -1
  85. package/components/{p-C8kBejTT.js → p-CG3ZV6ON.js} +1 -1
  86. package/components/{p-CBS0sBAa.js → p-CaqTORfV.js} +1 -1
  87. package/components/{p-D2mReIu8.js → p-CkA0SI9d.js} +1 -1
  88. package/components/{p-DAXhdEp5.js → p-CsakePQg.js} +1 -1
  89. package/components/{p-CgSn4J7d.js → p-D1gEOh9B.js} +1 -1
  90. package/components/{p-IYdTEyGb.js → p-D3qBmaqi.js} +1 -1
  91. package/components/{p-Do7NMUwR.js → p-DGn-jQpr.js} +1 -1
  92. package/components/p-DH4JHV73.js +4 -0
  93. package/components/{p-DCS3n7Uq.js → p-DYK0qX7x.js} +1 -1
  94. package/components/{p-Dp2x0MpA.js → p-DfV7pOtM.js} +1 -1
  95. package/components/{p-BhkGOA7t.js → p-F3N54OKJ.js} +1 -1
  96. package/components/{p-CgZLVOCc.js → p-MPREydZp.js} +1 -1
  97. package/components/{p-kKYBfhbe.js → p-OFfrVDLw.js} +1 -1
  98. package/components/p-iZO3WzZT.js +4 -0
  99. package/components/p-qclL-gNR.js +4 -0
  100. package/dist/cjs/ion-app_8.cjs.entry.js +33 -291
  101. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-col_3.cjs.entry.js +4 -4
  103. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  104. package/dist/cjs/ion-gallery-item.cjs.entry.js +79 -0
  105. package/dist/cjs/ion-gallery.cjs.entry.js +96 -14
  106. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  108. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  109. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  110. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  112. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  113. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  115. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  116. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  117. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  118. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  120. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  121. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  122. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  123. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  124. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  125. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  126. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  127. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  128. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  129. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  130. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  131. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  132. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  133. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  134. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  135. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  136. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  137. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  138. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  139. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  140. package/dist/cjs/ionic.cjs.js +1 -1
  141. package/dist/cjs/loader.cjs.js +1 -1
  142. package/dist/collection/collection-manifest.json +1 -0
  143. package/dist/collection/components/content/content.css +0 -56
  144. package/dist/collection/components/footer/footer.ios.css +0 -13
  145. package/dist/collection/components/footer/footer.js +18 -65
  146. package/dist/collection/components/footer/footer.md.css +0 -13
  147. package/dist/collection/components/footer/footer.utils.js +0 -9
  148. package/dist/collection/components/gallery/gallery.css +1 -86
  149. package/dist/collection/components/gallery/gallery.js +85 -16
  150. package/dist/collection/components/gallery/test/utils.js +13 -13
  151. package/dist/collection/components/gallery-item/gallery-item.css +87 -0
  152. package/dist/collection/components/gallery-item/gallery-item.js +95 -0
  153. package/dist/collection/components/grid/grid.js +2 -2
  154. package/dist/collection/components/header/header.ionic.css +0 -75
  155. package/dist/collection/components/header/header.ios.css +0 -75
  156. package/dist/collection/components/header/header.js +11 -41
  157. package/dist/collection/components/header/header.md.css +0 -75
  158. package/dist/collection/components/header/header.utils.js +0 -9
  159. package/dist/collection/components/img/img.js +2 -2
  160. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  161. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  162. package/dist/collection/components/input/input.js +4 -4
  163. package/dist/collection/components/input-otp/input-otp.js +3 -3
  164. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  165. package/dist/collection/components/item-divider/item-divider.js +2 -2
  166. package/dist/collection/components/item-group/item-group.js +1 -1
  167. package/dist/collection/components/item-option/item-option.js +2 -2
  168. package/dist/collection/components/item-options/item-options.js +1 -1
  169. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  170. package/dist/collection/components/label/label.js +2 -2
  171. package/dist/collection/components/list/list.js +1 -1
  172. package/dist/collection/components/list-header/list-header.js +2 -2
  173. package/dist/collection/components/loading/loading.js +2 -2
  174. package/dist/collection/components/menu/menu.js +2 -2
  175. package/dist/collection/components/menu-button/menu-button.js +2 -2
  176. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  177. package/dist/collection/components/modal/modal.js +4 -4
  178. package/dist/collection/components/nav/nav.js +1 -1
  179. package/dist/collection/components/nav-link/nav-link.js +1 -1
  180. package/dist/collection/components/note/note.js +2 -2
  181. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  182. package/dist/collection/components/picker-legacy/picker.js +2 -2
  183. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  184. package/dist/collection/components/popover/popover.js +2 -2
  185. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  186. package/dist/collection/components/radio/radio.js +3 -3
  187. package/dist/collection/components/radio-group/radio-group.js +2 -2
  188. package/dist/collection/components/range/range.js +3 -3
  189. package/dist/collection/components/refresher/refresher.js +1 -1
  190. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  191. package/dist/collection/components/reorder/reorder.js +2 -2
  192. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  193. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  194. package/dist/collection/components/router-link/router-link.js +2 -2
  195. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  196. package/dist/collection/components/row/row.js +2 -2
  197. package/dist/collection/components/searchbar/searchbar.js +4 -4
  198. package/dist/collection/components/segment/segment.js +2 -2
  199. package/dist/collection/components/segment-button/segment-button.js +2 -2
  200. package/dist/collection/components/segment-content/segment-content.js +1 -1
  201. package/dist/collection/components/segment-view/segment-view.js +2 -2
  202. package/dist/collection/components/select/select.js +3 -3
  203. package/dist/collection/components/select-modal/select-modal.js +1 -1
  204. package/dist/collection/components/select-option/select-option.js +1 -1
  205. package/dist/collection/components/select-popover/select-popover.js +2 -2
  206. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  207. package/dist/collection/components/spinner/spinner.js +1 -1
  208. package/dist/collection/components/split-pane/split-pane.js +2 -2
  209. package/dist/collection/components/tab/tab.js +2 -2
  210. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  211. package/dist/collection/components/tab-button/tab-button.js +2 -2
  212. package/dist/collection/components/tabs/tabs.js +1 -1
  213. package/dist/collection/components/text/text.js +2 -2
  214. package/dist/collection/components/textarea/textarea.js +3 -3
  215. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  216. package/dist/collection/components/title/title.js +2 -2
  217. package/dist/collection/components/toast/toast.js +2 -2
  218. package/dist/collection/components/toggle/toggle.js +3 -3
  219. package/dist/collection/components/toolbar/toolbar.js +2 -2
  220. package/dist/collection/utils/css-value-validation.js +14 -0
  221. package/dist/docs.json +96 -20
  222. package/dist/esm/ion-app_8.entry.js +33 -291
  223. package/dist/esm/ion-avatar_3.entry.js +2 -2
  224. package/dist/esm/ion-col_3.entry.js +4 -4
  225. package/dist/esm/ion-datetime_3.entry.js +4 -4
  226. package/dist/esm/ion-gallery-item.entry.js +77 -0
  227. package/dist/esm/ion-gallery.entry.js +96 -14
  228. package/dist/esm/ion-img.entry.js +2 -2
  229. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  230. package/dist/esm/ion-input-otp.entry.js +3 -3
  231. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  232. package/dist/esm/ion-input.entry.js +4 -4
  233. package/dist/esm/ion-item-option_3.entry.js +4 -4
  234. package/dist/esm/ion-item_8.entry.js +12 -12
  235. package/dist/esm/ion-loading.entry.js +2 -2
  236. package/dist/esm/ion-menu_3.entry.js +6 -6
  237. package/dist/esm/ion-modal.entry.js +4 -4
  238. package/dist/esm/ion-nav_2.entry.js +2 -2
  239. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  240. package/dist/esm/ion-popover.entry.js +2 -2
  241. package/dist/esm/ion-progress-bar.entry.js +1 -1
  242. package/dist/esm/ion-radio_2.entry.js +5 -5
  243. package/dist/esm/ion-range.entry.js +3 -3
  244. package/dist/esm/ion-refresher_2.entry.js +3 -3
  245. package/dist/esm/ion-reorder_2.entry.js +3 -3
  246. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  247. package/dist/esm/ion-route_4.entry.js +2 -2
  248. package/dist/esm/ion-searchbar.entry.js +4 -4
  249. package/dist/esm/ion-segment-content.entry.js +1 -1
  250. package/dist/esm/ion-segment-view.entry.js +2 -2
  251. package/dist/esm/ion-segment_2.entry.js +4 -4
  252. package/dist/esm/ion-select-modal.entry.js +1 -1
  253. package/dist/esm/ion-select_3.entry.js +6 -6
  254. package/dist/esm/ion-spinner.entry.js +1 -1
  255. package/dist/esm/ion-split-pane.entry.js +2 -2
  256. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  257. package/dist/esm/ion-tab_2.entry.js +3 -3
  258. package/dist/esm/ion-text.entry.js +2 -2
  259. package/dist/esm/ion-textarea.entry.js +3 -3
  260. package/dist/esm/ion-toast.entry.js +2 -2
  261. package/dist/esm/ion-toggle.entry.js +3 -3
  262. package/dist/esm/ionic.js +1 -1
  263. package/dist/esm/loader.js +1 -1
  264. package/dist/html.html-data.json +45 -9
  265. package/dist/ionic/ionic.esm.js +1 -1
  266. package/dist/ionic/{p-f7ca50a5.entry.js → p-0592c549.entry.js} +1 -1
  267. package/dist/ionic/{p-67c2d349.entry.js → p-0aa510cd.entry.js} +1 -1
  268. package/dist/ionic/{p-9ccfb733.entry.js → p-0cd5fd9d.entry.js} +1 -1
  269. package/dist/ionic/{p-bf0c5a8d.entry.js → p-0e9d4e11.entry.js} +1 -1
  270. package/dist/ionic/{p-497f6391.entry.js → p-11a38333.entry.js} +1 -1
  271. package/dist/ionic/{p-0030507d.entry.js → p-1a009a51.entry.js} +1 -1
  272. package/dist/ionic/{p-7186786e.entry.js → p-23e524f8.entry.js} +1 -1
  273. package/dist/ionic/{p-1439fecb.entry.js → p-2826761a.entry.js} +1 -1
  274. package/dist/ionic/{p-93315d96.entry.js → p-2c4170d8.entry.js} +1 -1
  275. package/dist/ionic/p-2d5a2511.entry.js +4 -0
  276. package/dist/ionic/{p-7f294078.entry.js → p-3706ea52.entry.js} +1 -1
  277. package/dist/ionic/{p-b69add0e.entry.js → p-3e376501.entry.js} +1 -1
  278. package/dist/ionic/{p-c684a3b6.entry.js → p-44597202.entry.js} +1 -1
  279. package/dist/ionic/{p-8458f1b6.entry.js → p-4a27a79a.entry.js} +1 -1
  280. package/dist/ionic/{p-b7235e85.entry.js → p-4f07113d.entry.js} +1 -1
  281. package/dist/ionic/{p-88e7f52a.entry.js → p-52b85650.entry.js} +1 -1
  282. package/dist/ionic/{p-199bffb3.entry.js → p-5a6e0ae1.entry.js} +1 -1
  283. package/dist/ionic/p-6906dca7.entry.js +4 -0
  284. package/dist/ionic/{p-19a1ff9a.entry.js → p-7b09c19d.entry.js} +1 -1
  285. package/dist/ionic/{p-76c70824.entry.js → p-7b886782.entry.js} +1 -1
  286. package/dist/ionic/{p-89eab395.entry.js → p-82c05be2.entry.js} +1 -1
  287. package/dist/ionic/{p-b653f4c2.entry.js → p-83c0eb9b.entry.js} +1 -1
  288. package/dist/ionic/{p-b4fd91b8.entry.js → p-85ff1314.entry.js} +1 -1
  289. package/dist/ionic/{p-3f18dfe9.entry.js → p-8eca5ba1.entry.js} +1 -1
  290. package/dist/ionic/{p-f08edb25.entry.js → p-96f52444.entry.js} +1 -1
  291. package/dist/ionic/{p-f167c55c.entry.js → p-a3b047e0.entry.js} +1 -1
  292. package/dist/ionic/{p-40d9e029.entry.js → p-a73caa5e.entry.js} +1 -1
  293. package/dist/ionic/{p-1ad16c09.entry.js → p-b0dfd018.entry.js} +1 -1
  294. package/dist/ionic/{p-a3f9be52.entry.js → p-b6130fe4.entry.js} +1 -1
  295. package/dist/ionic/{p-084c2623.entry.js → p-c5f745b4.entry.js} +1 -1
  296. package/dist/ionic/{p-52ed96a8.entry.js → p-c781241c.entry.js} +1 -1
  297. package/dist/ionic/p-cb154afe.entry.js +4 -0
  298. package/dist/ionic/{p-031df892.entry.js → p-cde69f38.entry.js} +1 -1
  299. package/dist/ionic/p-d6f0a698.entry.js +4 -0
  300. package/dist/ionic/{p-dd2981d0.entry.js → p-d9804d04.entry.js} +1 -1
  301. package/dist/ionic/{p-7054a1b9.entry.js → p-e342b205.entry.js} +1 -1
  302. package/dist/ionic/p-e4071bf8.entry.js +4 -0
  303. package/dist/ionic/{p-9dfbe98d.entry.js → p-e8916b04.entry.js} +1 -1
  304. package/dist/ionic/{p-dac1d4de.entry.js → p-f10f8f95.entry.js} +1 -1
  305. package/dist/ionic/p-fdcbe59a.entry.js +4 -0
  306. package/dist/types/components/footer/footer.d.ts +2 -12
  307. package/dist/types/components/footer/footer.utils.d.ts +0 -1
  308. package/dist/types/components/gallery/gallery.d.ts +33 -8
  309. package/dist/types/components/gallery/test/utils.d.ts +1 -1
  310. package/dist/types/components/gallery-item/gallery-item.d.ts +35 -0
  311. package/dist/types/components/header/header.d.ts +3 -10
  312. package/dist/types/components/header/header.utils.d.ts +0 -1
  313. package/dist/types/components.d.ts +41 -12
  314. package/dist/types/utils/css-value-validation.d.ts +9 -0
  315. package/hydrate/index.js +334 -421
  316. package/hydrate/index.mjs +334 -421
  317. package/package.json +1 -1
  318. package/components/p-BF5oFX1I.js +0 -4
  319. package/components/p-CpFORZud.js +0 -4
  320. package/components/p-GElQZ38c.js +0 -4
  321. package/components/p-d77Zk1DK.js +0 -4
  322. package/components/p-hdGd8ben.js +0 -4
  323. package/dist/collection/utils/on-scroll/collapse-hide.utils.js +0 -168
  324. package/dist/ionic/p-04b5794c.entry.js +0 -4
  325. package/dist/ionic/p-2aa7567e.entry.js +0 -4
  326. package/dist/ionic/p-44d483c2.entry.js +0 -4
  327. package/dist/ionic/p-ad4d0138.entry.js +0 -4
  328. package/dist/ionic/p-ff09d2a5.entry.js +0 -4
  329. package/dist/types/utils/on-scroll/collapse-hide.utils.d.ts +0 -26
@@ -0,0 +1,79 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ 'use strict';
5
+
6
+ var index = require('./index-CzcLEdQ5.js');
7
+ var ionicGlobal = require('./ionic-global-BW5tRzrz.js');
8
+
9
+ const galleryItemCss = () => `:host{display:block}::slotted(*){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%}::slotted(img){display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}:host(.in-gallery-layout-uniform) ::slotted(*){aspect-ratio:1/1}:host(.in-gallery-layout-masonry){min-height:unset;margin-bottom:var(--internal-gallery-gap, 16px)}`;
10
+
11
+ const GalleryItem = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ this.hasWarnedInvalidParent = false;
15
+ this.onSlotChange = () => {
16
+ this.warnInvalidParent();
17
+ };
18
+ }
19
+ componentWillLoad() {
20
+ var _a;
21
+ this.galleryEl = (_a = this.el.closest('ion-gallery')) !== null && _a !== void 0 ? _a : undefined;
22
+ this.syncLayoutClasses();
23
+ }
24
+ componentDidLoad() {
25
+ this.watchGalleryLayoutClasses();
26
+ this.warnInvalidParent();
27
+ }
28
+ disconnectedCallback() {
29
+ var _a;
30
+ (_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
31
+ this.galleryClassObserver = undefined;
32
+ this.galleryEl = undefined;
33
+ }
34
+ /**
35
+ * Warn when the item is not a descendant of an `ion-gallery`.
36
+ */
37
+ warnInvalidParent() {
38
+ if (this.hasWarnedInvalidParent || this.galleryEl !== undefined) {
39
+ return;
40
+ }
41
+ index.printIonWarning('[ion-gallery-item] - This component should be used as a child of an "ion-gallery" component.', this.el);
42
+ this.hasWarnedInvalidParent = true;
43
+ }
44
+ /**
45
+ * Watch the parent gallery's class list so the item can react to layout
46
+ * changes (the gallery reflects its layout as a `gallery-layout-*` class).
47
+ */
48
+ watchGalleryLayoutClasses() {
49
+ var _a;
50
+ const galleryEl = this.galleryEl;
51
+ if (galleryEl === undefined) {
52
+ return;
53
+ }
54
+ (_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
55
+ this.galleryClassObserver = new MutationObserver(() => this.syncLayoutClasses());
56
+ this.galleryClassObserver.observe(galleryEl, {
57
+ attributes: true,
58
+ attributeFilter: ['class'],
59
+ });
60
+ }
61
+ syncLayoutClasses() {
62
+ var _a;
63
+ const layout = (_a = this.galleryEl) === null || _a === void 0 ? void 0 : _a.layout;
64
+ this.galleryLayout = layout === 'masonry' || layout === 'uniform' ? layout : undefined;
65
+ }
66
+ render() {
67
+ const { galleryLayout } = this;
68
+ const theme = ionicGlobal.getIonTheme(this);
69
+ return (index.h(index.Host, { key: 'b3de6bf2df4af01ed274188a96d9e8cd82c9f5cd', class: {
70
+ [theme]: true,
71
+ 'in-gallery-layout-uniform': galleryLayout === 'uniform',
72
+ 'in-gallery-layout-masonry': galleryLayout === 'masonry',
73
+ } }, index.h("slot", { key: '5bef4549c5101178fec9b590cb6b553ddc5376c4', onSlotchange: this.onSlotChange })));
74
+ }
75
+ get el() { return index.getElement(this); }
76
+ };
77
+ GalleryItem.style = galleryItemCss();
78
+
79
+ exports.ion_gallery_item = GalleryItem;
@@ -16,6 +16,9 @@ require('./focus-visible-BIj-I3-C.js');
16
16
  const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
17
17
  // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18
18
  const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
19
+ // Matches a `var(--name)` reference with an optional fallback, e.g.
20
+ // `var(--my-gap)` or `var(--my-gap, 16px)`.
21
+ const VAR_FUNCTION_PATTERN = /^var\(\s*--[^\s,)]+\s*(?:,[\s\S]*)?\)$/i;
19
22
  /**
20
23
  * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
21
24
  * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
@@ -30,6 +33,17 @@ function isValidLengthPercentage(value) {
30
33
  }
31
34
  return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
32
35
  }
36
+ /**
37
+ * Returns whether `value` is a single [`var()`](https://developer.mozilla.org/en-US/docs/Web/CSS/var)
38
+ * reference, e.g. `var(--my-token)` or `var(--my-token, 16px)`. The referenced
39
+ * custom property is resolved by the browser, so the resolved value is not
40
+ * validated here.
41
+ *
42
+ * @param value String value to validate.
43
+ */
44
+ function isCssVariable(value) {
45
+ return VAR_FUNCTION_PATTERN.test(value.trim());
46
+ }
33
47
 
34
48
  const DEFAULT_COLUMNS = {
35
49
  xs: 2,
@@ -41,7 +55,7 @@ const DEFAULT_COLUMNS = {
41
55
  };
42
56
  const DEFAULT_GAP = '16px';
43
57
 
44
- const galleryCss = () => `:host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--internal-gallery-gap, 16px)}:host(.gallery-layout-uniform) ::slotted(*){aspect-ratio:1/1}:host(.gallery-layout-masonry){-ms-flex-align:start;align-items:start;-webkit-column-gap:var(--internal-gallery-gap, 16px);-moz-column-gap:var(--internal-gallery-gap, 16px);column-gap:var(--internal-gallery-gap, 16px);row-gap:0;grid-auto-rows:2px}:host(.gallery-layout-masonry) ::slotted(*){display:block;min-height:unset;margin-bottom:var(--internal-gallery-gap, 16px)}::slotted(*){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%}::slotted(img){display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}`;
58
+ const galleryCss = () => `:host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--internal-gallery-gap, 16px)}:host(.gallery-layout-masonry){-ms-flex-align:start;align-items:start;-webkit-column-gap:var(--internal-gallery-gap, 16px);-moz-column-gap:var(--internal-gallery-gap, 16px);column-gap:var(--internal-gallery-gap, 16px);row-gap:0;grid-auto-rows:1px}`;
45
59
 
46
60
  // TODO(FW-7285): Replace with global breakpoints
47
61
  const BREAKPOINTS = {
@@ -53,6 +67,10 @@ const BREAKPOINTS = {
53
67
  xxl: 1400,
54
68
  };
55
69
  const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
70
+ /**
71
+ * The tag of the component used to wrap each gallery item.
72
+ */
73
+ const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
56
74
  const Gallery = class {
57
75
  constructor(hostRef) {
58
76
  index.registerInstance(this, hostRef);
@@ -61,6 +79,7 @@ const Gallery = class {
61
79
  this.hasWarnedInvalidColumns = false;
62
80
  this.hasWarnedInvalidGap = false;
63
81
  this.hasWarnedUnusedOrder = false;
82
+ this.hasWarnedInvalidItems = false;
64
83
  /**
65
84
  * The visual layout of the gallery. When `uniform`, rows take up the height
66
85
  * of the tallest item and are spaced evenly across the gallery. Additionally,
@@ -77,7 +96,8 @@ const Gallery = class {
77
96
  /**
78
97
  * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
79
98
  * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
80
- * or numbers (treated as pixel values). Can also be set as a breakpoint map
99
+ * CSS variables like `var(--app-gallery-gap)`, or numbers (treated as pixel
100
+ * values). Can also be set as a breakpoint map
81
101
  * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
82
102
  * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
83
103
  */
@@ -89,6 +109,9 @@ const Gallery = class {
89
109
  * are added or removed from the gallery.
90
110
  */
91
111
  this.onSlotChange = () => {
112
+ // Re-observe so newly added items are watched for size changes (e.g. a
113
+ // freshly appended item finishing hydration), then recompute placement.
114
+ this.observeResizes();
92
115
  this.scheduleMasonryResize();
93
116
  };
94
117
  /**
@@ -132,7 +155,7 @@ const Gallery = class {
132
155
  this.updateResponsiveStyles();
133
156
  this.scheduleMasonryResize();
134
157
  });
135
- this.resizeObserver.observe(this.el);
158
+ this.observeResizes();
136
159
  this.scheduleMasonryResize();
137
160
  this.warnUnusedOrder();
138
161
  }
@@ -145,6 +168,22 @@ const Gallery = class {
145
168
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
146
169
  this.resizeObserver = undefined;
147
170
  }
171
+ /**
172
+ * Observe the host and each item for size changes. Items are observed in
173
+ * addition to the host so masonry placement is recomputed when an item's
174
+ * rendered height changes — most importantly when a dynamically added
175
+ * `ion-gallery-item` finishes hydrating, which (unlike an `<img>`) emits no
176
+ * `load` event and does not change the host's measured size while collapsed.
177
+ */
178
+ observeResizes() {
179
+ const observer = this.resizeObserver;
180
+ if (observer === undefined) {
181
+ return;
182
+ }
183
+ observer.disconnect();
184
+ observer.observe(this.el);
185
+ this.getItems().forEach((item) => observer.observe(item));
186
+ }
148
187
  /**
149
188
  * Listen for the load event on child elements.
150
189
  * When the layout is `masonry`, this listener is used to schedule a resize
@@ -198,9 +237,10 @@ const Gallery = class {
198
237
  return numericColumns;
199
238
  }
200
239
  /**
201
- * Normalize a single gap value (`gap` as a number, string, or one entry from
202
- * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
203
- * the input cannot be interpreted as a valid CSS length.
240
+ * Normalize a single gap value (`gap` as a number, a string such as a CSS
241
+ * length-percentage or `var()` reference, or one entry from a `gap`
242
+ * breakpoint map) to a CSS length string. Returns `undefined` when the
243
+ * input cannot be interpreted as a valid CSS length or `var()` reference.
204
244
  */
205
245
  sanitizeGap(gap) {
206
246
  if (gap === undefined) {
@@ -217,6 +257,9 @@ const Gallery = class {
217
257
  if (typeof normalizedGap !== 'string') {
218
258
  return undefined;
219
259
  }
260
+ if (isCssVariable(normalizedGap)) {
261
+ return normalizedGap;
262
+ }
220
263
  const isValidCssLength = isValidLengthPercentage(normalizedGap);
221
264
  return isValidCssLength ? normalizedGap : undefined;
222
265
  }
@@ -297,7 +340,7 @@ const Gallery = class {
297
340
  if (this.hasWarnedInvalidGap) {
298
341
  return;
299
342
  }
300
- index.printIonWarning(`[ion-gallery] - Invalid "gap" value (${JSON.stringify(gap)}). Expected a non-negative number, CSS length string, or breakpoint map object (e.g. { xs: 8, md: "1rem" }).`, this.el);
343
+ index.printIonWarning(`[ion-gallery] - Invalid "gap" value (${JSON.stringify(gap)}). Expected a non-negative number, CSS length string, CSS variable (e.g. var(--app-gap)), or breakpoint map object (e.g. { xs: 8, md: "1rem" }).`, this.el);
301
344
  this.hasWarnedInvalidGap = true;
302
345
  }
303
346
  /**
@@ -369,11 +412,43 @@ const Gallery = class {
369
412
  this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
370
413
  }
371
414
  /**
372
- * Return all directly slotted children of the gallery that can be grid items
373
- * with inline placement styles (HTML elements and SVG elements).
415
+ * Return the `ion-gallery-item` elements to place in the grid. Each item is a
416
+ * direct grid cell. A direct child that is not an `ion-gallery-item` is
417
+ * treated as a pass-through wrapper (e.g. a layout `<div>`): its box is
418
+ * collapsed with `display: contents` so the nested items participate in the
419
+ * gallery grid. Children that contain no `ion-gallery-item` are ignored.
374
420
  */
375
421
  getItems() {
376
- return Array.from(this.el.children).filter((child) => { var _a; return typeof ((_a = child.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function'; });
422
+ const items = [];
423
+ Array.from(this.el.children).forEach((child) => {
424
+ // Standard path: <ion-gallery-item> is a direct child of <ion-gallery>.
425
+ if (child.matches(GALLERY_ITEM_SELECTOR)) {
426
+ items.push(child);
427
+ return;
428
+ }
429
+ // Compatibility path: a wrapper element may contain <ion-gallery-item>
430
+ // components. Collapse the wrapper's box so the items participate in the
431
+ // gallery grid.
432
+ const nestedItems = Array.from(child.querySelectorAll(GALLERY_ITEM_SELECTOR));
433
+ if (nestedItems.length === 0) {
434
+ this.warnInvalidItems();
435
+ return;
436
+ }
437
+ child.style.display = 'contents';
438
+ items.push(...nestedItems);
439
+ });
440
+ return items;
441
+ }
442
+ /**
443
+ * Warn when the gallery has content that is not wrapped in an
444
+ * `ion-gallery-item` component.
445
+ */
446
+ warnInvalidItems() {
447
+ if (this.hasWarnedInvalidItems) {
448
+ return;
449
+ }
450
+ index.printIonWarning(`[ion-gallery] - Gallery items must be wrapped in "ion-gallery-item" components. Direct children that are not "ion-gallery-item" (and do not contain one) are ignored.`, this.el);
451
+ this.hasWarnedInvalidItems = true;
377
452
  }
378
453
  /**
379
454
  * Clear the item styles for the given item element.
@@ -391,12 +466,19 @@ const Gallery = class {
391
466
  clearMasonryStyles() {
392
467
  this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
393
468
  }
469
+ /**
470
+ * Whether the item contains any images that have not finished loading.
471
+ * Used to defer masonry placement until the rendered height is final.
472
+ */
473
+ hasUnloadedImages(itemEl) {
474
+ return Array.from(itemEl.querySelectorAll('img')).some((img) => !img.complete || img.naturalHeight === 0);
475
+ }
394
476
  /**
395
477
  * Convert a rendered item height to the number of grid rows it should span.
396
- * Returns undefined for images that are not fully loaded yet.
478
+ * Returns undefined when the item has images that are not fully loaded yet.
397
479
  */
398
480
  calculateRowSpan(itemEl, rowHeight, rowGap) {
399
- if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
481
+ if (this.hasUnloadedImages(itemEl)) {
400
482
  return undefined;
401
483
  }
402
484
  const height = itemEl.getBoundingClientRect().height;
@@ -483,11 +565,11 @@ const Gallery = class {
483
565
  const { layout } = this;
484
566
  const order = this.getOrder();
485
567
  const theme = ionicGlobal.getIonTheme(this);
486
- return (index.h(index.Host, { key: '1bf2973d22835c0dbddf3214b602f8c08b95e421', class: {
568
+ return (index.h(index.Host, { key: '2063823917f4ab8430aee0e17ae0f3a2b53341d1', class: {
487
569
  [theme]: true,
488
570
  [`gallery-layout-${layout}`]: true,
489
571
  [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
490
- } }, index.h("slot", { key: '0dea31f609f6afdb1d73ecb2d873909ffe49203f', onSlotchange: this.onSlotChange })));
572
+ } }, index.h("slot", { key: '1378f489afb6b05181d2513f664c4efe24ad3598', onSlotchange: this.onSlotChange })));
491
573
  }
492
574
  get el() { return index.getElement(this); }
493
575
  static get watchers() { return {
@@ -84,9 +84,9 @@ const Img = class {
84
84
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
85
85
  const { draggable } = inheritedAttributes;
86
86
  const theme = ionicGlobal.getIonTheme(this);
87
- return (index.h(index.Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
87
+ return (index.h(index.Host, { key: 'ba84621055567b2a35387709d9d89b97ad853274', class: {
88
88
  [theme]: true,
89
- } }, index.h("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
89
+ } }, index.h("img", { key: '9d6118bbf69e2cccbb0603802c03b9a0d101e2c3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
90
90
  }
91
91
  get el() { return index.getElement(this); }
92
92
  static get watchers() { return {
@@ -271,7 +271,7 @@ const InfiniteScroll = class {
271
271
  render() {
272
272
  const theme = ionicGlobal.getIonTheme(this);
273
273
  const disabled = this.disabled;
274
- return (index.h(index.Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
274
+ return (index.h(index.Host, { key: 'e3a3cde079dfd6f07e565eb462765df757cbb128', class: {
275
275
  [theme]: true,
276
276
  'infinite-scroll-loading': this.isLoading,
277
277
  'infinite-scroll-enabled': !disabled,
@@ -315,11 +315,11 @@ const InfiniteScrollContent = class {
315
315
  }
316
316
  render() {
317
317
  const theme = ionicGlobal.getIonTheme(this);
318
- return (index.h(index.Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
318
+ return (index.h(index.Host, { key: '263a27297159ced042f7552a1e14b8c6aba62fa8', class: {
319
319
  [theme]: true,
320
320
  // Used internally for styling
321
321
  [`infinite-scroll-content-${theme}`]: true,
322
- } }, index.h("div", { key: '047da7f15fe38deed592dd66d1c97e12da4545bb', class: "infinite-loading" }, this.loadingSpinner && (index.h("div", { key: '1c05820f091052b8ee9e9ca20054495a676c21aa', class: "infinite-loading-spinner" }, index.h("ion-spinner", { key: 'ff801e3486f3c1a4605d2a2de9b47bd7bd536698', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
322
+ } }, index.h("div", { key: 'ee38d3c52df9dc5de186406b3087f20917a17252', class: "infinite-loading" }, this.loadingSpinner && (index.h("div", { key: 'e2348727f79a26f52f42641d4334a0ba9d4aa03e', class: "infinite-loading-spinner" }, index.h("ion-spinner", { key: '41be6f2747f3af5f46c8738e2ef56083ecd95e99', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
323
323
  }
324
324
  };
325
325
  InfiniteScrollContent.style = {
@@ -692,7 +692,7 @@ const InputOTP = class {
692
692
  const tabbableIndex = this.getTabbableIndex();
693
693
  const pattern = this.getPattern();
694
694
  const hasDescription = ((_b = (_a = el.querySelector('.input-otp-description')) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== '';
695
- return (index.h(index.Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: theme.createColorClasses(color, {
695
+ return (index.h(index.Host, { key: 'f39e98cd24cbf50f7db4e891dda9499f6def7986', class: theme.createColorClasses(color, {
696
696
  [mode]: true,
697
697
  'has-focus': hasFocus,
698
698
  [`input-otp-size-${size}`]: true,
@@ -700,10 +700,10 @@ const InputOTP = class {
700
700
  [`input-otp-fill-${fill}`]: true,
701
701
  'input-otp-disabled': disabled,
702
702
  'input-otp-readonly': readonly,
703
- }) }, index.h("div", Object.assign({ key: 'a4427602ea1894d53e4d0f502dbb972c93a86bff', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index$1) => (index.h(index.Fragment, null, index.h("div", { class: "native-wrapper", part: "container" }, index.h("input", { class: "native-input", part: "native", id: `${inputId}-${index$1}`, "aria-label": `Input ${index$1 + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index$1 === tabbableIndex ? 0 : -1, value: inputValues[index$1] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index$1] = el), onInput: this.onInput(index$1), onBlur: this.onBlur, onFocus: this.onFocus(index$1), onKeyDown: this.onKeyDown(index$1), onPaste: this.onPaste })), this.showSeparator(index$1) && index.h("div", { class: "input-otp-separator", part: "separator" }))))), index.h("div", { key: '7ee9d8dfd2e52875f1bfe3e3dea0494c18c12f4a', class: {
703
+ }) }, index.h("div", Object.assign({ key: '624adcd552947708162003353b331cd92df062ef', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index$1) => (index.h(index.Fragment, null, index.h("div", { class: "native-wrapper", part: "container" }, index.h("input", { class: "native-input", part: "native", id: `${inputId}-${index$1}`, "aria-label": `Input ${index$1 + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index$1 === tabbableIndex ? 0 : -1, value: inputValues[index$1] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index$1] = el), onInput: this.onInput(index$1), onBlur: this.onBlur, onFocus: this.onFocus(index$1), onKeyDown: this.onKeyDown(index$1), onPaste: this.onPaste })), this.showSeparator(index$1) && index.h("div", { class: "input-otp-separator", part: "separator" }))))), index.h("div", { key: 'c518d83ab0236a3ebbe631582ce6f1c2edfbcd29', class: {
704
704
  'input-otp-description': true,
705
705
  'input-otp-description-hidden': !hasDescription,
706
- }, part: "description" }, index.h("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
706
+ }, part: "description" }, index.h("slot", { key: '15c7c8549c1788748e1ae31bd227a7f918cb5eca' }))));
707
707
  }
708
708
  static get formAssociated() { return true; }
709
709
  get el() { return index.getElement(this); }
@@ -101,16 +101,16 @@ const InputPasswordToggle = class {
101
101
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
102
102
  const mode = ionicGlobal.getIonMode(this);
103
103
  const isPasswordVisible = type === 'text';
104
- return (index.h(index.Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: theme.createColorClasses(color, {
104
+ return (index.h(index.Host, { key: 'f11e3bf4d3255e003aec504e6dd3ee1e0caaf767', class: theme.createColorClasses(color, {
105
105
  [mode]: true,
106
- }) }, index.h("ion-button", { key: 'dee2bdeb169d1fa4943c9a8b0164b8fbb4cdfe06', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
106
+ }) }, index.h("ion-button", { key: '5bba43f7755857fd9347612bb906c389b60386b4', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
107
107
  /**
108
108
  * This prevents mobile browsers from
109
109
  * blurring the input when the password toggle
110
110
  * button is activated.
111
111
  */
112
112
  ev.preventDefault();
113
- }, onClick: this.togglePasswordVisibility }, index.h("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
113
+ }, onClick: this.togglePasswordVisibility }, index.h("ion-icon", { key: 'c0eb0e4e2f3e9553bfd519ff655064c9f62af406', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
114
114
  }
115
115
  get el() { return index.getElement(this); }
116
116
  static get watchers() { return {
@@ -622,7 +622,7 @@ const Input = class {
622
622
  * TODO(FW-5592): Remove hasStartEndSlots condition
623
623
  */
624
624
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
625
- return (index.h(index.Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: theme.createColorClasses(this.color, {
625
+ return (index.h(index.Host, { key: '3da29d837b5abe22de740ac96c8142422fce537a', class: theme.createColorClasses(this.color, {
626
626
  [theme$1]: true,
627
627
  'has-value': hasValue,
628
628
  'has-focus': hasFocus,
@@ -635,7 +635,7 @@ const Input = class {
635
635
  'in-item-color': theme.hostContext('ion-item.ion-color', this.el),
636
636
  'input-disabled': disabled,
637
637
  'input-readonly': readonly,
638
- }) }, index.h("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), index.h("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
638
+ }) }, index.h("label", { key: '142a8230382a05938887e9c0790832218ac37697', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), index.h("div", { key: '953f247ea2f40545e01e0346549d9b7aa344b720', class: "native-wrapper", onClick: this.onLabelClick },
639
639
  /**
640
640
  * For the ionic theme, we render the outline container here
641
641
  * instead of higher up, so it can be positioned relative to
@@ -645,14 +645,14 @@ const Input = class {
645
645
  * <label> element, ensuring that clicking the label text
646
646
  * focuses the input.
647
647
  */
648
- theme$1 === 'ionic' && index.h("div", { key: '83aa5e7ad97b0c964e31966c1d2b8771d1ecfc53', class: "input-outline" }), index.h("slot", { key: '1931003f2b0d19508acaaffab58fee644d1f6158', name: "start" }), index.h("input", Object.assign({ key: '33a06efb4ce0b6e67c12e77f131effb113fba73f', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (index.h("button", { key: 'd350f26cf6927ee089373ea8903db2479a0a404c', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
648
+ theme$1 === 'ionic' && index.h("div", { key: 'fd09b37c6a798900c5074e7cbe2e790ea050c29d', class: "input-outline" }), index.h("slot", { key: '3eef4c4748104d8722f3254a04ff88e2b70c560e', name: "start" }), index.h("input", Object.assign({ key: '012a3fa52e19422d7fbc227845e9771c7d8fbe4a', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (index.h("button", { key: 'b115494d9611aea57a976d3102026f3d9b430bfb', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
649
649
  /**
650
650
  * This prevents mobile browsers from
651
651
  * blurring the input when the clear
652
652
  * button is activated.
653
653
  */
654
654
  ev.preventDefault();
655
- }, onClick: this.clearTextInput }, index.h("ion-icon", { key: '972a2d94dcf599e63aac1d73e34873a9c3d0bf94', "aria-hidden": "true", icon: inputClearIcon }))), index.h("slot", { key: 'fac4dcaabb02f647e46276e92e3f341557170aec', name: "end" })), shouldRenderHighlight && index.h("div", { key: 'a10e519d8d1f0dcd81ffc43b8e4086797476f753', class: "input-highlight" })), this.renderBottomContent()));
655
+ }, onClick: this.clearTextInput }, index.h("ion-icon", { key: 'a259afa47a9914b2e0656364bed40644fa2c87c4', "aria-hidden": "true", icon: inputClearIcon }))), index.h("slot", { key: 'beec86eb500f6b335149c8734afc7c3945a10219', name: "end" })), shouldRenderHighlight && index.h("div", { key: '77a25d118934f369e09edbc2ffa6f90e3e760338', class: "input-highlight" })), this.renderBottomContent()));
656
656
  }
657
657
  get el() { return index.getElement(this); }
658
658
  static get watchers() { return {
@@ -70,14 +70,14 @@ const ItemOption = class {
70
70
  href: this.href,
71
71
  target: this.target,
72
72
  };
73
- return (index.h(index.Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: theme.createColorClasses(this.color, {
73
+ return (index.h(index.Host, { key: '8f1bad23fd3ccbb9d54d57765e6731cd2ee07306', onClick: this.onClick, class: theme.createColorClasses(this.color, {
74
74
  [theme$1]: true,
75
75
  [`item-option-${shape}`]: shape !== undefined,
76
76
  [`item-option-${hue}`]: hue !== undefined,
77
77
  'item-option-disabled': disabled,
78
78
  'item-option-expandable': expandable,
79
79
  'ion-activatable': true,
80
- }) }, index.h(TagType, Object.assign({ key: '38466b511f4a20a3728f37dbf6779b852eba531a' }, attrs, { class: "button-native", part: "native", disabled: disabled }), index.h("span", { key: 'bb8f1b332afa2f575bcc69b340bd8f1faa5ca925', class: "button-inner", part: "inner" }, index.h("slot", { key: '41d627511e1615283956712e1b9519bae92460f6', name: "top" }), index.h("div", { key: 'bb949a43a586a8996933ee7528e5491beb647aa5', class: "horizontal-wrapper", part: "container" }, index.h("slot", { key: 'c0d6a73ef49082bfbdf0f542f7465d044ccb6521', name: "start" }), index.h("slot", { key: '79c6103e680983b2c1a17f1f11dbc41224cd4016', name: "icon-only" }), index.h("slot", { key: '6c7f17723544d3f6e8b9689b84ddf6196f1897a5' }), index.h("slot", { key: 'e15d0e02fde71bad8ff7bab0eded7d49508a926e', name: "end" })), index.h("slot", { key: 'c509d54d44ce33f5a34597b9d0ec29960bbcff62', name: "bottom" })), theme$1 === 'md' && index.h("ion-ripple-effect", { key: '412d4dc645c941d0b4356cf982be3d5bc2686f13' }))));
80
+ }) }, index.h(TagType, Object.assign({ key: '2baf904e356a87ed463ee5f517e0e95f90b2ef30' }, attrs, { class: "button-native", part: "native", disabled: disabled }), index.h("span", { key: '49b627f72dffd1b150ccd808b1b1f63bbe78e2de', class: "button-inner", part: "inner" }, index.h("slot", { key: 'cdb52f76f1d7e5df411215f17eb76ad25e36241a', name: "top" }), index.h("div", { key: '864204667c6e3ba6f989b24e96c131b67e55d408', class: "horizontal-wrapper", part: "container" }, index.h("slot", { key: '474f4aab708842bb7ef74cb6f1fbe601ceff82cf', name: "start" }), index.h("slot", { key: '2bd726c5ba3ee079a623f1f6229d1ac2afd3e291', name: "icon-only" }), index.h("slot", { key: '2d1a673c447ebf82c92f944ec9e83a5b38698307' }), index.h("slot", { key: '8d0f9337cd84c725190cffd25d74044075e85ab0', name: "end" })), index.h("slot", { key: 'a674039b26d9cbb886e88ea721bbc210484aba9f', name: "bottom" })), theme$1 === 'md' && index.h("ion-ripple-effect", { key: '3e45bf18b7992943c47ece47e9358f4da0b8e865' }))));
81
81
  }
82
82
  get el() { return index.getElement(this); }
83
83
  };
@@ -112,7 +112,7 @@ const ItemOptions = class {
112
112
  render() {
113
113
  const theme = ionicGlobal.getIonTheme(this);
114
114
  const isEnd = helpers.isEndSide(this.side);
115
- return (index.h(index.Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
115
+ return (index.h(index.Host, { key: 'ed05ceebf2cda943ac9efea2f91b71f7e8fc55e8', class: {
116
116
  [theme]: true,
117
117
  // Used internally for styling
118
118
  [`item-options-${theme}`]: true,
@@ -906,7 +906,7 @@ const ItemSliding = class {
906
906
  }
907
907
  render() {
908
908
  const theme = ionicGlobal.getIonTheme(this);
909
- return (index.h(index.Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
909
+ return (index.h(index.Host, { key: '47de8c8a9721f9223b42d6722a9ad32f378818aa', class: {
910
910
  [theme]: true,
911
911
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
912
912
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -310,11 +310,11 @@ const ItemDivider = class {
310
310
  }
311
311
  render() {
312
312
  const theme$1 = ionicGlobal.getIonTheme(this);
313
- return (index.h(index.Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: theme.createColorClasses(this.color, {
313
+ return (index.h(index.Host, { key: 'dc73f348b5376faa40ba4bc6bba3d5c9e5ec5ab2', class: theme.createColorClasses(this.color, {
314
314
  [theme$1]: true,
315
315
  'item-divider-sticky': this.sticky,
316
316
  item: true,
317
- }) }, index.h("slot", { key: '4e16384a4481326490dab1ad31218c19eb9108db', name: "start" }), index.h("div", { key: '0bddbea071781e3372b5c7147c2fdd3ba0e29ffe', class: "item-divider-inner", part: "inner" }, index.h("div", { key: 'dfa603352f7cc58aaa717a32507b1dbbd7b79757', class: "item-divider-wrapper", part: "container" }, index.h("slot", { key: '4b1b67cfe72266645943f88ede9f8c61a344967d' })), index.h("slot", { key: '6ddd72a410c449e281f5344d02324e7461ba29e8', name: "end" }))));
317
+ }) }, index.h("slot", { key: '0f535b2cf91f2ec042aa59a89498cfa0e4d541a0', name: "start" }), index.h("div", { key: '867c8c1a1bd273a5f5018f77785f11d58152e8b9', class: "item-divider-inner", part: "inner" }, index.h("div", { key: 'c32b2a5658d27cf5d8cd8ffbfa476c02755e1afd', class: "item-divider-wrapper", part: "container" }, index.h("slot", { key: 'f8b0fea29a910cd2e36301586532be3a8348c31e' })), index.h("slot", { key: '418750f630c851cf04b6a278c1666c6cf33c113c', name: "end" }))));
318
318
  }
319
319
  get el() { return index.getElement(this); }
320
320
  };
@@ -336,7 +336,7 @@ const ItemGroup = class {
336
336
  }
337
337
  render() {
338
338
  const theme = ionicGlobal.getIonTheme(this);
339
- return (index.h(index.Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
339
+ return (index.h(index.Host, { key: '017c8f7cd0258e1864423337ddd1b1cb522f64ed', role: "group", class: {
340
340
  [theme]: true,
341
341
  // Used internally for styling
342
342
  [`item-group-${theme}`]: true,
@@ -410,13 +410,13 @@ const Label = class {
410
410
  render() {
411
411
  const position = this.position;
412
412
  const theme$1 = ionicGlobal.getIonTheme(this);
413
- return (index.h(index.Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: theme.createColorClasses(this.color, {
413
+ return (index.h(index.Host, { key: 'b1f261db441bcb0a325a5b3e21da17764a56f17c', class: theme.createColorClasses(this.color, {
414
414
  [theme$1]: true,
415
415
  'in-item-color': theme.hostContext('ion-item.ion-color', this.el),
416
416
  [`label-${position}`]: position !== undefined,
417
417
  [`label-no-animate`]: this.noAnimate,
418
418
  'label-rtl': document.dir === 'rtl',
419
- }) }, index.h("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
419
+ }) }, index.h("slot", { key: '490444c8c0d4cf72eae3f8abfb7ed7ecc30bb213' })));
420
420
  }
421
421
  get el() { return index.getElement(this); }
422
422
  static get watchers() { return {
@@ -480,7 +480,7 @@ const List = class {
480
480
  const theme = ionicGlobal.getIonTheme(this);
481
481
  const shape = this.getShape();
482
482
  const { lines, inset } = this;
483
- return (index.h(index.Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
483
+ return (index.h(index.Host, { key: '9be30ff6e75e020c0db7054800cb874efef26bd8', role: "list", class: {
484
484
  [theme]: true,
485
485
  // Used internally for styling
486
486
  [`list-${theme}`]: true,
@@ -511,10 +511,10 @@ const ListHeader = class {
511
511
  render() {
512
512
  const { lines } = this;
513
513
  const theme$1 = ionicGlobal.getIonTheme(this);
514
- return (index.h(index.Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: theme.createColorClasses(this.color, {
514
+ return (index.h(index.Host, { key: '7a1632a069317285210f4aeae50a6f2ef6955c56', class: theme.createColorClasses(this.color, {
515
515
  [theme$1]: true,
516
516
  [`list-header-lines-${lines}`]: lines !== undefined,
517
- }) }, index.h("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, index.h("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
517
+ }) }, index.h("div", { key: 'a9a9463f209023da222f38a78126d5aaeb2f03b9', class: "list-header-inner", part: "inner" }, index.h("slot", { key: 'e3c6ec1b588392d347844d59d338abc339e80634' }))));
518
518
  }
519
519
  };
520
520
  ListHeader.style = {
@@ -535,9 +535,9 @@ const Note = class {
535
535
  }
536
536
  render() {
537
537
  const theme$1 = ionicGlobal.getIonTheme(this);
538
- return (index.h(index.Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: theme.createColorClasses(this.color, {
538
+ return (index.h(index.Host, { key: '376ae1c66c19d1bdd74a2371c0639ed9e49648b5', class: theme.createColorClasses(this.color, {
539
539
  [theme$1]: true,
540
- }) }, index.h("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
540
+ }) }, index.h("slot", { key: 'f8168cd88bb21c5e5a2b03c29539729fb38a19fd' })));
541
541
  }
542
542
  };
543
543
  Note.style = {
@@ -573,11 +573,11 @@ const SkeletonText = class {
573
573
  const animated = this.animated && index.config.getBoolean('animated', true);
574
574
  const inMedia = theme.hostContext('ion-avatar', this.el) || theme.hostContext('ion-thumbnail', this.el);
575
575
  const theme$1 = ionicGlobal.getIonTheme(this);
576
- return (index.h(index.Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
576
+ return (index.h(index.Host, { key: '370451ee8963b776079f5df365f7bbd70a53b270', class: {
577
577
  [theme$1]: true,
578
578
  'skeleton-text-animated': animated,
579
579
  'in-media': inMedia,
580
- } }, index.h("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
580
+ } }, index.h("span", { key: '2b861b4ec86cbd61927ab7b81b13517c99dc94c7' }, "\u00A0")));
581
581
  }
582
582
  get el() { return index.getElement(this); }
583
583
  };
@@ -280,9 +280,9 @@ const Loading = class {
280
280
  * Otherwise, don't set aria-labelledby.
281
281
  */
282
282
  const ariaLabelledBy = message !== undefined ? msgId : null;
283
- return (index.h(index.Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
283
+ return (index.h(index.Host, Object.assign({ key: '2ffae36b20a7d7f3a752a062d90062583e31d053', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
284
284
  zIndex: `${40000 + this.overlayIndex}`,
285
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [theme$1]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), index.h("ion-backdrop", { key: '19884fd6f8bf6f704bff388ecfa245d1cd98156c', visible: this.showBackdrop, tappable: this.backdropDismiss }), index.h("div", { key: 'ecd47d503a9805a5c18f1b0d48989e54b4cb8f78', tabindex: "0", "aria-hidden": "true" }), index.h("div", { key: '231821576b812ffaa90ed9ced4437e456908ad53', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (index.h("div", { key: 'e18d21751a73f408bd058aa4270f245285cd57fa', class: "loading-spinner" }, index.h("ion-spinner", { key: '478761b8a000191951e9902138483b389e1b76c4', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), index.h("div", { key: '968be6c72872ce5bc8706fa37f242dcdc38efb33', tabindex: "0", "aria-hidden": "true" })));
285
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [theme$1]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), index.h("ion-backdrop", { key: 'a6d8cac2c34a0905ec67a2c64be7ec12cc84f168', visible: this.showBackdrop, tappable: this.backdropDismiss }), index.h("div", { key: 'cd011d86f20869096a8546f098fb5edad44033a1', tabindex: "0", "aria-hidden": "true" }), index.h("div", { key: '70298be2139d6004e0f8fc5a85c5d05f1efdc347', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (index.h("div", { key: '32aef90695d91e0a82696abbce96ba29cb1a2608', class: "loading-spinner" }, index.h("ion-spinner", { key: '7ae69c27be273cf3e83230dae043168df27ac27e', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), index.h("div", { key: 'f13a01b31516c3fe85dd3a623962290c03e7412f', tabindex: "0", "aria-hidden": "true" })));
286
286
  }
287
287
  get el() { return index.getElement(this); }
288
288
  static get watchers() { return {
@@ -666,14 +666,14 @@ const Menu = class {
666
666
  * the ionBackButton listener in the menu controller
667
667
  * will handle closing the menu when Escape is pressed.
668
668
  */
669
- return (index.h(index.Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: ionicGlobal.shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
669
+ return (index.h(index.Host, { key: '76e15d710fbbbd2e64795224decc3673fd160db0', onKeyDown: ionicGlobal.shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
670
670
  [theme$1]: true,
671
671
  [`menu-type-${type}`]: true,
672
672
  'menu-enabled': !disabled,
673
673
  [`menu-side-${side}`]: true,
674
674
  'menu-pane-visible': isPaneVisible,
675
675
  'split-pane-side': theme.hostContext('ion-split-pane', el),
676
- } }, index.h("div", { key: '3ffcedd178c412771657599f3d5de2cd2a717c00', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, index.h("slot", { key: '2d8dfdb569c4b433cbacbe2aee8a12954e157a51' })), index.h("ion-backdrop", { key: 'e1fcbdcf6bd3aa0fa10dcf05a2b012bef196a243', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
676
+ } }, index.h("div", { key: 'cc0a0773caff97aefa98015bf3e36631173d2b4f', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, index.h("slot", { key: '0b90d1248bdf3bedafda7913189635c8d010abb6' })), index.h("ion-backdrop", { key: '4fb7013bc61161e6e336541ed25605219410f749', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
677
677
  }
678
678
  get el() { return index.getElement(this); }
679
679
  static get watchers() { return {
@@ -774,7 +774,7 @@ const MenuButton = class {
774
774
  type: this.type,
775
775
  };
776
776
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
777
- return (index.h(index.Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: theme.createColorClasses(color, {
777
+ return (index.h(index.Host, { key: '341ca3bfac81ce4432eef5d2fd738becd1dfb07e', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: theme.createColorClasses(color, {
778
778
  [theme$1]: true,
779
779
  button: true, // ion-buttons target .button
780
780
  'menu-button-hidden': hidden,
@@ -783,7 +783,7 @@ const MenuButton = class {
783
783
  'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
784
784
  'ion-activatable': true,
785
785
  'ion-focusable': true,
786
- }) }, index.h("button", Object.assign({ key: '88bef93aa6c1a0d5795c4a9ba3edffd99413a758' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), index.h("span", { key: '12b2f8bc542239a35adee62d76acccff571a84d7', class: "button-inner" }, index.h("slot", { key: '5bba549d8e92745aa34372c105cfe80e0ecbc9f5' }, index.h("ion-icon", { key: '864ff8bf1722b7fe1f17f2a40dfc5b91cb3403f9', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme$1 === 'md' && index.h("ion-ripple-effect", { key: '59e24ecb22970e43b51739324b11457c6e4bc117', type: "unbounded" }))));
786
+ }) }, index.h("button", Object.assign({ key: '6e6229df2fc1f2d18294a5fbf7fe71e7dd47666a' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), index.h("span", { key: '0216acbf67d7aa5edc52328f7ded4cb98bc8a237', class: "button-inner" }, index.h("slot", { key: '5c2cdae42add9a25d3e6323048fcbc6b5fc9b32e' }, index.h("ion-icon", { key: '5b38c283957cd2f1ad659427dec612fc84fc054f', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme$1 === 'md' && index.h("ion-ripple-effect", { key: 'adabe4ffa1d66fe36d55294d774db9c4bba1ad76', type: "unbounded" }))));
787
787
  }
788
788
  get el() { return index.getElement(this); }
789
789
  };
@@ -819,10 +819,10 @@ const MenuToggle = class {
819
819
  render() {
820
820
  const theme = ionicGlobal.getIonTheme(this);
821
821
  const hidden = this.autoHide && !this.visible;
822
- return (index.h(index.Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
822
+ return (index.h(index.Host, { key: '9ef631d9ae370a8740e691d281863203bfdddc38', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
823
823
  [theme]: true,
824
824
  'menu-toggle-hidden': hidden,
825
- } }, index.h("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
825
+ } }, index.h("slot", { key: 'f8d9dfc562ed625ae47ec771ef6b2ea04bc463f4' })));
826
826
  }
827
827
  };
828
828
  MenuToggle.style = menuToggleCss();