@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.mjs CHANGED
@@ -13335,7 +13335,7 @@ const isRTL$1 = (hostEl) => {
13335
13335
  return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
13336
13336
  };
13337
13337
 
13338
- 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)}`;
13338
+ 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)}`;
13339
13339
 
13340
13340
  /**
13341
13341
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -18585,171 +18585,6 @@ const createKeyboardController = async (keyboardChangeCallback) => {
18585
18585
  return { init, destroy, isKeyboardVisible };
18586
18586
  };
18587
18587
 
18588
- /** Cumulative downward delta before hiding (header or footer `collapse="hide"`). */
18589
- const COLLAPSE_HIDE_THRESHOLD_PX = 24;
18590
- /**
18591
- * Cumulative upward delta before showing again after hide. Small bias
18592
- * (instead of "any upward delta") guards against inertial-scroll
18593
- * oscillation flicking the region back open during a downward gesture.
18594
- */
18595
- const COLLAPSE_SHOW_THRESHOLD_PX = 5;
18596
- const WHEEL_SCROLL_SUPPRESS_MS = 80;
18597
- const getContentHostFromScrollEl = (scrollEl) => {
18598
- const root = scrollEl.getRootNode();
18599
- if (root instanceof ShadowRoot && root.host instanceof HTMLElement) {
18600
- return root.host;
18601
- }
18602
- // Light-DOM fallback: the scroll element may live inside a non-shadow
18603
- // ion-content (e.g. custom scroll host). Walk up to the nearest ion-content.
18604
- return scrollEl.closest('ion-content');
18605
- };
18606
- const applySlideDistance = (regionEl, contentHost, slideCssVar, heightPx) => {
18607
- const value = `${Math.max(0, Math.ceil(heightPx))}px`;
18608
- regionEl.style.setProperty(slideCssVar, value);
18609
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.setProperty(slideCssVar, value);
18610
- };
18611
- const clearSlideDistance = (regionEl, contentHost, slideCssVar) => {
18612
- regionEl.style.removeProperty(slideCssVar);
18613
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.removeProperty(slideCssVar);
18614
- };
18615
- /**
18616
- * Scroll/wheel-driven hide/show for `collapse="hide"` on `ion-header` or `ion-footer`.
18617
- * Hide after {@link COLLAPSE_HIDE_THRESHOLD_PX}px cumulative downward delta; show after
18618
- * {@link COLLAPSE_SHOW_THRESHOLD_PX}px cumulative upward delta. Each direction drains
18619
- * (not resets) the opposing accumulator so inertial-scroll jitter doesn't stall either
18620
- * transition. Motion is defined in component SCSS and `content.scss`; this toggles
18621
- * classes and syncs the slide distance CSS var.
18622
- */
18623
- const createCollapseHideInteraction = ({ regionEl, scrollEl, slideCssVar, contentPartnerClass, contentHiddenClass, regionHiddenClass, }) => {
18624
- const contentHost = getContentHostFromScrollEl(scrollEl);
18625
- if (contentHost !== null) {
18626
- contentHost.classList.add(contentPartnerClass);
18627
- }
18628
- let resizeObserver;
18629
- let destroyed = false;
18630
- const syncSlideDistance = () => {
18631
- readTask(() => {
18632
- if (destroyed) {
18633
- return;
18634
- }
18635
- const heightPx = regionEl.offsetHeight;
18636
- writeTask(() => {
18637
- if (destroyed) {
18638
- return;
18639
- }
18640
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
18641
- });
18642
- });
18643
- };
18644
- if (typeof ResizeObserver !== 'undefined') {
18645
- resizeObserver = new ResizeObserver(() => {
18646
- syncSlideDistance();
18647
- });
18648
- resizeObserver.observe(regionEl);
18649
- }
18650
- syncSlideDistance();
18651
- requestAnimationFrame(() => {
18652
- if (!destroyed) {
18653
- syncSlideDistance();
18654
- }
18655
- });
18656
- let hidden = false;
18657
- let accDown = 0;
18658
- let accUp = 0;
18659
- let lastScrollTop = scrollEl.scrollTop;
18660
- let lastWheelTime = 0;
18661
- const setHidden = (next) => {
18662
- if (hidden === next || destroyed) {
18663
- return;
18664
- }
18665
- hidden = next;
18666
- // When transitioning to hidden, re-measure synchronously in case the
18667
- // initial layout reported offsetHeight === 0 (e.g. mid page transition).
18668
- // Without this the slide animates by 0px and only opacity fades.
18669
- if (hidden) {
18670
- const heightPx = regionEl.offsetHeight;
18671
- if (heightPx > 0) {
18672
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
18673
- }
18674
- }
18675
- writeTask(() => {
18676
- if (destroyed) {
18677
- return;
18678
- }
18679
- regionEl.classList.toggle(regionHiddenClass, hidden);
18680
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.toggle(contentHiddenClass, hidden);
18681
- if (hidden) {
18682
- // `inert` removes the subtree from the tab order and AT, AND moves
18683
- // focus out automatically in supporting browsers. `aria-hidden` is
18684
- // kept as a fallback for older engines without `inert` support.
18685
- regionEl.setAttribute('inert', '');
18686
- regionEl.setAttribute('aria-hidden', 'true');
18687
- }
18688
- else {
18689
- regionEl.removeAttribute('inert');
18690
- regionEl.removeAttribute('aria-hidden');
18691
- }
18692
- });
18693
- };
18694
- // Accumulate cumulative movement in each direction. The OPPOSITE accumulator
18695
- // is drained (not reset) by each event, so brief inertial jitter does not
18696
- // wipe a sustained gesture's accumulation. Crossing a threshold resets both.
18697
- const processDelta = (delta) => {
18698
- if (delta > 0) {
18699
- accUp = Math.max(0, accUp - delta);
18700
- accDown += delta;
18701
- if (accDown >= COLLAPSE_HIDE_THRESHOLD_PX) {
18702
- setHidden(true);
18703
- accDown = 0;
18704
- accUp = 0;
18705
- }
18706
- }
18707
- else if (delta < 0) {
18708
- const mag = -delta;
18709
- accDown = Math.max(0, accDown - mag);
18710
- accUp += mag;
18711
- if (accUp >= COLLAPSE_SHOW_THRESHOLD_PX) {
18712
- setHidden(false);
18713
- accUp = 0;
18714
- accDown = 0;
18715
- }
18716
- }
18717
- };
18718
- const onWheel = (ev) => {
18719
- if (destroyed) {
18720
- return;
18721
- }
18722
- lastWheelTime = performance.now();
18723
- processDelta(ev.deltaY);
18724
- };
18725
- const onScroll = () => {
18726
- if (destroyed) {
18727
- return;
18728
- }
18729
- const st = scrollEl.scrollTop;
18730
- if (performance.now() - lastWheelTime < WHEEL_SCROLL_SUPPRESS_MS) {
18731
- lastScrollTop = st;
18732
- return;
18733
- }
18734
- const delta = st - lastScrollTop;
18735
- lastScrollTop = st;
18736
- processDelta(delta);
18737
- };
18738
- scrollEl.addEventListener('wheel', onWheel, { passive: true });
18739
- scrollEl.addEventListener('scroll', onScroll, { passive: true });
18740
- return () => {
18741
- destroyed = true;
18742
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
18743
- scrollEl.removeEventListener('wheel', onWheel);
18744
- scrollEl.removeEventListener('scroll', onScroll);
18745
- regionEl.classList.remove(regionHiddenClass);
18746
- regionEl.removeAttribute('inert');
18747
- regionEl.removeAttribute('aria-hidden');
18748
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.remove(contentPartnerClass, contentHiddenClass);
18749
- clearSlideDistance(regionEl, contentHost, slideCssVar);
18750
- };
18751
- };
18752
-
18753
18588
  const handleFooterFade = (scrollEl, baseEl) => {
18754
18589
  readTask(() => {
18755
18590
  const scrollTop = scrollEl.scrollTop;
@@ -18778,20 +18613,12 @@ const handleFooterFade = (scrollEl, baseEl) => {
18778
18613
  });
18779
18614
  });
18780
18615
  };
18781
- const createFooterHideInteraction = (footerEl, scrollEl) => createCollapseHideInteraction({
18782
- regionEl: footerEl,
18783
- scrollEl,
18784
- slideCssVar: '--footer-hide-slide-y',
18785
- contentPartnerClass: 'content-footer-hide-scroll-partner',
18786
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
18787
- regionHiddenClass: 'footer-collapse-hide-hidden',
18788
- });
18789
18616
 
18790
- 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}`;
18617
+ 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}`;
18791
18618
 
18792
- 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}`;
18619
+ 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}`;
18793
18620
 
18794
- 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}`;
18621
+ 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}`;
18795
18622
 
18796
18623
  /**
18797
18624
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -18800,8 +18627,6 @@ const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-o
18800
18627
  class Footer {
18801
18628
  constructor(hostRef) {
18802
18629
  registerInstance(this, hostRef);
18803
- this.didLoad = false;
18804
- this.setupToken = 0;
18805
18630
  this.keyboardCtrl = null;
18806
18631
  this.keyboardCtrlPromise = null;
18807
18632
  this.keyboardVisible = false;
@@ -18816,45 +18641,25 @@ class Footer {
18816
18641
  this.translucent = false;
18817
18642
  this.checkCollapsibleFooter = () => {
18818
18643
  const theme = getIonTheme(this);
18819
- const { collapse } = this;
18820
- const hasFade = collapse === 'fade';
18821
- const hasHide = collapse === 'hide';
18822
- const runIosFade = theme === 'ios' && hasFade;
18823
- if (!runIosFade && !hasHide) {
18824
- this.destroyCollapsibleFooter();
18825
- return;
18826
- }
18827
- // Skip teardown/rebuild when the collapse mode and theme have not changed
18828
- // since the last setup — avoids thrashing listeners and resetting scroll
18829
- // accumulators on unrelated re-renders (e.g. keyboardVisible state flips).
18830
- const activeMode = hasHide ? 'hide' : 'fade';
18831
- if (this.appliedCollapse === activeMode && this.appliedTheme === theme) {
18644
+ if (theme !== 'ios') {
18832
18645
  return;
18833
18646
  }
18647
+ const { collapse } = this;
18648
+ const hasFade = collapse === 'fade';
18834
18649
  this.destroyCollapsibleFooter();
18835
- const appRootSelector = config.get('appRootSelector', 'ion-app');
18836
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
18837
- const contentEl = pageEl ? findIonContent(pageEl) : null;
18838
- if (!contentEl) {
18839
- printIonContentErrorMsg(this.el);
18840
- return;
18841
- }
18842
- this.appliedCollapse = activeMode;
18843
- this.appliedTheme = theme;
18844
- if (runIosFade) {
18650
+ if (hasFade) {
18651
+ const appRootSelector = config.get('appRootSelector', 'ion-app');
18652
+ const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
18653
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
18654
+ if (!contentEl) {
18655
+ printIonContentErrorMsg(this.el);
18656
+ return;
18657
+ }
18845
18658
  this.setupFadeFooter(contentEl);
18846
18659
  }
18847
- else if (hasHide) {
18848
- void this.setupHideFooter(contentEl);
18849
- }
18850
18660
  };
18851
18661
  this.setupFadeFooter = async (contentEl) => {
18852
- const token = ++this.setupToken;
18853
- const scrollEl = await getScrollElement(contentEl);
18854
- if (token !== this.setupToken) {
18855
- return;
18856
- }
18857
- this.scrollEl = scrollEl;
18662
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
18858
18663
  /**
18859
18664
  * Handle fading of toolbars on scroll
18860
18665
  */
@@ -18866,18 +18671,12 @@ class Footer {
18866
18671
  };
18867
18672
  }
18868
18673
  componentDidLoad() {
18869
- this.didLoad = true;
18870
18674
  this.checkCollapsibleFooter();
18871
18675
  }
18872
18676
  componentDidUpdate() {
18873
18677
  this.checkCollapsibleFooter();
18874
18678
  }
18875
18679
  async connectedCallback() {
18876
- // On re-attach (didLoad already true but disconnectedCallback ran since),
18877
- // componentDidLoad will not fire again — re-run setup here.
18878
- if (this.didLoad) {
18879
- this.checkCollapsibleFooter();
18880
- }
18881
18680
  const promise = createKeyboardController(async (keyboardOpen, waitForResize) => {
18882
18681
  /**
18883
18682
  * If the keyboard is hiding, then we need to wait
@@ -18905,7 +18704,6 @@ class Footer {
18905
18704
  }
18906
18705
  }
18907
18706
  disconnectedCallback() {
18908
- this.destroyCollapsibleFooter();
18909
18707
  if (this.keyboardCtrlPromise) {
18910
18708
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
18911
18709
  this.keyboardCtrlPromise = null;
@@ -18915,36 +18713,18 @@ class Footer {
18915
18713
  this.keyboardCtrl = null;
18916
18714
  }
18917
18715
  }
18918
- async setupHideFooter(contentEl) {
18919
- const token = ++this.setupToken;
18920
- const scrollEl = await getScrollElement(contentEl);
18921
- // A newer checkCollapsibleFooter ran while we were awaiting — abandon.
18922
- if (token !== this.setupToken) {
18923
- return;
18924
- }
18925
- this.scrollEl = scrollEl;
18926
- this.footerHideCleanup = createFooterHideInteraction(this.el, scrollEl);
18927
- }
18928
18716
  destroyCollapsibleFooter() {
18929
- // Invalidate any in-flight setupHideFooter/setupFadeFooter awaits.
18930
- this.setupToken++;
18931
- if (this.footerHideCleanup) {
18932
- this.footerHideCleanup();
18933
- this.footerHideCleanup = undefined;
18934
- }
18935
18717
  if (this.scrollEl && this.contentScrollCallback) {
18936
18718
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
18937
18719
  this.contentScrollCallback = undefined;
18938
18720
  }
18939
- this.appliedCollapse = undefined;
18940
- this.appliedTheme = undefined;
18941
18721
  }
18942
18722
  render() {
18943
18723
  const { translucent, collapse } = this;
18944
18724
  const theme = getIonTheme(this);
18945
18725
  const tabs = this.el.closest('ion-tabs');
18946
18726
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
18947
- return (hAsync(Host, { key: '5df79a31f36febfad49c5858727e93c7ba5734f8', role: "contentinfo", class: {
18727
+ return (hAsync(Host, { key: '4a2989a177b47ee26ffa23e2c9f5418773584796', role: "contentinfo", class: {
18948
18728
  [theme]: true,
18949
18729
  // Used internally for styling
18950
18730
  [`footer-${theme}`]: true,
@@ -18952,7 +18732,7 @@ class Footer {
18952
18732
  [`footer-translucent-${theme}`]: translucent,
18953
18733
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
18954
18734
  [`footer-collapse-${collapse}`]: collapse !== undefined,
18955
- } }, theme === 'ios' && translucent && hAsync("div", { key: '9175ae4f6576d82dff2a00a36e91f4b633d8c9ad', class: "footer-background" }), hAsync("slot", { key: 'd6d618cdae4726822d8e82edb782c5c86fc7b77b' })));
18735
+ } }, theme === 'ios' && translucent && hAsync("div", { key: 'c644963db3e06254014e398ea02189d6127ccf61', class: "footer-background" }), hAsync("slot", { key: '839e33c6c30f5c1c703239a19458ff10da9a5e76' })));
18956
18736
  }
18957
18737
  get el() { return getElement(this); }
18958
18738
  static get style() { return {
@@ -18982,6 +18762,9 @@ class Footer {
18982
18762
  const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
18983
18763
  // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18984
18764
  const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
18765
+ // Matches a `var(--name)` reference with an optional fallback, e.g.
18766
+ // `var(--my-gap)` or `var(--my-gap, 16px)`.
18767
+ const VAR_FUNCTION_PATTERN = /^var\(\s*--[^\s,)]+\s*(?:,[\s\S]*)?\)$/i;
18985
18768
  /**
18986
18769
  * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18987
18770
  * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
@@ -18996,6 +18779,17 @@ function isValidLengthPercentage(value) {
18996
18779
  }
18997
18780
  return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
18998
18781
  }
18782
+ /**
18783
+ * Returns whether `value` is a single [`var()`](https://developer.mozilla.org/en-US/docs/Web/CSS/var)
18784
+ * reference, e.g. `var(--my-token)` or `var(--my-token, 16px)`. The referenced
18785
+ * custom property is resolved by the browser, so the resolved value is not
18786
+ * validated here.
18787
+ *
18788
+ * @param value String value to validate.
18789
+ */
18790
+ function isCssVariable(value) {
18791
+ return VAR_FUNCTION_PATTERN.test(value.trim());
18792
+ }
18999
18793
 
19000
18794
  const DEFAULT_COLUMNS = {
19001
18795
  xs: 2,
@@ -19007,7 +18801,7 @@ const DEFAULT_COLUMNS = {
19007
18801
  };
19008
18802
  const DEFAULT_GAP = '16px';
19009
18803
 
19010
- 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}`;
18804
+ 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}`;
19011
18805
 
19012
18806
  // TODO(FW-7285): Replace with global breakpoints
19013
18807
  const BREAKPOINTS = {
@@ -19019,11 +18813,16 @@ const BREAKPOINTS = {
19019
18813
  xxl: 1400,
19020
18814
  };
19021
18815
  const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
18816
+ /**
18817
+ * The tag of the component used to wrap each gallery item.
18818
+ */
18819
+ const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
19022
18820
  /**
19023
18821
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
19024
18822
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
19025
18823
  *
19026
- * @slot - Content is placed in a responsive gallery layout.
18824
+ * @slot - One or more `ion-gallery-item` components, placed in a responsive
18825
+ * gallery layout.
19027
18826
  */
19028
18827
  class Gallery {
19029
18828
  constructor(hostRef) {
@@ -19033,6 +18832,7 @@ class Gallery {
19033
18832
  this.hasWarnedInvalidColumns = false;
19034
18833
  this.hasWarnedInvalidGap = false;
19035
18834
  this.hasWarnedUnusedOrder = false;
18835
+ this.hasWarnedInvalidItems = false;
19036
18836
  /**
19037
18837
  * The visual layout of the gallery. When `uniform`, rows take up the height
19038
18838
  * of the tallest item and are spaced evenly across the gallery. Additionally,
@@ -19049,7 +18849,8 @@ class Gallery {
19049
18849
  /**
19050
18850
  * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
19051
18851
  * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
19052
- * or numbers (treated as pixel values). Can also be set as a breakpoint map
18852
+ * CSS variables like `var(--app-gallery-gap)`, or numbers (treated as pixel
18853
+ * values). Can also be set as a breakpoint map
19053
18854
  * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
19054
18855
  * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
19055
18856
  */
@@ -19061,6 +18862,9 @@ class Gallery {
19061
18862
  * are added or removed from the gallery.
19062
18863
  */
19063
18864
  this.onSlotChange = () => {
18865
+ // Re-observe so newly added items are watched for size changes (e.g. a
18866
+ // freshly appended item finishing hydration), then recompute placement.
18867
+ this.observeResizes();
19064
18868
  this.scheduleMasonryResize();
19065
18869
  };
19066
18870
  /**
@@ -19104,7 +18908,7 @@ class Gallery {
19104
18908
  this.updateResponsiveStyles();
19105
18909
  this.scheduleMasonryResize();
19106
18910
  });
19107
- this.resizeObserver.observe(this.el);
18911
+ this.observeResizes();
19108
18912
  this.scheduleMasonryResize();
19109
18913
  this.warnUnusedOrder();
19110
18914
  }
@@ -19117,6 +18921,22 @@ class Gallery {
19117
18921
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19118
18922
  this.resizeObserver = undefined;
19119
18923
  }
18924
+ /**
18925
+ * Observe the host and each item for size changes. Items are observed in
18926
+ * addition to the host so masonry placement is recomputed when an item's
18927
+ * rendered height changes — most importantly when a dynamically added
18928
+ * `ion-gallery-item` finishes hydrating, which (unlike an `<img>`) emits no
18929
+ * `load` event and does not change the host's measured size while collapsed.
18930
+ */
18931
+ observeResizes() {
18932
+ const observer = this.resizeObserver;
18933
+ if (observer === undefined) {
18934
+ return;
18935
+ }
18936
+ observer.disconnect();
18937
+ observer.observe(this.el);
18938
+ this.getItems().forEach((item) => observer.observe(item));
18939
+ }
19120
18940
  /**
19121
18941
  * Listen for the load event on child elements.
19122
18942
  * When the layout is `masonry`, this listener is used to schedule a resize
@@ -19170,9 +18990,10 @@ class Gallery {
19170
18990
  return numericColumns;
19171
18991
  }
19172
18992
  /**
19173
- * Normalize a single gap value (`gap` as a number, string, or one entry from
19174
- * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
19175
- * the input cannot be interpreted as a valid CSS length.
18993
+ * Normalize a single gap value (`gap` as a number, a string such as a CSS
18994
+ * length-percentage or `var()` reference, or one entry from a `gap`
18995
+ * breakpoint map) to a CSS length string. Returns `undefined` when the
18996
+ * input cannot be interpreted as a valid CSS length or `var()` reference.
19176
18997
  */
19177
18998
  sanitizeGap(gap) {
19178
18999
  if (gap === undefined) {
@@ -19189,6 +19010,9 @@ class Gallery {
19189
19010
  if (typeof normalizedGap !== 'string') {
19190
19011
  return undefined;
19191
19012
  }
19013
+ if (isCssVariable(normalizedGap)) {
19014
+ return normalizedGap;
19015
+ }
19192
19016
  const isValidCssLength = isValidLengthPercentage(normalizedGap);
19193
19017
  return isValidCssLength ? normalizedGap : undefined;
19194
19018
  }
@@ -19269,7 +19093,7 @@ class Gallery {
19269
19093
  if (this.hasWarnedInvalidGap) {
19270
19094
  return;
19271
19095
  }
19272
- 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);
19096
+ 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);
19273
19097
  this.hasWarnedInvalidGap = true;
19274
19098
  }
19275
19099
  /**
@@ -19341,11 +19165,43 @@ class Gallery {
19341
19165
  this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
19342
19166
  }
19343
19167
  /**
19344
- * Return all directly slotted children of the gallery that can be grid items
19345
- * with inline placement styles (HTML elements and SVG elements).
19168
+ * Return the `ion-gallery-item` elements to place in the grid. Each item is a
19169
+ * direct grid cell. A direct child that is not an `ion-gallery-item` is
19170
+ * treated as a pass-through wrapper (e.g. a layout `<div>`): its box is
19171
+ * collapsed with `display: contents` so the nested items participate in the
19172
+ * gallery grid. Children that contain no `ion-gallery-item` are ignored.
19346
19173
  */
19347
19174
  getItems() {
19348
- return Array.from(this.el.children).filter((child) => { var _a; return typeof ((_a = child.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function'; });
19175
+ const items = [];
19176
+ Array.from(this.el.children).forEach((child) => {
19177
+ // Standard path: <ion-gallery-item> is a direct child of <ion-gallery>.
19178
+ if (child.matches(GALLERY_ITEM_SELECTOR)) {
19179
+ items.push(child);
19180
+ return;
19181
+ }
19182
+ // Compatibility path: a wrapper element may contain <ion-gallery-item>
19183
+ // components. Collapse the wrapper's box so the items participate in the
19184
+ // gallery grid.
19185
+ const nestedItems = Array.from(child.querySelectorAll(GALLERY_ITEM_SELECTOR));
19186
+ if (nestedItems.length === 0) {
19187
+ this.warnInvalidItems();
19188
+ return;
19189
+ }
19190
+ child.style.display = 'contents';
19191
+ items.push(...nestedItems);
19192
+ });
19193
+ return items;
19194
+ }
19195
+ /**
19196
+ * Warn when the gallery has content that is not wrapped in an
19197
+ * `ion-gallery-item` component.
19198
+ */
19199
+ warnInvalidItems() {
19200
+ if (this.hasWarnedInvalidItems) {
19201
+ return;
19202
+ }
19203
+ 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);
19204
+ this.hasWarnedInvalidItems = true;
19349
19205
  }
19350
19206
  /**
19351
19207
  * Clear the item styles for the given item element.
@@ -19363,12 +19219,19 @@ class Gallery {
19363
19219
  clearMasonryStyles() {
19364
19220
  this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
19365
19221
  }
19222
+ /**
19223
+ * Whether the item contains any images that have not finished loading.
19224
+ * Used to defer masonry placement until the rendered height is final.
19225
+ */
19226
+ hasUnloadedImages(itemEl) {
19227
+ return Array.from(itemEl.querySelectorAll('img')).some((img) => !img.complete || img.naturalHeight === 0);
19228
+ }
19366
19229
  /**
19367
19230
  * Convert a rendered item height to the number of grid rows it should span.
19368
- * Returns undefined for images that are not fully loaded yet.
19231
+ * Returns undefined when the item has images that are not fully loaded yet.
19369
19232
  */
19370
19233
  calculateRowSpan(itemEl, rowHeight, rowGap) {
19371
- if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
19234
+ if (this.hasUnloadedImages(itemEl)) {
19372
19235
  return undefined;
19373
19236
  }
19374
19237
  const height = itemEl.getBoundingClientRect().height;
@@ -19455,11 +19318,11 @@ class Gallery {
19455
19318
  const { layout } = this;
19456
19319
  const order = this.getOrder();
19457
19320
  const theme = getIonTheme(this);
19458
- return (hAsync(Host, { key: '1bf2973d22835c0dbddf3214b602f8c08b95e421', class: {
19321
+ return (hAsync(Host, { key: '2063823917f4ab8430aee0e17ae0f3a2b53341d1', class: {
19459
19322
  [theme]: true,
19460
19323
  [`gallery-layout-${layout}`]: true,
19461
19324
  [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
19462
- } }, hAsync("slot", { key: '0dea31f609f6afdb1d73ecb2d873909ffe49203f', onSlotchange: this.onSlotChange })));
19325
+ } }, hAsync("slot", { key: '1378f489afb6b05181d2513f664c4efe24ad3598', onSlotchange: this.onSlotChange })));
19463
19326
  }
19464
19327
  get el() { return getElement(this); }
19465
19328
  static get watchers() { return {
@@ -19492,6 +19355,93 @@ class Gallery {
19492
19355
  }; }
19493
19356
  }
19494
19357
 
19358
+ 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)}`;
19359
+
19360
+ /**
19361
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
19362
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
19363
+ *
19364
+ * @slot - The content placed inside of the gallery item. This is typically an
19365
+ * `img`, but can be any element (e.g. a `figure` wrapping an image and caption).
19366
+ */
19367
+ class GalleryItem {
19368
+ constructor(hostRef) {
19369
+ registerInstance(this, hostRef);
19370
+ this.hasWarnedInvalidParent = false;
19371
+ this.onSlotChange = () => {
19372
+ this.warnInvalidParent();
19373
+ };
19374
+ }
19375
+ componentWillLoad() {
19376
+ var _a;
19377
+ this.galleryEl = (_a = this.el.closest('ion-gallery')) !== null && _a !== void 0 ? _a : undefined;
19378
+ this.syncLayoutClasses();
19379
+ }
19380
+ componentDidLoad() {
19381
+ this.watchGalleryLayoutClasses();
19382
+ this.warnInvalidParent();
19383
+ }
19384
+ disconnectedCallback() {
19385
+ var _a;
19386
+ (_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19387
+ this.galleryClassObserver = undefined;
19388
+ this.galleryEl = undefined;
19389
+ }
19390
+ /**
19391
+ * Warn when the item is not a descendant of an `ion-gallery`.
19392
+ */
19393
+ warnInvalidParent() {
19394
+ if (this.hasWarnedInvalidParent || this.galleryEl !== undefined) {
19395
+ return;
19396
+ }
19397
+ printIonWarning('[ion-gallery-item] - This component should be used as a child of an "ion-gallery" component.', this.el);
19398
+ this.hasWarnedInvalidParent = true;
19399
+ }
19400
+ /**
19401
+ * Watch the parent gallery's class list so the item can react to layout
19402
+ * changes (the gallery reflects its layout as a `gallery-layout-*` class).
19403
+ */
19404
+ watchGalleryLayoutClasses() {
19405
+ var _a;
19406
+ const galleryEl = this.galleryEl;
19407
+ if (galleryEl === undefined) {
19408
+ return;
19409
+ }
19410
+ (_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19411
+ this.galleryClassObserver = new MutationObserver(() => this.syncLayoutClasses());
19412
+ this.galleryClassObserver.observe(galleryEl, {
19413
+ attributes: true,
19414
+ attributeFilter: ['class'],
19415
+ });
19416
+ }
19417
+ syncLayoutClasses() {
19418
+ var _a;
19419
+ const layout = (_a = this.galleryEl) === null || _a === void 0 ? void 0 : _a.layout;
19420
+ this.galleryLayout = layout === 'masonry' || layout === 'uniform' ? layout : undefined;
19421
+ }
19422
+ render() {
19423
+ const { galleryLayout } = this;
19424
+ const theme = getIonTheme(this);
19425
+ return (hAsync(Host, { key: 'b3de6bf2df4af01ed274188a96d9e8cd82c9f5cd', class: {
19426
+ [theme]: true,
19427
+ 'in-gallery-layout-uniform': galleryLayout === 'uniform',
19428
+ 'in-gallery-layout-masonry': galleryLayout === 'masonry',
19429
+ } }, hAsync("slot", { key: '5bef4549c5101178fec9b590cb6b553ddc5376c4', onSlotchange: this.onSlotChange })));
19430
+ }
19431
+ get el() { return getElement(this); }
19432
+ static get style() { return galleryItemCss(); }
19433
+ static get cmpMeta() { return {
19434
+ "$flags$": 265,
19435
+ "$tagName$": "ion-gallery-item",
19436
+ "$members$": {
19437
+ "galleryLayout": [32]
19438
+ },
19439
+ "$listeners$": undefined,
19440
+ "$lazyBundleId$": "-",
19441
+ "$attrsToReflect$": []
19442
+ }; }
19443
+ }
19444
+
19495
19445
  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}`;
19496
19446
 
19497
19447
  /**
@@ -19508,10 +19458,10 @@ class Grid {
19508
19458
  }
19509
19459
  render() {
19510
19460
  const theme = getIonTheme(this);
19511
- return (hAsync(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
19461
+ return (hAsync(Host, { key: 'e3320fc2fc5391d26898cc119505cd3be30dd48b', class: {
19512
19462
  [theme]: true,
19513
19463
  'grid-fixed': this.fixed,
19514
- } }, hAsync("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
19464
+ } }, hAsync("slot", { key: '2000e6b336c294aadf4585269c301d734d2fe478' })));
19515
19465
  }
19516
19466
  static get style() { return gridCss(); }
19517
19467
  static get cmpMeta() { return {
@@ -19702,14 +19652,6 @@ const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
19702
19652
  titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;
19703
19653
  });
19704
19654
  };
19705
- const createHeaderHideInteraction = (headerEl, scrollEl) => createCollapseHideInteraction({
19706
- regionEl: headerEl,
19707
- scrollEl,
19708
- slideCssVar: '--header-hide-slide-y',
19709
- contentPartnerClass: 'content-header-hide-scroll-partner',
19710
- contentHiddenClass: 'content-header-hide-scroll-hidden',
19711
- regionHiddenClass: 'header-collapse-hide-hidden',
19712
- });
19713
19655
  const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
19714
19656
  readTask(() => {
19715
19657
  const scrollTop = scrollEl.scrollTop;
@@ -19766,11 +19708,11 @@ const getRoleType = (isInsideMenu, isCondensed, theme) => {
19766
19708
  return ROLE_BANNER;
19767
19709
  };
19768
19710
 
19769
- 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}}`;
19711
+ 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}}`;
19770
19712
 
19771
- 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}`;
19713
+ 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}`;
19772
19714
 
19773
- 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}`;
19715
+ 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}`;
19774
19716
 
19775
19717
  /**
19776
19718
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -19780,7 +19722,6 @@ class Header {
19780
19722
  constructor(hostRef) {
19781
19723
  registerInstance(this, hostRef);
19782
19724
  this.inheritedAttributes = {};
19783
- this.didLoad = false;
19784
19725
  /**
19785
19726
  * If `true`, the header will have a line at the bottom.
19786
19727
  * TODO(ROU-10855): add support for this prop on ios/md themes
@@ -19811,37 +19752,25 @@ class Header {
19811
19752
  this.inheritedAttributes = inheritAriaAttributes(this.el);
19812
19753
  }
19813
19754
  componentDidLoad() {
19814
- this.didLoad = true;
19815
19755
  this.checkCollapsibleHeader();
19816
19756
  }
19817
19757
  componentDidUpdate() {
19818
19758
  this.checkCollapsibleHeader();
19819
19759
  }
19820
- connectedCallback() {
19821
- // On re-attach (didLoad already true but disconnectedCallback ran since),
19822
- // componentDidLoad will not fire again — re-run setup here.
19823
- if (this.didLoad) {
19824
- this.checkCollapsibleHeader();
19825
- }
19826
- }
19827
19760
  disconnectedCallback() {
19828
19761
  this.destroyCollapsibleHeader();
19829
19762
  }
19830
19763
  async checkCollapsibleHeader() {
19831
19764
  const theme = getIonTheme(this);
19765
+ if (theme !== 'ios') {
19766
+ return;
19767
+ }
19832
19768
  const { collapse } = this;
19833
19769
  const hasCondense = collapse === 'condense';
19834
19770
  const hasFade = collapse === 'fade';
19835
- const hasHide = collapse === 'hide';
19836
- const runIosCollapse = theme === 'ios' && (hasCondense || hasFade);
19837
- const runHide = hasHide;
19838
- if (!runIosCollapse && !runHide) {
19839
- this.destroyCollapsibleHeader();
19840
- return;
19841
- }
19842
19771
  this.destroyCollapsibleHeader();
19843
19772
  const appRootSelector = config.get('appRootSelector', 'ion-app');
19844
- if (runIosCollapse && hasCondense) {
19773
+ if (hasCondense) {
19845
19774
  const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
19846
19775
  const contentEl = pageEl ? findIonContent(pageEl) : null;
19847
19776
  // Cloned elements are always needed in iOS transition
@@ -19852,7 +19781,7 @@ class Header {
19852
19781
  });
19853
19782
  await this.setupCondenseHeader(contentEl, pageEl);
19854
19783
  }
19855
- else if (runIosCollapse && hasFade) {
19784
+ else if (hasFade) {
19856
19785
  const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
19857
19786
  const contentEl = pageEl ? findIonContent(pageEl) : null;
19858
19787
  if (!contentEl) {
@@ -19862,29 +19791,12 @@ class Header {
19862
19791
  const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
19863
19792
  await this.setupFadeHeader(contentEl, condenseHeader);
19864
19793
  }
19865
- if (runHide) {
19866
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
19867
- const contentEl = pageEl ? findIonContent(pageEl) : null;
19868
- if (!contentEl) {
19869
- printIonContentErrorMsg(this.el);
19870
- return;
19871
- }
19872
- await this.setupHideHeader(contentEl);
19873
- }
19874
- }
19875
- async setupHideHeader(contentEl) {
19876
- const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
19877
- this.headerHideCleanup = createHeaderHideInteraction(this.el, scrollEl);
19878
19794
  }
19879
19795
  destroyCollapsibleHeader() {
19880
19796
  if (this.intersectionObserver) {
19881
19797
  this.intersectionObserver.disconnect();
19882
19798
  this.intersectionObserver = undefined;
19883
19799
  }
19884
- if (this.headerHideCleanup) {
19885
- this.headerHideCleanup();
19886
- this.headerHideCleanup = undefined;
19887
- }
19888
19800
  if (this.scrollEl && this.contentScrollCallback) {
19889
19801
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
19890
19802
  this.contentScrollCallback = undefined;
@@ -19951,7 +19863,7 @@ class Header {
19951
19863
  const isCondensed = collapse === 'condense';
19952
19864
  // banner role must be at top level, so remove role if inside a menu
19953
19865
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
19954
- return (hAsync(Host, Object.assign({ key: '5cae1ff0bbc5f2035325c128a9394caf7f1459a0', role: roleType, class: {
19866
+ return (hAsync(Host, Object.assign({ key: '3395dedfd5165ba6e9f3ad1a25f0bb5b3678704a', role: roleType, class: {
19955
19867
  [theme]: true,
19956
19868
  // Used internally for styling
19957
19869
  [`header-${theme}`]: true,
@@ -19959,7 +19871,7 @@ class Header {
19959
19871
  [`header-collapse-${collapse}`]: true,
19960
19872
  [`header-translucent-${theme}`]: this.translucent,
19961
19873
  ['header-divider']: divider,
19962
- } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: '705f120951a3dd429286b66cd0b511fa267b3702', class: "header-background" }), hAsync("slot", { key: '1c7a9d474083cf92abfe88c02d363f8d420716ca' })));
19874
+ } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: 'cafeb88b6e73d64b264514ea46590fd3477b3052', class: "header-background" }), hAsync("slot", { key: 'ad681aaf866d7e7a5e5e731c0b5d6f5cc9fe94d2' })));
19963
19875
  }
19964
19876
  get el() { return getElement(this); }
19965
19877
  static get style() { return {
@@ -20310,9 +20222,9 @@ class Img {
20310
20222
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
20311
20223
  const { draggable } = inheritedAttributes;
20312
20224
  const theme = getIonTheme(this);
20313
- return (hAsync(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
20225
+ return (hAsync(Host, { key: 'ba84621055567b2a35387709d9d89b97ad853274', class: {
20314
20226
  [theme]: true,
20315
- } }, hAsync("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20227
+ } }, hAsync("img", { key: '9d6118bbf69e2cccbb0603802c03b9a0d101e2c3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20316
20228
  }
20317
20229
  get el() { return getElement(this); }
20318
20230
  static get watchers() { return {
@@ -20617,7 +20529,7 @@ class InfiniteScroll {
20617
20529
  render() {
20618
20530
  const theme = getIonTheme(this);
20619
20531
  const disabled = this.disabled;
20620
- return (hAsync(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
20532
+ return (hAsync(Host, { key: 'e3a3cde079dfd6f07e565eb462765df757cbb128', class: {
20621
20533
  [theme]: true,
20622
20534
  'infinite-scroll-loading': this.isLoading,
20623
20535
  'infinite-scroll-enabled': !disabled,
@@ -20680,11 +20592,11 @@ class InfiniteScrollContent {
20680
20592
  }
20681
20593
  render() {
20682
20594
  const theme = getIonTheme(this);
20683
- return (hAsync(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
20595
+ return (hAsync(Host, { key: '263a27297159ced042f7552a1e14b8c6aba62fa8', class: {
20684
20596
  [theme]: true,
20685
20597
  // Used internally for styling
20686
20598
  [`infinite-scroll-content-${theme}`]: true,
20687
- } }, 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())));
20599
+ } }, 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())));
20688
20600
  }
20689
20601
  static get style() { return {
20690
20602
  ionic: ionicInfiniteScrollContentMdCss(),
@@ -21432,7 +21344,7 @@ class Input {
21432
21344
  * TODO(FW-5592): Remove hasStartEndSlots condition
21433
21345
  */
21434
21346
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
21435
- return (hAsync(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses$1(this.color, {
21347
+ return (hAsync(Host, { key: '3da29d837b5abe22de740ac96c8142422fce537a', class: createColorClasses$1(this.color, {
21436
21348
  [theme]: true,
21437
21349
  'has-value': hasValue,
21438
21350
  'has-focus': hasFocus,
@@ -21445,7 +21357,7 @@ class Input {
21445
21357
  'in-item-color': hostContext('ion-item.ion-color', this.el),
21446
21358
  'input-disabled': disabled,
21447
21359
  'input-readonly': readonly,
21448
- }) }, hAsync("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
21360
+ }) }, hAsync("label", { key: '142a8230382a05938887e9c0790832218ac37697', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '953f247ea2f40545e01e0346549d9b7aa344b720', class: "native-wrapper", onClick: this.onLabelClick },
21449
21361
  /**
21450
21362
  * For the ionic theme, we render the outline container here
21451
21363
  * instead of higher up, so it can be positioned relative to
@@ -21455,14 +21367,14 @@ class Input {
21455
21367
  * <label> element, ensuring that clicking the label text
21456
21368
  * focuses the input.
21457
21369
  */
21458
- 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) => {
21370
+ 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) => {
21459
21371
  /**
21460
21372
  * This prevents mobile browsers from
21461
21373
  * blurring the input when the clear
21462
21374
  * button is activated.
21463
21375
  */
21464
21376
  ev.preventDefault();
21465
- }, 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()));
21377
+ }, 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()));
21466
21378
  }
21467
21379
  get el() { return getElement(this); }
21468
21380
  static get watchers() { return {
@@ -22227,7 +22139,7 @@ class InputOTP {
22227
22139
  const tabbableIndex = this.getTabbableIndex();
22228
22140
  const pattern = this.getPattern();
22229
22141
  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()) !== '';
22230
- return (hAsync(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses$1(color, {
22142
+ return (hAsync(Host, { key: 'f39e98cd24cbf50f7db4e891dda9499f6def7986', class: createColorClasses$1(color, {
22231
22143
  [mode]: true,
22232
22144
  'has-focus': hasFocus,
22233
22145
  [`input-otp-size-${size}`]: true,
@@ -22235,10 +22147,10 @@ class InputOTP {
22235
22147
  [`input-otp-fill-${fill}`]: true,
22236
22148
  'input-otp-disabled': disabled,
22237
22149
  'input-otp-readonly': readonly,
22238
- }) }, 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: {
22150
+ }) }, 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: {
22239
22151
  'input-otp-description': true,
22240
22152
  'input-otp-description-hidden': !hasDescription,
22241
- }, part: "description" }, hAsync("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
22153
+ }, part: "description" }, hAsync("slot", { key: '15c7c8549c1788748e1ae31bd227a7f918cb5eca' }))));
22242
22154
  }
22243
22155
  static get formAssociated() { return true; }
22244
22156
  get el() { return getElement(this); }
@@ -22386,16 +22298,16 @@ class InputPasswordToggle {
22386
22298
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
22387
22299
  const mode = getIonMode$1(this);
22388
22300
  const isPasswordVisible = type === 'text';
22389
- return (hAsync(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses$1(color, {
22301
+ return (hAsync(Host, { key: 'f11e3bf4d3255e003aec504e6dd3ee1e0caaf767', class: createColorClasses$1(color, {
22390
22302
  [mode]: true,
22391
- }) }, 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) => {
22303
+ }) }, 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) => {
22392
22304
  /**
22393
22305
  * This prevents mobile browsers from
22394
22306
  * blurring the input when the password toggle
22395
22307
  * button is activated.
22396
22308
  */
22397
22309
  ev.preventDefault();
22398
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22310
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'c0eb0e4e2f3e9553bfd519ff655064c9f62af406', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22399
22311
  }
22400
22312
  get el() { return getElement(this); }
22401
22313
  static get watchers() { return {
@@ -22770,11 +22682,11 @@ class ItemDivider {
22770
22682
  }
22771
22683
  render() {
22772
22684
  const theme = getIonTheme(this);
22773
- return (hAsync(Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: createColorClasses$1(this.color, {
22685
+ return (hAsync(Host, { key: 'dc73f348b5376faa40ba4bc6bba3d5c9e5ec5ab2', class: createColorClasses$1(this.color, {
22774
22686
  [theme]: true,
22775
22687
  'item-divider-sticky': this.sticky,
22776
22688
  item: true,
22777
- }) }, 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" }))));
22689
+ }) }, 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" }))));
22778
22690
  }
22779
22691
  get el() { return getElement(this); }
22780
22692
  static get style() { return {
@@ -22811,7 +22723,7 @@ class ItemGroup {
22811
22723
  }
22812
22724
  render() {
22813
22725
  const theme = getIonTheme(this);
22814
- return (hAsync(Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
22726
+ return (hAsync(Host, { key: '017c8f7cd0258e1864423337ddd1b1cb522f64ed', role: "group", class: {
22815
22727
  [theme]: true,
22816
22728
  // Used internally for styling
22817
22729
  [`item-group-${theme}`]: true,
@@ -22907,14 +22819,14 @@ class ItemOption {
22907
22819
  href: this.href,
22908
22820
  target: this.target,
22909
22821
  };
22910
- return (hAsync(Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: createColorClasses$1(this.color, {
22822
+ return (hAsync(Host, { key: '8f1bad23fd3ccbb9d54d57765e6731cd2ee07306', onClick: this.onClick, class: createColorClasses$1(this.color, {
22911
22823
  [theme]: true,
22912
22824
  [`item-option-${shape}`]: shape !== undefined,
22913
22825
  [`item-option-${hue}`]: hue !== undefined,
22914
22826
  'item-option-disabled': disabled,
22915
22827
  'item-option-expandable': expandable,
22916
22828
  'ion-activatable': true,
22917
- }) }, 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' }))));
22829
+ }) }, 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' }))));
22918
22830
  }
22919
22831
  get el() { return getElement(this); }
22920
22832
  static get style() { return {
@@ -22972,7 +22884,7 @@ class ItemOptions {
22972
22884
  render() {
22973
22885
  const theme = getIonTheme(this);
22974
22886
  const isEnd = isEndSide(this.side);
22975
- return (hAsync(Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
22887
+ return (hAsync(Host, { key: 'ed05ceebf2cda943ac9efea2f91b71f7e8fc55e8', class: {
22976
22888
  [theme]: true,
22977
22889
  // Used internally for styling
22978
22890
  [`item-options-${theme}`]: true,
@@ -23824,7 +23736,7 @@ class ItemSliding {
23824
23736
  }
23825
23737
  render() {
23826
23738
  const theme = getIonTheme(this);
23827
- return (hAsync(Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
23739
+ return (hAsync(Host, { key: '47de8c8a9721f9223b42d6722a9ad32f378818aa', class: {
23828
23740
  [theme]: true,
23829
23741
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
23830
23742
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -23943,13 +23855,13 @@ class Label {
23943
23855
  render() {
23944
23856
  const position = this.position;
23945
23857
  const theme = getIonTheme(this);
23946
- return (hAsync(Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: createColorClasses$1(this.color, {
23858
+ return (hAsync(Host, { key: 'b1f261db441bcb0a325a5b3e21da17764a56f17c', class: createColorClasses$1(this.color, {
23947
23859
  [theme]: true,
23948
23860
  'in-item-color': hostContext('ion-item.ion-color', this.el),
23949
23861
  [`label-${position}`]: position !== undefined,
23950
23862
  [`label-no-animate`]: this.noAnimate,
23951
23863
  'label-rtl': document.dir === 'rtl',
23952
- }) }, hAsync("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
23864
+ }) }, hAsync("slot", { key: '490444c8c0d4cf72eae3f8abfb7ed7ecc30bb213' })));
23953
23865
  }
23954
23866
  get el() { return getElement(this); }
23955
23867
  static get watchers() { return {
@@ -24029,7 +23941,7 @@ class List {
24029
23941
  const theme = getIonTheme(this);
24030
23942
  const shape = this.getShape();
24031
23943
  const { lines, inset } = this;
24032
- return (hAsync(Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
23944
+ return (hAsync(Host, { key: '9be30ff6e75e020c0db7054800cb874efef26bd8', role: "list", class: {
24033
23945
  [theme]: true,
24034
23946
  // Used internally for styling
24035
23947
  [`list-${theme}`]: true,
@@ -24079,10 +23991,10 @@ class ListHeader {
24079
23991
  render() {
24080
23992
  const { lines } = this;
24081
23993
  const theme = getIonTheme(this);
24082
- return (hAsync(Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: createColorClasses$1(this.color, {
23994
+ return (hAsync(Host, { key: '7a1632a069317285210f4aeae50a6f2ef6955c56', class: createColorClasses$1(this.color, {
24083
23995
  [theme]: true,
24084
23996
  [`list-header-lines-${lines}`]: lines !== undefined,
24085
- }) }, hAsync("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
23997
+ }) }, hAsync("div", { key: 'a9a9463f209023da222f38a78126d5aaeb2f03b9', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'e3c6ec1b588392d347844d59d338abc339e80634' }))));
24086
23998
  }
24087
23999
  static get style() { return {
24088
24000
  ionic: listHeaderIonicCss(),
@@ -24371,9 +24283,9 @@ class Loading {
24371
24283
  * Otherwise, don't set aria-labelledby.
24372
24284
  */
24373
24285
  const ariaLabelledBy = message !== undefined ? msgId : null;
24374
- return (hAsync(Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24286
+ return (hAsync(Host, Object.assign({ key: '2ffae36b20a7d7f3a752a062d90062583e31d053', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24375
24287
  zIndex: `${40000 + this.overlayIndex}`,
24376
- }, 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" })));
24288
+ }, 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" })));
24377
24289
  }
24378
24290
  get el() { return getElement(this); }
24379
24291
  static get watchers() { return {
@@ -25434,14 +25346,14 @@ class Menu {
25434
25346
  * the ionBackButton listener in the menu controller
25435
25347
  * will handle closing the menu when Escape is pressed.
25436
25348
  */
25437
- return (hAsync(Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25349
+ return (hAsync(Host, { key: '76e15d710fbbbd2e64795224decc3673fd160db0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25438
25350
  [theme]: true,
25439
25351
  [`menu-type-${type}`]: true,
25440
25352
  'menu-enabled': !disabled,
25441
25353
  [`menu-side-${side}`]: true,
25442
25354
  'menu-pane-visible': isPaneVisible,
25443
25355
  'split-pane-side': hostContext('ion-split-pane', el),
25444
- } }, 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" })));
25356
+ } }, 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" })));
25445
25357
  }
25446
25358
  get el() { return getElement(this); }
25447
25359
  static get watchers() { return {
@@ -25575,7 +25487,7 @@ class MenuButton {
25575
25487
  type: this.type,
25576
25488
  };
25577
25489
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
25578
- return (hAsync(Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25490
+ return (hAsync(Host, { key: '341ca3bfac81ce4432eef5d2fd738becd1dfb07e', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25579
25491
  [theme]: true,
25580
25492
  button: true, // ion-buttons target .button
25581
25493
  'menu-button-hidden': hidden,
@@ -25584,7 +25496,7 @@ class MenuButton {
25584
25496
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
25585
25497
  'ion-activatable': true,
25586
25498
  'ion-focusable': true,
25587
- }) }, 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" }))));
25499
+ }) }, 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" }))));
25588
25500
  }
25589
25501
  get el() { return getElement(this); }
25590
25502
  static get style() { return {
@@ -25641,10 +25553,10 @@ class MenuToggle {
25641
25553
  render() {
25642
25554
  const theme = getIonTheme(this);
25643
25555
  const hidden = this.autoHide && !this.visible;
25644
- return (hAsync(Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25556
+ return (hAsync(Host, { key: '9ef631d9ae370a8740e691d281863203bfdddc38', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25645
25557
  [theme]: true,
25646
25558
  'menu-toggle-hidden': hidden,
25647
- } }, hAsync("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
25559
+ } }, hAsync("slot", { key: 'f8d9dfc562ed625ae47ec771ef6b2ea04bc463f4' })));
25648
25560
  }
25649
25561
  static get style() { return menuToggleCss(); }
25650
25562
  static get cmpMeta() { return {
@@ -29147,20 +29059,20 @@ class Modal {
29147
29059
  const isHandleCycle = handleBehavior === 'cycle';
29148
29060
  const shape = this.getShape();
29149
29061
  const isSheetModalWithHandle = isSheetModal && showHandle;
29150
- return (hAsync(Host, Object.assign({ key: '2b38d465b74b03d87fb66d8ac87e1724ab10d0ee', "no-router": true,
29062
+ return (hAsync(Host, Object.assign({ key: '6bd3c3a93a771d6b0c22626ea50f5a1c6d16f175', "no-router": true,
29151
29063
  // Allow the modal to be navigable when the handle is focusable
29152
29064
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
29153
29065
  zIndex: `${20000 + this.overlayIndex}`,
29154
- }, 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',
29066
+ }, 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',
29155
29067
  /*
29156
29068
  role and aria-modal must be used on the
29157
29069
  same element. They must also be set inside the
29158
29070
  shadow DOM otherwise ion-button will not be highlighted
29159
29071
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
29160
29072
  */
29161
- 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",
29073
+ 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",
29162
29074
  // Prevents the handle from receiving keyboard focus when it does not cycle
29163
- 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 }))));
29075
+ 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 }))));
29164
29076
  }
29165
29077
  get el() { return getElement(this); }
29166
29078
  static get watchers() { return {
@@ -30120,7 +30032,7 @@ class Nav {
30120
30032
  }
30121
30033
  }
30122
30034
  render() {
30123
- return hAsync("slot", { key: '87188d8fb4232d448ef2ad8e3db29c3730b1ff9e' });
30035
+ return hAsync("slot", { key: '3dfe9c2a5f3ea75cb6d82b76b240733105cddfad' });
30124
30036
  }
30125
30037
  get el() { return getElement(this); }
30126
30038
  static get watchers() { return {
@@ -30201,7 +30113,7 @@ class NavLink {
30201
30113
  };
30202
30114
  }
30203
30115
  render() {
30204
- return hAsync(Host, { key: '38f3d2e7a3ae4e57ac1479436c143e6820d25cd2', onClick: this.onClick });
30116
+ return hAsync(Host, { key: '476bfb5bb6fba4f422ec40315fc3ef466d01f757', onClick: this.onClick });
30205
30117
  }
30206
30118
  get el() { return getElement(this); }
30207
30119
  static get cmpMeta() { return {
@@ -30235,9 +30147,9 @@ class Note {
30235
30147
  }
30236
30148
  render() {
30237
30149
  const theme = getIonTheme(this);
30238
- return (hAsync(Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: createColorClasses$1(this.color, {
30150
+ return (hAsync(Host, { key: '376ae1c66c19d1bdd74a2371c0639ed9e49648b5', class: createColorClasses$1(this.color, {
30239
30151
  [theme]: true,
30240
- }) }, hAsync("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
30152
+ }) }, hAsync("slot", { key: 'f8168cd88bb21c5e5a2b03c29539729fb38a19fd' })));
30241
30153
  }
30242
30154
  static get style() { return {
30243
30155
  ionic: ionicNoteMdCss(),
@@ -31003,11 +30915,11 @@ class Picker {
31003
30915
  render() {
31004
30916
  const { htmlAttributes } = this;
31005
30917
  const theme = getIonTheme(this);
31006
- return (hAsync(Host, Object.assign({ key: 'b0c1fc8eee284f03c696f0c8aaa29f4a6d7be0be', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30918
+ return (hAsync(Host, Object.assign({ key: '681ad6d20efa16f1d6c6f9a7d03caec2b17ff36e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
31007
30919
  zIndex: `${20000 + this.overlayIndex}`,
31008
30920
  }, class: Object.assign({ [theme]: true,
31009
30921
  // Used internally for styling
31010
- [`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" })));
30922
+ [`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" })));
31011
30923
  }
31012
30924
  get el() { return getElement(this); }
31013
30925
  static get watchers() { return {
@@ -31985,9 +31897,9 @@ class PickerColumnCmp {
31985
31897
  render() {
31986
31898
  const col = this.col;
31987
31899
  const theme = getIonTheme(this);
31988
- 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: {
31900
+ 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: {
31989
31901
  'max-width': this.col.columnWidth,
31990
- } }, 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))));
31902
+ } }, 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))));
31991
31903
  }
31992
31904
  get el() { return getElement(this); }
31993
31905
  static get watchers() { return {
@@ -32112,10 +32024,10 @@ class PickerColumnOption {
32112
32024
  render() {
32113
32025
  const { color, disabled, ariaLabel } = this;
32114
32026
  const theme = getIonTheme(this);
32115
- return (hAsync(Host, { key: '54c254f01017aa47aac76c0833f9ef04bf20bdc9', class: createColorClasses$1(color, {
32027
+ return (hAsync(Host, { key: 'fe9553e3157d35f5c28a3f2457715bd598ec1e00', class: createColorClasses$1(color, {
32116
32028
  [theme]: true,
32117
32029
  ['option-disabled']: disabled,
32118
- }) }, hAsync("div", { key: '36b21f1b7d9a5b05f0211ce8be90f66578641224', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '154bf9ca37ca1c6e5d34d42c16b04203e83210be' }))));
32030
+ }) }, hAsync("div", { key: '9bc334f020012537144972b5a8a1aed7c35ccec5', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'bd076e43c98ad920486230684c7f63e7e0b187f8' }))));
32119
32031
  }
32120
32032
  get el() { return getElement(this); }
32121
32033
  static get watchers() { return {
@@ -33684,9 +33596,9 @@ class Popover {
33684
33596
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
33685
33597
  const desktop = isPlatform('desktop');
33686
33598
  const enableArrow = arrow && !parentPopover;
33687
- return (hAsync(Host, Object.assign({ key: '43128f8b7e57f08a451af1a237534d0517d86eda', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33599
+ return (hAsync(Host, Object.assign({ key: '3319e6ea7524a30478985c014634403aceedab6f', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33688
33600
  zIndex: `${20000 + this.overlayIndex}`,
33689
- }, 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' })))));
33601
+ }, 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' })))));
33690
33602
  }
33691
33603
  get el() { return getElement(this); }
33692
33604
  static get watchers() { return {
@@ -33814,7 +33726,7 @@ class ProgressBar {
33814
33726
  const shape = this.getShape();
33815
33727
  // If the progress is displayed as a solid bar.
33816
33728
  const progressSolid = buffer === 1;
33817
- return (hAsync(Host, { key: '0f6202e25d884fb85d18578769f6cfa5c704e9d9', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33729
+ return (hAsync(Host, { key: '1cf02806b28a0d7b070e6f3616ea8f4c8ae4990a', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33818
33730
  [theme]: true,
33819
33731
  [`progress-bar-${type}`]: true,
33820
33732
  'progress-paused': paused,
@@ -34007,7 +33919,7 @@ class Radio {
34007
33919
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
34008
33920
  const theme = getIonTheme(this);
34009
33921
  const inItem = hostContext('ion-item', el);
34010
- return (hAsync(Host, { key: '82127b11eac97fa45886179d248c8509ca07655a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33922
+ return (hAsync(Host, { key: 'e9591254a3823435617732dcf415ea4bb5fa4d62', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
34011
33923
  [theme]: true,
34012
33924
  'in-item': inItem,
34013
33925
  'radio-checked': checked,
@@ -34018,10 +33930,10 @@ class Radio {
34018
33930
  // Focus and active styling should not apply when the radio is in an item
34019
33931
  'ion-activatable': !inItem,
34020
33932
  'ion-focusable': !inItem,
34021
- }), 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: {
33933
+ }), 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: {
34022
33934
  'label-text-wrapper': true,
34023
33935
  'label-text-wrapper-hidden': !hasLabel,
34024
- }, part: "label" }, hAsync("slot", { key: '9c26b977843398be61f1b753251d8fe40d65702a' })), hAsync("div", { key: '336b2d6aeb5e86dc1d994ac1eac52634f5da5b9c', class: "native-wrapper" }, this.renderRadioControl()))));
33936
+ }, part: "label" }, hAsync("slot", { key: 'a77d60be10ece9c80bab6e5c2a24533eede95362' })), hAsync("div", { key: 'e687dc6686b0748a1a3337cd87a01c01315c0f22', class: "native-wrapper" }, this.renderRadioControl()))));
34025
33937
  }
34026
33938
  get el() { return getElement(this); }
34027
33939
  static get watchers() { return {
@@ -34291,10 +34203,10 @@ class RadioGroup {
34291
34203
  const { label, labelId, el, name, value } = this;
34292
34204
  const theme = getIonTheme(this);
34293
34205
  renderHiddenInput(true, el, name, value, false);
34294
- return (hAsync(Host, { key: 'c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e', class: {
34206
+ return (hAsync(Host, { key: '8a57b258087569c2fb13ddaa6e83e06822c05a4d', class: {
34295
34207
  [theme]: true,
34296
34208
  'in-list': hostContext('ion-list', el),
34297
- }, 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' })));
34209
+ }, 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' })));
34298
34210
  }
34299
34211
  get el() { return getElement(this); }
34300
34212
  static get watchers() { return {
@@ -35144,7 +35056,7 @@ class Range {
35144
35056
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
35145
35057
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
35146
35058
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
35147
- return (hAsync(Host, { key: '6c11f7ad176a00ca5368be9ba46c29f6a9aa02bb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
35059
+ return (hAsync(Host, { key: '0f39669a81cfb08a3aca6998b95bda68f5076306', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
35148
35060
  [theme]: true,
35149
35061
  'in-item': inItem,
35150
35062
  'range-disabled': disabled,
@@ -35158,10 +35070,10 @@ class Range {
35158
35070
  'range-item-end-adjustment': needsEndAdjustment,
35159
35071
  'range-value-min': valueAtMin,
35160
35072
  'range-value-max': valueAtMax,
35161
- }) }, hAsync("label", { key: '4ac202cf5fd17a9f69e288508e89cfe266a2c8f2', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '1261d51ce247e066e5005f4aaa7b474ae0ddd421', class: {
35073
+ }) }, hAsync("label", { key: 'c1615da8ac01fccb650a8d1eb6b6b69562634e2f', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'ba530e76d0253f457b04bbd8403d9a02ac859cfe', class: {
35162
35074
  'label-text-wrapper': true,
35163
35075
  'label-text-wrapper-hidden': !hasLabel,
35164
- }, 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" })))));
35076
+ }, 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" })))));
35165
35077
  }
35166
35078
  get el() { return getElement(this); }
35167
35079
  static get watchers() { return {
@@ -36236,7 +36148,7 @@ class Refresher {
36236
36148
  }
36237
36149
  render() {
36238
36150
  const theme = getIonTheme(this);
36239
- return (hAsync(Host, { key: 'd2671f7850b565e7a6fc5b3ff15b2410bcf7cb32', slot: "fixed", class: {
36151
+ return (hAsync(Host, { key: '5761384ab0eb88600ad036b6fdbebf8e5150e6b8', slot: "fixed", class: {
36240
36152
  [theme]: true,
36241
36153
  // Used internally for styling
36242
36154
  [`refresher-${theme}`]: true,
@@ -36475,9 +36387,9 @@ class RefresherContent {
36475
36387
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
36476
36388
  const theme = getIonTheme(this);
36477
36389
  const arrowIcon = theme === 'ionic' ? caretLeftFillSvg : caretBackSharp;
36478
- return (hAsync(Host, { key: '684bf1189acba94c502e2bb421f0b65313c3e9f9', class: {
36390
+ return (hAsync(Host, { key: '3d2d138e485b3b2beae47b9ea4e140f0b9647434', class: {
36479
36391
  [theme]: true,
36480
- } }, 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())));
36392
+ } }, 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())));
36481
36393
  }
36482
36394
  get el() { return getElement(this); }
36483
36395
  static get style() { return {
@@ -36546,9 +36458,9 @@ class Reorder {
36546
36458
  render() {
36547
36459
  const { reorderHandleIcon } = this;
36548
36460
  const theme = getIonTheme(this);
36549
- return (hAsync(Host, { key: '2a30643d0c5dbebab97a7aca68c165ee79ceed33', class: {
36461
+ return (hAsync(Host, { key: 'bc0b4cd34db6dfe794ab66a785d406bfc02236c5', class: {
36550
36462
  [theme]: true,
36551
- } }, hAsync("slot", { key: '9ac45a0cc21aea6ed0ec03aa12334886219b1051' }, hAsync("ion-icon", { key: '6d6789a718db4f252c6b3b4484148be2a65c80b8', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36463
+ } }, hAsync("slot", { key: '28672768be8598b7cb47b7b2837b77afbc2c2e14' }, hAsync("ion-icon", { key: '03b6620768da18a6f8cb0c55e94b85a53cbab66a', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36552
36464
  }
36553
36465
  get el() { return getElement(this); }
36554
36466
  static get style() { return {
@@ -36824,7 +36736,7 @@ class ReorderGroup {
36824
36736
  }
36825
36737
  render() {
36826
36738
  const theme = getIonTheme(this);
36827
- return (hAsync(Host, { key: 'f618089290a47bae34bcaaed968c3f8f4daa827f', class: {
36739
+ return (hAsync(Host, { key: 'c095e5428be9f446f245d37a12653978bb2bc2b6', class: {
36828
36740
  [theme]: true,
36829
36741
  'reorder-enabled': !this.disabled,
36830
36742
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -36950,7 +36862,7 @@ class RippleEffect {
36950
36862
  }
36951
36863
  render() {
36952
36864
  const theme = getIonTheme(this);
36953
- return (hAsync(Host, { key: 'f4db39623cfd1bdc773e222b2dd9ed52a26cc685', role: "presentation", class: {
36865
+ return (hAsync(Host, { key: '51fe7517d41c643bd4e746f366f513c42dac17dc', role: "presentation", class: {
36954
36866
  [theme]: true,
36955
36867
  unbounded: this.unbounded,
36956
36868
  } }));
@@ -37935,10 +37847,10 @@ class RouterLink {
37935
37847
  rel: this.rel,
37936
37848
  target: this.target,
37937
37849
  };
37938
- return (hAsync(Host, { key: '989574921f3bf06e4e5ad4e98ea3cce2e5c7165e', onClick: this.onClick, class: createColorClasses$1(this.color, {
37850
+ return (hAsync(Host, { key: '84efbafddc586ee3f616d4e1a13118c04d9b2753', onClick: this.onClick, class: createColorClasses$1(this.color, {
37939
37851
  [theme]: true,
37940
37852
  'ion-activatable': true,
37941
- }) }, hAsync("a", Object.assign({ key: 'ee72dba91cc13ca4f251ba6bb5a8b7bf54b6f88d' }, attrs), hAsync("slot", { key: '8e8b5afd795bb213b8765f731463e0588799b001' }))));
37853
+ }) }, hAsync("a", Object.assign({ key: 'e8c7cda4c00ec45548ea52b632bc4adb07f9460c' }, attrs), hAsync("slot", { key: '133bf1203a3e218e3868b4cfda00bb753ecea946' }))));
37942
37854
  }
37943
37855
  static get style() { return routerLinkCss(); }
37944
37856
  static get cmpMeta() { return {
@@ -38138,7 +38050,7 @@ class RouterOutlet {
38138
38050
  return true;
38139
38051
  }
38140
38052
  render() {
38141
- return hAsync("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
38053
+ return hAsync("slot", { key: '56e3d06ed939755796058e30ef19fbc7f7cb490d' });
38142
38054
  }
38143
38055
  get el() { return getElement(this); }
38144
38056
  static get watchers() { return {
@@ -38178,9 +38090,9 @@ class Row {
38178
38090
  }
38179
38091
  render() {
38180
38092
  const theme = getIonTheme(this);
38181
- return (hAsync(Host, { key: '64ff6346d95be8d99d6500a6263067081f3fe254', class: {
38093
+ return (hAsync(Host, { key: '3a3c40062d2d0487c61dedbb172215b87bb425b1', class: {
38182
38094
  [theme]: true,
38183
- } }, hAsync("slot", { key: 'e9b4c111f3a49515a721bf679ef2f1a039c9822a' })));
38095
+ } }, hAsync("slot", { key: '164f457f6f7853ed8f7279d20bc6ede6cf9d3e5c' })));
38184
38096
  }
38185
38097
  static get style() { return rowCss(); }
38186
38098
  static get cmpMeta() { return {
@@ -38739,8 +38651,8 @@ class Searchbar {
38739
38651
  const shouldShowCancelButton = this.shouldShowCancelButton();
38740
38652
  const shape = this.getShape();
38741
38653
  const size = this.getSize();
38742
- 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))));
38743
- return (hAsync(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38654
+ 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))));
38655
+ return (hAsync(Host, { key: '287a9c6ec7e54f621759224922003b5ce6c0fb25', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38744
38656
  [theme]: true,
38745
38657
  'searchbar-animated': animated,
38746
38658
  'searchbar-disabled': this.disabled,
@@ -38754,14 +38666,14 @@ class Searchbar {
38754
38666
  [`searchbar-shape-${shape}`]: shape !== undefined,
38755
38667
  [`searchbar-size-${size}`]: size !== undefined,
38756
38668
  'in-toolbar': hostContext('ion-toolbar', this.el),
38757
- }) }, 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) => {
38669
+ }) }, 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) => {
38758
38670
  /**
38759
38671
  * This prevents mobile browsers from
38760
38672
  * blurring the input when the clear
38761
38673
  * button is activated.
38762
38674
  */
38763
38675
  ev.preventDefault();
38764
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38676
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6a9be85be51de19f84a852c43f93c46fb92c8d1a', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38765
38677
  }
38766
38678
  get el() { return getElement(this); }
38767
38679
  static get watchers() { return {
@@ -39376,14 +39288,14 @@ class Segment {
39376
39288
  }
39377
39289
  render() {
39378
39290
  const theme = getIonTheme(this);
39379
- return (hAsync(Host, { key: '2c0631392507f2e903670070232029928470bf11', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39291
+ return (hAsync(Host, { key: '65c576c0bb9ff0602793f75321d676a34b306b3b', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39380
39292
  [theme]: true,
39381
39293
  'in-toolbar': hostContext('ion-toolbar', this.el),
39382
39294
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
39383
39295
  'segment-activated': this.activated,
39384
39296
  'segment-disabled': this.disabled,
39385
39297
  'segment-scrollable': this.scrollable,
39386
- }) }, hAsync("slot", { key: 'ed99c28b8976c4d51ad12089680cb8fb51d835a7', onSlotchange: this.onSlottedItemsChange })));
39298
+ }) }, hAsync("slot", { key: '210750a65ccada549bccf026871477ee2b7bdc69', onSlotchange: this.onSlottedItemsChange })));
39387
39299
  }
39388
39300
  get el() { return getElement(this); }
39389
39301
  static get watchers() { return {
@@ -39535,7 +39447,7 @@ class SegmentButton {
39535
39447
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
39536
39448
  const theme = getIonTheme(this);
39537
39449
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
39538
- return (hAsync(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
39450
+ return (hAsync(Host, { key: 'da5c8352e5e0f3a01211edbc39c5043cadc5b06f', class: {
39539
39451
  [theme]: true,
39540
39452
  'in-toolbar': hostContext('ion-toolbar', this.el),
39541
39453
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -39551,7 +39463,7 @@ class SegmentButton {
39551
39463
  'ion-activatable': true,
39552
39464
  'ion-activatable-instant': true,
39553
39465
  'ion-focusable': true,
39554
- } }, 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" }))));
39466
+ } }, 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" }))));
39555
39467
  }
39556
39468
  get el() { return getElement(this); }
39557
39469
  static get watchers() { return {
@@ -39589,7 +39501,7 @@ class SegmentContent {
39589
39501
  registerInstance(this, hostRef);
39590
39502
  }
39591
39503
  render() {
39592
- return (hAsync(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, hAsync("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
39504
+ return (hAsync(Host, { key: '2f43cadcbcb1a9423b30e7abc169ff923a8c431f' }, hAsync("slot", { key: 'c3a6d3e9c336f5124cdec9f37ef516324558073c' })));
39593
39505
  }
39594
39506
  static get style() { return segmentContentCss(); }
39595
39507
  static get cmpMeta() { return {
@@ -39717,11 +39629,11 @@ class SegmentView {
39717
39629
  }
39718
39630
  render() {
39719
39631
  const { disabled, isManualScroll, swipeGesture } = this;
39720
- return (hAsync(Host, { key: '48ce45ca6c45d4bbc804390c31a43729a60abb8a', class: {
39632
+ return (hAsync(Host, { key: '8d1aa594c5674bca376ee3e9b18b60b0925dd875', class: {
39721
39633
  'segment-view-disabled': disabled,
39722
39634
  'segment-view-scroll-disabled': isManualScroll === false,
39723
39635
  'segment-view-swipe-disabled': swipeGesture === false,
39724
- } }, hAsync("slot", { key: 'e248ce5b24b355bd6b51cbfd25741addf4ffd4fb' })));
39636
+ } }, hAsync("slot", { key: '6375fa794ae615b74a70968718aadefa0a9fc1d6' })));
39725
39637
  }
39726
39638
  get el() { return getElement(this); }
39727
39639
  static get style() { return {
@@ -40657,7 +40569,7 @@ class Select {
40657
40569
  * TODO(FW-5592): Remove hasStartEndSlots condition
40658
40570
  */
40659
40571
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
40660
- return (hAsync(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses$1(this.color, {
40572
+ return (hAsync(Host, { key: 'c8fc8ffc5e66fa0deef9556f365d8d95ff652b5d', onClick: this.onClick, class: createColorClasses$1(this.color, {
40661
40573
  [theme]: true,
40662
40574
  'in-item': inItem,
40663
40575
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -40676,7 +40588,7 @@ class Select {
40676
40588
  [`select-shape-${shape}`]: shape !== undefined,
40677
40589
  [`select-label-placement-${labelPlacement}`]: true,
40678
40590
  [`select-size-${size}`]: size !== undefined,
40679
- }) }, 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" },
40591
+ }) }, 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" },
40680
40592
  /**
40681
40593
  * For the ionic theme, we render the outline container here
40682
40594
  * instead of higher up, so it can be positioned relative to
@@ -40686,7 +40598,7 @@ class Select {
40686
40598
  * <label> element, ensuring that clicking the label text
40687
40599
  * focuses the select.
40688
40600
  */
40689
- 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()));
40601
+ 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()));
40690
40602
  }
40691
40603
  get el() { return getElement(this); }
40692
40604
  static get watchers() { return {
@@ -41078,7 +40990,7 @@ class SelectModal {
41078
40990
  });
41079
40991
  }
41080
40992
  render() {
41081
- 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()))));
40993
+ 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()))));
41082
40994
  }
41083
40995
  get el() { return getElement(this); }
41084
40996
  static get style() { return {
@@ -41123,7 +41035,7 @@ class SelectOption {
41123
41035
  }
41124
41036
  render() {
41125
41037
  const theme = getIonTheme(this);
41126
- return (hAsync(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
41038
+ return (hAsync(Host, { key: 'd7baa96e166b66c8f14c97e56674db4dfec2152c', class: {
41127
41039
  [theme]: true,
41128
41040
  }, role: "option", id: this.inputId }));
41129
41041
  }
@@ -41292,9 +41204,9 @@ class SelectPopover {
41292
41204
  const { header, message, options, subHeader } = this;
41293
41205
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
41294
41206
  const theme = getIonTheme(this);
41295
- return (hAsync(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
41207
+ return (hAsync(Host, { key: '47062077a192fb05f662f30c68e9c12323a69e47', class: {
41296
41208
  [theme]: true,
41297
- } }, 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))));
41209
+ } }, 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))));
41298
41210
  }
41299
41211
  get el() { return getElement(this); }
41300
41212
  static get style() { return {
@@ -41349,11 +41261,11 @@ class SkeletonText {
41349
41261
  const animated = this.animated && config.getBoolean('animated', true);
41350
41262
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
41351
41263
  const theme = getIonTheme(this);
41352
- return (hAsync(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
41264
+ return (hAsync(Host, { key: '370451ee8963b776079f5df365f7bbd70a53b270', class: {
41353
41265
  [theme]: true,
41354
41266
  'skeleton-text-animated': animated,
41355
41267
  'in-media': inMedia,
41356
- } }, hAsync("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
41268
+ } }, hAsync("span", { key: '2b861b4ec86cbd61927ab7b81b13517c99dc94c7' }, "\u00A0")));
41357
41269
  }
41358
41270
  get el() { return getElement(this); }
41359
41271
  static get style() { return skeletonTextCss(); }
@@ -41426,7 +41338,7 @@ class Spinner {
41426
41338
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
41427
41339
  }
41428
41340
  }
41429
- return (hAsync(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses$1(self.color, {
41341
+ return (hAsync(Host, { key: 'b6559d1626b56a1c63580862263a15798f7d3f71', class: createColorClasses$1(self.color, {
41430
41342
  [theme]: true,
41431
41343
  [`spinner-${spinnerName}`]: true,
41432
41344
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -41538,12 +41450,12 @@ class SplitPane {
41538
41450
  }
41539
41451
  render() {
41540
41452
  const theme = getIonTheme(this);
41541
- return (hAsync(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
41453
+ return (hAsync(Host, { key: 'b933156f8f9d8ce418ff0d39526967f9653d6639', class: {
41542
41454
  [theme]: true,
41543
41455
  // Used internally for styling
41544
41456
  [`split-pane-${theme}`]: true,
41545
41457
  'split-pane-visible': this.visible,
41546
- } }, hAsync("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
41458
+ } }, hAsync("slot", { key: '3ec0a11e5506386747dc972ccb094359ca975bae' })));
41547
41459
  }
41548
41460
  get el() { return getElement(this); }
41549
41461
  static get watchers() { return {
@@ -41620,10 +41532,10 @@ class Tab {
41620
41532
  }
41621
41533
  render() {
41622
41534
  const { tab, active, component } = this;
41623
- return (hAsync(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41535
+ return (hAsync(Host, { key: '8b978f848d43898feafa7daa3e3d9819be833038', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41624
41536
  'ion-page': component === undefined,
41625
41537
  'tab-hidden': !active,
41626
- } }, hAsync("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
41538
+ } }, hAsync("slot", { key: '96a92d86cecc8c9ef4f11d310f7f87bb99ce4e50' })));
41627
41539
  }
41628
41540
  get el() { return getElement(this); }
41629
41541
  static get watchers() { return {
@@ -41830,7 +41742,7 @@ class TabBar {
41830
41742
  const theme = getIonTheme(this);
41831
41743
  const shape = this.getShape();
41832
41744
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
41833
- return (hAsync(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41745
+ return (hAsync(Host, { key: '16cd11a815d777a7517150b49b57a204c83c3c37', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41834
41746
  [theme]: true,
41835
41747
  'tab-bar-translucent': translucent,
41836
41748
  'tab-bar-hidden': shouldHide,
@@ -41838,7 +41750,7 @@ class TabBar {
41838
41750
  'tab-bar-scroll-hidden': scrollHidden,
41839
41751
  [`tab-bar-${expand}`]: true,
41840
41752
  [`tab-bar-${shape}`]: shape !== undefined,
41841
- }) }, hAsync("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
41753
+ }) }, hAsync("slot", { key: 'dfdff308f24b3addaf18528a8d869b3fc64306d1' })));
41842
41754
  }
41843
41755
  get el() { return getElement(this); }
41844
41756
  static get watchers() { return {
@@ -41966,7 +41878,7 @@ class TabButton {
41966
41878
  rel,
41967
41879
  target,
41968
41880
  };
41969
- return (hAsync(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41881
+ return (hAsync(Host, { key: 'e4d3aaefcdc42677f7818c51ec1ec0a9cbcf8bcf', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41970
41882
  [theme]: true,
41971
41883
  'tab-selected': selected,
41972
41884
  'tab-disabled': disabled,
@@ -41979,7 +41891,7 @@ class TabButton {
41979
41891
  'ion-selectable': true,
41980
41892
  [`tab-button-shape-${shape}`]: shape !== undefined,
41981
41893
  'ion-focusable': true,
41982
- } }, 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" }))));
41894
+ } }, 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" }))));
41983
41895
  }
41984
41896
  get el() { return getElement(this); }
41985
41897
  static get style() { return {
@@ -42175,7 +42087,7 @@ class Tabs {
42175
42087
  return Array.from(this.el.querySelectorAll('ion-tab'));
42176
42088
  }
42177
42089
  render() {
42178
- 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" })));
42090
+ 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" })));
42179
42091
  }
42180
42092
  get el() { return getElement(this); }
42181
42093
  static get style() { return tabsCss(); }
@@ -42216,9 +42128,9 @@ class Text {
42216
42128
  }
42217
42129
  render() {
42218
42130
  const theme = getIonTheme(this);
42219
- return (hAsync(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses$1(this.color, {
42131
+ return (hAsync(Host, { key: '8fc5565ce579f8e2a9eddbaa7c93264291080bce', class: createColorClasses$1(this.color, {
42220
42132
  [theme]: true,
42221
- }) }, hAsync("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
42133
+ }) }, hAsync("slot", { key: '5be1d661ee3a6f1f9d9428b59e830672faf475b1' })));
42222
42134
  }
42223
42135
  static get style() { return textCss(); }
42224
42136
  static get cmpMeta() { return {
@@ -42782,7 +42694,7 @@ class Textarea {
42782
42694
  * TODO(FW-5592): Remove hasStartEndSlots condition
42783
42695
  */
42784
42696
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
42785
- return (hAsync(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses$1(this.color, {
42697
+ return (hAsync(Host, { key: 'a67ef5f3107776dcd8490bdd2af4a373ae422899', class: createColorClasses$1(this.color, {
42786
42698
  [theme]: true,
42787
42699
  'has-value': hasValue,
42788
42700
  'has-focus': hasFocus,
@@ -42794,7 +42706,7 @@ class Textarea {
42794
42706
  'in-item': inItem,
42795
42707
  'textarea-disabled': disabled,
42796
42708
  'textarea-readonly': readonly,
42797
- }) }, hAsync("label", { key: '3d21eab560550527de015d36b1c71761792aa516', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '5fe9ec91ac5560d2ebbb93751dd770fe17e5f839', class: "textarea-wrapper-inner" },
42709
+ }) }, hAsync("label", { key: '7a8605454eb66d87a4b49ffd28e609a633eae09c', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '8b24d96089d11f659dbd5adfcbf317ec34742333', class: "textarea-wrapper-inner" },
42798
42710
  /**
42799
42711
  * For the ionic theme, we render the outline container here
42800
42712
  * instead of higher up, so it can be positioned relative to
@@ -42804,7 +42716,7 @@ class Textarea {
42804
42716
  * <label> element, ensuring that clicking the label text
42805
42717
  * focuses the textarea.
42806
42718
  */
42807
- 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()));
42719
+ 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()));
42808
42720
  }
42809
42721
  static get delegatesFocus() { return true; }
42810
42722
  static get formAssociated() { return true; }
@@ -42888,9 +42800,9 @@ class Thumbnail {
42888
42800
  }
42889
42801
  render() {
42890
42802
  const theme = getIonTheme(this);
42891
- return (hAsync(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
42803
+ return (hAsync(Host, { key: 'fdf9d92949a1e8cf6faded77ffed084f74fc040b', class: {
42892
42804
  [theme]: true,
42893
- } }, hAsync("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
42805
+ } }, hAsync("slot", { key: 'e1b1439c035d9a9503efd1c1a04aed9f4e8e0af7' })));
42894
42806
  }
42895
42807
  static get style() { return thumbnailCss(); }
42896
42808
  static get cmpMeta() { return {
@@ -43774,9 +43686,9 @@ class Toast {
43774
43686
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
43775
43687
  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);
43776
43688
  }
43777
- return (hAsync(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
43689
+ return (hAsync(Host, Object.assign({ key: 'f0d62f099dd68f8f541110a60695c2a083c6a4d5', tabindex: "-1" }, this.htmlAttributes, { style: {
43778
43690
  zIndex: `${60000 + this.overlayIndex}`,
43779
- }, 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')))));
43691
+ }, 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')))));
43780
43692
  }
43781
43693
  get el() { return getElement(this); }
43782
43694
  static get watchers() { return {
@@ -44152,7 +44064,7 @@ class Toggle {
44152
44064
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
44153
44065
  const isIonicTheme = theme === 'ionic';
44154
44066
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
44155
- 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, {
44067
+ 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, {
44156
44068
  [theme]: true,
44157
44069
  'in-item': hostContext('ion-item', el),
44158
44070
  'toggle-activated': activated,
@@ -44164,10 +44076,10 @@ class Toggle {
44164
44076
  [`toggle-${rtl}`]: true,
44165
44077
  'ion-activatable': isIonicTheme,
44166
44078
  'ion-focusable': isIonicTheme,
44167
- }) }, 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: {
44079
+ }) }, 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: {
44168
44080
  'label-text-wrapper': true,
44169
44081
  'label-text-wrapper-hidden': !hasLabel,
44170
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), hAsync("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
44082
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c86e28aca1011a3d5a453b92ddc8b6d1ab049f0b' }), this.renderHintText()), hAsync("div", { key: '80390009e2a3d1ad699e1b698df725449c8fab53', class: "native-wrapper" }, this.renderToggleControl()))));
44171
44083
  }
44172
44084
  get el() { return getElement(this); }
44173
44085
  static get watchers() { return {
@@ -44459,11 +44371,11 @@ class Toolbar {
44459
44371
  Object.assign(childStyles, style);
44460
44372
  });
44461
44373
  const titlePlacement = this.getTitlePlacement();
44462
- return (hAsync(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44374
+ return (hAsync(Host, { key: 'bcb621674157410d7eaeb006779bdd677346587e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44463
44375
  [theme]: true,
44464
44376
  'in-toolbar': hostContext('ion-toolbar', this.el),
44465
44377
  [`toolbar-title-placement-${titlePlacement}`]: true,
44466
- })), 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 }))));
44378
+ })), 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 }))));
44467
44379
  }
44468
44380
  get el() { return getElement(this); }
44469
44381
  static get watchers() { return {
@@ -44522,11 +44434,11 @@ class ToolbarTitle {
44522
44434
  render() {
44523
44435
  const theme = getIonTheme(this);
44524
44436
  const size = this.getSize();
44525
- return (hAsync(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses$1(this.color, {
44437
+ return (hAsync(Host, { key: 'd64e86bed418cba707d4a26c9274f18ed06c0e9e', class: createColorClasses$1(this.color, {
44526
44438
  [theme]: true,
44527
44439
  [`title-${size}`]: true,
44528
44440
  'title-rtl': document.dir === 'rtl',
44529
- }) }, hAsync("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, hAsync("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
44441
+ }) }, hAsync("div", { key: '386a71e974cde0bfbf5b655d69ed5f718de8ce48', class: "toolbar-title" }, hAsync("slot", { key: '8aa804c9e1b11574a42268805d3117a085e699b4' }))));
44530
44442
  }
44531
44443
  get el() { return getElement(this); }
44532
44444
  static get watchers() { return {
@@ -44583,6 +44495,7 @@ registerComponents([
44583
44495
  FabList,
44584
44496
  Footer,
44585
44497
  Gallery,
44498
+ GalleryItem,
44586
44499
  Grid,
44587
44500
  Header,
44588
44501
  Icon,