@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
package/hydrate/index.js CHANGED
@@ -13337,7 +13337,7 @@ const isRTL$1 = (hostEl) => {
13337
13337
  return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
13338
13338
  };
13339
13339
 
13340
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}:host(.content-header-hide-scroll-partner:not(.content-footer-hide-scroll-partner)) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-header-hide-scroll-partner:not(.content-footer-hide-scroll-partner).content-header-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--header-hide-slide-y, 0px));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-footer-hide-scroll-partner:not(.content-header-hide-scroll-partner)) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-footer-hide-scroll-partner:not(.content-header-hide-scroll-partner).content-footer-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--footer-hide-slide-y, 0px));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-header-hide-scroll-partner.content-footer-hide-scroll-partner:not(.content-header-hide-scroll-hidden):not(.content-footer-hide-scroll-hidden)) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-header-hide-scroll-partner.content-footer-hide-scroll-partner.content-header-hide-scroll-hidden:not(.content-footer-hide-scroll-hidden)) .inner-scroll{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--header-hide-slide-y, 0px));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-header-hide-scroll-partner.content-footer-hide-scroll-partner:not(.content-header-hide-scroll-hidden).content-footer-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--footer-hide-slide-y, 0px));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-header-hide-scroll-partner.content-footer-hide-scroll-partner.content-header-hide-scroll-hidden.content-footer-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--header-hide-slide-y, 0px) + var(--footer-hide-slide-y, 0px));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}`;
13340
+ const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
13341
13341
 
13342
13342
  /**
13343
13343
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -18587,171 +18587,6 @@ const createKeyboardController = async (keyboardChangeCallback) => {
18587
18587
  return { init, destroy, isKeyboardVisible };
18588
18588
  };
18589
18589
 
18590
- /** Cumulative downward delta before hiding (header or footer `collapse="hide"`). */
18591
- const COLLAPSE_HIDE_THRESHOLD_PX = 24;
18592
- /**
18593
- * Cumulative upward delta before showing again after hide. Small bias
18594
- * (instead of "any upward delta") guards against inertial-scroll
18595
- * oscillation flicking the region back open during a downward gesture.
18596
- */
18597
- const COLLAPSE_SHOW_THRESHOLD_PX = 5;
18598
- const WHEEL_SCROLL_SUPPRESS_MS = 80;
18599
- const getContentHostFromScrollEl = (scrollEl) => {
18600
- const root = scrollEl.getRootNode();
18601
- if (root instanceof ShadowRoot && root.host instanceof HTMLElement) {
18602
- return root.host;
18603
- }
18604
- // Light-DOM fallback: the scroll element may live inside a non-shadow
18605
- // ion-content (e.g. custom scroll host). Walk up to the nearest ion-content.
18606
- return scrollEl.closest('ion-content');
18607
- };
18608
- const applySlideDistance = (regionEl, contentHost, slideCssVar, heightPx) => {
18609
- const value = `${Math.max(0, Math.ceil(heightPx))}px`;
18610
- regionEl.style.setProperty(slideCssVar, value);
18611
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.setProperty(slideCssVar, value);
18612
- };
18613
- const clearSlideDistance = (regionEl, contentHost, slideCssVar) => {
18614
- regionEl.style.removeProperty(slideCssVar);
18615
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.removeProperty(slideCssVar);
18616
- };
18617
- /**
18618
- * Scroll/wheel-driven hide/show for `collapse="hide"` on `ion-header` or `ion-footer`.
18619
- * Hide after {@link COLLAPSE_HIDE_THRESHOLD_PX}px cumulative downward delta; show after
18620
- * {@link COLLAPSE_SHOW_THRESHOLD_PX}px cumulative upward delta. Each direction drains
18621
- * (not resets) the opposing accumulator so inertial-scroll jitter doesn't stall either
18622
- * transition. Motion is defined in component SCSS and `content.scss`; this toggles
18623
- * classes and syncs the slide distance CSS var.
18624
- */
18625
- const createCollapseHideInteraction = ({ regionEl, scrollEl, slideCssVar, contentPartnerClass, contentHiddenClass, regionHiddenClass, }) => {
18626
- const contentHost = getContentHostFromScrollEl(scrollEl);
18627
- if (contentHost !== null) {
18628
- contentHost.classList.add(contentPartnerClass);
18629
- }
18630
- let resizeObserver;
18631
- let destroyed = false;
18632
- const syncSlideDistance = () => {
18633
- readTask(() => {
18634
- if (destroyed) {
18635
- return;
18636
- }
18637
- const heightPx = regionEl.offsetHeight;
18638
- writeTask(() => {
18639
- if (destroyed) {
18640
- return;
18641
- }
18642
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
18643
- });
18644
- });
18645
- };
18646
- if (typeof ResizeObserver !== 'undefined') {
18647
- resizeObserver = new ResizeObserver(() => {
18648
- syncSlideDistance();
18649
- });
18650
- resizeObserver.observe(regionEl);
18651
- }
18652
- syncSlideDistance();
18653
- requestAnimationFrame(() => {
18654
- if (!destroyed) {
18655
- syncSlideDistance();
18656
- }
18657
- });
18658
- let hidden = false;
18659
- let accDown = 0;
18660
- let accUp = 0;
18661
- let lastScrollTop = scrollEl.scrollTop;
18662
- let lastWheelTime = 0;
18663
- const setHidden = (next) => {
18664
- if (hidden === next || destroyed) {
18665
- return;
18666
- }
18667
- hidden = next;
18668
- // When transitioning to hidden, re-measure synchronously in case the
18669
- // initial layout reported offsetHeight === 0 (e.g. mid page transition).
18670
- // Without this the slide animates by 0px and only opacity fades.
18671
- if (hidden) {
18672
- const heightPx = regionEl.offsetHeight;
18673
- if (heightPx > 0) {
18674
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
18675
- }
18676
- }
18677
- writeTask(() => {
18678
- if (destroyed) {
18679
- return;
18680
- }
18681
- regionEl.classList.toggle(regionHiddenClass, hidden);
18682
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.toggle(contentHiddenClass, hidden);
18683
- if (hidden) {
18684
- // `inert` removes the subtree from the tab order and AT, AND moves
18685
- // focus out automatically in supporting browsers. `aria-hidden` is
18686
- // kept as a fallback for older engines without `inert` support.
18687
- regionEl.setAttribute('inert', '');
18688
- regionEl.setAttribute('aria-hidden', 'true');
18689
- }
18690
- else {
18691
- regionEl.removeAttribute('inert');
18692
- regionEl.removeAttribute('aria-hidden');
18693
- }
18694
- });
18695
- };
18696
- // Accumulate cumulative movement in each direction. The OPPOSITE accumulator
18697
- // is drained (not reset) by each event, so brief inertial jitter does not
18698
- // wipe a sustained gesture's accumulation. Crossing a threshold resets both.
18699
- const processDelta = (delta) => {
18700
- if (delta > 0) {
18701
- accUp = Math.max(0, accUp - delta);
18702
- accDown += delta;
18703
- if (accDown >= COLLAPSE_HIDE_THRESHOLD_PX) {
18704
- setHidden(true);
18705
- accDown = 0;
18706
- accUp = 0;
18707
- }
18708
- }
18709
- else if (delta < 0) {
18710
- const mag = -delta;
18711
- accDown = Math.max(0, accDown - mag);
18712
- accUp += mag;
18713
- if (accUp >= COLLAPSE_SHOW_THRESHOLD_PX) {
18714
- setHidden(false);
18715
- accUp = 0;
18716
- accDown = 0;
18717
- }
18718
- }
18719
- };
18720
- const onWheel = (ev) => {
18721
- if (destroyed) {
18722
- return;
18723
- }
18724
- lastWheelTime = performance.now();
18725
- processDelta(ev.deltaY);
18726
- };
18727
- const onScroll = () => {
18728
- if (destroyed) {
18729
- return;
18730
- }
18731
- const st = scrollEl.scrollTop;
18732
- if (performance.now() - lastWheelTime < WHEEL_SCROLL_SUPPRESS_MS) {
18733
- lastScrollTop = st;
18734
- return;
18735
- }
18736
- const delta = st - lastScrollTop;
18737
- lastScrollTop = st;
18738
- processDelta(delta);
18739
- };
18740
- scrollEl.addEventListener('wheel', onWheel, { passive: true });
18741
- scrollEl.addEventListener('scroll', onScroll, { passive: true });
18742
- return () => {
18743
- destroyed = true;
18744
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
18745
- scrollEl.removeEventListener('wheel', onWheel);
18746
- scrollEl.removeEventListener('scroll', onScroll);
18747
- regionEl.classList.remove(regionHiddenClass);
18748
- regionEl.removeAttribute('inert');
18749
- regionEl.removeAttribute('aria-hidden');
18750
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.remove(contentPartnerClass, contentHiddenClass);
18751
- clearSlideDistance(regionEl, contentHost, slideCssVar);
18752
- };
18753
- };
18754
-
18755
18590
  const handleFooterFade = (scrollEl, baseEl) => {
18756
18591
  readTask(() => {
18757
18592
  const scrollTop = scrollEl.scrollTop;
@@ -18780,20 +18615,12 @@ const handleFooterFade = (scrollEl, baseEl) => {
18780
18615
  });
18781
18616
  });
18782
18617
  };
18783
- const createFooterHideInteraction = (footerEl, scrollEl) => createCollapseHideInteraction({
18784
- regionEl: footerEl,
18785
- scrollEl,
18786
- slideCssVar: '--footer-hide-slide-y',
18787
- contentPartnerClass: 'content-footer-hide-scroll-partner',
18788
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
18789
- regionHiddenClass: 'footer-collapse-hide-hidden',
18790
- });
18791
18618
 
18792
- const ionicFooterMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}ion-footer.footer-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);opacity:1}ion-footer.footer-collapse-hide.footer-collapse-hide-hidden{-webkit-transform:translateY(var(--footer-hide-slide-y, 0px));transform:translateY(var(--footer-hide-slide-y, 0px));pointer-events:none;-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
18619
+ const ionicFooterMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
18793
18620
 
18794
- const footerIosCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}ion-footer.footer-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);opacity:1}ion-footer.footer-collapse-hide.footer-collapse-hide-hidden{-webkit-transform:translateY(var(--footer-hide-slide-y, 0px));transform:translateY(var(--footer-hide-slide-y, 0px));pointer-events:none;-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:0.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}`;
18621
+ const footerIosCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:0.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}`;
18795
18622
 
18796
- const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}ion-footer.footer-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);opacity:1}ion-footer.footer-collapse-hide.footer-collapse-hide-hidden{-webkit-transform:translateY(var(--footer-hide-slide-y, 0px));transform:translateY(var(--footer-hide-slide-y, 0px));pointer-events:none;-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
18623
+ const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
18797
18624
 
18798
18625
  /**
18799
18626
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -18802,8 +18629,6 @@ const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-o
18802
18629
  class Footer {
18803
18630
  constructor(hostRef) {
18804
18631
  registerInstance(this, hostRef);
18805
- this.didLoad = false;
18806
- this.setupToken = 0;
18807
18632
  this.keyboardCtrl = null;
18808
18633
  this.keyboardCtrlPromise = null;
18809
18634
  this.keyboardVisible = false;
@@ -18818,45 +18643,25 @@ class Footer {
18818
18643
  this.translucent = false;
18819
18644
  this.checkCollapsibleFooter = () => {
18820
18645
  const theme = getIonTheme(this);
18821
- const { collapse } = this;
18822
- const hasFade = collapse === 'fade';
18823
- const hasHide = collapse === 'hide';
18824
- const runIosFade = theme === 'ios' && hasFade;
18825
- if (!runIosFade && !hasHide) {
18826
- this.destroyCollapsibleFooter();
18827
- return;
18828
- }
18829
- // Skip teardown/rebuild when the collapse mode and theme have not changed
18830
- // since the last setup — avoids thrashing listeners and resetting scroll
18831
- // accumulators on unrelated re-renders (e.g. keyboardVisible state flips).
18832
- const activeMode = hasHide ? 'hide' : 'fade';
18833
- if (this.appliedCollapse === activeMode && this.appliedTheme === theme) {
18646
+ if (theme !== 'ios') {
18834
18647
  return;
18835
18648
  }
18649
+ const { collapse } = this;
18650
+ const hasFade = collapse === 'fade';
18836
18651
  this.destroyCollapsibleFooter();
18837
- const appRootSelector = config.get('appRootSelector', 'ion-app');
18838
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
18839
- const contentEl = pageEl ? findIonContent(pageEl) : null;
18840
- if (!contentEl) {
18841
- printIonContentErrorMsg(this.el);
18842
- return;
18843
- }
18844
- this.appliedCollapse = activeMode;
18845
- this.appliedTheme = theme;
18846
- if (runIosFade) {
18652
+ if (hasFade) {
18653
+ const appRootSelector = config.get('appRootSelector', 'ion-app');
18654
+ const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
18655
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
18656
+ if (!contentEl) {
18657
+ printIonContentErrorMsg(this.el);
18658
+ return;
18659
+ }
18847
18660
  this.setupFadeFooter(contentEl);
18848
18661
  }
18849
- else if (hasHide) {
18850
- void this.setupHideFooter(contentEl);
18851
- }
18852
18662
  };
18853
18663
  this.setupFadeFooter = async (contentEl) => {
18854
- const token = ++this.setupToken;
18855
- const scrollEl = await getScrollElement(contentEl);
18856
- if (token !== this.setupToken) {
18857
- return;
18858
- }
18859
- this.scrollEl = scrollEl;
18664
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
18860
18665
  /**
18861
18666
  * Handle fading of toolbars on scroll
18862
18667
  */
@@ -18868,18 +18673,12 @@ class Footer {
18868
18673
  };
18869
18674
  }
18870
18675
  componentDidLoad() {
18871
- this.didLoad = true;
18872
18676
  this.checkCollapsibleFooter();
18873
18677
  }
18874
18678
  componentDidUpdate() {
18875
18679
  this.checkCollapsibleFooter();
18876
18680
  }
18877
18681
  async connectedCallback() {
18878
- // On re-attach (didLoad already true but disconnectedCallback ran since),
18879
- // componentDidLoad will not fire again — re-run setup here.
18880
- if (this.didLoad) {
18881
- this.checkCollapsibleFooter();
18882
- }
18883
18682
  const promise = createKeyboardController(async (keyboardOpen, waitForResize) => {
18884
18683
  /**
18885
18684
  * If the keyboard is hiding, then we need to wait
@@ -18907,7 +18706,6 @@ class Footer {
18907
18706
  }
18908
18707
  }
18909
18708
  disconnectedCallback() {
18910
- this.destroyCollapsibleFooter();
18911
18709
  if (this.keyboardCtrlPromise) {
18912
18710
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
18913
18711
  this.keyboardCtrlPromise = null;
@@ -18917,36 +18715,18 @@ class Footer {
18917
18715
  this.keyboardCtrl = null;
18918
18716
  }
18919
18717
  }
18920
- async setupHideFooter(contentEl) {
18921
- const token = ++this.setupToken;
18922
- const scrollEl = await getScrollElement(contentEl);
18923
- // A newer checkCollapsibleFooter ran while we were awaiting — abandon.
18924
- if (token !== this.setupToken) {
18925
- return;
18926
- }
18927
- this.scrollEl = scrollEl;
18928
- this.footerHideCleanup = createFooterHideInteraction(this.el, scrollEl);
18929
- }
18930
18718
  destroyCollapsibleFooter() {
18931
- // Invalidate any in-flight setupHideFooter/setupFadeFooter awaits.
18932
- this.setupToken++;
18933
- if (this.footerHideCleanup) {
18934
- this.footerHideCleanup();
18935
- this.footerHideCleanup = undefined;
18936
- }
18937
18719
  if (this.scrollEl && this.contentScrollCallback) {
18938
18720
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
18939
18721
  this.contentScrollCallback = undefined;
18940
18722
  }
18941
- this.appliedCollapse = undefined;
18942
- this.appliedTheme = undefined;
18943
18723
  }
18944
18724
  render() {
18945
18725
  const { translucent, collapse } = this;
18946
18726
  const theme = getIonTheme(this);
18947
18727
  const tabs = this.el.closest('ion-tabs');
18948
18728
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
18949
- return (hAsync(Host, { key: '5df79a31f36febfad49c5858727e93c7ba5734f8', role: "contentinfo", class: {
18729
+ return (hAsync(Host, { key: '4a2989a177b47ee26ffa23e2c9f5418773584796', role: "contentinfo", class: {
18950
18730
  [theme]: true,
18951
18731
  // Used internally for styling
18952
18732
  [`footer-${theme}`]: true,
@@ -18954,7 +18734,7 @@ class Footer {
18954
18734
  [`footer-translucent-${theme}`]: translucent,
18955
18735
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
18956
18736
  [`footer-collapse-${collapse}`]: collapse !== undefined,
18957
- } }, theme === 'ios' && translucent && hAsync("div", { key: '9175ae4f6576d82dff2a00a36e91f4b633d8c9ad', class: "footer-background" }), hAsync("slot", { key: 'd6d618cdae4726822d8e82edb782c5c86fc7b77b' })));
18737
+ } }, theme === 'ios' && translucent && hAsync("div", { key: 'c644963db3e06254014e398ea02189d6127ccf61', class: "footer-background" }), hAsync("slot", { key: '839e33c6c30f5c1c703239a19458ff10da9a5e76' })));
18958
18738
  }
18959
18739
  get el() { return getElement(this); }
18960
18740
  static get style() { return {
@@ -18984,6 +18764,9 @@ class Footer {
18984
18764
  const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
18985
18765
  // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18986
18766
  const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
18767
+ // Matches a `var(--name)` reference with an optional fallback, e.g.
18768
+ // `var(--my-gap)` or `var(--my-gap, 16px)`.
18769
+ const VAR_FUNCTION_PATTERN = /^var\(\s*--[^\s,)]+\s*(?:,[\s\S]*)?\)$/i;
18987
18770
  /**
18988
18771
  * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18989
18772
  * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
@@ -18998,6 +18781,17 @@ function isValidLengthPercentage(value) {
18998
18781
  }
18999
18782
  return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
19000
18783
  }
18784
+ /**
18785
+ * Returns whether `value` is a single [`var()`](https://developer.mozilla.org/en-US/docs/Web/CSS/var)
18786
+ * reference, e.g. `var(--my-token)` or `var(--my-token, 16px)`. The referenced
18787
+ * custom property is resolved by the browser, so the resolved value is not
18788
+ * validated here.
18789
+ *
18790
+ * @param value String value to validate.
18791
+ */
18792
+ function isCssVariable(value) {
18793
+ return VAR_FUNCTION_PATTERN.test(value.trim());
18794
+ }
19001
18795
 
19002
18796
  const DEFAULT_COLUMNS = {
19003
18797
  xs: 2,
@@ -19009,7 +18803,7 @@ const DEFAULT_COLUMNS = {
19009
18803
  };
19010
18804
  const DEFAULT_GAP = '16px';
19011
18805
 
19012
- 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}`;
18806
+ 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}`;
19013
18807
 
19014
18808
  // TODO(FW-7285): Replace with global breakpoints
19015
18809
  const BREAKPOINTS = {
@@ -19021,11 +18815,16 @@ const BREAKPOINTS = {
19021
18815
  xxl: 1400,
19022
18816
  };
19023
18817
  const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
18818
+ /**
18819
+ * The tag of the component used to wrap each gallery item.
18820
+ */
18821
+ const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
19024
18822
  /**
19025
18823
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
19026
18824
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
19027
18825
  *
19028
- * @slot - Content is placed in a responsive gallery layout.
18826
+ * @slot - One or more `ion-gallery-item` components, placed in a responsive
18827
+ * gallery layout.
19029
18828
  */
19030
18829
  class Gallery {
19031
18830
  constructor(hostRef) {
@@ -19035,6 +18834,7 @@ class Gallery {
19035
18834
  this.hasWarnedInvalidColumns = false;
19036
18835
  this.hasWarnedInvalidGap = false;
19037
18836
  this.hasWarnedUnusedOrder = false;
18837
+ this.hasWarnedInvalidItems = false;
19038
18838
  /**
19039
18839
  * The visual layout of the gallery. When `uniform`, rows take up the height
19040
18840
  * of the tallest item and are spaced evenly across the gallery. Additionally,
@@ -19051,7 +18851,8 @@ class Gallery {
19051
18851
  /**
19052
18852
  * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
19053
18853
  * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
19054
- * or numbers (treated as pixel values). Can also be set as a breakpoint map
18854
+ * CSS variables like `var(--app-gallery-gap)`, or numbers (treated as pixel
18855
+ * values). Can also be set as a breakpoint map
19055
18856
  * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
19056
18857
  * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
19057
18858
  */
@@ -19063,6 +18864,9 @@ class Gallery {
19063
18864
  * are added or removed from the gallery.
19064
18865
  */
19065
18866
  this.onSlotChange = () => {
18867
+ // Re-observe so newly added items are watched for size changes (e.g. a
18868
+ // freshly appended item finishing hydration), then recompute placement.
18869
+ this.observeResizes();
19066
18870
  this.scheduleMasonryResize();
19067
18871
  };
19068
18872
  /**
@@ -19106,7 +18910,7 @@ class Gallery {
19106
18910
  this.updateResponsiveStyles();
19107
18911
  this.scheduleMasonryResize();
19108
18912
  });
19109
- this.resizeObserver.observe(this.el);
18913
+ this.observeResizes();
19110
18914
  this.scheduleMasonryResize();
19111
18915
  this.warnUnusedOrder();
19112
18916
  }
@@ -19119,6 +18923,22 @@ class Gallery {
19119
18923
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19120
18924
  this.resizeObserver = undefined;
19121
18925
  }
18926
+ /**
18927
+ * Observe the host and each item for size changes. Items are observed in
18928
+ * addition to the host so masonry placement is recomputed when an item's
18929
+ * rendered height changes — most importantly when a dynamically added
18930
+ * `ion-gallery-item` finishes hydrating, which (unlike an `<img>`) emits no
18931
+ * `load` event and does not change the host's measured size while collapsed.
18932
+ */
18933
+ observeResizes() {
18934
+ const observer = this.resizeObserver;
18935
+ if (observer === undefined) {
18936
+ return;
18937
+ }
18938
+ observer.disconnect();
18939
+ observer.observe(this.el);
18940
+ this.getItems().forEach((item) => observer.observe(item));
18941
+ }
19122
18942
  /**
19123
18943
  * Listen for the load event on child elements.
19124
18944
  * When the layout is `masonry`, this listener is used to schedule a resize
@@ -19172,9 +18992,10 @@ class Gallery {
19172
18992
  return numericColumns;
19173
18993
  }
19174
18994
  /**
19175
- * Normalize a single gap value (`gap` as a number, string, or one entry from
19176
- * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
19177
- * the input cannot be interpreted as a valid CSS length.
18995
+ * Normalize a single gap value (`gap` as a number, a string such as a CSS
18996
+ * length-percentage or `var()` reference, or one entry from a `gap`
18997
+ * breakpoint map) to a CSS length string. Returns `undefined` when the
18998
+ * input cannot be interpreted as a valid CSS length or `var()` reference.
19178
18999
  */
19179
19000
  sanitizeGap(gap) {
19180
19001
  if (gap === undefined) {
@@ -19191,6 +19012,9 @@ class Gallery {
19191
19012
  if (typeof normalizedGap !== 'string') {
19192
19013
  return undefined;
19193
19014
  }
19015
+ if (isCssVariable(normalizedGap)) {
19016
+ return normalizedGap;
19017
+ }
19194
19018
  const isValidCssLength = isValidLengthPercentage(normalizedGap);
19195
19019
  return isValidCssLength ? normalizedGap : undefined;
19196
19020
  }
@@ -19271,7 +19095,7 @@ class Gallery {
19271
19095
  if (this.hasWarnedInvalidGap) {
19272
19096
  return;
19273
19097
  }
19274
- 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);
19098
+ 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);
19275
19099
  this.hasWarnedInvalidGap = true;
19276
19100
  }
19277
19101
  /**
@@ -19343,11 +19167,43 @@ class Gallery {
19343
19167
  this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
19344
19168
  }
19345
19169
  /**
19346
- * Return all directly slotted children of the gallery that can be grid items
19347
- * with inline placement styles (HTML elements and SVG elements).
19170
+ * Return the `ion-gallery-item` elements to place in the grid. Each item is a
19171
+ * direct grid cell. A direct child that is not an `ion-gallery-item` is
19172
+ * treated as a pass-through wrapper (e.g. a layout `<div>`): its box is
19173
+ * collapsed with `display: contents` so the nested items participate in the
19174
+ * gallery grid. Children that contain no `ion-gallery-item` are ignored.
19348
19175
  */
19349
19176
  getItems() {
19350
- return Array.from(this.el.children).filter((child) => { var _a; return typeof ((_a = child.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function'; });
19177
+ const items = [];
19178
+ Array.from(this.el.children).forEach((child) => {
19179
+ // Standard path: <ion-gallery-item> is a direct child of <ion-gallery>.
19180
+ if (child.matches(GALLERY_ITEM_SELECTOR)) {
19181
+ items.push(child);
19182
+ return;
19183
+ }
19184
+ // Compatibility path: a wrapper element may contain <ion-gallery-item>
19185
+ // components. Collapse the wrapper's box so the items participate in the
19186
+ // gallery grid.
19187
+ const nestedItems = Array.from(child.querySelectorAll(GALLERY_ITEM_SELECTOR));
19188
+ if (nestedItems.length === 0) {
19189
+ this.warnInvalidItems();
19190
+ return;
19191
+ }
19192
+ child.style.display = 'contents';
19193
+ items.push(...nestedItems);
19194
+ });
19195
+ return items;
19196
+ }
19197
+ /**
19198
+ * Warn when the gallery has content that is not wrapped in an
19199
+ * `ion-gallery-item` component.
19200
+ */
19201
+ warnInvalidItems() {
19202
+ if (this.hasWarnedInvalidItems) {
19203
+ return;
19204
+ }
19205
+ 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);
19206
+ this.hasWarnedInvalidItems = true;
19351
19207
  }
19352
19208
  /**
19353
19209
  * Clear the item styles for the given item element.
@@ -19365,12 +19221,19 @@ class Gallery {
19365
19221
  clearMasonryStyles() {
19366
19222
  this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
19367
19223
  }
19224
+ /**
19225
+ * Whether the item contains any images that have not finished loading.
19226
+ * Used to defer masonry placement until the rendered height is final.
19227
+ */
19228
+ hasUnloadedImages(itemEl) {
19229
+ return Array.from(itemEl.querySelectorAll('img')).some((img) => !img.complete || img.naturalHeight === 0);
19230
+ }
19368
19231
  /**
19369
19232
  * Convert a rendered item height to the number of grid rows it should span.
19370
- * Returns undefined for images that are not fully loaded yet.
19233
+ * Returns undefined when the item has images that are not fully loaded yet.
19371
19234
  */
19372
19235
  calculateRowSpan(itemEl, rowHeight, rowGap) {
19373
- if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
19236
+ if (this.hasUnloadedImages(itemEl)) {
19374
19237
  return undefined;
19375
19238
  }
19376
19239
  const height = itemEl.getBoundingClientRect().height;
@@ -19457,11 +19320,11 @@ class Gallery {
19457
19320
  const { layout } = this;
19458
19321
  const order = this.getOrder();
19459
19322
  const theme = getIonTheme(this);
19460
- return (hAsync(Host, { key: '1bf2973d22835c0dbddf3214b602f8c08b95e421', class: {
19323
+ return (hAsync(Host, { key: '2063823917f4ab8430aee0e17ae0f3a2b53341d1', class: {
19461
19324
  [theme]: true,
19462
19325
  [`gallery-layout-${layout}`]: true,
19463
19326
  [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
19464
- } }, hAsync("slot", { key: '0dea31f609f6afdb1d73ecb2d873909ffe49203f', onSlotchange: this.onSlotChange })));
19327
+ } }, hAsync("slot", { key: '1378f489afb6b05181d2513f664c4efe24ad3598', onSlotchange: this.onSlotChange })));
19465
19328
  }
19466
19329
  get el() { return getElement(this); }
19467
19330
  static get watchers() { return {
@@ -19494,6 +19357,93 @@ class Gallery {
19494
19357
  }; }
19495
19358
  }
19496
19359
 
19360
+ 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)}`;
19361
+
19362
+ /**
19363
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
19364
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
19365
+ *
19366
+ * @slot - The content placed inside of the gallery item. This is typically an
19367
+ * `img`, but can be any element (e.g. a `figure` wrapping an image and caption).
19368
+ */
19369
+ class GalleryItem {
19370
+ constructor(hostRef) {
19371
+ registerInstance(this, hostRef);
19372
+ this.hasWarnedInvalidParent = false;
19373
+ this.onSlotChange = () => {
19374
+ this.warnInvalidParent();
19375
+ };
19376
+ }
19377
+ componentWillLoad() {
19378
+ var _a;
19379
+ this.galleryEl = (_a = this.el.closest('ion-gallery')) !== null && _a !== void 0 ? _a : undefined;
19380
+ this.syncLayoutClasses();
19381
+ }
19382
+ componentDidLoad() {
19383
+ this.watchGalleryLayoutClasses();
19384
+ this.warnInvalidParent();
19385
+ }
19386
+ disconnectedCallback() {
19387
+ var _a;
19388
+ (_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19389
+ this.galleryClassObserver = undefined;
19390
+ this.galleryEl = undefined;
19391
+ }
19392
+ /**
19393
+ * Warn when the item is not a descendant of an `ion-gallery`.
19394
+ */
19395
+ warnInvalidParent() {
19396
+ if (this.hasWarnedInvalidParent || this.galleryEl !== undefined) {
19397
+ return;
19398
+ }
19399
+ printIonWarning('[ion-gallery-item] - This component should be used as a child of an "ion-gallery" component.', this.el);
19400
+ this.hasWarnedInvalidParent = true;
19401
+ }
19402
+ /**
19403
+ * Watch the parent gallery's class list so the item can react to layout
19404
+ * changes (the gallery reflects its layout as a `gallery-layout-*` class).
19405
+ */
19406
+ watchGalleryLayoutClasses() {
19407
+ var _a;
19408
+ const galleryEl = this.galleryEl;
19409
+ if (galleryEl === undefined) {
19410
+ return;
19411
+ }
19412
+ (_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19413
+ this.galleryClassObserver = new MutationObserver(() => this.syncLayoutClasses());
19414
+ this.galleryClassObserver.observe(galleryEl, {
19415
+ attributes: true,
19416
+ attributeFilter: ['class'],
19417
+ });
19418
+ }
19419
+ syncLayoutClasses() {
19420
+ var _a;
19421
+ const layout = (_a = this.galleryEl) === null || _a === void 0 ? void 0 : _a.layout;
19422
+ this.galleryLayout = layout === 'masonry' || layout === 'uniform' ? layout : undefined;
19423
+ }
19424
+ render() {
19425
+ const { galleryLayout } = this;
19426
+ const theme = getIonTheme(this);
19427
+ return (hAsync(Host, { key: 'b3de6bf2df4af01ed274188a96d9e8cd82c9f5cd', class: {
19428
+ [theme]: true,
19429
+ 'in-gallery-layout-uniform': galleryLayout === 'uniform',
19430
+ 'in-gallery-layout-masonry': galleryLayout === 'masonry',
19431
+ } }, hAsync("slot", { key: '5bef4549c5101178fec9b590cb6b553ddc5376c4', onSlotchange: this.onSlotChange })));
19432
+ }
19433
+ get el() { return getElement(this); }
19434
+ static get style() { return galleryItemCss(); }
19435
+ static get cmpMeta() { return {
19436
+ "$flags$": 265,
19437
+ "$tagName$": "ion-gallery-item",
19438
+ "$members$": {
19439
+ "galleryLayout": [32]
19440
+ },
19441
+ "$listeners$": undefined,
19442
+ "$lazyBundleId$": "-",
19443
+ "$attrsToReflect$": []
19444
+ }; }
19445
+ }
19446
+
19497
19447
  const gridCss = () => `:host{-webkit-padding-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;display:block;-ms-flex:1;flex:1}@media (min-width: 576px){:host{-webkit-padding-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px))}}@media (min-width: 768px){:host{-webkit-padding-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px))}}@media (min-width: 992px){:host{-webkit-padding-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px))}}@media (min-width: 1200px){:host{-webkit-padding-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px))}}:host(.grid-fixed){width:var(--ion-grid-width-xs, var(--ion-grid-width, 100%));max-width:100%}@media (min-width: 576px){:host(.grid-fixed){width:var(--ion-grid-width-sm, var(--ion-grid-width, 540px))}}@media (min-width: 768px){:host(.grid-fixed){width:var(--ion-grid-width-md, var(--ion-grid-width, 720px))}}@media (min-width: 992px){:host(.grid-fixed){width:var(--ion-grid-width-lg, var(--ion-grid-width, 960px))}}@media (min-width: 1200px){:host(.grid-fixed){width:var(--ion-grid-width-xl, var(--ion-grid-width, 1140px))}}:host(.ion-no-padding){--ion-grid-column-padding:0;--ion-grid-column-padding-xs:0;--ion-grid-column-padding-sm:0;--ion-grid-column-padding-md:0;--ion-grid-column-padding-lg:0;--ion-grid-column-padding-xl:0}`;
19498
19448
 
19499
19449
  /**
@@ -19510,10 +19460,10 @@ class Grid {
19510
19460
  }
19511
19461
  render() {
19512
19462
  const theme = getIonTheme(this);
19513
- return (hAsync(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
19463
+ return (hAsync(Host, { key: 'e3320fc2fc5391d26898cc119505cd3be30dd48b', class: {
19514
19464
  [theme]: true,
19515
19465
  'grid-fixed': this.fixed,
19516
- } }, hAsync("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
19466
+ } }, hAsync("slot", { key: '2000e6b336c294aadf4585269c301d734d2fe478' })));
19517
19467
  }
19518
19468
  static get style() { return gridCss(); }
19519
19469
  static get cmpMeta() { return {
@@ -19704,14 +19654,6 @@ const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
19704
19654
  titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;
19705
19655
  });
19706
19656
  };
19707
- const createHeaderHideInteraction = (headerEl, scrollEl) => createCollapseHideInteraction({
19708
- regionEl: headerEl,
19709
- scrollEl,
19710
- slideCssVar: '--header-hide-slide-y',
19711
- contentPartnerClass: 'content-header-hide-scroll-partner',
19712
- contentHiddenClass: 'content-header-hide-scroll-hidden',
19713
- regionHiddenClass: 'header-collapse-hide-hidden',
19714
- });
19715
19657
  const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
19716
19658
  readTask(() => {
19717
19659
  const scrollTop = scrollEl.scrollTop;
@@ -19768,11 +19710,11 @@ const getRoleType = (isInsideMenu, isCondensed, theme) => {
19768
19710
  return ROLE_BANNER;
19769
19711
  };
19770
19712
 
19771
- const headerIonicCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}ion-header.header-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);opacity:1;z-index:10}ion-header.header-collapse-hide.header-collapse-hide-hidden{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));pointer-events:none;-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}ion-header{z-index:10}ion-header.header-divider{border-bottom:var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-style-solid, solid) var(--token-border-default, var(--token-primitives-neutral-400, #d5d5d5))}ion-toolbar+ion-toolbar{--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px));backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px))}.header-translucent-ionic ion-toolbar{--opacity:0.7}}`;
19713
+ const headerIonicCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}ion-header{z-index:10}ion-header.header-divider{border-bottom:var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-style-solid, solid) var(--token-border-default, var(--token-primitives-neutral-400, #d5d5d5))}ion-toolbar+ion-toolbar{--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px));backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px))}.header-translucent-ionic ion-toolbar{--opacity:0.7}}`;
19772
19714
 
19773
- const headerIosCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}ion-header.header-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);opacity:1;z-index:10}ion-header.header-collapse-hide.header-collapse-hide-hidden{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));pointer-events:none;-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}ion-header{z-index:10}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:0.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}`;
19715
+ const headerIosCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}ion-header{z-index:10}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:0.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}`;
19774
19716
 
19775
- const headerMdCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}ion-header.header-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);opacity:1;z-index:10}ion-header.header-collapse-hide.header-collapse-hide-hidden{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));pointer-events:none;-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}ion-header{z-index:10}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
19717
+ const headerMdCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}ion-header{z-index:10}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
19776
19718
 
19777
19719
  /**
19778
19720
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -19782,7 +19724,6 @@ class Header {
19782
19724
  constructor(hostRef) {
19783
19725
  registerInstance(this, hostRef);
19784
19726
  this.inheritedAttributes = {};
19785
- this.didLoad = false;
19786
19727
  /**
19787
19728
  * If `true`, the header will have a line at the bottom.
19788
19729
  * TODO(ROU-10855): add support for this prop on ios/md themes
@@ -19813,37 +19754,25 @@ class Header {
19813
19754
  this.inheritedAttributes = inheritAriaAttributes(this.el);
19814
19755
  }
19815
19756
  componentDidLoad() {
19816
- this.didLoad = true;
19817
19757
  this.checkCollapsibleHeader();
19818
19758
  }
19819
19759
  componentDidUpdate() {
19820
19760
  this.checkCollapsibleHeader();
19821
19761
  }
19822
- connectedCallback() {
19823
- // On re-attach (didLoad already true but disconnectedCallback ran since),
19824
- // componentDidLoad will not fire again — re-run setup here.
19825
- if (this.didLoad) {
19826
- this.checkCollapsibleHeader();
19827
- }
19828
- }
19829
19762
  disconnectedCallback() {
19830
19763
  this.destroyCollapsibleHeader();
19831
19764
  }
19832
19765
  async checkCollapsibleHeader() {
19833
19766
  const theme = getIonTheme(this);
19767
+ if (theme !== 'ios') {
19768
+ return;
19769
+ }
19834
19770
  const { collapse } = this;
19835
19771
  const hasCondense = collapse === 'condense';
19836
19772
  const hasFade = collapse === 'fade';
19837
- const hasHide = collapse === 'hide';
19838
- const runIosCollapse = theme === 'ios' && (hasCondense || hasFade);
19839
- const runHide = hasHide;
19840
- if (!runIosCollapse && !runHide) {
19841
- this.destroyCollapsibleHeader();
19842
- return;
19843
- }
19844
19773
  this.destroyCollapsibleHeader();
19845
19774
  const appRootSelector = config.get('appRootSelector', 'ion-app');
19846
- if (runIosCollapse && hasCondense) {
19775
+ if (hasCondense) {
19847
19776
  const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
19848
19777
  const contentEl = pageEl ? findIonContent(pageEl) : null;
19849
19778
  // Cloned elements are always needed in iOS transition
@@ -19854,7 +19783,7 @@ class Header {
19854
19783
  });
19855
19784
  await this.setupCondenseHeader(contentEl, pageEl);
19856
19785
  }
19857
- else if (runIosCollapse && hasFade) {
19786
+ else if (hasFade) {
19858
19787
  const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
19859
19788
  const contentEl = pageEl ? findIonContent(pageEl) : null;
19860
19789
  if (!contentEl) {
@@ -19864,29 +19793,12 @@ class Header {
19864
19793
  const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
19865
19794
  await this.setupFadeHeader(contentEl, condenseHeader);
19866
19795
  }
19867
- if (runHide) {
19868
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
19869
- const contentEl = pageEl ? findIonContent(pageEl) : null;
19870
- if (!contentEl) {
19871
- printIonContentErrorMsg(this.el);
19872
- return;
19873
- }
19874
- await this.setupHideHeader(contentEl);
19875
- }
19876
- }
19877
- async setupHideHeader(contentEl) {
19878
- const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
19879
- this.headerHideCleanup = createHeaderHideInteraction(this.el, scrollEl);
19880
19796
  }
19881
19797
  destroyCollapsibleHeader() {
19882
19798
  if (this.intersectionObserver) {
19883
19799
  this.intersectionObserver.disconnect();
19884
19800
  this.intersectionObserver = undefined;
19885
19801
  }
19886
- if (this.headerHideCleanup) {
19887
- this.headerHideCleanup();
19888
- this.headerHideCleanup = undefined;
19889
- }
19890
19802
  if (this.scrollEl && this.contentScrollCallback) {
19891
19803
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
19892
19804
  this.contentScrollCallback = undefined;
@@ -19953,7 +19865,7 @@ class Header {
19953
19865
  const isCondensed = collapse === 'condense';
19954
19866
  // banner role must be at top level, so remove role if inside a menu
19955
19867
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
19956
- return (hAsync(Host, Object.assign({ key: '5cae1ff0bbc5f2035325c128a9394caf7f1459a0', role: roleType, class: {
19868
+ return (hAsync(Host, Object.assign({ key: '3395dedfd5165ba6e9f3ad1a25f0bb5b3678704a', role: roleType, class: {
19957
19869
  [theme]: true,
19958
19870
  // Used internally for styling
19959
19871
  [`header-${theme}`]: true,
@@ -19961,7 +19873,7 @@ class Header {
19961
19873
  [`header-collapse-${collapse}`]: true,
19962
19874
  [`header-translucent-${theme}`]: this.translucent,
19963
19875
  ['header-divider']: divider,
19964
- } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: '705f120951a3dd429286b66cd0b511fa267b3702', class: "header-background" }), hAsync("slot", { key: '1c7a9d474083cf92abfe88c02d363f8d420716ca' })));
19876
+ } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: 'cafeb88b6e73d64b264514ea46590fd3477b3052', class: "header-background" }), hAsync("slot", { key: 'ad681aaf866d7e7a5e5e731c0b5d6f5cc9fe94d2' })));
19965
19877
  }
19966
19878
  get el() { return getElement(this); }
19967
19879
  static get style() { return {
@@ -20312,9 +20224,9 @@ class Img {
20312
20224
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
20313
20225
  const { draggable } = inheritedAttributes;
20314
20226
  const theme = getIonTheme(this);
20315
- return (hAsync(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
20227
+ return (hAsync(Host, { key: 'ba84621055567b2a35387709d9d89b97ad853274', class: {
20316
20228
  [theme]: true,
20317
- } }, hAsync("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20229
+ } }, hAsync("img", { key: '9d6118bbf69e2cccbb0603802c03b9a0d101e2c3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20318
20230
  }
20319
20231
  get el() { return getElement(this); }
20320
20232
  static get watchers() { return {
@@ -20619,7 +20531,7 @@ class InfiniteScroll {
20619
20531
  render() {
20620
20532
  const theme = getIonTheme(this);
20621
20533
  const disabled = this.disabled;
20622
- return (hAsync(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
20534
+ return (hAsync(Host, { key: 'e3a3cde079dfd6f07e565eb462765df757cbb128', class: {
20623
20535
  [theme]: true,
20624
20536
  'infinite-scroll-loading': this.isLoading,
20625
20537
  'infinite-scroll-enabled': !disabled,
@@ -20682,11 +20594,11 @@ class InfiniteScrollContent {
20682
20594
  }
20683
20595
  render() {
20684
20596
  const theme = getIonTheme(this);
20685
- return (hAsync(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
20597
+ return (hAsync(Host, { key: '263a27297159ced042f7552a1e14b8c6aba62fa8', class: {
20686
20598
  [theme]: true,
20687
20599
  // Used internally for styling
20688
20600
  [`infinite-scroll-content-${theme}`]: true,
20689
- } }, hAsync("div", { key: '047da7f15fe38deed592dd66d1c97e12da4545bb', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '1c05820f091052b8ee9e9ca20054495a676c21aa', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: 'ff801e3486f3c1a4605d2a2de9b47bd7bd536698', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20601
+ } }, hAsync("div", { key: 'ee38d3c52df9dc5de186406b3087f20917a17252', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: 'e2348727f79a26f52f42641d4334a0ba9d4aa03e', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: '41be6f2747f3af5f46c8738e2ef56083ecd95e99', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20690
20602
  }
20691
20603
  static get style() { return {
20692
20604
  ionic: ionicInfiniteScrollContentMdCss(),
@@ -21434,7 +21346,7 @@ class Input {
21434
21346
  * TODO(FW-5592): Remove hasStartEndSlots condition
21435
21347
  */
21436
21348
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
21437
- return (hAsync(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses$1(this.color, {
21349
+ return (hAsync(Host, { key: '3da29d837b5abe22de740ac96c8142422fce537a', class: createColorClasses$1(this.color, {
21438
21350
  [theme]: true,
21439
21351
  'has-value': hasValue,
21440
21352
  'has-focus': hasFocus,
@@ -21447,7 +21359,7 @@ class Input {
21447
21359
  'in-item-color': hostContext('ion-item.ion-color', this.el),
21448
21360
  'input-disabled': disabled,
21449
21361
  'input-readonly': readonly,
21450
- }) }, hAsync("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
21362
+ }) }, hAsync("label", { key: '142a8230382a05938887e9c0790832218ac37697', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '953f247ea2f40545e01e0346549d9b7aa344b720', class: "native-wrapper", onClick: this.onLabelClick },
21451
21363
  /**
21452
21364
  * For the ionic theme, we render the outline container here
21453
21365
  * instead of higher up, so it can be positioned relative to
@@ -21457,14 +21369,14 @@ class Input {
21457
21369
  * <label> element, ensuring that clicking the label text
21458
21370
  * focuses the input.
21459
21371
  */
21460
- theme === 'ionic' && hAsync("div", { key: '83aa5e7ad97b0c964e31966c1d2b8771d1ecfc53', class: "input-outline" }), hAsync("slot", { key: '1931003f2b0d19508acaaffab58fee644d1f6158', name: "start" }), hAsync("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 && (hAsync("button", { key: 'd350f26cf6927ee089373ea8903db2479a0a404c', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
21372
+ theme === 'ionic' && hAsync("div", { key: 'fd09b37c6a798900c5074e7cbe2e790ea050c29d', class: "input-outline" }), hAsync("slot", { key: '3eef4c4748104d8722f3254a04ff88e2b70c560e', name: "start" }), hAsync("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 && (hAsync("button", { key: 'b115494d9611aea57a976d3102026f3d9b430bfb', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
21461
21373
  /**
21462
21374
  * This prevents mobile browsers from
21463
21375
  * blurring the input when the clear
21464
21376
  * button is activated.
21465
21377
  */
21466
21378
  ev.preventDefault();
21467
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '972a2d94dcf599e63aac1d73e34873a9c3d0bf94', "aria-hidden": "true", icon: inputClearIcon }))), hAsync("slot", { key: 'fac4dcaabb02f647e46276e92e3f341557170aec', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'a10e519d8d1f0dcd81ffc43b8e4086797476f753', class: "input-highlight" })), this.renderBottomContent()));
21379
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'a259afa47a9914b2e0656364bed40644fa2c87c4', "aria-hidden": "true", icon: inputClearIcon }))), hAsync("slot", { key: 'beec86eb500f6b335149c8734afc7c3945a10219', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '77a25d118934f369e09edbc2ffa6f90e3e760338', class: "input-highlight" })), this.renderBottomContent()));
21468
21380
  }
21469
21381
  get el() { return getElement(this); }
21470
21382
  static get watchers() { return {
@@ -22229,7 +22141,7 @@ class InputOTP {
22229
22141
  const tabbableIndex = this.getTabbableIndex();
22230
22142
  const pattern = this.getPattern();
22231
22143
  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()) !== '';
22232
- return (hAsync(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses$1(color, {
22144
+ return (hAsync(Host, { key: 'f39e98cd24cbf50f7db4e891dda9499f6def7986', class: createColorClasses$1(color, {
22233
22145
  [mode]: true,
22234
22146
  'has-focus': hasFocus,
22235
22147
  [`input-otp-size-${size}`]: true,
@@ -22237,10 +22149,10 @@ class InputOTP {
22237
22149
  [`input-otp-fill-${fill}`]: true,
22238
22150
  'input-otp-disabled': disabled,
22239
22151
  'input-otp-readonly': readonly,
22240
- }) }, hAsync("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) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper", part: "container" }, hAsync("input", { class: "native-input", part: "native", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator", part: "separator" }))))), hAsync("div", { key: '7ee9d8dfd2e52875f1bfe3e3dea0494c18c12f4a', class: {
22152
+ }) }, hAsync("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) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper", part: "container" }, hAsync("input", { class: "native-input", part: "native", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator", part: "separator" }))))), hAsync("div", { key: 'c518d83ab0236a3ebbe631582ce6f1c2edfbcd29', class: {
22241
22153
  'input-otp-description': true,
22242
22154
  'input-otp-description-hidden': !hasDescription,
22243
- }, part: "description" }, hAsync("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
22155
+ }, part: "description" }, hAsync("slot", { key: '15c7c8549c1788748e1ae31bd227a7f918cb5eca' }))));
22244
22156
  }
22245
22157
  static get formAssociated() { return true; }
22246
22158
  get el() { return getElement(this); }
@@ -22388,16 +22300,16 @@ class InputPasswordToggle {
22388
22300
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
22389
22301
  const mode = getIonMode$1(this);
22390
22302
  const isPasswordVisible = type === 'text';
22391
- return (hAsync(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses$1(color, {
22303
+ return (hAsync(Host, { key: 'f11e3bf4d3255e003aec504e6dd3ee1e0caaf767', class: createColorClasses$1(color, {
22392
22304
  [mode]: true,
22393
- }) }, hAsync("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) => {
22305
+ }) }, hAsync("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) => {
22394
22306
  /**
22395
22307
  * This prevents mobile browsers from
22396
22308
  * blurring the input when the password toggle
22397
22309
  * button is activated.
22398
22310
  */
22399
22311
  ev.preventDefault();
22400
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22312
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'c0eb0e4e2f3e9553bfd519ff655064c9f62af406', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22401
22313
  }
22402
22314
  get el() { return getElement(this); }
22403
22315
  static get watchers() { return {
@@ -22772,11 +22684,11 @@ class ItemDivider {
22772
22684
  }
22773
22685
  render() {
22774
22686
  const theme = getIonTheme(this);
22775
- return (hAsync(Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: createColorClasses$1(this.color, {
22687
+ return (hAsync(Host, { key: 'dc73f348b5376faa40ba4bc6bba3d5c9e5ec5ab2', class: createColorClasses$1(this.color, {
22776
22688
  [theme]: true,
22777
22689
  'item-divider-sticky': this.sticky,
22778
22690
  item: true,
22779
- }) }, hAsync("slot", { key: '4e16384a4481326490dab1ad31218c19eb9108db', name: "start" }), hAsync("div", { key: '0bddbea071781e3372b5c7147c2fdd3ba0e29ffe', class: "item-divider-inner", part: "inner" }, hAsync("div", { key: 'dfa603352f7cc58aaa717a32507b1dbbd7b79757', class: "item-divider-wrapper", part: "container" }, hAsync("slot", { key: '4b1b67cfe72266645943f88ede9f8c61a344967d' })), hAsync("slot", { key: '6ddd72a410c449e281f5344d02324e7461ba29e8', name: "end" }))));
22691
+ }) }, hAsync("slot", { key: '0f535b2cf91f2ec042aa59a89498cfa0e4d541a0', name: "start" }), hAsync("div", { key: '867c8c1a1bd273a5f5018f77785f11d58152e8b9', class: "item-divider-inner", part: "inner" }, hAsync("div", { key: 'c32b2a5658d27cf5d8cd8ffbfa476c02755e1afd', class: "item-divider-wrapper", part: "container" }, hAsync("slot", { key: 'f8b0fea29a910cd2e36301586532be3a8348c31e' })), hAsync("slot", { key: '418750f630c851cf04b6a278c1666c6cf33c113c', name: "end" }))));
22780
22692
  }
22781
22693
  get el() { return getElement(this); }
22782
22694
  static get style() { return {
@@ -22813,7 +22725,7 @@ class ItemGroup {
22813
22725
  }
22814
22726
  render() {
22815
22727
  const theme = getIonTheme(this);
22816
- return (hAsync(Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
22728
+ return (hAsync(Host, { key: '017c8f7cd0258e1864423337ddd1b1cb522f64ed', role: "group", class: {
22817
22729
  [theme]: true,
22818
22730
  // Used internally for styling
22819
22731
  [`item-group-${theme}`]: true,
@@ -22909,14 +22821,14 @@ class ItemOption {
22909
22821
  href: this.href,
22910
22822
  target: this.target,
22911
22823
  };
22912
- return (hAsync(Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: createColorClasses$1(this.color, {
22824
+ return (hAsync(Host, { key: '8f1bad23fd3ccbb9d54d57765e6731cd2ee07306', onClick: this.onClick, class: createColorClasses$1(this.color, {
22913
22825
  [theme]: true,
22914
22826
  [`item-option-${shape}`]: shape !== undefined,
22915
22827
  [`item-option-${hue}`]: hue !== undefined,
22916
22828
  'item-option-disabled': disabled,
22917
22829
  'item-option-expandable': expandable,
22918
22830
  'ion-activatable': true,
22919
- }) }, hAsync(TagType, Object.assign({ key: '38466b511f4a20a3728f37dbf6779b852eba531a' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'bb8f1b332afa2f575bcc69b340bd8f1faa5ca925', class: "button-inner", part: "inner" }, hAsync("slot", { key: '41d627511e1615283956712e1b9519bae92460f6', name: "top" }), hAsync("div", { key: 'bb949a43a586a8996933ee7528e5491beb647aa5', class: "horizontal-wrapper", part: "container" }, hAsync("slot", { key: 'c0d6a73ef49082bfbdf0f542f7465d044ccb6521', name: "start" }), hAsync("slot", { key: '79c6103e680983b2c1a17f1f11dbc41224cd4016', name: "icon-only" }), hAsync("slot", { key: '6c7f17723544d3f6e8b9689b84ddf6196f1897a5' }), hAsync("slot", { key: 'e15d0e02fde71bad8ff7bab0eded7d49508a926e', name: "end" })), hAsync("slot", { key: 'c509d54d44ce33f5a34597b9d0ec29960bbcff62', name: "bottom" })), theme === 'md' && hAsync("ion-ripple-effect", { key: '412d4dc645c941d0b4356cf982be3d5bc2686f13' }))));
22831
+ }) }, hAsync(TagType, Object.assign({ key: '2baf904e356a87ed463ee5f517e0e95f90b2ef30' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '49b627f72dffd1b150ccd808b1b1f63bbe78e2de', class: "button-inner", part: "inner" }, hAsync("slot", { key: 'cdb52f76f1d7e5df411215f17eb76ad25e36241a', name: "top" }), hAsync("div", { key: '864204667c6e3ba6f989b24e96c131b67e55d408', class: "horizontal-wrapper", part: "container" }, hAsync("slot", { key: '474f4aab708842bb7ef74cb6f1fbe601ceff82cf', name: "start" }), hAsync("slot", { key: '2bd726c5ba3ee079a623f1f6229d1ac2afd3e291', name: "icon-only" }), hAsync("slot", { key: '2d1a673c447ebf82c92f944ec9e83a5b38698307' }), hAsync("slot", { key: '8d0f9337cd84c725190cffd25d74044075e85ab0', name: "end" })), hAsync("slot", { key: 'a674039b26d9cbb886e88ea721bbc210484aba9f', name: "bottom" })), theme === 'md' && hAsync("ion-ripple-effect", { key: '3e45bf18b7992943c47ece47e9358f4da0b8e865' }))));
22920
22832
  }
22921
22833
  get el() { return getElement(this); }
22922
22834
  static get style() { return {
@@ -22974,7 +22886,7 @@ class ItemOptions {
22974
22886
  render() {
22975
22887
  const theme = getIonTheme(this);
22976
22888
  const isEnd = isEndSide(this.side);
22977
- return (hAsync(Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
22889
+ return (hAsync(Host, { key: 'ed05ceebf2cda943ac9efea2f91b71f7e8fc55e8', class: {
22978
22890
  [theme]: true,
22979
22891
  // Used internally for styling
22980
22892
  [`item-options-${theme}`]: true,
@@ -23826,7 +23738,7 @@ class ItemSliding {
23826
23738
  }
23827
23739
  render() {
23828
23740
  const theme = getIonTheme(this);
23829
- return (hAsync(Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
23741
+ return (hAsync(Host, { key: '47de8c8a9721f9223b42d6722a9ad32f378818aa', class: {
23830
23742
  [theme]: true,
23831
23743
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
23832
23744
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -23945,13 +23857,13 @@ class Label {
23945
23857
  render() {
23946
23858
  const position = this.position;
23947
23859
  const theme = getIonTheme(this);
23948
- return (hAsync(Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: createColorClasses$1(this.color, {
23860
+ return (hAsync(Host, { key: 'b1f261db441bcb0a325a5b3e21da17764a56f17c', class: createColorClasses$1(this.color, {
23949
23861
  [theme]: true,
23950
23862
  'in-item-color': hostContext('ion-item.ion-color', this.el),
23951
23863
  [`label-${position}`]: position !== undefined,
23952
23864
  [`label-no-animate`]: this.noAnimate,
23953
23865
  'label-rtl': document.dir === 'rtl',
23954
- }) }, hAsync("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
23866
+ }) }, hAsync("slot", { key: '490444c8c0d4cf72eae3f8abfb7ed7ecc30bb213' })));
23955
23867
  }
23956
23868
  get el() { return getElement(this); }
23957
23869
  static get watchers() { return {
@@ -24031,7 +23943,7 @@ class List {
24031
23943
  const theme = getIonTheme(this);
24032
23944
  const shape = this.getShape();
24033
23945
  const { lines, inset } = this;
24034
- return (hAsync(Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
23946
+ return (hAsync(Host, { key: '9be30ff6e75e020c0db7054800cb874efef26bd8', role: "list", class: {
24035
23947
  [theme]: true,
24036
23948
  // Used internally for styling
24037
23949
  [`list-${theme}`]: true,
@@ -24081,10 +23993,10 @@ class ListHeader {
24081
23993
  render() {
24082
23994
  const { lines } = this;
24083
23995
  const theme = getIonTheme(this);
24084
- return (hAsync(Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: createColorClasses$1(this.color, {
23996
+ return (hAsync(Host, { key: '7a1632a069317285210f4aeae50a6f2ef6955c56', class: createColorClasses$1(this.color, {
24085
23997
  [theme]: true,
24086
23998
  [`list-header-lines-${lines}`]: lines !== undefined,
24087
- }) }, hAsync("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
23999
+ }) }, hAsync("div", { key: 'a9a9463f209023da222f38a78126d5aaeb2f03b9', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'e3c6ec1b588392d347844d59d338abc339e80634' }))));
24088
24000
  }
24089
24001
  static get style() { return {
24090
24002
  ionic: listHeaderIonicCss(),
@@ -24373,9 +24285,9 @@ class Loading {
24373
24285
  * Otherwise, don't set aria-labelledby.
24374
24286
  */
24375
24287
  const ariaLabelledBy = message !== undefined ? msgId : null;
24376
- return (hAsync(Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24288
+ return (hAsync(Host, Object.assign({ key: '2ffae36b20a7d7f3a752a062d90062583e31d053', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24377
24289
  zIndex: `${40000 + this.overlayIndex}`,
24378
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '19884fd6f8bf6f704bff388ecfa245d1cd98156c', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'ecd47d503a9805a5c18f1b0d48989e54b4cb8f78', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '231821576b812ffaa90ed9ced4437e456908ad53', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'e18d21751a73f408bd058aa4270f245285cd57fa', class: "loading-spinner" }, hAsync("ion-spinner", { key: '478761b8a000191951e9902138483b389e1b76c4', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '968be6c72872ce5bc8706fa37f242dcdc38efb33', tabindex: "0", "aria-hidden": "true" })));
24290
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'a6d8cac2c34a0905ec67a2c64be7ec12cc84f168', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'cd011d86f20869096a8546f098fb5edad44033a1', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '70298be2139d6004e0f8fc5a85c5d05f1efdc347', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '32aef90695d91e0a82696abbce96ba29cb1a2608', class: "loading-spinner" }, hAsync("ion-spinner", { key: '7ae69c27be273cf3e83230dae043168df27ac27e', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'f13a01b31516c3fe85dd3a623962290c03e7412f', tabindex: "0", "aria-hidden": "true" })));
24379
24291
  }
24380
24292
  get el() { return getElement(this); }
24381
24293
  static get watchers() { return {
@@ -25436,14 +25348,14 @@ class Menu {
25436
25348
  * the ionBackButton listener in the menu controller
25437
25349
  * will handle closing the menu when Escape is pressed.
25438
25350
  */
25439
- return (hAsync(Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25351
+ return (hAsync(Host, { key: '76e15d710fbbbd2e64795224decc3673fd160db0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25440
25352
  [theme]: true,
25441
25353
  [`menu-type-${type}`]: true,
25442
25354
  'menu-enabled': !disabled,
25443
25355
  [`menu-side-${side}`]: true,
25444
25356
  'menu-pane-visible': isPaneVisible,
25445
25357
  'split-pane-side': hostContext('ion-split-pane', el),
25446
- } }, hAsync("div", { key: '3ffcedd178c412771657599f3d5de2cd2a717c00', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '2d8dfdb569c4b433cbacbe2aee8a12954e157a51' })), hAsync("ion-backdrop", { key: 'e1fcbdcf6bd3aa0fa10dcf05a2b012bef196a243', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
25358
+ } }, hAsync("div", { key: 'cc0a0773caff97aefa98015bf3e36631173d2b4f', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '0b90d1248bdf3bedafda7913189635c8d010abb6' })), hAsync("ion-backdrop", { key: '4fb7013bc61161e6e336541ed25605219410f749', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
25447
25359
  }
25448
25360
  get el() { return getElement(this); }
25449
25361
  static get watchers() { return {
@@ -25577,7 +25489,7 @@ class MenuButton {
25577
25489
  type: this.type,
25578
25490
  };
25579
25491
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
25580
- return (hAsync(Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25492
+ return (hAsync(Host, { key: '341ca3bfac81ce4432eef5d2fd738becd1dfb07e', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25581
25493
  [theme]: true,
25582
25494
  button: true, // ion-buttons target .button
25583
25495
  'menu-button-hidden': hidden,
@@ -25586,7 +25498,7 @@ class MenuButton {
25586
25498
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
25587
25499
  'ion-activatable': true,
25588
25500
  'ion-focusable': true,
25589
- }) }, hAsync("button", Object.assign({ key: '88bef93aa6c1a0d5795c4a9ba3edffd99413a758' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '12b2f8bc542239a35adee62d76acccff571a84d7', class: "button-inner" }, hAsync("slot", { key: '5bba549d8e92745aa34372c105cfe80e0ecbc9f5' }, hAsync("ion-icon", { key: '864ff8bf1722b7fe1f17f2a40dfc5b91cb3403f9', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme === 'md' && hAsync("ion-ripple-effect", { key: '59e24ecb22970e43b51739324b11457c6e4bc117', type: "unbounded" }))));
25501
+ }) }, hAsync("button", Object.assign({ key: '6e6229df2fc1f2d18294a5fbf7fe71e7dd47666a' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '0216acbf67d7aa5edc52328f7ded4cb98bc8a237', class: "button-inner" }, hAsync("slot", { key: '5c2cdae42add9a25d3e6323048fcbc6b5fc9b32e' }, hAsync("ion-icon", { key: '5b38c283957cd2f1ad659427dec612fc84fc054f', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme === 'md' && hAsync("ion-ripple-effect", { key: 'adabe4ffa1d66fe36d55294d774db9c4bba1ad76', type: "unbounded" }))));
25590
25502
  }
25591
25503
  get el() { return getElement(this); }
25592
25504
  static get style() { return {
@@ -25643,10 +25555,10 @@ class MenuToggle {
25643
25555
  render() {
25644
25556
  const theme = getIonTheme(this);
25645
25557
  const hidden = this.autoHide && !this.visible;
25646
- return (hAsync(Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25558
+ return (hAsync(Host, { key: '9ef631d9ae370a8740e691d281863203bfdddc38', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25647
25559
  [theme]: true,
25648
25560
  'menu-toggle-hidden': hidden,
25649
- } }, hAsync("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
25561
+ } }, hAsync("slot", { key: 'f8d9dfc562ed625ae47ec771ef6b2ea04bc463f4' })));
25650
25562
  }
25651
25563
  static get style() { return menuToggleCss(); }
25652
25564
  static get cmpMeta() { return {
@@ -29149,20 +29061,20 @@ class Modal {
29149
29061
  const isHandleCycle = handleBehavior === 'cycle';
29150
29062
  const shape = this.getShape();
29151
29063
  const isSheetModalWithHandle = isSheetModal && showHandle;
29152
- return (hAsync(Host, Object.assign({ key: '2b38d465b74b03d87fb66d8ac87e1724ab10d0ee', "no-router": true,
29064
+ return (hAsync(Host, Object.assign({ key: '6bd3c3a93a771d6b0c22626ea50f5a1c6d16f175', "no-router": true,
29153
29065
  // Allow the modal to be navigable when the handle is focusable
29154
29066
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
29155
29067
  zIndex: `${20000 + this.overlayIndex}`,
29156
- }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: 'de541846da3c39f46db77484fb0d8a2ba95652c6', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && hAsync("div", { key: '5fc3e168a74fea2e7e11cc2ce360efbe3f6bbff3', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '7fb63d69b2e0171a20f32545e52ace7a8866e810',
29068
+ }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '4a95da95bb355d68fa290275a3199e5bf0968941', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && hAsync("div", { key: 'e015746ae59a89fb228e1d5b046f291dc66c117e', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '1b2be6c696e729f750b07958be3f42e1cfd5ad8a',
29157
29069
  /*
29158
29070
  role and aria-modal must be used on the
29159
29071
  same element. They must also be set inside the
29160
29072
  shadow DOM otherwise ion-button will not be highlighted
29161
29073
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
29162
29074
  */
29163
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '2e8d755adbe4634ceec666af7dcb5e266d101691', class: "modal-handle",
29075
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '6b67921744aa4eb8776247cde85b083d0d02604a', class: "modal-handle",
29164
29076
  // Prevents the handle from receiving keyboard focus when it does not cycle
29165
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '431747de1627ad5f626e1963d57a229601cd9c1d', onSlotchange: this.onSlotChange }))));
29077
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '3e9d7f8e778bdf4cfd294f1e68af9d0dd2a9ee76', onSlotchange: this.onSlotChange }))));
29166
29078
  }
29167
29079
  get el() { return getElement(this); }
29168
29080
  static get watchers() { return {
@@ -30122,7 +30034,7 @@ class Nav {
30122
30034
  }
30123
30035
  }
30124
30036
  render() {
30125
- return hAsync("slot", { key: '87188d8fb4232d448ef2ad8e3db29c3730b1ff9e' });
30037
+ return hAsync("slot", { key: '3dfe9c2a5f3ea75cb6d82b76b240733105cddfad' });
30126
30038
  }
30127
30039
  get el() { return getElement(this); }
30128
30040
  static get watchers() { return {
@@ -30203,7 +30115,7 @@ class NavLink {
30203
30115
  };
30204
30116
  }
30205
30117
  render() {
30206
- return hAsync(Host, { key: '38f3d2e7a3ae4e57ac1479436c143e6820d25cd2', onClick: this.onClick });
30118
+ return hAsync(Host, { key: '476bfb5bb6fba4f422ec40315fc3ef466d01f757', onClick: this.onClick });
30207
30119
  }
30208
30120
  get el() { return getElement(this); }
30209
30121
  static get cmpMeta() { return {
@@ -30237,9 +30149,9 @@ class Note {
30237
30149
  }
30238
30150
  render() {
30239
30151
  const theme = getIonTheme(this);
30240
- return (hAsync(Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: createColorClasses$1(this.color, {
30152
+ return (hAsync(Host, { key: '376ae1c66c19d1bdd74a2371c0639ed9e49648b5', class: createColorClasses$1(this.color, {
30241
30153
  [theme]: true,
30242
- }) }, hAsync("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
30154
+ }) }, hAsync("slot", { key: 'f8168cd88bb21c5e5a2b03c29539729fb38a19fd' })));
30243
30155
  }
30244
30156
  static get style() { return {
30245
30157
  ionic: ionicNoteMdCss(),
@@ -31005,11 +30917,11 @@ class Picker {
31005
30917
  render() {
31006
30918
  const { htmlAttributes } = this;
31007
30919
  const theme = getIonTheme(this);
31008
- return (hAsync(Host, Object.assign({ key: 'b0c1fc8eee284f03c696f0c8aaa29f4a6d7be0be', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30920
+ return (hAsync(Host, Object.assign({ key: '681ad6d20efa16f1d6c6f9a7d03caec2b17ff36e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
31009
30921
  zIndex: `${20000 + this.overlayIndex}`,
31010
30922
  }, class: Object.assign({ [theme]: true,
31011
30923
  // Used internally for styling
31012
- [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'b56a9f94c7a95efc047d7be95e76ba3a2284801d', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'f134d49a3afcfd2a809147b55949cea43fc34462', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '9ae98dc10164e182a13eaef2105894a717a03cc4', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '96acad60c1214e13098282182fa855b19f0a386c', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: 'af26cd644ed9bb50c22f06624da3726e7e60426f', class: "picker-columns" }, hAsync("div", { key: 'c0d8bf724f7dc081c314bef61fa08894a75c657b', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '7315333742b5b0c9533f30e5ce3dfc6ec9112dc1', class: "picker-below-highlight" }))), hAsync("div", { key: '454546aaf27319ae7973e74063c0a026cfc88834', tabindex: "0", "aria-hidden": "true" })));
30924
+ [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '6dc71805810955048479c2a6eddce2303161cb8f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '0e61724c261c9d69ba23d3cb9064018942755033', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'a6ca79c9a5fce42b5aad6808802535c723f27fb9', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '7651cbe9d723bba032788d85711e0f7c1dc32c21', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: 'd6b83aded670bc74515c337c038503e396ab42cc', class: "picker-columns" }, hAsync("div", { key: '1dfef6ed386d7b327dc19397cc9f01c3938fbab9', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'ec8b2f4de073a245f8917a494a681adf5d1f94f6', class: "picker-below-highlight" }))), hAsync("div", { key: '8557ce93083feefa5deb6097270d756424f89ab2', tabindex: "0", "aria-hidden": "true" })));
31013
30925
  }
31014
30926
  get el() { return getElement(this); }
31015
30927
  static get watchers() { return {
@@ -31987,9 +31899,9 @@ class PickerColumnCmp {
31987
31899
  render() {
31988
31900
  const col = this.col;
31989
31901
  const theme = getIonTheme(this);
31990
- return (hAsync(Host, { key: '5751788e3b7ecd2fe269c096db883b0681646270', class: Object.assign({ [theme]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
31902
+ return (hAsync(Host, { key: 'aed1c1a702e03765d704f6f563fe26df58e68bbf', class: Object.assign({ [theme]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
31991
31903
  'max-width': this.col.columnWidth,
31992
- } }, col.prefix && (hAsync("div", { key: '833f3309c8c77e1faa773f7eaa066516dfd51067', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: 'a39f38e60938e70425e4d7674f5e481885b6b548', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: 'a2f1e0eab834c85e84cee0a716eb1083aa6c7741', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
31904
+ } }, col.prefix && (hAsync("div", { key: 'a6fae778eec5d57dba4b36b3e448c5c12fe0688b', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '1b77354fe5eeeeb4db94fab035a9ef5e45d695ac', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '105286ef7ba6eac0796f5af7d6f1daef7107444a', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
31993
31905
  }
31994
31906
  get el() { return getElement(this); }
31995
31907
  static get watchers() { return {
@@ -32114,10 +32026,10 @@ class PickerColumnOption {
32114
32026
  render() {
32115
32027
  const { color, disabled, ariaLabel } = this;
32116
32028
  const theme = getIonTheme(this);
32117
- return (hAsync(Host, { key: '54c254f01017aa47aac76c0833f9ef04bf20bdc9', class: createColorClasses$1(color, {
32029
+ return (hAsync(Host, { key: 'fe9553e3157d35f5c28a3f2457715bd598ec1e00', class: createColorClasses$1(color, {
32118
32030
  [theme]: true,
32119
32031
  ['option-disabled']: disabled,
32120
- }) }, hAsync("div", { key: '36b21f1b7d9a5b05f0211ce8be90f66578641224', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '154bf9ca37ca1c6e5d34d42c16b04203e83210be' }))));
32032
+ }) }, hAsync("div", { key: '9bc334f020012537144972b5a8a1aed7c35ccec5', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'bd076e43c98ad920486230684c7f63e7e0b187f8' }))));
32121
32033
  }
32122
32034
  get el() { return getElement(this); }
32123
32035
  static get watchers() { return {
@@ -33686,9 +33598,9 @@ class Popover {
33686
33598
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
33687
33599
  const desktop = isPlatform('desktop');
33688
33600
  const enableArrow = arrow && !parentPopover;
33689
- return (hAsync(Host, Object.assign({ key: '43128f8b7e57f08a451af1a237534d0517d86eda', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33601
+ return (hAsync(Host, Object.assign({ key: '3319e6ea7524a30478985c014634403aceedab6f', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33690
33602
  zIndex: `${20000 + this.overlayIndex}`,
33691
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'c087932225f8fc872af7451fd847ab2667ae6ffb', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '25fb1c8320099d1170f3a61766760c694d84bf0b', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '552f4b70758470fac0d2e2bd114eaf5d9b81a3ac', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: 'f19c1d60b0f4ff86bf308c5837637cd4bbd6814e', class: "popover-content", part: "content" }, hAsync("slot", { key: '00870a41134268d84e239d305bf2daed7b049c34' })))));
33603
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '45265b1f8e5e6e822b3c8d4992039975c472b10b', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '8707fb5c5b9523fd786c4e4d02d41dfb386be187', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '17bd682e56939ba10ab4b2ab3c9e916087a7e19a', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '02f1bd119d2ffecd2f2541969111fc6e156db9d3', class: "popover-content", part: "content" }, hAsync("slot", { key: 'dec29181eee87f28f731d6a0ba1ef3c81867d527' })))));
33692
33604
  }
33693
33605
  get el() { return getElement(this); }
33694
33606
  static get watchers() { return {
@@ -33816,7 +33728,7 @@ class ProgressBar {
33816
33728
  const shape = this.getShape();
33817
33729
  // If the progress is displayed as a solid bar.
33818
33730
  const progressSolid = buffer === 1;
33819
- return (hAsync(Host, { key: '0f6202e25d884fb85d18578769f6cfa5c704e9d9', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33731
+ return (hAsync(Host, { key: '1cf02806b28a0d7b070e6f3616ea8f4c8ae4990a', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33820
33732
  [theme]: true,
33821
33733
  [`progress-bar-${type}`]: true,
33822
33734
  'progress-paused': paused,
@@ -34009,7 +33921,7 @@ class Radio {
34009
33921
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
34010
33922
  const theme = getIonTheme(this);
34011
33923
  const inItem = hostContext('ion-item', el);
34012
- return (hAsync(Host, { key: '82127b11eac97fa45886179d248c8509ca07655a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33924
+ return (hAsync(Host, { key: 'e9591254a3823435617732dcf415ea4bb5fa4d62', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
34013
33925
  [theme]: true,
34014
33926
  'in-item': inItem,
34015
33927
  'radio-checked': checked,
@@ -34020,10 +33932,10 @@ class Radio {
34020
33932
  // Focus and active styling should not apply when the radio is in an item
34021
33933
  'ion-activatable': !inItem,
34022
33934
  'ion-focusable': !inItem,
34023
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '352c25ebdeeba01b85dc02b2108de988e9eb14a6', class: "radio-wrapper" }, hAsync("div", { key: '8eca395a22199d24b376c57dd52eeaa91ba51c34', class: {
33935
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '798691948e77bdba972f45eb668bb6d38c1920b3', class: "radio-wrapper" }, hAsync("div", { key: '054d373156983bb22b3216b2a0f8d5a6ecd0aa08', class: {
34024
33936
  'label-text-wrapper': true,
34025
33937
  'label-text-wrapper-hidden': !hasLabel,
34026
- }, part: "label" }, hAsync("slot", { key: '9c26b977843398be61f1b753251d8fe40d65702a' })), hAsync("div", { key: '336b2d6aeb5e86dc1d994ac1eac52634f5da5b9c', class: "native-wrapper" }, this.renderRadioControl()))));
33938
+ }, part: "label" }, hAsync("slot", { key: 'a77d60be10ece9c80bab6e5c2a24533eede95362' })), hAsync("div", { key: 'e687dc6686b0748a1a3337cd87a01c01315c0f22', class: "native-wrapper" }, this.renderRadioControl()))));
34027
33939
  }
34028
33940
  get el() { return getElement(this); }
34029
33941
  static get watchers() { return {
@@ -34293,10 +34205,10 @@ class RadioGroup {
34293
34205
  const { label, labelId, el, name, value } = this;
34294
34206
  const theme = getIonTheme(this);
34295
34207
  renderHiddenInput(true, el, name, value, false);
34296
- return (hAsync(Host, { key: 'c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e', class: {
34208
+ return (hAsync(Host, { key: '8a57b258087569c2fb13ddaa6e83e06822c05a4d', class: {
34297
34209
  [theme]: true,
34298
34210
  'in-list': hostContext('ion-list', el),
34299
- }, role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick }, this.renderHintText(), hAsync("slot", { key: 'ddeca1867cb8e74121add7616f6be9e1a202c142' })));
34211
+ }, role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick }, this.renderHintText(), hAsync("slot", { key: '83d8e8febe7f368dfb6caa40eeafda8bf7d5ecef' })));
34300
34212
  }
34301
34213
  get el() { return getElement(this); }
34302
34214
  static get watchers() { return {
@@ -35146,7 +35058,7 @@ class Range {
35146
35058
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
35147
35059
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
35148
35060
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
35149
- return (hAsync(Host, { key: '6c11f7ad176a00ca5368be9ba46c29f6a9aa02bb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
35061
+ return (hAsync(Host, { key: '0f39669a81cfb08a3aca6998b95bda68f5076306', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
35150
35062
  [theme]: true,
35151
35063
  'in-item': inItem,
35152
35064
  'range-disabled': disabled,
@@ -35160,10 +35072,10 @@ class Range {
35160
35072
  'range-item-end-adjustment': needsEndAdjustment,
35161
35073
  'range-value-min': valueAtMin,
35162
35074
  'range-value-max': valueAtMax,
35163
- }) }, hAsync("label", { key: '4ac202cf5fd17a9f69e288508e89cfe266a2c8f2', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '1261d51ce247e066e5005f4aaa7b474ae0ddd421', class: {
35075
+ }) }, hAsync("label", { key: 'c1615da8ac01fccb650a8d1eb6b6b69562634e2f', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'ba530e76d0253f457b04bbd8403d9a02ac859cfe', class: {
35164
35076
  'label-text-wrapper': true,
35165
35077
  'label-text-wrapper-hidden': !hasLabel,
35166
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '4c09b153ab02c2c80b6197c2beb73c8cd1dc9348', class: "native-wrapper" }, hAsync("slot", { key: 'a81e2e9a5442603f128fec3d1f15090615164abf', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'ccc0a89eb6ce714e5b67893fb6845670a7857914', name: "end" })))));
35078
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '253bfb6e4add9852054f08194f07d32430832f1f', class: "native-wrapper" }, hAsync("slot", { key: '160ee66c73ab6e982c6efddb0107fbbcd42de962', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '486102e34a85d900aa6a6d909b27a98da947bbe2', name: "end" })))));
35167
35079
  }
35168
35080
  get el() { return getElement(this); }
35169
35081
  static get watchers() { return {
@@ -36238,7 +36150,7 @@ class Refresher {
36238
36150
  }
36239
36151
  render() {
36240
36152
  const theme = getIonTheme(this);
36241
- return (hAsync(Host, { key: 'd2671f7850b565e7a6fc5b3ff15b2410bcf7cb32', slot: "fixed", class: {
36153
+ return (hAsync(Host, { key: '5761384ab0eb88600ad036b6fdbebf8e5150e6b8', slot: "fixed", class: {
36242
36154
  [theme]: true,
36243
36155
  // Used internally for styling
36244
36156
  [`refresher-${theme}`]: true,
@@ -36477,9 +36389,9 @@ class RefresherContent {
36477
36389
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
36478
36390
  const theme = getIonTheme(this);
36479
36391
  const arrowIcon = theme === 'ionic' ? caretLeftFillSvg : caretBackSharp;
36480
- return (hAsync(Host, { key: '684bf1189acba94c502e2bb421f0b65313c3e9f9', class: {
36392
+ return (hAsync(Host, { key: '3d2d138e485b3b2beae47b9ea4e140f0b9647434', class: {
36481
36393
  [theme]: true,
36482
- } }, hAsync("div", { key: '29bfcc52d581913654f7639b0f669d149bf91026', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'c5ddc5a3c22ec365906e8716cdbdb8cf793bb978', class: "refresher-pulling-icon" }, hAsync("div", { key: '4314fff1f89758c81de7d908be2eaae81e8d9fb8', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'cea2bc74fd42c35ec6d6349f033830e745c9e99b', name: this.pullingIcon, paused: true }), (theme === 'md' || theme === 'ionic') && this.pullingIcon === 'circular' && (hAsync("div", { key: 'bfd43614c33fa6e83f67ac95022db5343af160d6', class: "arrow-container" }, hAsync("ion-icon", { key: '64f48d15dc2c17cbeb177f28272477ee8535136b', icon: arrowIcon, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '6f540e79e981a923050f57167aff8da92bfe8990', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '97b0755e0f240ec199b408a9cfef9fc48b481a68', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '1cd2a284b786fa94272f88659942ff15a7344f66', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '722aea4deaef0b014f49ce61a4a81ef219d0b101', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '8152f4fe27037c4f34918e515ac460c1f03240d5', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
36394
+ } }, hAsync("div", { key: 'd0c950b65a37a75b795503574a980cdb61f674e1', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '8c6e27b2fb134c21fb7e8864433802a95ba0f328', class: "refresher-pulling-icon" }, hAsync("div", { key: '0a947b7779502780f2c835f8686f3a06e21a9194', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '59c129077809add46b7fe6dcf5fc0edbb1cc94d5', name: this.pullingIcon, paused: true }), (theme === 'md' || theme === 'ionic') && this.pullingIcon === 'circular' && (hAsync("div", { key: 'a28750ed07d9337febbceb5550683eb1c302858c', class: "arrow-container" }, hAsync("ion-icon", { key: 'e14e3b9f9ad51ce3a138a191a848078bd423fa9b', icon: arrowIcon, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '22c4c80ef1e340a8ec9ca718849b412a09507967', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '6506d0dd30bf639a23cda57c6d1c2a9c29e42ed6', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'a54967c5f539ed182106b1c5fa7b499de84c049a', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '2e425f66d780e90474b8ebf7473b9f7c98f30c81', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '286b9b9cce1cb4450ffa5577f0b76044877722ce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
36483
36395
  }
36484
36396
  get el() { return getElement(this); }
36485
36397
  static get style() { return {
@@ -36548,9 +36460,9 @@ class Reorder {
36548
36460
  render() {
36549
36461
  const { reorderHandleIcon } = this;
36550
36462
  const theme = getIonTheme(this);
36551
- return (hAsync(Host, { key: '2a30643d0c5dbebab97a7aca68c165ee79ceed33', class: {
36463
+ return (hAsync(Host, { key: 'bc0b4cd34db6dfe794ab66a785d406bfc02236c5', class: {
36552
36464
  [theme]: true,
36553
- } }, hAsync("slot", { key: '9ac45a0cc21aea6ed0ec03aa12334886219b1051' }, hAsync("ion-icon", { key: '6d6789a718db4f252c6b3b4484148be2a65c80b8', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36465
+ } }, hAsync("slot", { key: '28672768be8598b7cb47b7b2837b77afbc2c2e14' }, hAsync("ion-icon", { key: '03b6620768da18a6f8cb0c55e94b85a53cbab66a', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36554
36466
  }
36555
36467
  get el() { return getElement(this); }
36556
36468
  static get style() { return {
@@ -36826,7 +36738,7 @@ class ReorderGroup {
36826
36738
  }
36827
36739
  render() {
36828
36740
  const theme = getIonTheme(this);
36829
- return (hAsync(Host, { key: 'f618089290a47bae34bcaaed968c3f8f4daa827f', class: {
36741
+ return (hAsync(Host, { key: 'c095e5428be9f446f245d37a12653978bb2bc2b6', class: {
36830
36742
  [theme]: true,
36831
36743
  'reorder-enabled': !this.disabled,
36832
36744
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -36952,7 +36864,7 @@ class RippleEffect {
36952
36864
  }
36953
36865
  render() {
36954
36866
  const theme = getIonTheme(this);
36955
- return (hAsync(Host, { key: 'f4db39623cfd1bdc773e222b2dd9ed52a26cc685', role: "presentation", class: {
36867
+ return (hAsync(Host, { key: '51fe7517d41c643bd4e746f366f513c42dac17dc', role: "presentation", class: {
36956
36868
  [theme]: true,
36957
36869
  unbounded: this.unbounded,
36958
36870
  } }));
@@ -37937,10 +37849,10 @@ class RouterLink {
37937
37849
  rel: this.rel,
37938
37850
  target: this.target,
37939
37851
  };
37940
- return (hAsync(Host, { key: '989574921f3bf06e4e5ad4e98ea3cce2e5c7165e', onClick: this.onClick, class: createColorClasses$1(this.color, {
37852
+ return (hAsync(Host, { key: '84efbafddc586ee3f616d4e1a13118c04d9b2753', onClick: this.onClick, class: createColorClasses$1(this.color, {
37941
37853
  [theme]: true,
37942
37854
  'ion-activatable': true,
37943
- }) }, hAsync("a", Object.assign({ key: 'ee72dba91cc13ca4f251ba6bb5a8b7bf54b6f88d' }, attrs), hAsync("slot", { key: '8e8b5afd795bb213b8765f731463e0588799b001' }))));
37855
+ }) }, hAsync("a", Object.assign({ key: 'e8c7cda4c00ec45548ea52b632bc4adb07f9460c' }, attrs), hAsync("slot", { key: '133bf1203a3e218e3868b4cfda00bb753ecea946' }))));
37944
37856
  }
37945
37857
  static get style() { return routerLinkCss(); }
37946
37858
  static get cmpMeta() { return {
@@ -38140,7 +38052,7 @@ class RouterOutlet {
38140
38052
  return true;
38141
38053
  }
38142
38054
  render() {
38143
- return hAsync("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
38055
+ return hAsync("slot", { key: '56e3d06ed939755796058e30ef19fbc7f7cb490d' });
38144
38056
  }
38145
38057
  get el() { return getElement(this); }
38146
38058
  static get watchers() { return {
@@ -38180,9 +38092,9 @@ class Row {
38180
38092
  }
38181
38093
  render() {
38182
38094
  const theme = getIonTheme(this);
38183
- return (hAsync(Host, { key: '64ff6346d95be8d99d6500a6263067081f3fe254', class: {
38095
+ return (hAsync(Host, { key: '3a3c40062d2d0487c61dedbb172215b87bb425b1', class: {
38184
38096
  [theme]: true,
38185
- } }, hAsync("slot", { key: 'e9b4c111f3a49515a721bf679ef2f1a039c9822a' })));
38097
+ } }, hAsync("slot", { key: '164f457f6f7853ed8f7279d20bc6ede6cf9d3e5c' })));
38186
38098
  }
38187
38099
  static get style() { return rowCss(); }
38188
38100
  static get cmpMeta() { return {
@@ -38741,8 +38653,8 @@ class Searchbar {
38741
38653
  const shouldShowCancelButton = this.shouldShowCancelButton();
38742
38654
  const shape = this.getShape();
38743
38655
  const size = this.getSize();
38744
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '9b71660f86c93ab8e1c4bca45a778584b1473a48', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '27c4121c6b49906b2a9c225bd7ba9ab2a41e4292', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
38745
- return (hAsync(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38656
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '21affee126970b3de80d4af9c7659875dd9a07aa', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '62f81458b16cd51dd8cc5c309c42eeceda52e6fc', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
38657
+ return (hAsync(Host, { key: '287a9c6ec7e54f621759224922003b5ce6c0fb25', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38746
38658
  [theme]: true,
38747
38659
  'searchbar-animated': animated,
38748
38660
  'searchbar-disabled': this.disabled,
@@ -38756,14 +38668,14 @@ class Searchbar {
38756
38668
  [`searchbar-shape-${shape}`]: shape !== undefined,
38757
38669
  [`searchbar-size-${size}`]: size !== undefined,
38758
38670
  'in-toolbar': hostContext('ion-toolbar', this.el),
38759
- }) }, hAsync("div", { key: 'b7e0dbfa02f9ea4db7eb01cb293d81d4a54e23d2', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '3b790197d1f8bad980086ebd898cb2487d56ea24', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, this.shouldShowSearchIcon() && (hAsync("ion-icon", { key: 'fce3e3510516d768d8b51a6334cf9d9ac934345e', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (hAsync("button", { key: 'b47cb7c79fd07e44f2273e55782a784f6d567155', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
38671
+ }) }, hAsync("div", { key: 'a2e1d71d90435b78fe7f9adb70740f4dda599a8a', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'd3b5506f488229f6e3a348b39c52b49e8c86b43d', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, this.shouldShowSearchIcon() && (hAsync("ion-icon", { key: '2b52b78ad65b26e9d4f890b4dc8e8ec494b8ccb8', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (hAsync("button", { key: 'cd59304ab31763bd0d06393d6cf65459a5cd857b', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
38760
38672
  /**
38761
38673
  * This prevents mobile browsers from
38762
38674
  * blurring the input when the clear
38763
38675
  * button is activated.
38764
38676
  */
38765
38677
  ev.preventDefault();
38766
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38678
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6a9be85be51de19f84a852c43f93c46fb92c8d1a', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38767
38679
  }
38768
38680
  get el() { return getElement(this); }
38769
38681
  static get watchers() { return {
@@ -39378,14 +39290,14 @@ class Segment {
39378
39290
  }
39379
39291
  render() {
39380
39292
  const theme = getIonTheme(this);
39381
- return (hAsync(Host, { key: '2c0631392507f2e903670070232029928470bf11', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39293
+ return (hAsync(Host, { key: '65c576c0bb9ff0602793f75321d676a34b306b3b', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39382
39294
  [theme]: true,
39383
39295
  'in-toolbar': hostContext('ion-toolbar', this.el),
39384
39296
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
39385
39297
  'segment-activated': this.activated,
39386
39298
  'segment-disabled': this.disabled,
39387
39299
  'segment-scrollable': this.scrollable,
39388
- }) }, hAsync("slot", { key: 'ed99c28b8976c4d51ad12089680cb8fb51d835a7', onSlotchange: this.onSlottedItemsChange })));
39300
+ }) }, hAsync("slot", { key: '210750a65ccada549bccf026871477ee2b7bdc69', onSlotchange: this.onSlottedItemsChange })));
39389
39301
  }
39390
39302
  get el() { return getElement(this); }
39391
39303
  static get watchers() { return {
@@ -39537,7 +39449,7 @@ class SegmentButton {
39537
39449
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
39538
39450
  const theme = getIonTheme(this);
39539
39451
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
39540
- return (hAsync(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
39452
+ return (hAsync(Host, { key: 'da5c8352e5e0f3a01211edbc39c5043cadc5b06f', class: {
39541
39453
  [theme]: true,
39542
39454
  'in-toolbar': hostContext('ion-toolbar', this.el),
39543
39455
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -39553,7 +39465,7 @@ class SegmentButton {
39553
39465
  'ion-activatable': true,
39554
39466
  'ion-activatable-instant': true,
39555
39467
  'ion-focusable': true,
39556
- } }, hAsync("button", Object.assign({ key: '0335787c4606314d2715062b536b544cf0fb1f27', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '47d06436538ed9fc97789af76b6681674a2bd0a7', class: "button-inner" }, hAsync("slot", { key: 'de1164da25cb74e6fa3066e43744483fc5b821fa' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '82d3f9d812f851a6bbbf3603e5845e6e6e925442' })), hAsync("div", { key: '77bbfb251707d274635f21e4cd7153791d9fdb49', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '2d7b64dbdb084bd3a851e215b9d049a9aff6f03f', part: "indicator-background", class: "segment-button-indicator-background" }))));
39468
+ } }, hAsync("button", Object.assign({ key: 'cfd963a166ebfeba590d6538069b26a107306583', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '845b729e96ba5b594d441ca41c73e2c33a4f5817', class: "button-inner" }, hAsync("slot", { key: 'f38369982dd602c32dbbc6aca2fae6dbb53faa8a' })), theme === 'md' && hAsync("ion-ripple-effect", { key: 'b1b15b731688dd02806409c9c3eda5519a958239' })), hAsync("div", { key: 'fff597d493a85be8005ef3b9eb4f2a93c2a7a4d0', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'f06b53d0ef9d08354f562ac6d3469998257dd688', part: "indicator-background", class: "segment-button-indicator-background" }))));
39557
39469
  }
39558
39470
  get el() { return getElement(this); }
39559
39471
  static get watchers() { return {
@@ -39591,7 +39503,7 @@ class SegmentContent {
39591
39503
  registerInstance(this, hostRef);
39592
39504
  }
39593
39505
  render() {
39594
- return (hAsync(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, hAsync("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
39506
+ return (hAsync(Host, { key: '2f43cadcbcb1a9423b30e7abc169ff923a8c431f' }, hAsync("slot", { key: 'c3a6d3e9c336f5124cdec9f37ef516324558073c' })));
39595
39507
  }
39596
39508
  static get style() { return segmentContentCss(); }
39597
39509
  static get cmpMeta() { return {
@@ -39719,11 +39631,11 @@ class SegmentView {
39719
39631
  }
39720
39632
  render() {
39721
39633
  const { disabled, isManualScroll, swipeGesture } = this;
39722
- return (hAsync(Host, { key: '48ce45ca6c45d4bbc804390c31a43729a60abb8a', class: {
39634
+ return (hAsync(Host, { key: '8d1aa594c5674bca376ee3e9b18b60b0925dd875', class: {
39723
39635
  'segment-view-disabled': disabled,
39724
39636
  'segment-view-scroll-disabled': isManualScroll === false,
39725
39637
  'segment-view-swipe-disabled': swipeGesture === false,
39726
- } }, hAsync("slot", { key: 'e248ce5b24b355bd6b51cbfd25741addf4ffd4fb' })));
39638
+ } }, hAsync("slot", { key: '6375fa794ae615b74a70968718aadefa0a9fc1d6' })));
39727
39639
  }
39728
39640
  get el() { return getElement(this); }
39729
39641
  static get style() { return {
@@ -40659,7 +40571,7 @@ class Select {
40659
40571
  * TODO(FW-5592): Remove hasStartEndSlots condition
40660
40572
  */
40661
40573
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
40662
- return (hAsync(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses$1(this.color, {
40574
+ return (hAsync(Host, { key: 'c8fc8ffc5e66fa0deef9556f365d8d95ff652b5d', onClick: this.onClick, class: createColorClasses$1(this.color, {
40663
40575
  [theme]: true,
40664
40576
  'in-item': inItem,
40665
40577
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -40678,7 +40590,7 @@ class Select {
40678
40590
  [`select-shape-${shape}`]: shape !== undefined,
40679
40591
  [`select-label-placement-${labelPlacement}`]: true,
40680
40592
  [`select-size-${size}`]: size !== undefined,
40681
- }) }, hAsync("label", { key: '66808fb8c26f7a5db356b22d43751463cbb4bcaa', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '3e80160009e0e5b47952d666ca621166067adbea', class: "select-wrapper-inner", part: "inner" },
40593
+ }) }, hAsync("label", { key: 'dd1b83a6bfadcce8e8a9559e529c86d86a5c142d', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'c7ae6112920eb9260be01ef4a723549a71e6e275', class: "select-wrapper-inner", part: "inner" },
40682
40594
  /**
40683
40595
  * For the ionic theme, we render the outline container here
40684
40596
  * instead of higher up, so it can be positioned relative to
@@ -40688,7 +40600,7 @@ class Select {
40688
40600
  * <label> element, ensuring that clicking the label text
40689
40601
  * focuses the select.
40690
40602
  */
40691
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '8ea2530c4dc535661bf97d16724bdca3b9e23560', class: "select-outline" }), hAsync("slot", { key: '2526c811e6f0f250421f6de9834d96d21df528b7', name: "start" }), hAsync("div", { key: '95d0b2432c9e656166bf35ddd457a74052c91a27', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0864febe104e3ac77aa10ce397e7c7569855636e', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'c83f3992d7a0ee55ca635b391421626a9131c8eb', class: "select-highlight" })), this.renderBottomContent()));
40603
+ theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'da07a6cea39e13cc62de7104ef4c06ac8b3c8fe1', class: "select-outline" }), hAsync("slot", { key: '35c4261e4eb3f5d91e8fe61e02cfe3d93a2c6763', name: "start" }), hAsync("div", { key: 'e70c2896f0c7ad908811f5eb19abde9a432d086e', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'ddb79446bfc9dc97714c0395570d67ce6a5aa1bf', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '297abbcf88af9911c6ecbbb27e2f37846f213bdb', class: "select-highlight" })), this.renderBottomContent()));
40692
40604
  }
40693
40605
  get el() { return getElement(this); }
40694
40606
  static get watchers() { return {
@@ -41080,7 +40992,7 @@ class SelectModal {
41080
40992
  });
41081
40993
  }
41082
40994
  render() {
41083
- return (hAsync(Host, { key: '43db0bab8915e4e422acbd73d27a880935c13a38', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: '58f462db240eb759d7be9f090ab9fba48abdea0c' }, hAsync("ion-toolbar", { key: 'dbd4722ad8c2fc21a066b89451fdc5c0a3776808' }, this.header !== undefined && hAsync("ion-title", { key: 'cefe16f3dff1a90d10875506a94fe1d737c67b44' }, this.header), hAsync("ion-buttons", { key: '750ba8ac17447906cbe020d654b943a88adf8185', slot: "end" }, hAsync("ion-button", { key: '8c075ec9d7becf25dd1307bf083bec229a0889ae', "aria-label": this.cancelIcon ? this.cancelText : undefined, onClick: () => this.closeModal() }, this.cancelIcon ? (hAsync("ion-icon", { "aria-hidden": "true", slot: "icon-only", icon: this.cancelButtonIcon })) : (this.cancelText))))), hAsync("ion-content", { key: '65dff8eab0158cdff103ade997246cea2b3c4b9e' }, hAsync("ion-list", { key: 'e3556e81c97146ffda80260265294a4f8d6ebdf2' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
40995
+ return (hAsync(Host, { key: '6f1c1c0ad2dad8d4c1defc41a37e9cb4219facef', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: 'e917416fdfb8785511abac755f9cd23e24bc2c70' }, hAsync("ion-toolbar", { key: '7ce8116cdd882958f1c6d0abd9f6ddad60d4232b' }, this.header !== undefined && hAsync("ion-title", { key: 'aa2be148b57b756ca1abdc4b29c26861494e9341' }, this.header), hAsync("ion-buttons", { key: '7a9671f9426a5b9eb0fef1d4b446d2db98332f89', slot: "end" }, hAsync("ion-button", { key: 'c5c1511bed6e3361aa740de9bcab4c7445887518', "aria-label": this.cancelIcon ? this.cancelText : undefined, onClick: () => this.closeModal() }, this.cancelIcon ? (hAsync("ion-icon", { "aria-hidden": "true", slot: "icon-only", icon: this.cancelButtonIcon })) : (this.cancelText))))), hAsync("ion-content", { key: 'ddabe1b04a9f65e741935e387c06ee8f749b38e1' }, hAsync("ion-list", { key: 'cb801aecd27444fb7bb9e3bf06e5934dfd1a9606' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
41084
40996
  }
41085
40997
  get el() { return getElement(this); }
41086
40998
  static get style() { return {
@@ -41125,7 +41037,7 @@ class SelectOption {
41125
41037
  }
41126
41038
  render() {
41127
41039
  const theme = getIonTheme(this);
41128
- return (hAsync(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
41040
+ return (hAsync(Host, { key: 'd7baa96e166b66c8f14c97e56674db4dfec2152c', class: {
41129
41041
  [theme]: true,
41130
41042
  }, role: "option", id: this.inputId }));
41131
41043
  }
@@ -41294,9 +41206,9 @@ class SelectPopover {
41294
41206
  const { header, message, options, subHeader } = this;
41295
41207
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
41296
41208
  const theme = getIonTheme(this);
41297
- return (hAsync(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
41209
+ return (hAsync(Host, { key: '47062077a192fb05f662f30c68e9c12323a69e47', class: {
41298
41210
  [theme]: true,
41299
- } }, hAsync("ion-list", { key: 'a96857c064aaf9a645b9e1ee22932116b1c25d62' }, header !== undefined && hAsync("ion-list-header", { key: '86b8c398f12cdd3e7d2a7d4c4af69029e4decdbc' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '3bcd9c0a544e1e98243163600413d82a304081db' }, hAsync("ion-label", { key: 'd20b933ba82913b623486c982ab094819f850565', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'c869868d89d024b5b02e6a3b626ca91e6f312036' }, subHeader), message !== undefined && hAsync("p", { key: 'd8a26d162ba8d3b092abef38ef3c1795787e7f75' }, message)))), this.renderOptions(options))));
41211
+ } }, hAsync("ion-list", { key: '50caf4e5f70d1d7b57256f115c589d90d9cea627' }, header !== undefined && hAsync("ion-list-header", { key: '3401a27174b687632836f086f1a367214021358c' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '7271f08cd8bae5383bb502d9411d60a5458e18f6' }, hAsync("ion-label", { key: 'e22c6c54f725e3fc630eed38a71afd4bb474b357', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'c0ca32ef8100d6aaa3aa2279ed1216bdb6a60b89' }, subHeader), message !== undefined && hAsync("p", { key: '8e2e0b248a05f5483e62db8d608310078040767c' }, message)))), this.renderOptions(options))));
41300
41212
  }
41301
41213
  get el() { return getElement(this); }
41302
41214
  static get style() { return {
@@ -41351,11 +41263,11 @@ class SkeletonText {
41351
41263
  const animated = this.animated && config.getBoolean('animated', true);
41352
41264
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
41353
41265
  const theme = getIonTheme(this);
41354
- return (hAsync(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
41266
+ return (hAsync(Host, { key: '370451ee8963b776079f5df365f7bbd70a53b270', class: {
41355
41267
  [theme]: true,
41356
41268
  'skeleton-text-animated': animated,
41357
41269
  'in-media': inMedia,
41358
- } }, hAsync("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
41270
+ } }, hAsync("span", { key: '2b861b4ec86cbd61927ab7b81b13517c99dc94c7' }, "\u00A0")));
41359
41271
  }
41360
41272
  get el() { return getElement(this); }
41361
41273
  static get style() { return skeletonTextCss(); }
@@ -41428,7 +41340,7 @@ class Spinner {
41428
41340
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
41429
41341
  }
41430
41342
  }
41431
- return (hAsync(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses$1(self.color, {
41343
+ return (hAsync(Host, { key: 'b6559d1626b56a1c63580862263a15798f7d3f71', class: createColorClasses$1(self.color, {
41432
41344
  [theme]: true,
41433
41345
  [`spinner-${spinnerName}`]: true,
41434
41346
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -41540,12 +41452,12 @@ class SplitPane {
41540
41452
  }
41541
41453
  render() {
41542
41454
  const theme = getIonTheme(this);
41543
- return (hAsync(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
41455
+ return (hAsync(Host, { key: 'b933156f8f9d8ce418ff0d39526967f9653d6639', class: {
41544
41456
  [theme]: true,
41545
41457
  // Used internally for styling
41546
41458
  [`split-pane-${theme}`]: true,
41547
41459
  'split-pane-visible': this.visible,
41548
- } }, hAsync("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
41460
+ } }, hAsync("slot", { key: '3ec0a11e5506386747dc972ccb094359ca975bae' })));
41549
41461
  }
41550
41462
  get el() { return getElement(this); }
41551
41463
  static get watchers() { return {
@@ -41622,10 +41534,10 @@ class Tab {
41622
41534
  }
41623
41535
  render() {
41624
41536
  const { tab, active, component } = this;
41625
- return (hAsync(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41537
+ return (hAsync(Host, { key: '8b978f848d43898feafa7daa3e3d9819be833038', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41626
41538
  'ion-page': component === undefined,
41627
41539
  'tab-hidden': !active,
41628
- } }, hAsync("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
41540
+ } }, hAsync("slot", { key: '96a92d86cecc8c9ef4f11d310f7f87bb99ce4e50' })));
41629
41541
  }
41630
41542
  get el() { return getElement(this); }
41631
41543
  static get watchers() { return {
@@ -41832,7 +41744,7 @@ class TabBar {
41832
41744
  const theme = getIonTheme(this);
41833
41745
  const shape = this.getShape();
41834
41746
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
41835
- return (hAsync(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41747
+ return (hAsync(Host, { key: '16cd11a815d777a7517150b49b57a204c83c3c37', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41836
41748
  [theme]: true,
41837
41749
  'tab-bar-translucent': translucent,
41838
41750
  'tab-bar-hidden': shouldHide,
@@ -41840,7 +41752,7 @@ class TabBar {
41840
41752
  'tab-bar-scroll-hidden': scrollHidden,
41841
41753
  [`tab-bar-${expand}`]: true,
41842
41754
  [`tab-bar-${shape}`]: shape !== undefined,
41843
- }) }, hAsync("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
41755
+ }) }, hAsync("slot", { key: 'dfdff308f24b3addaf18528a8d869b3fc64306d1' })));
41844
41756
  }
41845
41757
  get el() { return getElement(this); }
41846
41758
  static get watchers() { return {
@@ -41968,7 +41880,7 @@ class TabButton {
41968
41880
  rel,
41969
41881
  target,
41970
41882
  };
41971
- return (hAsync(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41883
+ return (hAsync(Host, { key: 'e4d3aaefcdc42677f7818c51ec1ec0a9cbcf8bcf', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41972
41884
  [theme]: true,
41973
41885
  'tab-selected': selected,
41974
41886
  'tab-disabled': disabled,
@@ -41981,7 +41893,7 @@ class TabButton {
41981
41893
  'ion-selectable': true,
41982
41894
  [`tab-button-shape-${shape}`]: shape !== undefined,
41983
41895
  'ion-focusable': true,
41984
- } }, hAsync("a", Object.assign({ key: 'fde7dc112f62c5e1a08017f1e8665bf68658eadf' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '0912736f1e69a8da9a49c94bca1c613061bcaad1', class: "button-inner" }, hAsync("slot", { key: '9b919361a07b62304dddc751658fca0540a3747a' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '472967f7b2b8f63d669fae542bb2eb1900955975', type: "unbounded" }))));
41896
+ } }, hAsync("a", Object.assign({ key: '1412d080294dd2602696c5657c71553ef35036d3' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '5daebf815b9b4f8016ce5b4b9d05148c1957a46c', class: "button-inner" }, hAsync("slot", { key: 'e1cbabb911936d21d5b1a4f87d236b962beacbab' })), theme === 'md' && hAsync("ion-ripple-effect", { key: 'd4544a7fb87b8559aaf9d2f0aa4d440201ebdb71', type: "unbounded" }))));
41985
41897
  }
41986
41898
  get el() { return getElement(this); }
41987
41899
  static get style() { return {
@@ -42177,7 +42089,7 @@ class Tabs {
42177
42089
  return Array.from(this.el.querySelectorAll('ion-tab'));
42178
42090
  }
42179
42091
  render() {
42180
- return (hAsync(Host, { key: 'd94b2760650125d00a9bd620f367022119aba911', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'dfa95a272dce19af4575e4d6488962cf6c521754', name: "top" }), hAsync("div", { key: 'd537e5212745833107c751cc6f79d12f48f5472a', class: "tabs-inner" }, hAsync("slot", { key: '6db89721daa7ffd390586345137f1fdfcefa7910' })), hAsync("slot", { key: '7b24f140b89e8e316f24170b29390e00c31d9a0c', name: "bottom" })));
42092
+ return (hAsync(Host, { key: 'b8c5c75469cb1f1829a217a02555a7da8556454a', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '50b74e3df8ea0e991e096c7438a65fee0ca0f6b5', name: "top" }), hAsync("div", { key: 'ca8d4329381c4b40882bbd31b4f15264cfa2c220', class: "tabs-inner" }, hAsync("slot", { key: '816ffd6d997530e3b100480c9a8e4a51fa51e59c' })), hAsync("slot", { key: '280bdf5ec61789823c7772287d60a26229fe78fa', name: "bottom" })));
42181
42093
  }
42182
42094
  get el() { return getElement(this); }
42183
42095
  static get style() { return tabsCss(); }
@@ -42218,9 +42130,9 @@ class Text {
42218
42130
  }
42219
42131
  render() {
42220
42132
  const theme = getIonTheme(this);
42221
- return (hAsync(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses$1(this.color, {
42133
+ return (hAsync(Host, { key: '8fc5565ce579f8e2a9eddbaa7c93264291080bce', class: createColorClasses$1(this.color, {
42222
42134
  [theme]: true,
42223
- }) }, hAsync("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
42135
+ }) }, hAsync("slot", { key: '5be1d661ee3a6f1f9d9428b59e830672faf475b1' })));
42224
42136
  }
42225
42137
  static get style() { return textCss(); }
42226
42138
  static get cmpMeta() { return {
@@ -42784,7 +42696,7 @@ class Textarea {
42784
42696
  * TODO(FW-5592): Remove hasStartEndSlots condition
42785
42697
  */
42786
42698
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
42787
- return (hAsync(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses$1(this.color, {
42699
+ return (hAsync(Host, { key: 'a67ef5f3107776dcd8490bdd2af4a373ae422899', class: createColorClasses$1(this.color, {
42788
42700
  [theme]: true,
42789
42701
  'has-value': hasValue,
42790
42702
  'has-focus': hasFocus,
@@ -42796,7 +42708,7 @@ class Textarea {
42796
42708
  'in-item': inItem,
42797
42709
  'textarea-disabled': disabled,
42798
42710
  'textarea-readonly': readonly,
42799
- }) }, hAsync("label", { key: '3d21eab560550527de015d36b1c71761792aa516', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '5fe9ec91ac5560d2ebbb93751dd770fe17e5f839', class: "textarea-wrapper-inner" },
42711
+ }) }, hAsync("label", { key: '7a8605454eb66d87a4b49ffd28e609a633eae09c', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '8b24d96089d11f659dbd5adfcbf317ec34742333', class: "textarea-wrapper-inner" },
42800
42712
  /**
42801
42713
  * For the ionic theme, we render the outline container here
42802
42714
  * instead of higher up, so it can be positioned relative to
@@ -42806,7 +42718,7 @@ class Textarea {
42806
42718
  * <label> element, ensuring that clicking the label text
42807
42719
  * focuses the textarea.
42808
42720
  */
42809
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'aac1db3f8a9a9d541bd0d76f17c7936daca419d7', class: "textarea-outline" }), hAsync("div", { key: '49779a6b346b5bf2e8f98787c9159f41fd767d26', class: "start-slot-wrapper" }, hAsync("slot", { key: '2a86311a2ee002e286d8cb1e27480364cb3eb5b1', name: "start" })), hAsync("div", { key: '922069ecd0aa72e4294d78e02a4f216706af0d99', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, hAsync("textarea", Object.assign({ key: 'c1cae5f0695b4d978fbbd6d0af8d3da681d2c671', class: "native-textarea", part: "native", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '6e76190d9644dd880200f28bbfdb6291362ce639', class: "end-slot-wrapper" }, hAsync("slot", { key: 'fe9466237a1d88bf8cd534e83cca148ce6178abe', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'e8a158231e0dcacb4df5b94575fe54d7aff5c23f', class: "textarea-highlight" })), this.renderBottomContent()));
42721
+ theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '91a7ea7b6f6fccc473b9e058281e5437c00a9b5d', class: "textarea-outline" }), hAsync("div", { key: 'ba641e63d5aaf2ddb291c875f57181d1c93a2b26', class: "start-slot-wrapper" }, hAsync("slot", { key: '351684d41a2b080541a29e0d9e90dd50747b52dc', name: "start" })), hAsync("div", { key: '5c0793742ff6cc327582c3d78d85c28fa8238a40', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, hAsync("textarea", Object.assign({ key: '9cf5c908e3fcd54af07c351dcf0bb91c853f1349', class: "native-textarea", part: "native", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: 'e47ffe0bf8e460a7cb205ed35a1107b44687116d', class: "end-slot-wrapper" }, hAsync("slot", { key: '57d035b5f1db373b8488b129c8d3552eb8e630ac', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '1259ad761b68aea69a1ae8b61a6bbdee6c071b7b', class: "textarea-highlight" })), this.renderBottomContent()));
42810
42722
  }
42811
42723
  static get delegatesFocus() { return true; }
42812
42724
  static get formAssociated() { return true; }
@@ -42890,9 +42802,9 @@ class Thumbnail {
42890
42802
  }
42891
42803
  render() {
42892
42804
  const theme = getIonTheme(this);
42893
- return (hAsync(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
42805
+ return (hAsync(Host, { key: 'fdf9d92949a1e8cf6faded77ffed084f74fc040b', class: {
42894
42806
  [theme]: true,
42895
- } }, hAsync("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
42807
+ } }, hAsync("slot", { key: 'e1b1439c035d9a9503efd1c1a04aed9f4e8e0af7' })));
42896
42808
  }
42897
42809
  static get style() { return thumbnailCss(); }
42898
42810
  static get cmpMeta() { return {
@@ -43776,9 +43688,9 @@ class Toast {
43776
43688
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
43777
43689
  printIonWarning('[ion-toast] - 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);
43778
43690
  }
43779
- return (hAsync(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
43691
+ return (hAsync(Host, Object.assign({ key: 'f0d62f099dd68f8f541110a60695c2a083c6a4d5', tabindex: "-1" }, this.htmlAttributes, { style: {
43780
43692
  zIndex: `${60000 + this.overlayIndex}`,
43781
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true, [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '4f0b39c8e0d7aecfe81da23c3ca1591374a8afa5', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'a2cf3ea830d27b51ffe1158fb3f3bf87486401b5', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'bee5f21ee8df2278e20bf0565495da30c2e61963', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '40a95848e952dd587d1972487affd4b8e088209f', class: "toast-content", part: "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')))));
43693
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true, [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '054ba519f93892a000832990097b265887272da4', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: '45fa83c1711ab98e81b8b00e0af3af436eaa5264', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'eb4143899be5259e3d933461bc4ca593c8b9dd9b', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'bae8a899abb9bcd4895df45def79bfe3d704e6e4', class: "toast-content", part: "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')))));
43782
43694
  }
43783
43695
  get el() { return getElement(this); }
43784
43696
  static get watchers() { return {
@@ -44154,7 +44066,7 @@ class Toggle {
44154
44066
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
44155
44067
  const isIonicTheme = theme === 'ionic';
44156
44068
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
44157
- return (hAsync(Host, { key: '48744f35038be7be61fea432996440628d4f2ce9', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
44069
+ return (hAsync(Host, { key: '9e042d48d2416028c4f76fbb38fa2b26ee7512ef', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
44158
44070
  [theme]: true,
44159
44071
  'in-item': hostContext('ion-item', el),
44160
44072
  'toggle-activated': activated,
@@ -44166,10 +44078,10 @@ class Toggle {
44166
44078
  [`toggle-${rtl}`]: true,
44167
44079
  'ion-activatable': isIonicTheme,
44168
44080
  'ion-focusable': isIonicTheme,
44169
- }) }, hAsync("label", { key: '43d05b9140a9ccabc3981a28b01bf2cb844050f6', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '716f13f4202712d4ce22fe738879a8259102c329', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '0466a7f662ec5804ecc2e22971248a86f20141c7', class: {
44081
+ }) }, hAsync("label", { key: 'f13b94af8f0b862b8390172107e75ef670fff34f', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'e6c82e4fc9fcc77ed52408a04188d5696521de0c', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '5f32f194da4f83792cccaa536a211b558c5eac1c', class: {
44170
44082
  'label-text-wrapper': true,
44171
44083
  'label-text-wrapper-hidden': !hasLabel,
44172
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), hAsync("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
44084
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c86e28aca1011a3d5a453b92ddc8b6d1ab049f0b' }), this.renderHintText()), hAsync("div", { key: '80390009e2a3d1ad699e1b698df725449c8fab53', class: "native-wrapper" }, this.renderToggleControl()))));
44173
44085
  }
44174
44086
  get el() { return getElement(this); }
44175
44087
  static get watchers() { return {
@@ -44461,11 +44373,11 @@ class Toolbar {
44461
44373
  Object.assign(childStyles, style);
44462
44374
  });
44463
44375
  const titlePlacement = this.getTitlePlacement();
44464
- return (hAsync(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44376
+ return (hAsync(Host, { key: 'bcb621674157410d7eaeb006779bdd677346587e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44465
44377
  [theme]: true,
44466
44378
  'in-toolbar': hostContext('ion-toolbar', this.el),
44467
44379
  [`toolbar-title-placement-${titlePlacement}`]: true,
44468
- })), childStyles) }, hAsync("div", { key: '3255531be492b9afa7b47476a805f923beea09db', class: "toolbar-background", part: "background" }), hAsync("div", { key: '8758189374c0a12f293c30ca7f8f049b732d2cab', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '74c3705f717968893bf94ea95c99cae313ce68f3', name: "start", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: '298c78f93291442f140f8c52983871215f20ea87', name: "secondary", onSlotchange: () => this.updateSlotClasses }), hAsync("div", { key: 'f7376320b704b8ce375fe2223ae30d51bfc05acb', class: "toolbar-content", part: "content" }, hAsync("slot", { key: 'ddaec08b1fbd13384d834ba4c3b4441c4d749faf' })), hAsync("slot", { key: '6d5bce85159859bb548e4d3fb6b22208dcb48987', name: "primary", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: 'd1d21752ed3bcc7bf15c20de1c0a6fd956373450', name: "end", onSlotchange: () => this.updateSlotClasses }))));
44380
+ })), childStyles) }, hAsync("div", { key: '0d31a98b2571b9a0ae142fbdfd83e2ebdcd8e069', class: "toolbar-background", part: "background" }), hAsync("div", { key: 'de938534c487c6cb4060dac44b40c2d872130f50', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'a337150d353e439eae67c31ff86e383ed51f3d8f', name: "start", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: '02effd3ce0cdad5ec5645fa58ccb329321449190', name: "secondary", onSlotchange: () => this.updateSlotClasses }), hAsync("div", { key: '3e22f5feda2aea02117bdea2fe8a4b8905ba82f6', class: "toolbar-content", part: "content" }, hAsync("slot", { key: 'ebf828643ff05a8bf662a54715d21d0859168d31' })), hAsync("slot", { key: 'a6940648dfe25a7aa8792a1bd9267437274f333c', name: "primary", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: 'afb1d61aa0e430fcf483ba482af64762474e06fe', name: "end", onSlotchange: () => this.updateSlotClasses }))));
44469
44381
  }
44470
44382
  get el() { return getElement(this); }
44471
44383
  static get watchers() { return {
@@ -44524,11 +44436,11 @@ class ToolbarTitle {
44524
44436
  render() {
44525
44437
  const theme = getIonTheme(this);
44526
44438
  const size = this.getSize();
44527
- return (hAsync(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses$1(this.color, {
44439
+ return (hAsync(Host, { key: 'd64e86bed418cba707d4a26c9274f18ed06c0e9e', class: createColorClasses$1(this.color, {
44528
44440
  [theme]: true,
44529
44441
  [`title-${size}`]: true,
44530
44442
  'title-rtl': document.dir === 'rtl',
44531
- }) }, hAsync("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, hAsync("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
44443
+ }) }, hAsync("div", { key: '386a71e974cde0bfbf5b655d69ed5f718de8ce48', class: "toolbar-title" }, hAsync("slot", { key: '8aa804c9e1b11574a42268805d3117a085e699b4' }))));
44532
44444
  }
44533
44445
  get el() { return getElement(this); }
44534
44446
  static get watchers() { return {
@@ -44585,6 +44497,7 @@ registerComponents([
44585
44497
  FabList,
44586
44498
  Footer,
44587
44499
  Gallery,
44500
+ GalleryItem,
44588
44501
  Grid,
44589
44502
  Header,
44590
44503
  Icon,