@ionic/core 8.8.7-dev.11778599050.191a48e3 → 8.8.7-dev.11778702595.1d38f927

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 (308) 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-col.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-gallery.d.ts +11 -0
  12. package/components/ion-gallery.js +4 -0
  13. package/components/ion-grid.js +1 -1
  14. package/components/ion-header.js +1 -1
  15. package/components/ion-img.js +1 -1
  16. package/components/ion-infinite-scroll-content.js +1 -1
  17. package/components/ion-infinite-scroll.js +1 -1
  18. package/components/ion-input-otp.js +1 -1
  19. package/components/ion-input-password-toggle.js +1 -1
  20. package/components/ion-input.js +1 -1
  21. package/components/ion-item-divider.js +1 -1
  22. package/components/ion-item-group.js +1 -1
  23. package/components/ion-item-option.js +1 -1
  24. package/components/ion-item-options.js +1 -1
  25. package/components/ion-item-sliding.js +1 -1
  26. package/components/ion-item.js +1 -1
  27. package/components/ion-label.js +1 -1
  28. package/components/ion-list-header.js +1 -1
  29. package/components/ion-list.js +1 -1
  30. package/components/ion-loading.js +1 -1
  31. package/components/ion-menu-button.js +1 -1
  32. package/components/ion-menu-toggle.js +1 -1
  33. package/components/ion-menu.js +1 -1
  34. package/components/ion-modal.js +1 -1
  35. package/components/ion-nav-link.js +1 -1
  36. package/components/ion-nav.js +1 -1
  37. package/components/ion-note.js +1 -1
  38. package/components/ion-picker-column-option.js +1 -1
  39. package/components/ion-picker-legacy-column.js +1 -1
  40. package/components/ion-picker-legacy.js +1 -1
  41. package/components/ion-popover.js +1 -1
  42. package/components/ion-progress-bar.js +1 -1
  43. package/components/ion-radio-group.js +1 -1
  44. package/components/ion-radio.js +1 -1
  45. package/components/ion-range.js +1 -1
  46. package/components/ion-refresher-content.js +1 -1
  47. package/components/ion-refresher.js +1 -1
  48. package/components/ion-reorder-group.js +1 -1
  49. package/components/ion-reorder.js +1 -1
  50. package/components/ion-ripple-effect.js +1 -1
  51. package/components/ion-router-link.js +1 -1
  52. package/components/ion-router-outlet.js +1 -1
  53. package/components/ion-row.js +1 -1
  54. package/components/ion-searchbar.js +1 -1
  55. package/components/ion-segment-button.js +1 -1
  56. package/components/ion-segment-content.js +1 -1
  57. package/components/ion-segment-view.js +1 -1
  58. package/components/ion-segment.js +1 -1
  59. package/components/ion-select-modal.js +1 -1
  60. package/components/ion-select-option.js +1 -1
  61. package/components/ion-select-popover.js +1 -1
  62. package/components/ion-select.js +1 -1
  63. package/components/ion-skeleton-text.js +1 -1
  64. package/components/ion-spinner.js +1 -1
  65. package/components/ion-split-pane.js +1 -1
  66. package/components/ion-tab-bar.js +1 -1
  67. package/components/ion-tab-button.js +1 -1
  68. package/components/ion-tab.js +1 -1
  69. package/components/ion-tabs.js +1 -1
  70. package/components/ion-text.js +1 -1
  71. package/components/ion-textarea.js +1 -1
  72. package/components/ion-thumbnail.js +1 -1
  73. package/components/ion-title.js +1 -1
  74. package/components/ion-toast.js +1 -1
  75. package/components/ion-toggle.js +1 -1
  76. package/components/ion-toolbar.js +1 -1
  77. package/components/p-B2rpt1JV.js +4 -0
  78. package/components/p-B6zr9RZN.js +4 -0
  79. package/components/{p-Brxa0j7O.js → p-B71c6yUH.js} +1 -1
  80. package/components/{p-C2cZvGcF.js → p-BFbsici0.js} +1 -1
  81. package/components/{p-CoarhFWH.js → p-BLCuPAtN.js} +1 -1
  82. package/components/{p-GnGGIfCd.js → p-BRWWcnBq.js} +1 -1
  83. package/components/{p-BfHB6wX_.js → p-BXcCGjEc.js} +1 -1
  84. package/components/{p-BU8N7ZrK.js → p-BqImG3uk.js} +1 -1
  85. package/components/{p-D5lMX0xt.js → p-C8ktKu9j.js} +1 -1
  86. package/components/{p-BhfW3d9j.js → p-CIoAIKEr.js} +1 -1
  87. package/components/p-CN-WzkJE.js +4 -0
  88. package/components/{p-CnwZE7CW.js → p-CoFqDNc5.js} +1 -1
  89. package/components/{p-TpZHKDyk.js → p-DAv9P_LE.js} +1 -1
  90. package/components/{p-CeYwuysM.js → p-DH_9VCbD.js} +1 -1
  91. package/components/{p-CdYTq34D.js → p-DTtRWhIZ.js} +1 -1
  92. package/components/{p-C-_EGKki.js → p-DXUyXgVL.js} +1 -1
  93. package/components/{p-BTYqyHph.js → p-Di5rHO3q.js} +1 -1
  94. package/components/{p-D39cV-un.js → p-Dmuy6xyk.js} +1 -1
  95. package/components/{p-BtAlyZ0b.js → p-IMXp2Inn.js} +1 -1
  96. package/components/{p-DAeMHNER.js → p-TR4ubkPu.js} +1 -1
  97. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  98. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-col_3.cjs.entry.js +8 -6
  100. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  101. package/dist/cjs/ion-gallery.cjs.entry.js +510 -0
  102. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  104. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  105. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  106. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  107. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  108. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  109. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  111. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  112. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  115. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  116. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  119. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  121. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  123. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  124. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  126. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  127. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  128. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  129. package/dist/cjs/ion-split-pane.cjs.entry.js +3 -2
  130. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  131. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  132. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  133. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  134. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  135. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  136. package/dist/cjs/ionic.cjs.js +1 -1
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/collection/collection-manifest.json +6 -0
  139. package/dist/collection/components/col/col.js +3 -2
  140. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  141. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  142. package/dist/collection/components/gallery/gallery.css +100 -0
  143. package/dist/collection/components/gallery/gallery.js +595 -0
  144. package/dist/collection/components/gallery/test/utils.js +100 -0
  145. package/dist/collection/components/grid/grid.js +2 -2
  146. package/dist/collection/components/header/header.js +2 -2
  147. package/dist/collection/components/img/img.js +2 -2
  148. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  149. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  150. package/dist/collection/components/input/input.js +4 -4
  151. package/dist/collection/components/input-otp/input-otp.js +3 -3
  152. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  153. package/dist/collection/components/item-divider/item-divider.js +2 -2
  154. package/dist/collection/components/item-group/item-group.js +1 -1
  155. package/dist/collection/components/item-option/item-option.js +2 -2
  156. package/dist/collection/components/item-options/item-options.js +1 -1
  157. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  158. package/dist/collection/components/label/label.js +2 -2
  159. package/dist/collection/components/list/list.js +1 -1
  160. package/dist/collection/components/list-header/list-header.js +2 -2
  161. package/dist/collection/components/loading/loading.js +2 -2
  162. package/dist/collection/components/menu/menu.js +2 -2
  163. package/dist/collection/components/menu-button/menu-button.js +2 -2
  164. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  165. package/dist/collection/components/modal/modal.js +4 -4
  166. package/dist/collection/components/nav/nav.js +1 -1
  167. package/dist/collection/components/nav-link/nav-link.js +1 -1
  168. package/dist/collection/components/note/note.js +2 -2
  169. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  170. package/dist/collection/components/picker-legacy/picker.js +2 -2
  171. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  172. package/dist/collection/components/popover/popover.js +2 -2
  173. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  174. package/dist/collection/components/radio/radio.js +3 -3
  175. package/dist/collection/components/radio-group/radio-group.js +2 -2
  176. package/dist/collection/components/range/range.js +3 -3
  177. package/dist/collection/components/refresher/refresher.js +1 -1
  178. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  179. package/dist/collection/components/reorder/reorder.js +2 -2
  180. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  181. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  182. package/dist/collection/components/router-link/router-link.js +2 -2
  183. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  184. package/dist/collection/components/row/row.js +2 -2
  185. package/dist/collection/components/searchbar/searchbar.js +4 -4
  186. package/dist/collection/components/segment/segment.js +2 -2
  187. package/dist/collection/components/segment-button/segment-button.js +2 -2
  188. package/dist/collection/components/segment-content/segment-content.js +1 -1
  189. package/dist/collection/components/segment-view/segment-view.js +2 -2
  190. package/dist/collection/components/select/select.js +3 -3
  191. package/dist/collection/components/select-modal/select-modal.js +1 -1
  192. package/dist/collection/components/select-option/select-option.js +1 -1
  193. package/dist/collection/components/select-popover/select-popover.js +2 -2
  194. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  195. package/dist/collection/components/spinner/spinner.js +1 -1
  196. package/dist/collection/components/split-pane/split-pane.js +3 -2
  197. package/dist/collection/components/tab/tab.js +2 -2
  198. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  199. package/dist/collection/components/tab-button/tab-button.js +2 -2
  200. package/dist/collection/components/tabs/tabs.js +1 -1
  201. package/dist/collection/components/text/text.js +2 -2
  202. package/dist/collection/components/textarea/textarea.js +3 -3
  203. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  204. package/dist/collection/components/title/title.js +2 -2
  205. package/dist/collection/components/toast/toast.js +2 -2
  206. package/dist/collection/components/toggle/toggle.js +3 -3
  207. package/dist/collection/components/toolbar/toolbar.js +2 -2
  208. package/dist/collection/utils/css-value-validation.js +25 -0
  209. package/dist/collection/utils/media.js +1 -0
  210. package/dist/docs.json +256 -1
  211. package/dist/esm/ion-app_8.entry.js +7 -7
  212. package/dist/esm/ion-avatar_3.entry.js +2 -2
  213. package/dist/esm/ion-col_3.entry.js +8 -6
  214. package/dist/esm/ion-datetime_3.entry.js +4 -4
  215. package/dist/esm/ion-gallery.entry.js +508 -0
  216. package/dist/esm/ion-img.entry.js +2 -2
  217. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  218. package/dist/esm/ion-input-otp.entry.js +3 -3
  219. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  220. package/dist/esm/ion-input.entry.js +4 -4
  221. package/dist/esm/ion-item-option_3.entry.js +4 -4
  222. package/dist/esm/ion-item_8.entry.js +12 -12
  223. package/dist/esm/ion-loading.entry.js +2 -2
  224. package/dist/esm/ion-menu_3.entry.js +6 -6
  225. package/dist/esm/ion-modal.entry.js +4 -4
  226. package/dist/esm/ion-nav_2.entry.js +2 -2
  227. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  228. package/dist/esm/ion-popover.entry.js +2 -2
  229. package/dist/esm/ion-progress-bar.entry.js +1 -1
  230. package/dist/esm/ion-radio_2.entry.js +5 -5
  231. package/dist/esm/ion-range.entry.js +3 -3
  232. package/dist/esm/ion-refresher_2.entry.js +3 -3
  233. package/dist/esm/ion-reorder_2.entry.js +3 -3
  234. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  235. package/dist/esm/ion-route_4.entry.js +2 -2
  236. package/dist/esm/ion-searchbar.entry.js +4 -4
  237. package/dist/esm/ion-segment-content.entry.js +1 -1
  238. package/dist/esm/ion-segment-view.entry.js +2 -2
  239. package/dist/esm/ion-segment_2.entry.js +4 -4
  240. package/dist/esm/ion-select-modal.entry.js +1 -1
  241. package/dist/esm/ion-select_3.entry.js +6 -6
  242. package/dist/esm/ion-spinner.entry.js +1 -1
  243. package/dist/esm/ion-split-pane.entry.js +3 -2
  244. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  245. package/dist/esm/ion-tab_2.entry.js +3 -3
  246. package/dist/esm/ion-text.entry.js +2 -2
  247. package/dist/esm/ion-textarea.entry.js +3 -3
  248. package/dist/esm/ion-toast.entry.js +2 -2
  249. package/dist/esm/ion-toggle.entry.js +3 -3
  250. package/dist/esm/ionic.js +1 -1
  251. package/dist/esm/loader.js +1 -1
  252. package/dist/html.html-data.json +74 -0
  253. package/dist/ionic/ionic.esm.js +1 -1
  254. package/dist/ionic/{p-96549175.entry.js → p-00c0bd38.entry.js} +1 -1
  255. package/dist/ionic/p-06bd033b.entry.js +4 -0
  256. package/dist/ionic/{p-192e7509.entry.js → p-15e3e8f5.entry.js} +1 -1
  257. package/dist/ionic/{p-5ac21be2.entry.js → p-1709b0aa.entry.js} +1 -1
  258. package/dist/ionic/{p-2bf931ae.entry.js → p-1c2c1869.entry.js} +1 -1
  259. package/dist/ionic/{p-3bf01c2c.entry.js → p-1c4de46b.entry.js} +1 -1
  260. package/dist/ionic/p-1e1c8d61.entry.js +4 -0
  261. package/dist/ionic/p-2aa7567e.entry.js +4 -0
  262. package/dist/ionic/{p-bc5713f7.entry.js → p-2ad79c23.entry.js} +1 -1
  263. package/dist/ionic/{p-5a3fc28e.entry.js → p-2f0073af.entry.js} +1 -1
  264. package/dist/ionic/{p-833910ae.entry.js → p-35b144f5.entry.js} +1 -1
  265. package/dist/ionic/{p-59b4f8d0.entry.js → p-3f79f594.entry.js} +1 -1
  266. package/dist/ionic/p-4079cee3.entry.js +4 -0
  267. package/dist/ionic/{p-f061fcb7.entry.js → p-48026d15.entry.js} +1 -1
  268. package/dist/ionic/{p-4091ad21.entry.js → p-50b61fab.entry.js} +1 -1
  269. package/dist/ionic/{p-8516eb69.entry.js → p-50cd2d57.entry.js} +1 -1
  270. package/dist/ionic/{p-50d90690.entry.js → p-5274f999.entry.js} +1 -1
  271. package/dist/ionic/{p-3093958a.entry.js → p-586d4270.entry.js} +1 -1
  272. package/dist/ionic/{p-6991ffa2.entry.js → p-7054a1b9.entry.js} +1 -1
  273. package/dist/ionic/{p-b8b20b7e.entry.js → p-71b6014c.entry.js} +1 -1
  274. package/dist/ionic/{p-9b9b1450.entry.js → p-72491468.entry.js} +1 -1
  275. package/dist/ionic/{p-c2894f9e.entry.js → p-76307d10.entry.js} +1 -1
  276. package/dist/ionic/{p-f740c359.entry.js → p-7d5057c4.entry.js} +1 -1
  277. package/dist/ionic/{p-091a95ea.entry.js → p-83c693c4.entry.js} +1 -1
  278. package/dist/ionic/{p-2aa44c65.entry.js → p-8537b2fb.entry.js} +1 -1
  279. package/dist/ionic/{p-02ecc684.entry.js → p-90e653e3.entry.js} +1 -1
  280. package/dist/ionic/{p-98c34fd7.entry.js → p-9d789053.entry.js} +1 -1
  281. package/dist/ionic/{p-1faf270d.entry.js → p-a9fb086b.entry.js} +1 -1
  282. package/dist/ionic/{p-e7f216ae.entry.js → p-ae667493.entry.js} +1 -1
  283. package/dist/ionic/{p-edb0b0c8.entry.js → p-b2fe6c1c.entry.js} +1 -1
  284. package/dist/ionic/{p-2effd05d.entry.js → p-b3c9f19c.entry.js} +1 -1
  285. package/dist/ionic/{p-6c8c37c2.entry.js → p-b653f4c2.entry.js} +1 -1
  286. package/dist/ionic/{p-4e46439d.entry.js → p-bd71a4a7.entry.js} +1 -1
  287. package/dist/ionic/p-bf972309.entry.js +4 -0
  288. package/dist/ionic/{p-8180abe5.entry.js → p-c10fa162.entry.js} +1 -1
  289. package/dist/ionic/{p-d954cd19.entry.js → p-d4ed5710.entry.js} +1 -1
  290. package/dist/ionic/{p-228b6a9c.entry.js → p-d6299c37.entry.js} +1 -1
  291. package/dist/ionic/{p-4610e447.entry.js → p-e18d3fdb.entry.js} +1 -1
  292. package/dist/ionic/{p-4c864eb2.entry.js → p-fad05840.entry.js} +1 -1
  293. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  294. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  295. package/dist/types/components/gallery/gallery.d.ts +183 -0
  296. package/dist/types/components/gallery/test/utils.d.ts +2 -0
  297. package/dist/types/components.d.ts +75 -0
  298. package/dist/types/utils/css-value-validation.d.ts +12 -0
  299. package/hydrate/index.js +648 -126
  300. package/hydrate/index.mjs +648 -126
  301. package/package.json +1 -1
  302. package/components/p-CnOTQxHB.js +0 -4
  303. package/components/p-XFUFdPrc.js +0 -4
  304. package/components/p-tYh73xQe.js +0 -4
  305. package/dist/ionic/p-308beb71.entry.js +0 -4
  306. package/dist/ionic/p-64341e32.entry.js +0 -4
  307. package/dist/ionic/p-76d0e7ef.entry.js +0 -4
  308. package/dist/ionic/p-ae4ea663.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -13106,6 +13106,7 @@ class Chip {
13106
13106
  }; }
13107
13107
  }
13108
13108
 
13109
+ // TODO(FW-7285): Replace with global breakpoints
13109
13110
  const SIZE_TO_MEDIA = {
13110
13111
  xs: '(min-width: 0px)',
13111
13112
  sm: '(min-width: 576px)',
@@ -13129,8 +13130,9 @@ const matchBreakpoint = (breakpoint) => {
13129
13130
 
13130
13131
  const colCss = () => `:host{--col-unit-size:calc( (100% - (var(--ion-grid-columns, 12) - 1) * var(--ion-grid-gap, 0px)) / var(--ion-grid-columns, 12) );-webkit-padding-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex:1;flex:1;min-height:1px;overflow:auto}@media (min-width: 576px){:host{-webkit-padding-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px))}}@media (min-width: 768px){:host{-webkit-padding-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px))}}@media (min-width: 992px){:host{-webkit-padding-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px))}}@media (min-width: 1200px){:host{-webkit-padding-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px))}}:host(.ion-grid-col-auto){-ms-flex:0 0 auto;flex:0 0 auto}:host([class^=ion-grid-col--]),:host([class*=" ion-grid-col--"]){-ms-flex:0 0 calc(var(--ion-grid-col-span) * var(--col-unit-size) + (var(--ion-grid-col-span) - 1) * var(--ion-grid-gap, 0px));flex:0 0 calc(var(--ion-grid-col-span) * var(--col-unit-size) + (var(--ion-grid-col-span) - 1) * var(--ion-grid-gap, 0px));max-width:calc(var(--ion-grid-col-span) * var(--col-unit-size) + (var(--ion-grid-col-span) - 1) * var(--ion-grid-gap, 0px))}:host([class^=ion-grid-offset-col--]),:host([class*=" ion-grid-offset-col--"]){--margin-calc:calc( var(--col-unit-size) * var(--ion-grid-col-margin) + (var(--ion-grid-gap, 0px) * var(--ion-grid-col-margin)) );-webkit-margin-start:var(--margin-calc);margin-inline-start:var(--margin-calc);-webkit-margin-end:0;margin-inline-end:0}:host(.ion-grid-col--1){--ion-grid-col-span:1}:host(.ion-grid-order-col--1){-ms-flex-order:1;order:1}:host(.ion-grid-offset-col--1){--ion-grid-col-margin:1}:host(.ion-grid-col--2){--ion-grid-col-span:2}:host(.ion-grid-order-col--2){-ms-flex-order:2;order:2}:host(.ion-grid-offset-col--2){--ion-grid-col-margin:2}:host(.ion-grid-col--3){--ion-grid-col-span:3}:host(.ion-grid-order-col--3){-ms-flex-order:3;order:3}:host(.ion-grid-offset-col--3){--ion-grid-col-margin:3}:host(.ion-grid-col--4){--ion-grid-col-span:4}:host(.ion-grid-order-col--4){-ms-flex-order:4;order:4}:host(.ion-grid-offset-col--4){--ion-grid-col-margin:4}:host(.ion-grid-col--5){--ion-grid-col-span:5}:host(.ion-grid-order-col--5){-ms-flex-order:5;order:5}:host(.ion-grid-offset-col--5){--ion-grid-col-margin:5}:host(.ion-grid-col--6){--ion-grid-col-span:6}:host(.ion-grid-order-col--6){-ms-flex-order:6;order:6}:host(.ion-grid-offset-col--6){--ion-grid-col-margin:6}:host(.ion-grid-col--7){--ion-grid-col-span:7}:host(.ion-grid-order-col--7){-ms-flex-order:7;order:7}:host(.ion-grid-offset-col--7){--ion-grid-col-margin:7}:host(.ion-grid-col--8){--ion-grid-col-span:8}:host(.ion-grid-order-col--8){-ms-flex-order:8;order:8}:host(.ion-grid-offset-col--8){--ion-grid-col-margin:8}:host(.ion-grid-col--9){--ion-grid-col-span:9}:host(.ion-grid-order-col--9){-ms-flex-order:9;order:9}:host(.ion-grid-offset-col--9){--ion-grid-col-margin:9}:host(.ion-grid-col--10){--ion-grid-col-span:10}:host(.ion-grid-order-col--10){-ms-flex-order:10;order:10}:host(.ion-grid-offset-col--10){--ion-grid-col-margin:10}:host(.ion-grid-col--11){--ion-grid-col-span:11}:host(.ion-grid-order-col--11){-ms-flex-order:11;order:11}:host(.ion-grid-offset-col--11){--ion-grid-col-margin:11}:host(.ion-grid-col--12){--ion-grid-col-span:12}:host(.ion-grid-order-col--12){-ms-flex-order:12;order:12}:host(.ion-grid-offset-col--12){--ion-grid-col-margin:12}`;
13131
13132
 
13133
+ // TODO(FW-7285): Replace with global breakpoints
13132
13134
  // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
13133
- const BREAKPOINTS = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
13135
+ const BREAKPOINTS$1 = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
13134
13136
  /**
13135
13137
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
13136
13138
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -13145,7 +13147,7 @@ class Col {
13145
13147
  // matches and grab the column value from the relevant prop if so
13146
13148
  getColumns(property) {
13147
13149
  let matched;
13148
- for (const breakpoint of BREAKPOINTS) {
13150
+ for (const breakpoint of BREAKPOINTS$1) {
13149
13151
  const matches = matchBreakpoint(breakpoint);
13150
13152
  // Grab the value of the property, if it exists and our
13151
13153
  // media query matches we return the value
@@ -13206,12 +13208,12 @@ class Col {
13206
13208
  const colSize = this.getSizeClass();
13207
13209
  const colOrder = this.getOrderClass();
13208
13210
  const colOffset = this.getOffsetClass();
13209
- return (hAsync(Host, { key: '4620a4eb3c94f744d6169ae9d4cc43e86a271a52', class: {
13211
+ return (hAsync(Host, { key: '7fc98e15bd75e9c22fe7eaf71f2f49f5d987613a', class: {
13210
13212
  [theme]: true,
13211
13213
  [`${colSize}`]: colSize !== undefined,
13212
13214
  [`${colOrder}`]: colOrder !== undefined,
13213
13215
  [`${colOffset}`]: colOffset !== undefined,
13214
- } }, hAsync("slot", { key: '5c3be98deed2050634396339b7787f2770a05d35' })));
13216
+ } }, hAsync("slot", { key: '6ed04a2c2bcdb0400354368c568e58414a60fc39' })));
13215
13217
  }
13216
13218
  get el() { return getElement(this); }
13217
13219
  static get style() { return colCss(); }
@@ -18689,6 +18691,524 @@ class Footer {
18689
18691
  }; }
18690
18692
  }
18691
18693
 
18694
+ /**
18695
+ * Helpers for validating user-supplied CSS values using regular expressions, without
18696
+ * relying on browser CSS APIs.
18697
+ */
18698
+ // Matches `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
18699
+ const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
18700
+ // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18701
+ const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
18702
+ /**
18703
+ * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18704
+ * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
18705
+ * Also supports simple `calc` / `min` / `max` / `clamp(...)` functions.
18706
+ *
18707
+ * @param value String value to validate.
18708
+ */
18709
+ function isValidLengthPercentage(value) {
18710
+ const v = value.trim();
18711
+ if (!v) {
18712
+ return false;
18713
+ }
18714
+ return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
18715
+ }
18716
+
18717
+ const DEFAULT_COLUMNS = {
18718
+ xs: 2,
18719
+ sm: 3,
18720
+ md: 4,
18721
+ lg: 6,
18722
+ xl: 8,
18723
+ xxl: 10,
18724
+ };
18725
+ const DEFAULT_GAP = '16px';
18726
+
18727
+ 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}`;
18728
+
18729
+ // TODO(FW-7285): Replace with global breakpoints
18730
+ const BREAKPOINTS = {
18731
+ xs: 0,
18732
+ sm: 576,
18733
+ md: 768,
18734
+ lg: 992,
18735
+ xl: 1200,
18736
+ xxl: 1400,
18737
+ };
18738
+ const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
18739
+ /**
18740
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
18741
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
18742
+ *
18743
+ * @slot - Content is placed in a responsive gallery layout.
18744
+ */
18745
+ class Gallery {
18746
+ constructor(hostRef) {
18747
+ registerInstance(this, hostRef);
18748
+ // Keep track of whether we've warned about invalid columns, invalid gap,
18749
+ // and unused order properties to avoid duplicate warnings on screen resize.
18750
+ this.hasWarnedInvalidColumns = false;
18751
+ this.hasWarnedInvalidGap = false;
18752
+ this.hasWarnedUnusedOrder = false;
18753
+ /**
18754
+ * The visual layout of the gallery. When `uniform`, rows take up the height
18755
+ * of the tallest item and are spaced evenly across the gallery. Additionally,
18756
+ * items will have an aspect ratio of 1/1, forcing them to be square unless a
18757
+ * height is explicitly set. When `masonry`, items will be positioned under each
18758
+ * other with only the specified gap between them.
18759
+ */
18760
+ this.layout = 'uniform';
18761
+ /**
18762
+ * The number of columns to display. Can be set as a number or an object of
18763
+ * breakpoint values (e.g. `{ xs: 2, sm: 3, md: 4 }`).
18764
+ */
18765
+ this.columns = DEFAULT_COLUMNS;
18766
+ /**
18767
+ * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18768
+ * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
18769
+ * or numbers (treated as pixel values). Can also be set as a breakpoint map
18770
+ * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
18771
+ * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
18772
+ */
18773
+ this.gap = DEFAULT_GAP;
18774
+ /**
18775
+ * Listen for the slotchange event on the slot.
18776
+ * When the layout is `masonry`, this listener is used to schedule a resize
18777
+ * of the masonry grid when the slot changes. This is useful for when items
18778
+ * are added or removed from the gallery.
18779
+ */
18780
+ this.onSlotChange = () => {
18781
+ this.scheduleMasonryResize();
18782
+ };
18783
+ /**
18784
+ * Measure the host and children, then compute masonry placement.
18785
+ */
18786
+ this.resizeMasonryGrid = () => {
18787
+ this.masonryRaf = undefined;
18788
+ if (this.layout !== 'masonry') {
18789
+ this.clearMasonryStyles();
18790
+ return;
18791
+ }
18792
+ const width = this.el.getBoundingClientRect().width;
18793
+ const columns = this.getColumnsForWidth(width);
18794
+ // Skip masonry placement when width/columns does not resolve
18795
+ // to a valid breakpoint column count.
18796
+ if (columns === undefined) {
18797
+ return;
18798
+ }
18799
+ const styles = getComputedStyle(this.el);
18800
+ const rowHeight = parseFloat(styles.getPropertyValue('grid-auto-rows')) || 0;
18801
+ const rowGap = parseFloat(styles.getPropertyValue('row-gap')) || parseFloat(styles.getPropertyValue('gap')) || 0;
18802
+ const items = this.getItems();
18803
+ this.layoutMasonry(items, rowHeight, rowGap, columns);
18804
+ };
18805
+ }
18806
+ onColumnsOrGapChanged() {
18807
+ this.syncResponsiveLayout();
18808
+ }
18809
+ onLayoutOrOrderChanged() {
18810
+ this.syncResponsiveLayout();
18811
+ // Wait until the next animation frame to warn about unused order
18812
+ // to avoid erroneous warnings when the layout and order are updated
18813
+ // in the same frame.
18814
+ raf(() => {
18815
+ this.warnUnusedOrder();
18816
+ });
18817
+ }
18818
+ componentDidLoad() {
18819
+ this.updateResponsiveStyles(true);
18820
+ this.resizeObserver = new ResizeObserver(() => {
18821
+ this.updateResponsiveStyles();
18822
+ this.scheduleMasonryResize();
18823
+ });
18824
+ this.resizeObserver.observe(this.el);
18825
+ this.scheduleMasonryResize();
18826
+ this.warnUnusedOrder();
18827
+ }
18828
+ disconnectedCallback() {
18829
+ var _a;
18830
+ if (this.masonryRaf !== undefined) {
18831
+ cancelAnimationFrame(this.masonryRaf);
18832
+ this.masonryRaf = undefined;
18833
+ }
18834
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
18835
+ this.resizeObserver = undefined;
18836
+ }
18837
+ /**
18838
+ * Listen for the load event on child elements.
18839
+ * When the layout is `masonry`, this listener is used to schedule a resize
18840
+ * of the masonry grid when the child elements load. This is useful for when
18841
+ * images take time to load.
18842
+ */
18843
+ onChildLoad(ev) {
18844
+ if (this.layout !== 'masonry') {
18845
+ return;
18846
+ }
18847
+ const target = ev.target;
18848
+ if (target instanceof Node && this.el.contains(target)) {
18849
+ this.scheduleMasonryResize();
18850
+ }
18851
+ }
18852
+ /**
18853
+ * Recompute the gallery column and gap variables and masonry placement when
18854
+ * columns, gap, layout, or order change.
18855
+ */
18856
+ syncResponsiveLayout() {
18857
+ this.updateResponsiveStyles(true);
18858
+ this.scheduleMasonryResize();
18859
+ }
18860
+ /**
18861
+ * Batch masonry measurements to a single animation frame.
18862
+ * This avoids repeated sync layouts during rapid resize/load/slot changes.
18863
+ */
18864
+ scheduleMasonryResize() {
18865
+ if (this.layout !== 'masonry') {
18866
+ this.clearMasonryStyles();
18867
+ return;
18868
+ }
18869
+ if (this.masonryRaf !== undefined) {
18870
+ cancelAnimationFrame(this.masonryRaf);
18871
+ }
18872
+ this.masonryRaf = requestAnimationFrame(this.resizeMasonryGrid);
18873
+ }
18874
+ /**
18875
+ * Normalize a single column value (`columns` as a number, string, or one entry from
18876
+ * a `columns` breakpoint map) to a positive integer. Returns `undefined` when
18877
+ * the input cannot be interpreted as a finite number.
18878
+ */
18879
+ sanitizeColumns(columns) {
18880
+ if (columns === undefined) {
18881
+ return undefined;
18882
+ }
18883
+ const numericColumns = typeof columns === 'number' ? columns : Number(columns);
18884
+ if (!Number.isFinite(numericColumns) || !Number.isInteger(numericColumns) || numericColumns <= 0) {
18885
+ return undefined;
18886
+ }
18887
+ return numericColumns;
18888
+ }
18889
+ /**
18890
+ * Normalize a single gap value (`gap` as a number, string, or one entry from
18891
+ * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
18892
+ * the input cannot be interpreted as a valid CSS length.
18893
+ */
18894
+ sanitizeGap(gap) {
18895
+ if (gap === undefined) {
18896
+ return undefined;
18897
+ }
18898
+ const normalizedGap = typeof gap === 'string' ? gap.trim() : gap;
18899
+ if (normalizedGap === '' || typeof normalizedGap === 'object') {
18900
+ return undefined;
18901
+ }
18902
+ const numericGap = Number(normalizedGap);
18903
+ if (Number.isFinite(numericGap)) {
18904
+ return numericGap < 0 ? undefined : `${numericGap}px`;
18905
+ }
18906
+ if (typeof normalizedGap !== 'string') {
18907
+ return undefined;
18908
+ }
18909
+ const isValidCssLength = isValidLengthPercentage(normalizedGap);
18910
+ return isValidCssLength ? normalizedGap : undefined;
18911
+ }
18912
+ /**
18913
+ * Check if the value is a breakpoint map object.
18914
+ */
18915
+ isBreakpointMap(value) {
18916
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18917
+ }
18918
+ /**
18919
+ * Check if the breakpoint map has any invalid values for the provided
18920
+ * sanitizer. A breakpoint map is invalid when there are no valid breakpoint
18921
+ * keys set (e.g. `{}` or `{ colums: 3 }`), or when a value under a
18922
+ * breakpoint key fails the sanitizer (e.g. `{ xs: -3 }`, `{ sm: 'foo' }`).
18923
+ */
18924
+ hasInvalidBreakpointMap(breakpointMap, sanitizeValue) {
18925
+ let hasBreakpointEntry = false;
18926
+ for (const breakpoint of BREAKPOINT_ORDER) {
18927
+ const value = breakpointMap[breakpoint];
18928
+ if (value !== undefined) {
18929
+ hasBreakpointEntry = true;
18930
+ if (sanitizeValue(value) === undefined) {
18931
+ return true;
18932
+ }
18933
+ }
18934
+ }
18935
+ return !hasBreakpointEntry;
18936
+ }
18937
+ /**
18938
+ * Resolve a responsive value from a breakpoint map.
18939
+ * Uses a breakpoint-specific default when custom values are missing/invalid.
18940
+ */
18941
+ resolveFromBreakpoints(width, breakpointMap, sanitizeProvided, getSanitizedDefault) {
18942
+ let resolvedValue;
18943
+ for (const bp of BREAKPOINT_ORDER) {
18944
+ const providedValue = breakpointMap[bp];
18945
+ const sanitizedProvided = sanitizeProvided(providedValue);
18946
+ const sanitizedDefault = getSanitizedDefault(bp);
18947
+ const resolved = providedValue === undefined || sanitizedProvided === undefined ? sanitizedDefault : sanitizedProvided;
18948
+ if (resolved !== undefined && width >= BREAKPOINTS[bp]) {
18949
+ resolvedValue = resolved;
18950
+ }
18951
+ }
18952
+ return resolvedValue;
18953
+ }
18954
+ /**
18955
+ * Get the columns from a responsive breakpoint map.
18956
+ * Returns the columns for the last matching breakpoint.
18957
+ */
18958
+ getColumnsFromBreakpointMap(width, breakpointMap) {
18959
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeColumns(value), (bp) => this.sanitizeColumns(DEFAULT_COLUMNS[bp]));
18960
+ }
18961
+ /**
18962
+ * Get the gap from a responsive breakpoint map.
18963
+ * Returns the gap for the last matching breakpoint.
18964
+ */
18965
+ getGapFromBreakpointMap(width, breakpointMap) {
18966
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeGap(value), () => this.sanitizeGap(DEFAULT_GAP));
18967
+ }
18968
+ /**
18969
+ * Warn about an invalid columns value when it is set to a negative number,
18970
+ * an empty breakpoint map, a map with no supported breakpoint keys,
18971
+ * or a map with invalid breakpoint values.
18972
+ */
18973
+ warnInvalidColumns(columns) {
18974
+ if (this.hasWarnedInvalidColumns) {
18975
+ return;
18976
+ }
18977
+ printIonWarning(`[ion-gallery] - Invalid "columns" value (${JSON.stringify(columns)}). Expected a positive integer or breakpoint map object (e.g. { xs: 2, md: 4 }). Falling back to default responsive columns.`, this.el);
18978
+ this.hasWarnedInvalidColumns = true;
18979
+ }
18980
+ /**
18981
+ * Warn about an invalid gap value when it is set to a negative number,
18982
+ * an empty breakpoint map, a map with no supported breakpoint keys,
18983
+ * or a map with invalid breakpoint values.
18984
+ */
18985
+ warnInvalidGap(gap) {
18986
+ if (this.hasWarnedInvalidGap) {
18987
+ return;
18988
+ }
18989
+ 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);
18990
+ this.hasWarnedInvalidGap = true;
18991
+ }
18992
+ /**
18993
+ * Warn when `order` is explicitly set while layout is `uniform`.
18994
+ */
18995
+ warnUnusedOrder() {
18996
+ const { layout } = this;
18997
+ const order = this.order == null ? undefined : this.order;
18998
+ if (this.hasWarnedUnusedOrder || layout !== 'uniform' || order === undefined) {
18999
+ return;
19000
+ }
19001
+ printIonWarning(`[ion-gallery] - "order" has no effect when "layout" is "uniform". Set "layout" to "masonry" for "order" to apply.`, this.el);
19002
+ this.hasWarnedUnusedOrder = true;
19003
+ }
19004
+ /**
19005
+ * Resolve the active columns value for the current width. Falls back to
19006
+ * the default responsive columns when the provided prop is invalid.
19007
+ */
19008
+ getColumnsForWidth(width) {
19009
+ const { columns } = this;
19010
+ const isBreakpointColumns = this.isBreakpointMap(columns);
19011
+ const hasInvalidBreakpointColumns = isBreakpointColumns && this.hasInvalidBreakpointMap(columns, (value) => this.sanitizeColumns(value));
19012
+ const sanitizedColumns = isBreakpointColumns
19013
+ ? this.getColumnsFromBreakpointMap(width, columns)
19014
+ : this.sanitizeColumns(columns);
19015
+ if (hasInvalidBreakpointColumns || (!isBreakpointColumns && sanitizedColumns === undefined)) {
19016
+ this.warnInvalidColumns(columns);
19017
+ }
19018
+ if (sanitizedColumns !== undefined) {
19019
+ return sanitizedColumns;
19020
+ }
19021
+ return this.getColumnsFromBreakpointMap(width, DEFAULT_COLUMNS);
19022
+ }
19023
+ /**
19024
+ * Resolve the active gap value for the current width.
19025
+ */
19026
+ getGapForWidth(width) {
19027
+ const { gap } = this;
19028
+ const providedGap = gap !== null && gap !== void 0 ? gap : DEFAULT_GAP;
19029
+ const isBreakpointGap = this.isBreakpointMap(providedGap);
19030
+ const hasInvalidBreakpointGap = isBreakpointGap && this.hasInvalidBreakpointMap(providedGap, (value) => this.sanitizeGap(value));
19031
+ const sanitizedGap = isBreakpointGap
19032
+ ? this.getGapFromBreakpointMap(width, providedGap)
19033
+ : this.sanitizeGap(providedGap);
19034
+ if (hasInvalidBreakpointGap || (!isBreakpointGap && sanitizedGap === undefined)) {
19035
+ this.warnInvalidGap(providedGap);
19036
+ }
19037
+ if (sanitizedGap !== undefined) {
19038
+ return sanitizedGap;
19039
+ }
19040
+ return this.sanitizeGap(DEFAULT_GAP);
19041
+ }
19042
+ /**
19043
+ * Update the responsive styles for the gallery. This is used to update
19044
+ * the columns and gap when the component width changes.
19045
+ */
19046
+ updateResponsiveStyles(force = false) {
19047
+ const width = this.el.getBoundingClientRect().width;
19048
+ // Only update the columns if the component width has changed by more than
19049
+ // 1px or if the force flag is true. This prevents unnecessary re-renders
19050
+ // when the component width has not changed.
19051
+ if (!width || (!force && this.lastWidth !== undefined && Math.abs(this.lastWidth - width) < 1)) {
19052
+ return;
19053
+ }
19054
+ this.lastWidth = width;
19055
+ const columns = this.getColumnsForWidth(width);
19056
+ this.el.style.setProperty('--internal-gallery-columns', `${columns}`);
19057
+ const gap = this.getGapForWidth(width);
19058
+ this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
19059
+ }
19060
+ /**
19061
+ * Return all directly slotted children of the gallery that can be grid items
19062
+ * with inline placement styles (HTML elements and SVG elements).
19063
+ */
19064
+ getItems() {
19065
+ return Array.from(this.el.children).filter((child) => { var _a; return typeof ((_a = child.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function'; });
19066
+ }
19067
+ /**
19068
+ * Clear the item styles for the given item element.
19069
+ * This is used to switch between uniform and masonry layouts.
19070
+ */
19071
+ clearItemStyles(itemEl) {
19072
+ itemEl.style.gridRowStart = '';
19073
+ itemEl.style.gridRowEnd = '';
19074
+ itemEl.style.gridColumn = '';
19075
+ itemEl.style.marginBottom = '';
19076
+ }
19077
+ /**
19078
+ * Clear placement styles for all items when leaving masonry mode.
19079
+ */
19080
+ clearMasonryStyles() {
19081
+ this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
19082
+ }
19083
+ /**
19084
+ * Convert a rendered item height to the number of grid rows it should span.
19085
+ * Returns undefined for images that are not fully loaded yet.
19086
+ */
19087
+ calculateRowSpan(itemEl, rowHeight, rowGap) {
19088
+ if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
19089
+ return undefined;
19090
+ }
19091
+ const height = itemEl.getBoundingClientRect().height;
19092
+ const itemStyles = getComputedStyle(itemEl);
19093
+ const marginBottom = parseFloat(itemStyles.getPropertyValue('margin-bottom')) || 0;
19094
+ const denominator = rowHeight + rowGap;
19095
+ if (!denominator || !Number.isFinite(denominator)) {
19096
+ return 1;
19097
+ }
19098
+ return Math.ceil((height + marginBottom + rowGap) / denominator) || 1;
19099
+ }
19100
+ /**
19101
+ * Get the index of the column to position the item in.
19102
+ * When the order is `best-fit`, the column with the shortest height is
19103
+ * returned. Otherwise, items are placed in the column that matches their
19104
+ * natural DOM order.
19105
+ */
19106
+ getColumnIndex(index, columnHeights, columns) {
19107
+ const order = this.getOrder();
19108
+ if (order === 'best-fit') {
19109
+ let columnIndex = 0;
19110
+ for (let i = 1; i < columns; i++) {
19111
+ if (columnHeights[i] < columnHeights[columnIndex]) {
19112
+ columnIndex = i;
19113
+ }
19114
+ }
19115
+ return columnIndex;
19116
+ }
19117
+ return index % columns;
19118
+ }
19119
+ /**
19120
+ * Apply masonry placement by assigning each item a column and row span.
19121
+ */
19122
+ layoutMasonry(items, rowHeight, rowGap, columns) {
19123
+ const columnHeights = new Array(columns).fill(0);
19124
+ const lastItemsByColumn = new Array(columns).fill(undefined);
19125
+ items.forEach((itemEl, i) => {
19126
+ itemEl.style.marginBottom = '';
19127
+ const span = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19128
+ if (span === undefined) {
19129
+ this.clearItemStyles(itemEl);
19130
+ return;
19131
+ }
19132
+ const columnIndex = this.getColumnIndex(i, columnHeights, columns);
19133
+ const start = columnHeights[columnIndex] + 1;
19134
+ itemEl.style.gridColumn = `${columnIndex + 1}`;
19135
+ itemEl.style.gridRowStart = `${start}`;
19136
+ itemEl.style.gridRowEnd = `span ${span}`;
19137
+ columnHeights[columnIndex] = start + span - 1;
19138
+ lastItemsByColumn[columnIndex] = itemEl;
19139
+ });
19140
+ // Remove trailing space from the final item in each column while preserving
19141
+ // spacing between all non-final items.
19142
+ lastItemsByColumn.forEach((itemEl) => {
19143
+ if (itemEl === undefined) {
19144
+ return;
19145
+ }
19146
+ itemEl.style.marginBottom = '0px';
19147
+ const spanWithoutTrailingGap = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19148
+ if (spanWithoutTrailingGap === undefined) {
19149
+ this.clearItemStyles(itemEl);
19150
+ return;
19151
+ }
19152
+ itemEl.style.gridRowEnd = `span ${spanWithoutTrailingGap}`;
19153
+ });
19154
+ }
19155
+ /**
19156
+ * Resolved order for layout and CSS. Order should be `undefined` for
19157
+ * the uniform layout. When order is not set, it should be `"sequential"`
19158
+ * for the masonry layout.
19159
+ */
19160
+ getOrder() {
19161
+ const { layout } = this;
19162
+ const order = this.order == null ? undefined : this.order;
19163
+ if (layout === 'uniform') {
19164
+ return undefined;
19165
+ }
19166
+ if (layout === 'masonry' && order === undefined) {
19167
+ return 'sequential';
19168
+ }
19169
+ return order;
19170
+ }
19171
+ render() {
19172
+ const { layout } = this;
19173
+ const order = this.getOrder();
19174
+ const theme = getIonTheme(this);
19175
+ return (hAsync(Host, { key: '1bf2973d22835c0dbddf3214b602f8c08b95e421', class: {
19176
+ [theme]: true,
19177
+ [`gallery-layout-${layout}`]: true,
19178
+ [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
19179
+ } }, hAsync("slot", { key: '0dea31f609f6afdb1d73ecb2d873909ffe49203f', onSlotchange: this.onSlotChange })));
19180
+ }
19181
+ get el() { return getElement(this); }
19182
+ static get watchers() { return {
19183
+ "columns": [{
19184
+ "onColumnsOrGapChanged": 0
19185
+ }],
19186
+ "gap": [{
19187
+ "onColumnsOrGapChanged": 0
19188
+ }],
19189
+ "layout": [{
19190
+ "onLayoutOrOrderChanged": 0
19191
+ }],
19192
+ "order": [{
19193
+ "onLayoutOrOrderChanged": 0
19194
+ }]
19195
+ }; }
19196
+ static get style() { return galleryCss(); }
19197
+ static get cmpMeta() { return {
19198
+ "$flags$": 265,
19199
+ "$tagName$": "ion-gallery",
19200
+ "$members$": {
19201
+ "layout": [1],
19202
+ "order": [1],
19203
+ "columns": [8],
19204
+ "gap": [8]
19205
+ },
19206
+ "$listeners$": [[2, "load", "onChildLoad"]],
19207
+ "$lazyBundleId$": "-",
19208
+ "$attrsToReflect$": []
19209
+ }; }
19210
+ }
19211
+
18692
19212
  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}`;
18693
19213
 
18694
19214
  /**
@@ -18705,10 +19225,10 @@ class Grid {
18705
19225
  }
18706
19226
  render() {
18707
19227
  const theme = getIonTheme(this);
18708
- return (hAsync(Host, { key: 'cd55886cabaeab57e3b13193381b196bec2f07f8', class: {
19228
+ return (hAsync(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
18709
19229
  [theme]: true,
18710
19230
  'grid-fixed': this.fixed,
18711
- } }, hAsync("slot", { key: 'c9b95999e6a274a8a0c997451c0be45b1304d77b' })));
19231
+ } }, hAsync("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
18712
19232
  }
18713
19233
  static get style() { return gridCss(); }
18714
19234
  static get cmpMeta() { return {
@@ -19110,7 +19630,7 @@ class Header {
19110
19630
  const isCondensed = collapse === 'condense';
19111
19631
  // banner role must be at top level, so remove role if inside a menu
19112
19632
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
19113
- return (hAsync(Host, Object.assign({ key: '658d5746920c349cc9fe85666c7215f2edc3c794', role: roleType, class: {
19633
+ return (hAsync(Host, Object.assign({ key: 'b43e5f542bdcec5e94c299556183cf6d9d673438', role: roleType, class: {
19114
19634
  [theme]: true,
19115
19635
  // Used internally for styling
19116
19636
  [`header-${theme}`]: true,
@@ -19118,7 +19638,7 @@ class Header {
19118
19638
  [`header-collapse-${collapse}`]: true,
19119
19639
  [`header-translucent-${theme}`]: this.translucent,
19120
19640
  ['header-divider']: divider,
19121
- } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: '4a1470d86e1aac6f8d545fe01e75b4dce665fb70', class: "header-background" }), hAsync("slot", { key: '3b02661242bda5834c4e13e4eb61bf79b53ba33e' })));
19641
+ } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: 'fd9938f02edd38e1afc83025373ec0aec5633711', class: "header-background" }), hAsync("slot", { key: '900aaa7da5d6f08e6f94b128fa065348d595159e' })));
19122
19642
  }
19123
19643
  get el() { return getElement(this); }
19124
19644
  static get style() { return {
@@ -19469,9 +19989,9 @@ class Img {
19469
19989
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19470
19990
  const { draggable } = inheritedAttributes;
19471
19991
  const theme = getIonTheme(this);
19472
- return (hAsync(Host, { key: '840d5b29d81222b061ac72168ef6551b5a061e3a', class: {
19992
+ return (hAsync(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
19473
19993
  [theme]: true,
19474
- } }, hAsync("img", { key: 'e22e66ee4bb3a648b21c6080674e68eebf4a3feb', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19994
+ } }, hAsync("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19475
19995
  }
19476
19996
  get el() { return getElement(this); }
19477
19997
  static get watchers() { return {
@@ -19776,7 +20296,7 @@ class InfiniteScroll {
19776
20296
  render() {
19777
20297
  const theme = getIonTheme(this);
19778
20298
  const disabled = this.disabled;
19779
- return (hAsync(Host, { key: '22d99824cb589d9024666a3c1ed205f781858eed', class: {
20299
+ return (hAsync(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
19780
20300
  [theme]: true,
19781
20301
  'infinite-scroll-loading': this.isLoading,
19782
20302
  'infinite-scroll-enabled': !disabled,
@@ -19839,11 +20359,11 @@ class InfiniteScrollContent {
19839
20359
  }
19840
20360
  render() {
19841
20361
  const theme = getIonTheme(this);
19842
- return (hAsync(Host, { key: 'e94d19f17ef9d4d77786716152e3206366feb546', class: {
20362
+ return (hAsync(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
19843
20363
  [theme]: true,
19844
20364
  // Used internally for styling
19845
20365
  [`infinite-scroll-content-${theme}`]: true,
19846
- } }, hAsync("div", { key: '35fcc0572ad27a683aa55a704bd11b19fcdfd29c', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: 'fec3c13dbb2fa98699401147ce442b73e97e8bd8', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: '6cd6083255dacc891b4d201477e6bffccb1084bc', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20366
+ } }, 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())));
19847
20367
  }
19848
20368
  static get style() { return {
19849
20369
  ionic: ionicInfiniteScrollContentMdCss(),
@@ -20591,7 +21111,7 @@ class Input {
20591
21111
  * TODO(FW-5592): Remove hasStartEndSlots condition
20592
21112
  */
20593
21113
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20594
- return (hAsync(Host, { key: 'd62741432c3e1421d69fdf2ed2e8058a1ce3544f', class: createColorClasses$1(this.color, {
21114
+ return (hAsync(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses$1(this.color, {
20595
21115
  [theme]: true,
20596
21116
  'has-value': hasValue,
20597
21117
  'has-focus': hasFocus,
@@ -20604,7 +21124,7 @@ class Input {
20604
21124
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20605
21125
  'input-disabled': disabled,
20606
21126
  'input-readonly': readonly,
20607
- }) }, hAsync("label", { key: '9707227d9eb977e0983c78757af20219eb1651c6', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '8bc5197ecb665e268668137844f122b74f69cc2d', class: "native-wrapper", onClick: this.onLabelClick },
21127
+ }) }, hAsync("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
20608
21128
  /**
20609
21129
  * For the ionic theme, we render the outline container here
20610
21130
  * instead of higher up, so it can be positioned relative to
@@ -20614,14 +21134,14 @@ class Input {
20614
21134
  * <label> element, ensuring that clicking the label text
20615
21135
  * focuses the input.
20616
21136
  */
20617
- theme === 'ionic' && hAsync("div", { key: '65383eeb6a876dbf103dd5358f041f45856e6e9d', class: "input-outline" }), hAsync("slot", { key: '7d333894f2be13a4033a515ce3c8a4489cc4bfc3', name: "start" }), hAsync("input", Object.assign({ key: '8221d445e4ee9e1d2946205893cbb6de93604c86', 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: '2fb77a78ecb32b46dc9641580c2c2f6125e9715d', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
21137
+ 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) => {
20618
21138
  /**
20619
21139
  * This prevents mobile browsers from
20620
21140
  * blurring the input when the clear
20621
21141
  * button is activated.
20622
21142
  */
20623
21143
  ev.preventDefault();
20624
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'a349dfb263a011fc10f01350f917c4020809f512', "aria-hidden": "true", icon: inputClearIcon }))), hAsync("slot", { key: '6e02025608bd54cf36e21ed3bef00353921a7fb9', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8bf1e516962d232a96a2fa701e10c8c909318f62', class: "input-highlight" })), this.renderBottomContent()));
21144
+ }, 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()));
20625
21145
  }
20626
21146
  get el() { return getElement(this); }
20627
21147
  static get watchers() { return {
@@ -21386,7 +21906,7 @@ class InputOTP {
21386
21906
  const tabbableIndex = this.getTabbableIndex();
21387
21907
  const pattern = this.getPattern();
21388
21908
  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()) !== '';
21389
- return (hAsync(Host, { key: 'aee59cdba3f3c3783519cf114c668ae92f74fcef', class: createColorClasses$1(color, {
21909
+ return (hAsync(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses$1(color, {
21390
21910
  [mode]: true,
21391
21911
  'has-focus': hasFocus,
21392
21912
  [`input-otp-size-${size}`]: true,
@@ -21394,10 +21914,10 @@ class InputOTP {
21394
21914
  [`input-otp-fill-${fill}`]: true,
21395
21915
  'input-otp-disabled': disabled,
21396
21916
  'input-otp-readonly': readonly,
21397
- }) }, hAsync("div", Object.assign({ key: 'a0b26b833a20807019114a78e4512a639b82a61f', 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: 'e525d1841bab5378b165ec1cca9fc45274c2c0ec', class: {
21917
+ }) }, 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: {
21398
21918
  'input-otp-description': true,
21399
21919
  'input-otp-description-hidden': !hasDescription,
21400
- }, part: "description" }, hAsync("slot", { key: '9fd331ceff04ab93f8d4aec251565cc201f19294' }))));
21920
+ }, part: "description" }, hAsync("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
21401
21921
  }
21402
21922
  static get formAssociated() { return true; }
21403
21923
  get el() { return getElement(this); }
@@ -21545,16 +22065,16 @@ class InputPasswordToggle {
21545
22065
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
21546
22066
  const mode = getIonMode$1(this);
21547
22067
  const isPasswordVisible = type === 'text';
21548
- return (hAsync(Host, { key: 'e3c21d5bedebeadb57c0c9b7f065d15ab0d49e4a', class: createColorClasses$1(color, {
22068
+ return (hAsync(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses$1(color, {
21549
22069
  [mode]: true,
21550
- }) }, hAsync("ion-button", { key: '0a83d58e059bc3b7ef604270e92351d7fa5d129c', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
22070
+ }) }, 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) => {
21551
22071
  /**
21552
22072
  * This prevents mobile browsers from
21553
22073
  * blurring the input when the password toggle
21554
22074
  * button is activated.
21555
22075
  */
21556
22076
  ev.preventDefault();
21557
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'af9a7e202fe0b3f75f10b3e13bf1e5fb653194d1', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22077
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
21558
22078
  }
21559
22079
  get el() { return getElement(this); }
21560
22080
  static get watchers() { return {
@@ -21929,11 +22449,11 @@ class ItemDivider {
21929
22449
  }
21930
22450
  render() {
21931
22451
  const theme = getIonTheme(this);
21932
- return (hAsync(Host, { key: '4d481e6233a75f3c3042b5825d9c14fe77280f03', class: createColorClasses$1(this.color, {
22452
+ return (hAsync(Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: createColorClasses$1(this.color, {
21933
22453
  [theme]: true,
21934
22454
  'item-divider-sticky': this.sticky,
21935
22455
  item: true,
21936
- }) }, hAsync("slot", { key: 'e10eeec38a39d7801b88f478c834beded30f1bb4', name: "start" }), hAsync("div", { key: '3e88c2c1a5938ee2df3264d99f2c595d438a7557', class: "item-divider-inner", part: "inner" }, hAsync("div", { key: 'e7bf5e3a985c59211bfac097e8a904627a9cc6f7', class: "item-divider-wrapper", part: "container" }, hAsync("slot", { key: '0ec4f262411414bf44d9ab6e831dbc74672ba317' })), hAsync("slot", { key: '9cd77653584fe95db1477149134af10e0d4053fa', name: "end" }))));
22456
+ }) }, 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" }))));
21937
22457
  }
21938
22458
  get el() { return getElement(this); }
21939
22459
  static get style() { return {
@@ -21970,7 +22490,7 @@ class ItemGroup {
21970
22490
  }
21971
22491
  render() {
21972
22492
  const theme = getIonTheme(this);
21973
- return (hAsync(Host, { key: '3fb0784b321736344604e259cfb05c6307159bed', role: "group", class: {
22493
+ return (hAsync(Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
21974
22494
  [theme]: true,
21975
22495
  // Used internally for styling
21976
22496
  [`item-group-${theme}`]: true,
@@ -22066,14 +22586,14 @@ class ItemOption {
22066
22586
  href: this.href,
22067
22587
  target: this.target,
22068
22588
  };
22069
- return (hAsync(Host, { key: '810fe351aa83d6e88cb0e2ebee307b3050e65b45', onClick: this.onClick, class: createColorClasses$1(this.color, {
22589
+ return (hAsync(Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: createColorClasses$1(this.color, {
22070
22590
  [theme]: true,
22071
22591
  [`item-option-${shape}`]: shape !== undefined,
22072
22592
  [`item-option-${hue}`]: hue !== undefined,
22073
22593
  'item-option-disabled': disabled,
22074
22594
  'item-option-expandable': expandable,
22075
22595
  'ion-activatable': true,
22076
- }) }, hAsync(TagType, Object.assign({ key: '6eb95c4f815e774d1b579a1fb2ddcad891966ca0' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '5630c1bd31910f46b0a08017a98f7935f17385bf', class: "button-inner", part: "inner" }, hAsync("slot", { key: '081375e3b9683347008d08817ded21c61a374d93', name: "top" }), hAsync("div", { key: '99d7dff311268ab4677397ab5a29b068f1cdf79b', class: "horizontal-wrapper", part: "container" }, hAsync("slot", { key: 'b88858db83d847e3d49a84b75eb277500cb66fb3', name: "start" }), hAsync("slot", { key: '8ca5149591a5e3285eff5078e1eb03554fb0713b', name: "icon-only" }), hAsync("slot", { key: 'a8229a5e11bf41926745ab71f6dcd2d2ca63806c' }), hAsync("slot", { key: '9a497c0cb92fe14ad6b9063fa0946fcd75fb8c08', name: "end" })), hAsync("slot", { key: 'cae262fd2b7fad9e4bc9c02541fa17a6480ecf7f', name: "bottom" })), theme === 'md' && hAsync("ion-ripple-effect", { key: '7114b927480e6a9261c7568e036ecf38ec1680ab' }))));
22596
+ }) }, 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' }))));
22077
22597
  }
22078
22598
  get el() { return getElement(this); }
22079
22599
  static get style() { return {
@@ -22131,7 +22651,7 @@ class ItemOptions {
22131
22651
  render() {
22132
22652
  const theme = getIonTheme(this);
22133
22653
  const isEnd = isEndSide(this.side);
22134
- return (hAsync(Host, { key: 'cc55282505679d51fb90ebf30869e930c71afbd4', class: {
22654
+ return (hAsync(Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
22135
22655
  [theme]: true,
22136
22656
  // Used internally for styling
22137
22657
  [`item-options-${theme}`]: true,
@@ -22983,7 +23503,7 @@ class ItemSliding {
22983
23503
  }
22984
23504
  render() {
22985
23505
  const theme = getIonTheme(this);
22986
- return (hAsync(Host, { key: 'ca0730d5ee00f245b6a139d9fb53fcc8c529a8c6', class: {
23506
+ return (hAsync(Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
22987
23507
  [theme]: true,
22988
23508
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
22989
23509
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -23102,13 +23622,13 @@ class Label {
23102
23622
  render() {
23103
23623
  const position = this.position;
23104
23624
  const theme = getIonTheme(this);
23105
- return (hAsync(Host, { key: 'd730045c08ba576082563398ab51fc903577d214', class: createColorClasses$1(this.color, {
23625
+ return (hAsync(Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: createColorClasses$1(this.color, {
23106
23626
  [theme]: true,
23107
23627
  'in-item-color': hostContext('ion-item.ion-color', this.el),
23108
23628
  [`label-${position}`]: position !== undefined,
23109
23629
  [`label-no-animate`]: this.noAnimate,
23110
23630
  'label-rtl': document.dir === 'rtl',
23111
- }) }, hAsync("slot", { key: '604289ef567339c83fb409371224906819a9d7cc' })));
23631
+ }) }, hAsync("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
23112
23632
  }
23113
23633
  get el() { return getElement(this); }
23114
23634
  static get watchers() { return {
@@ -23188,7 +23708,7 @@ class List {
23188
23708
  const theme = getIonTheme(this);
23189
23709
  const shape = this.getShape();
23190
23710
  const { lines, inset } = this;
23191
- return (hAsync(Host, { key: 'dcdfb595a6b45307f9810e1ded25ba635c947940', role: "list", class: {
23711
+ return (hAsync(Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
23192
23712
  [theme]: true,
23193
23713
  // Used internally for styling
23194
23714
  [`list-${theme}`]: true,
@@ -23238,10 +23758,10 @@ class ListHeader {
23238
23758
  render() {
23239
23759
  const { lines } = this;
23240
23760
  const theme = getIonTheme(this);
23241
- return (hAsync(Host, { key: '0be4fb7d4f9cd6f50229cf7b361c74e94fbfce91', class: createColorClasses$1(this.color, {
23761
+ return (hAsync(Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: createColorClasses$1(this.color, {
23242
23762
  [theme]: true,
23243
23763
  [`list-header-lines-${lines}`]: lines !== undefined,
23244
- }) }, hAsync("div", { key: '4dcc3374685728ae9270d8d58b1ea1c08b0bbc08', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: '5658cc9185680bfa96328685d817b84b18e9ab5a' }))));
23764
+ }) }, hAsync("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
23245
23765
  }
23246
23766
  static get style() { return {
23247
23767
  ionic: listHeaderIonicCss(),
@@ -23530,9 +24050,9 @@ class Loading {
23530
24050
  * Otherwise, don't set aria-labelledby.
23531
24051
  */
23532
24052
  const ariaLabelledBy = message !== undefined ? msgId : null;
23533
- return (hAsync(Host, Object.assign({ key: '0c475f8e28e680e28e09317557795fc56e0835d8', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24053
+ return (hAsync(Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
23534
24054
  zIndex: `${40000 + this.overlayIndex}`,
23535
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'd7e88feb6df8edbc326a84d07b294618f7ce6adc', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'f9622f45b2d9e913c325b228a1e6ed03cf2b98e8', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'f4dfdce70c4515878b247d0cc116b5cec2cf79a4', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '6d4475e00c444eb3d217813ae8cc1a02a97b969e', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'd9ad8dd56ec7677c18d06936c1a1b21a0a6a87a8', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'bd3159e18f33ec25d3480d47ce33fa7dfd1f1460', tabindex: "0", "aria-hidden": "true" })));
24055
+ }, 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" })));
23536
24056
  }
23537
24057
  get el() { return getElement(this); }
23538
24058
  static get watchers() { return {
@@ -24593,14 +25113,14 @@ class Menu {
24593
25113
  * the ionBackButton listener in the menu controller
24594
25114
  * will handle closing the menu when Escape is pressed.
24595
25115
  */
24596
- return (hAsync(Host, { key: '12bd2c4e9aa2f314ffc45d7f43290bd9910ca8b0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25116
+ return (hAsync(Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24597
25117
  [theme]: true,
24598
25118
  [`menu-type-${type}`]: true,
24599
25119
  'menu-enabled': !disabled,
24600
25120
  [`menu-side-${side}`]: true,
24601
25121
  'menu-pane-visible': isPaneVisible,
24602
25122
  'split-pane-side': hostContext('ion-split-pane', el),
24603
- } }, hAsync("div", { key: 'd43e12f2502ae5da847eb0d2a70d0a3945733739', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '19977e6584bdbb5b01e6e0a4a7f4558087175b33' })), hAsync("ion-backdrop", { key: '22e79a7edca409248bd3637474d6783f1d7de1b3', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
25123
+ } }, 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" })));
24604
25124
  }
24605
25125
  get el() { return getElement(this); }
24606
25126
  static get watchers() { return {
@@ -24734,7 +25254,7 @@ class MenuButton {
24734
25254
  type: this.type,
24735
25255
  };
24736
25256
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
24737
- return (hAsync(Host, { key: '206b8482b58e7ee49ea89393a15e9cf30578297b', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25257
+ return (hAsync(Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
24738
25258
  [theme]: true,
24739
25259
  button: true, // ion-buttons target .button
24740
25260
  'menu-button-hidden': hidden,
@@ -24743,7 +25263,7 @@ class MenuButton {
24743
25263
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
24744
25264
  'ion-activatable': true,
24745
25265
  'ion-focusable': true,
24746
- }) }, hAsync("button", Object.assign({ key: '33017f0cde4835383f65b82f24e088dc2cf46517' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '63aadc2910f7fd7ae070fe108822c51441dd8ea5', class: "button-inner" }, hAsync("slot", { key: '6696b67329bdf6a0a7db0739d16717eb9ffc5f3b' }, hAsync("ion-icon", { key: '7f88dd0caa7003db810bce76189ecbaba9ff6317', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme === 'md' && hAsync("ion-ripple-effect", { key: '1a2063529bb63cc055fb4bb7d1ad3032df2a74b4', type: "unbounded" }))));
25266
+ }) }, 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" }))));
24747
25267
  }
24748
25268
  get el() { return getElement(this); }
24749
25269
  static get style() { return {
@@ -24800,10 +25320,10 @@ class MenuToggle {
24800
25320
  render() {
24801
25321
  const theme = getIonTheme(this);
24802
25322
  const hidden = this.autoHide && !this.visible;
24803
- return (hAsync(Host, { key: 'c3ddce789a90d720769919ebf854d05cc75f599e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25323
+ return (hAsync(Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
24804
25324
  [theme]: true,
24805
25325
  'menu-toggle-hidden': hidden,
24806
- } }, hAsync("slot", { key: 'f1334ba9d20148b673a0b6185ab5ef92f448f720' })));
25326
+ } }, hAsync("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
24807
25327
  }
24808
25328
  static get style() { return menuToggleCss(); }
24809
25329
  static get cmpMeta() { return {
@@ -28306,20 +28826,20 @@ class Modal {
28306
28826
  const isHandleCycle = handleBehavior === 'cycle';
28307
28827
  const shape = this.getShape();
28308
28828
  const isSheetModalWithHandle = isSheetModal && showHandle;
28309
- return (hAsync(Host, Object.assign({ key: 'e4b82f87c76d3ad5aae7794c4c882e6c95ef7c97', "no-router": true,
28829
+ return (hAsync(Host, Object.assign({ key: '2d3a31da1613386cf90f0d59d6b26c9a5b654d2a', "no-router": true,
28310
28830
  // Allow the modal to be navigable when the handle is focusable
28311
28831
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
28312
28832
  zIndex: `${20000 + this.overlayIndex}`,
28313
- }, 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: '70f0240dd59e38587c6fbbc2ade4fcb094292b48', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && hAsync("div", { key: '9c2b8fd94a37c39739de9b5b12d541685e4fb26c', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '55eb3782bd130447dcb935097366b85941422220',
28833
+ }, 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: 'baf6be86f7d5053d870a4ad794c1d584985c5ba0', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && hAsync("div", { key: 'e3b76699bc31e8dd29b09ed6091d8f9003865e15', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3043e51b33a1e394ae731ebc49fd4df7ef71be99',
28314
28834
  /*
28315
28835
  role and aria-modal must be used on the
28316
28836
  same element. They must also be set inside the
28317
28837
  shadow DOM otherwise ion-button will not be highlighted
28318
28838
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
28319
28839
  */
28320
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'bc685478939603b48fd2530cc0d24beb138f5918', class: "modal-handle",
28840
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '19e71dc84abf18b21be76ec35229c5c5e7410c6e', class: "modal-handle",
28321
28841
  // Prevents the handle from receiving keyboard focus when it does not cycle
28322
- 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: '96d518c5ee89e7b16929cd6fd682347045d5c231', onSlotchange: this.onSlotChange }))));
28842
+ 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: '9b868070ee1be064e6b385f4783fc428c78d8084', onSlotchange: this.onSlotChange }))));
28323
28843
  }
28324
28844
  get el() { return getElement(this); }
28325
28845
  static get watchers() { return {
@@ -29279,7 +29799,7 @@ class Nav {
29279
29799
  }
29280
29800
  }
29281
29801
  render() {
29282
- return hAsync("slot", { key: 'd6dd0b1e0ba59381a139f4a49de3eb8351fa87a4' });
29802
+ return hAsync("slot", { key: '87188d8fb4232d448ef2ad8e3db29c3730b1ff9e' });
29283
29803
  }
29284
29804
  get el() { return getElement(this); }
29285
29805
  static get watchers() { return {
@@ -29360,7 +29880,7 @@ class NavLink {
29360
29880
  };
29361
29881
  }
29362
29882
  render() {
29363
- return hAsync(Host, { key: '61246716bdf9556db90e07680bc1a289f9658d5c', onClick: this.onClick });
29883
+ return hAsync(Host, { key: '38f3d2e7a3ae4e57ac1479436c143e6820d25cd2', onClick: this.onClick });
29364
29884
  }
29365
29885
  get el() { return getElement(this); }
29366
29886
  static get cmpMeta() { return {
@@ -29394,9 +29914,9 @@ class Note {
29394
29914
  }
29395
29915
  render() {
29396
29916
  const theme = getIonTheme(this);
29397
- return (hAsync(Host, { key: 'a8470df6b8fb8ca327a282fc23705bc230f13a40', class: createColorClasses$1(this.color, {
29917
+ return (hAsync(Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: createColorClasses$1(this.color, {
29398
29918
  [theme]: true,
29399
- }) }, hAsync("slot", { key: '07cbdef68f010b06638f359f70dff3f1d659d899' })));
29919
+ }) }, hAsync("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
29400
29920
  }
29401
29921
  static get style() { return {
29402
29922
  ionic: ionicNoteMdCss(),
@@ -30162,11 +30682,11 @@ class Picker {
30162
30682
  render() {
30163
30683
  const { htmlAttributes } = this;
30164
30684
  const theme = getIonTheme(this);
30165
- return (hAsync(Host, Object.assign({ key: 'efcc823fad9cb37c1379bef4f4b84c6461f3a3a6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30685
+ return (hAsync(Host, Object.assign({ key: 'b0c1fc8eee284f03c696f0c8aaa29f4a6d7be0be', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30166
30686
  zIndex: `${20000 + this.overlayIndex}`,
30167
30687
  }, class: Object.assign({ [theme]: true,
30168
30688
  // Used internally for styling
30169
- [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '3f44bf34e039210ae149c590c393ee9f7fb85da0', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'c2a51a89c525b1a22cbc8583cd30f41c3c356d4f', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '23837ffe309d0aad9b8ea09d7ac94d21040ef0d7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '91ba7e553d570768142715ded4bcc27fceedbce4', 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: '22661cafeb555f1435ec1e0a122404a48136095b', class: "picker-columns" }, hAsync("div", { key: '5f3db32468b8c60f63c70d81a27b18cce6f2e259', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '1bae6b170125b1671a480506ba73636b42b65909', class: "picker-below-highlight" }))), hAsync("div", { key: '91beb94ce537122fbd6cd0c2bd3c00f908d0fefe', tabindex: "0", "aria-hidden": "true" })));
30689
+ [`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" })));
30170
30690
  }
30171
30691
  get el() { return getElement(this); }
30172
30692
  static get watchers() { return {
@@ -31144,9 +31664,9 @@ class PickerColumnCmp {
31144
31664
  render() {
31145
31665
  const col = this.col;
31146
31666
  const theme = getIonTheme(this);
31147
- return (hAsync(Host, { key: '66a5b7f51aa1ee343dbad3830e03933dbdab27ed', 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: {
31667
+ 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: {
31148
31668
  'max-width': this.col.columnWidth,
31149
- } }, col.prefix && (hAsync("div", { key: '19a170752bacdabd50c719f6d1aa9e58a2bd830b', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '871671f796aa6a1f78e07ab2599d94b5fd8cd0bf', 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: '89792e1dc75a4359a4706a8fd1846fe29b866173', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
31669
+ } }, 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))));
31150
31670
  }
31151
31671
  get el() { return getElement(this); }
31152
31672
  static get watchers() { return {
@@ -31271,10 +31791,10 @@ class PickerColumnOption {
31271
31791
  render() {
31272
31792
  const { color, disabled, ariaLabel } = this;
31273
31793
  const theme = getIonTheme(this);
31274
- return (hAsync(Host, { key: '9ceebae71b6df0b01f36691d82d716f6756625d9', class: createColorClasses$1(color, {
31794
+ return (hAsync(Host, { key: '54c254f01017aa47aac76c0833f9ef04bf20bdc9', class: createColorClasses$1(color, {
31275
31795
  [theme]: true,
31276
31796
  ['option-disabled']: disabled,
31277
- }) }, hAsync("div", { key: '1f26246d601779dadfaf055d195e2a4959180f5a', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'eed413474a8b7ec7a73da27fa72a2d0a9a2aae2b' }))));
31797
+ }) }, hAsync("div", { key: '36b21f1b7d9a5b05f0211ce8be90f66578641224', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '154bf9ca37ca1c6e5d34d42c16b04203e83210be' }))));
31278
31798
  }
31279
31799
  get el() { return getElement(this); }
31280
31800
  static get watchers() { return {
@@ -32843,9 +33363,9 @@ class Popover {
32843
33363
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
32844
33364
  const desktop = isPlatform('desktop');
32845
33365
  const enableArrow = arrow && !parentPopover;
32846
- return (hAsync(Host, Object.assign({ key: 'ba8801218aa8543eae0e8e2c57fbd0d4fbb2c8ff', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33366
+ return (hAsync(Host, Object.assign({ key: '43128f8b7e57f08a451af1a237534d0517d86eda', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
32847
33367
  zIndex: `${20000 + this.overlayIndex}`,
32848
- }, 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: '0301c9a9ed70cf34445e89484cd4145dc98f3d4c', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'd017b8cda9eb474cf990222c90539697308a1c8f', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: 'fdf8ec2e98a29bfa3e26788e4a432ff402800202', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '9498eace0a68daf39e7c0580ca46e33a9791f62c', class: "popover-content", part: "content" }, hAsync("slot", { key: '0f10c7e335d2f4f75e10d7fde5244c3dd5ae0bb4' })))));
33368
+ }, 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' })))));
32849
33369
  }
32850
33370
  get el() { return getElement(this); }
32851
33371
  static get watchers() { return {
@@ -32973,7 +33493,7 @@ class ProgressBar {
32973
33493
  const shape = this.getShape();
32974
33494
  // If the progress is displayed as a solid bar.
32975
33495
  const progressSolid = buffer === 1;
32976
- return (hAsync(Host, { key: '9adef68c31bdf39d48199e01587f8d5295d4c6af', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33496
+ return (hAsync(Host, { key: '0f6202e25d884fb85d18578769f6cfa5c704e9d9', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
32977
33497
  [theme]: true,
32978
33498
  [`progress-bar-${type}`]: true,
32979
33499
  'progress-paused': paused,
@@ -33166,7 +33686,7 @@ class Radio {
33166
33686
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
33167
33687
  const theme = getIonTheme(this);
33168
33688
  const inItem = hostContext('ion-item', el);
33169
- return (hAsync(Host, { key: '19cc76c559551a34e4968f4902709be6f104dede', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33689
+ return (hAsync(Host, { key: '82127b11eac97fa45886179d248c8509ca07655a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33170
33690
  [theme]: true,
33171
33691
  'in-item': inItem,
33172
33692
  'radio-checked': checked,
@@ -33177,10 +33697,10 @@ class Radio {
33177
33697
  // Focus and active styling should not apply when the radio is in an item
33178
33698
  'ion-activatable': !inItem,
33179
33699
  'ion-focusable': !inItem,
33180
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'ba97fae433b69e609ad88b949a56cd213d866ae6', class: "radio-wrapper" }, hAsync("div", { key: 'a742b8f1a56d080fd221d89717dbd110db18ee69', class: {
33700
+ }), 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: {
33181
33701
  'label-text-wrapper': true,
33182
33702
  'label-text-wrapper-hidden': !hasLabel,
33183
- }, part: "label" }, hAsync("slot", { key: 'f06b9b57e1c2d66d3eb6790ca30f4d5e85d0d264' })), hAsync("div", { key: '780fc11778f5661d95e60c6cd72a9ed78910b889', class: "native-wrapper" }, this.renderRadioControl()))));
33703
+ }, part: "label" }, hAsync("slot", { key: '9c26b977843398be61f1b753251d8fe40d65702a' })), hAsync("div", { key: '336b2d6aeb5e86dc1d994ac1eac52634f5da5b9c', class: "native-wrapper" }, this.renderRadioControl()))));
33184
33704
  }
33185
33705
  get el() { return getElement(this); }
33186
33706
  static get watchers() { return {
@@ -33450,10 +33970,10 @@ class RadioGroup {
33450
33970
  const { label, labelId, el, name, value } = this;
33451
33971
  const theme = getIonTheme(this);
33452
33972
  renderHiddenInput(true, el, name, value, false);
33453
- return (hAsync(Host, { key: '39246fbf1f1e3a6ba27dd715f030445d4434999b', class: {
33973
+ return (hAsync(Host, { key: 'c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e', class: {
33454
33974
  [theme]: true,
33455
33975
  'in-list': hostContext('ion-list', el),
33456
- }, 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: '892b023cb363fc2dc67f8df028d3dfc58f7b54cd' })));
33976
+ }, 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' })));
33457
33977
  }
33458
33978
  get el() { return getElement(this); }
33459
33979
  static get watchers() { return {
@@ -34303,7 +34823,7 @@ class Range {
34303
34823
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
34304
34824
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
34305
34825
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
34306
- return (hAsync(Host, { key: '1b8ca217fa6965fc038fb4ca8f0bc9142b3893ad', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34826
+ return (hAsync(Host, { key: '6c11f7ad176a00ca5368be9ba46c29f6a9aa02bb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34307
34827
  [theme]: true,
34308
34828
  'in-item': inItem,
34309
34829
  'range-disabled': disabled,
@@ -34317,10 +34837,10 @@ class Range {
34317
34837
  'range-item-end-adjustment': needsEndAdjustment,
34318
34838
  'range-value-min': valueAtMin,
34319
34839
  'range-value-max': valueAtMax,
34320
- }) }, hAsync("label", { key: '98b02130c9bb5a9ba6557be28f1ac09be0d10806', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '570083103b51b335c805672918d69e997dc30e66', class: {
34840
+ }) }, hAsync("label", { key: '4ac202cf5fd17a9f69e288508e89cfe266a2c8f2', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '1261d51ce247e066e5005f4aaa7b474ae0ddd421', class: {
34321
34841
  'label-text-wrapper': true,
34322
34842
  'label-text-wrapper-hidden': !hasLabel,
34323
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '1e3233a747d0adca6611234d0675ce049ef979cf', class: "native-wrapper" }, hAsync("slot", { key: '4f06a217592a98d889420468eb282ba8652ef1cc', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '4286279dbadf0e92bffbd5e98d5e36cba095be3c', name: "end" })))));
34843
+ }, 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" })))));
34324
34844
  }
34325
34845
  get el() { return getElement(this); }
34326
34846
  static get watchers() { return {
@@ -35395,7 +35915,7 @@ class Refresher {
35395
35915
  }
35396
35916
  render() {
35397
35917
  const theme = getIonTheme(this);
35398
- return (hAsync(Host, { key: '0be6aed52363cda66f8324ddfb9b0aeda92ce0bf', slot: "fixed", class: {
35918
+ return (hAsync(Host, { key: 'd2671f7850b565e7a6fc5b3ff15b2410bcf7cb32', slot: "fixed", class: {
35399
35919
  [theme]: true,
35400
35920
  // Used internally for styling
35401
35921
  [`refresher-${theme}`]: true,
@@ -35634,9 +36154,9 @@ class RefresherContent {
35634
36154
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
35635
36155
  const theme = getIonTheme(this);
35636
36156
  const arrowIcon = theme === 'ionic' ? caretLeftFillSvg : caretBackSharp;
35637
- return (hAsync(Host, { key: '3a3a3fb44f8397bb8e5019b51254ada8c26ae371', class: {
36157
+ return (hAsync(Host, { key: '684bf1189acba94c502e2bb421f0b65313c3e9f9', class: {
35638
36158
  [theme]: true,
35639
- } }, hAsync("div", { key: '3e63966e8c2b262b1f9d4a5545dbdd00e97a4c68', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'd4c8fa7151cee666520a40050c58f6e8201b14a5', class: "refresher-pulling-icon" }, hAsync("div", { key: '2f45a17fe5fe51e81e2d7bd580fd60ce754c5989', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '210cd5f152453a283dbc579f545c683e3af84ea3', name: this.pullingIcon, paused: true }), (theme === 'md' || theme === 'ionic') && this.pullingIcon === 'circular' && (hAsync("div", { key: '060c8d531e90478121113f59989ac29809f48947', class: "arrow-container" }, hAsync("ion-icon", { key: '7c30ddd2c1a6e2274e7d57f792733017c663197b', icon: arrowIcon, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dee253d56c871195dcd59eaedc2b867ac578319', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '46b859328da272449f316ea8f68f3c3dd545c2e7', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '56660f9f6cff1006c5552df3a9430124689d42cb', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'e8232281f251e5d0d22972fa8e38176edc3d9e5d', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '70f42df444c4669f393137f218ba9d635f76a26c', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
36159
+ } }, 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())));
35640
36160
  }
35641
36161
  get el() { return getElement(this); }
35642
36162
  static get style() { return {
@@ -35705,9 +36225,9 @@ class Reorder {
35705
36225
  render() {
35706
36226
  const { reorderHandleIcon } = this;
35707
36227
  const theme = getIonTheme(this);
35708
- return (hAsync(Host, { key: 'ba59a095c200b70c6d847dc7362d52b315dc853a', class: {
36228
+ return (hAsync(Host, { key: '2a30643d0c5dbebab97a7aca68c165ee79ceed33', class: {
35709
36229
  [theme]: true,
35710
- } }, hAsync("slot", { key: '79be263f78cc21c9c4f91326e557e65849ab1e51' }, hAsync("ion-icon", { key: '6e5c47c8bbd33f5cd405a5fd531831cb87c8e57e', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36230
+ } }, hAsync("slot", { key: '9ac45a0cc21aea6ed0ec03aa12334886219b1051' }, hAsync("ion-icon", { key: '6d6789a718db4f252c6b3b4484148be2a65c80b8', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
35711
36231
  }
35712
36232
  get el() { return getElement(this); }
35713
36233
  static get style() { return {
@@ -35983,7 +36503,7 @@ class ReorderGroup {
35983
36503
  }
35984
36504
  render() {
35985
36505
  const theme = getIonTheme(this);
35986
- return (hAsync(Host, { key: 'df12858536c409c76552fe79b88827b3c4a5d9c5', class: {
36506
+ return (hAsync(Host, { key: 'f618089290a47bae34bcaaed968c3f8f4daa827f', class: {
35987
36507
  [theme]: true,
35988
36508
  'reorder-enabled': !this.disabled,
35989
36509
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -36109,7 +36629,7 @@ class RippleEffect {
36109
36629
  }
36110
36630
  render() {
36111
36631
  const theme = getIonTheme(this);
36112
- return (hAsync(Host, { key: '502ce1841747f255dfab542914bebd0d0f4ae9bd', role: "presentation", class: {
36632
+ return (hAsync(Host, { key: 'f4db39623cfd1bdc773e222b2dd9ed52a26cc685', role: "presentation", class: {
36113
36633
  [theme]: true,
36114
36634
  unbounded: this.unbounded,
36115
36635
  } }));
@@ -37094,10 +37614,10 @@ class RouterLink {
37094
37614
  rel: this.rel,
37095
37615
  target: this.target,
37096
37616
  };
37097
- return (hAsync(Host, { key: '518b86cf40eb95e03f75a20ff44fff804ac8ec4d', onClick: this.onClick, class: createColorClasses$1(this.color, {
37617
+ return (hAsync(Host, { key: '989574921f3bf06e4e5ad4e98ea3cce2e5c7165e', onClick: this.onClick, class: createColorClasses$1(this.color, {
37098
37618
  [theme]: true,
37099
37619
  'ion-activatable': true,
37100
- }) }, hAsync("a", Object.assign({ key: 'dbf3cc12752b4fa2d3873723a8ea5a30b053d261' }, attrs), hAsync("slot", { key: '9614e46a8d35201937f1f9a39b88f71b78efa7a0' }))));
37620
+ }) }, hAsync("a", Object.assign({ key: 'ee72dba91cc13ca4f251ba6bb5a8b7bf54b6f88d' }, attrs), hAsync("slot", { key: '8e8b5afd795bb213b8765f731463e0588799b001' }))));
37101
37621
  }
37102
37622
  static get style() { return routerLinkCss(); }
37103
37623
  static get cmpMeta() { return {
@@ -37297,7 +37817,7 @@ class RouterOutlet {
37297
37817
  return true;
37298
37818
  }
37299
37819
  render() {
37300
- return hAsync("slot", { key: '3f107f085a977b4d27c7266771a9564e3219f736' });
37820
+ return hAsync("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
37301
37821
  }
37302
37822
  get el() { return getElement(this); }
37303
37823
  static get watchers() { return {
@@ -37337,9 +37857,9 @@ class Row {
37337
37857
  }
37338
37858
  render() {
37339
37859
  const theme = getIonTheme(this);
37340
- return (hAsync(Host, { key: '6f5dd5032485a69ddf9510e2e539a7ba90afda47', class: {
37860
+ return (hAsync(Host, { key: '64ff6346d95be8d99d6500a6263067081f3fe254', class: {
37341
37861
  [theme]: true,
37342
- } }, hAsync("slot", { key: '994dcbbc871d606b61ff5993fb29aa1fa349c483' })));
37862
+ } }, hAsync("slot", { key: 'e9b4c111f3a49515a721bf679ef2f1a039c9822a' })));
37343
37863
  }
37344
37864
  static get style() { return rowCss(); }
37345
37865
  static get cmpMeta() { return {
@@ -37898,8 +38418,8 @@ class Searchbar {
37898
38418
  const shouldShowCancelButton = this.shouldShowCancelButton();
37899
38419
  const shape = this.getShape();
37900
38420
  const size = this.getSize();
37901
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: 'e9d60e9e313218ae012da0eb63dc3c08f37f6915', "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: '4566b2968b5ba79369e424f1829decf7779e9be1', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
37902
- return (hAsync(Host, { key: 'e6af154631381ee0549c5d1d39577a86b8ae7b3f', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38421
+ 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))));
38422
+ return (hAsync(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
37903
38423
  [theme]: true,
37904
38424
  'searchbar-animated': animated,
37905
38425
  'searchbar-disabled': this.disabled,
@@ -37913,14 +38433,14 @@ class Searchbar {
37913
38433
  [`searchbar-shape-${shape}`]: shape !== undefined,
37914
38434
  [`searchbar-size-${size}`]: size !== undefined,
37915
38435
  'in-toolbar': hostContext('ion-toolbar', this.el),
37916
- }) }, hAsync("div", { key: 'cdd7674dd31f53a96517c69fc83916ceea590d6a', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'b7682f425c2645b9fe33ee03d0d0adb88c5b7c7b', "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: 'd8ad4196fa5921a3f444756410386b8189f4136a', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (hAsync("button", { key: '7bad8accea54850d7cb6dbe8d5d5a404c97bab8b', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
38436
+ }) }, 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) => {
37917
38437
  /**
37918
38438
  * This prevents mobile browsers from
37919
38439
  * blurring the input when the clear
37920
38440
  * button is activated.
37921
38441
  */
37922
38442
  ev.preventDefault();
37923
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'f60f21ce6f8c3e37d768ff0bd5c69e5797dd77fd', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38443
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
37924
38444
  }
37925
38445
  get el() { return getElement(this); }
37926
38446
  static get watchers() { return {
@@ -38535,14 +39055,14 @@ class Segment {
38535
39055
  }
38536
39056
  render() {
38537
39057
  const theme = getIonTheme(this);
38538
- return (hAsync(Host, { key: 'aa903445e6c04076cb4b29cf7195e7b843b158aa', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39058
+ return (hAsync(Host, { key: '2c0631392507f2e903670070232029928470bf11', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
38539
39059
  [theme]: true,
38540
39060
  'in-toolbar': hostContext('ion-toolbar', this.el),
38541
39061
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
38542
39062
  'segment-activated': this.activated,
38543
39063
  'segment-disabled': this.disabled,
38544
39064
  'segment-scrollable': this.scrollable,
38545
- }) }, hAsync("slot", { key: '761df7f38ea889287f466ba35076a50b5e8d7b72', onSlotchange: this.onSlottedItemsChange })));
39065
+ }) }, hAsync("slot", { key: 'ed99c28b8976c4d51ad12089680cb8fb51d835a7', onSlotchange: this.onSlottedItemsChange })));
38546
39066
  }
38547
39067
  get el() { return getElement(this); }
38548
39068
  static get watchers() { return {
@@ -38694,7 +39214,7 @@ class SegmentButton {
38694
39214
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
38695
39215
  const theme = getIonTheme(this);
38696
39216
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
38697
- return (hAsync(Host, { key: '75eeffd15e3581c15f48a0b12cbf5a4229b087d6', class: {
39217
+ return (hAsync(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
38698
39218
  [theme]: true,
38699
39219
  'in-toolbar': hostContext('ion-toolbar', this.el),
38700
39220
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -38710,7 +39230,7 @@ class SegmentButton {
38710
39230
  'ion-activatable': true,
38711
39231
  'ion-activatable-instant': true,
38712
39232
  'ion-focusable': true,
38713
- } }, hAsync("button", Object.assign({ key: '701fd86647377f744d91eb92427c73583d229253', "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: '63634d3e500312c847194551996a2897610e0cc7', class: "button-inner" }, hAsync("slot", { key: '89963e233c9a7ea84b7262ab84db6edbe76ee95e' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '9d766c3d48c0b2ba50ab03f2279ccf710973bbba' })), hAsync("div", { key: 'a70f2d1a57cca4e04b00b36a6b47eb93ef4cb26e', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'aff9931755a1f643147bf0e7d2be29b35d8f9d41', part: "indicator-background", class: "segment-button-indicator-background" }))));
39233
+ } }, 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" }))));
38714
39234
  }
38715
39235
  get el() { return getElement(this); }
38716
39236
  static get watchers() { return {
@@ -38748,7 +39268,7 @@ class SegmentContent {
38748
39268
  registerInstance(this, hostRef);
38749
39269
  }
38750
39270
  render() {
38751
- return (hAsync(Host, { key: '81cc29460a17c32592fbf9fca6242f4bb1738aa6' }, hAsync("slot", { key: '4f718420caf11c6672642fcf1a1bdb7f48d6cdfc' })));
39271
+ return (hAsync(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, hAsync("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
38752
39272
  }
38753
39273
  static get style() { return segmentContentCss(); }
38754
39274
  static get cmpMeta() { return {
@@ -38876,11 +39396,11 @@ class SegmentView {
38876
39396
  }
38877
39397
  render() {
38878
39398
  const { disabled, isManualScroll, swipeGesture } = this;
38879
- return (hAsync(Host, { key: 'f03a6e740fde773dc02e0aad79fd73475c3227fa', class: {
39399
+ return (hAsync(Host, { key: '48ce45ca6c45d4bbc804390c31a43729a60abb8a', class: {
38880
39400
  'segment-view-disabled': disabled,
38881
39401
  'segment-view-scroll-disabled': isManualScroll === false,
38882
39402
  'segment-view-swipe-disabled': swipeGesture === false,
38883
- } }, hAsync("slot", { key: '3c850dd0e7ca795af8497162c8824eaede3bbc29' })));
39403
+ } }, hAsync("slot", { key: 'e248ce5b24b355bd6b51cbfd25741addf4ffd4fb' })));
38884
39404
  }
38885
39405
  get el() { return getElement(this); }
38886
39406
  static get style() { return {
@@ -39816,7 +40336,7 @@ class Select {
39816
40336
  * TODO(FW-5592): Remove hasStartEndSlots condition
39817
40337
  */
39818
40338
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
39819
- return (hAsync(Host, { key: 'b75ee27abca24a0ee5ec2bcecec98aeab85d11b2', onClick: this.onClick, class: createColorClasses$1(this.color, {
40339
+ return (hAsync(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses$1(this.color, {
39820
40340
  [theme]: true,
39821
40341
  'in-item': inItem,
39822
40342
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -39835,7 +40355,7 @@ class Select {
39835
40355
  [`select-shape-${shape}`]: shape !== undefined,
39836
40356
  [`select-label-placement-${labelPlacement}`]: true,
39837
40357
  [`select-size-${size}`]: size !== undefined,
39838
- }) }, hAsync("label", { key: '09f84e92cec1f79d4563d5f27edd7f71266446b8', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '448be6befb0d4a2c0be0b31d9fb970c4bf86e004', class: "select-wrapper-inner", part: "inner" },
40358
+ }) }, 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" },
39839
40359
  /**
39840
40360
  * For the ionic theme, we render the outline container here
39841
40361
  * instead of higher up, so it can be positioned relative to
@@ -39845,7 +40365,7 @@ class Select {
39845
40365
  * <label> element, ensuring that clicking the label text
39846
40366
  * focuses the select.
39847
40367
  */
39848
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '5304fa8c9eb2f8a048cd242696aad6bcd66ffa71', class: "select-outline" }), hAsync("slot", { key: '6103312fc0549a71b395e550472c489cd63e50cf', name: "start" }), hAsync("div", { key: 'c37d9c7f6087b522b424b28aaa711f7682468429', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '4e7228f7911e5b85b60bdba483506845b2df9f58', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '9c4a369969d2653a553e667e544928e9341dbb51', class: "select-highlight" })), this.renderBottomContent()));
40368
+ 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()));
39849
40369
  }
39850
40370
  get el() { return getElement(this); }
39851
40371
  static get watchers() { return {
@@ -40237,7 +40757,7 @@ class SelectModal {
40237
40757
  });
40238
40758
  }
40239
40759
  render() {
40240
- return (hAsync(Host, { key: '3d19cbc5c4b35089ce424924174f6b87fb1bdcab', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: '3cb79b05db6fec2f72ebdb87edcc24bad9c375ac' }, hAsync("ion-toolbar", { key: '99cf6652daad67727efc354d2064f96658e110be' }, this.header !== undefined && hAsync("ion-title", { key: '372fc52cfb477875cb6f0af8aee0e33f3059ecb1' }, this.header), hAsync("ion-buttons", { key: '748ff6504898f1516ce1904e77a5bcea8ad8cdd3', slot: "end" }, hAsync("ion-button", { key: '129b09e56081dd7f4407d00dce0df0d89836d32b', "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: 'd3e095c2d3b01481877ffadffcef17792422c242' }, hAsync("ion-list", { key: '7514600d43482f866e508ee88ea65ee2eae63887' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
40760
+ 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()))));
40241
40761
  }
40242
40762
  get el() { return getElement(this); }
40243
40763
  static get style() { return {
@@ -40282,7 +40802,7 @@ class SelectOption {
40282
40802
  }
40283
40803
  render() {
40284
40804
  const theme = getIonTheme(this);
40285
- return (hAsync(Host, { key: 'fd2c00d514768451e7d51631e4ce4cdb2a7a92ad', class: {
40805
+ return (hAsync(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
40286
40806
  [theme]: true,
40287
40807
  }, role: "option", id: this.inputId }));
40288
40808
  }
@@ -40451,9 +40971,9 @@ class SelectPopover {
40451
40971
  const { header, message, options, subHeader } = this;
40452
40972
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
40453
40973
  const theme = getIonTheme(this);
40454
- return (hAsync(Host, { key: '75388b15e655f05df0849bbcd79064e4f9f72294', class: {
40974
+ return (hAsync(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
40455
40975
  [theme]: true,
40456
- } }, hAsync("ion-list", { key: '14a2f8e328145d7563e9f1924637e08ba3f64f07' }, header !== undefined && hAsync("ion-list-header", { key: '22f0b835c1ea3c13e54dc3be563dcb2dc8d7f53e' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'd0464a9be0c4c3f5df33597929b89d20bc57ca7b' }, hAsync("ion-label", { key: '362f77d17c4613a27ced112cc056369ac6915fc7', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '7166ad9c5a5f39ee3006e59ab069bbee6fbf8c2f' }, subHeader), message !== undefined && hAsync("p", { key: 'a195ed5683525cf6d63b6b8c36c49965dcab7315' }, message)))), this.renderOptions(options))));
40976
+ } }, 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))));
40457
40977
  }
40458
40978
  get el() { return getElement(this); }
40459
40979
  static get style() { return {
@@ -40508,11 +41028,11 @@ class SkeletonText {
40508
41028
  const animated = this.animated && config.getBoolean('animated', true);
40509
41029
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
40510
41030
  const theme = getIonTheme(this);
40511
- return (hAsync(Host, { key: '5014563646b6c5213750d503babce3013b66ec96', class: {
41031
+ return (hAsync(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
40512
41032
  [theme]: true,
40513
41033
  'skeleton-text-animated': animated,
40514
41034
  'in-media': inMedia,
40515
- } }, hAsync("span", { key: '4b816883b1c71bb1db66d8b2b084559f7cb489bd' }, "\u00A0")));
41035
+ } }, hAsync("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
40516
41036
  }
40517
41037
  get el() { return getElement(this); }
40518
41038
  static get style() { return skeletonTextCss(); }
@@ -40585,7 +41105,7 @@ class Spinner {
40585
41105
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
40586
41106
  }
40587
41107
  }
40588
- return (hAsync(Host, { key: '0b3ce4b99c2c828d05b507c4f073811ebbe17d0f', class: createColorClasses$1(self.color, {
41108
+ return (hAsync(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses$1(self.color, {
40589
41109
  [theme]: true,
40590
41110
  [`spinner-${spinnerName}`]: true,
40591
41111
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -40629,6 +41149,7 @@ const splitPaneIosCss = () => `:host{--side-width:100%;right:0;left:0;top:0;bott
40629
41149
 
40630
41150
  const splitPaneMdCss = () => `:host{--side-width:100%;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){right:0;left:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--side-min-width:270px;--side-max-width:28%}`;
40631
41151
 
41152
+ // TODO(FW-7285): Replace with global breakpoints
40632
41153
  const QUERY = {
40633
41154
  lg: '(min-width: 992px)'};
40634
41155
  /**
@@ -40696,12 +41217,12 @@ class SplitPane {
40696
41217
  }
40697
41218
  render() {
40698
41219
  const theme = getIonTheme(this);
40699
- return (hAsync(Host, { key: '9d0c67f1f81b09bb9a6f14a66053e5cc7431a286', class: {
41220
+ return (hAsync(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
40700
41221
  [theme]: true,
40701
41222
  // Used internally for styling
40702
41223
  [`split-pane-${theme}`]: true,
40703
41224
  'split-pane-visible': this.visible,
40704
- } }, hAsync("slot", { key: 'ab7b3050d3c5484bd00949cf57efa4396b4d5bc3' })));
41225
+ } }, hAsync("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
40705
41226
  }
40706
41227
  get el() { return getElement(this); }
40707
41228
  static get watchers() { return {
@@ -40778,10 +41299,10 @@ class Tab {
40778
41299
  }
40779
41300
  render() {
40780
41301
  const { tab, active, component } = this;
40781
- return (hAsync(Host, { key: 'b249545a5adfcef4616afe79aa0f215bab464d0a', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41302
+ return (hAsync(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
40782
41303
  'ion-page': component === undefined,
40783
41304
  'tab-hidden': !active,
40784
- } }, hAsync("slot", { key: '19e2a406d96d20d8d4af8c3ff900e975d06021f6' })));
41305
+ } }, hAsync("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
40785
41306
  }
40786
41307
  get el() { return getElement(this); }
40787
41308
  static get watchers() { return {
@@ -40988,7 +41509,7 @@ class TabBar {
40988
41509
  const theme = getIonTheme(this);
40989
41510
  const shape = this.getShape();
40990
41511
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
40991
- return (hAsync(Host, { key: '7a91bb00ad289d94d34271bdecefb7221c093fd6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41512
+ return (hAsync(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
40992
41513
  [theme]: true,
40993
41514
  'tab-bar-translucent': translucent,
40994
41515
  'tab-bar-hidden': shouldHide,
@@ -40996,7 +41517,7 @@ class TabBar {
40996
41517
  'tab-bar-scroll-hidden': scrollHidden,
40997
41518
  [`tab-bar-${expand}`]: true,
40998
41519
  [`tab-bar-${shape}`]: shape !== undefined,
40999
- }) }, hAsync("slot", { key: '96ad10c451a6ae1e2b7c48d94d0f158fb8cde1dc' })));
41520
+ }) }, hAsync("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
41000
41521
  }
41001
41522
  get el() { return getElement(this); }
41002
41523
  static get watchers() { return {
@@ -41124,7 +41645,7 @@ class TabButton {
41124
41645
  rel,
41125
41646
  target,
41126
41647
  };
41127
- return (hAsync(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41648
+ return (hAsync(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41128
41649
  [theme]: true,
41129
41650
  'tab-selected': selected,
41130
41651
  'tab-disabled': disabled,
@@ -41137,7 +41658,7 @@ class TabButton {
41137
41658
  'ion-selectable': true,
41138
41659
  [`tab-button-shape-${shape}`]: shape !== undefined,
41139
41660
  'ion-focusable': true,
41140
- } }, hAsync("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, 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: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, hAsync("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
41661
+ } }, 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" }))));
41141
41662
  }
41142
41663
  get el() { return getElement(this); }
41143
41664
  static get style() { return {
@@ -41333,7 +41854,7 @@ class Tabs {
41333
41854
  return Array.from(this.el.querySelectorAll('ion-tab'));
41334
41855
  }
41335
41856
  render() {
41336
- return (hAsync(Host, { key: '9c05f69a72ab24897f1febab0928783d08224734', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '56407c9562bfd095e0259e430879151b824287fd', name: "top" }), hAsync("div", { key: '6a86ceff372b8a60342040d9361ad31bf05e80ec', class: "tabs-inner" }, hAsync("slot", { key: 'a554d3e835236a87686a0a53bd16d3124e77c0c5' })), hAsync("slot", { key: 'd241d4cfba26a7ce3a3f93703dae18b8857bd9ee', name: "bottom" })));
41857
+ 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" })));
41337
41858
  }
41338
41859
  get el() { return getElement(this); }
41339
41860
  static get style() { return tabsCss(); }
@@ -41374,9 +41895,9 @@ class Text {
41374
41895
  }
41375
41896
  render() {
41376
41897
  const theme = getIonTheme(this);
41377
- return (hAsync(Host, { key: '7a3f31d6e219207a1ff98ac441357caa512012e5', class: createColorClasses$1(this.color, {
41898
+ return (hAsync(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses$1(this.color, {
41378
41899
  [theme]: true,
41379
- }) }, hAsync("slot", { key: '392d48d6a5e0e5d1b44e762ec96fb8b53b3ebd49' })));
41900
+ }) }, hAsync("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
41380
41901
  }
41381
41902
  static get style() { return textCss(); }
41382
41903
  static get cmpMeta() { return {
@@ -41940,7 +42461,7 @@ class Textarea {
41940
42461
  * TODO(FW-5592): Remove hasStartEndSlots condition
41941
42462
  */
41942
42463
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
41943
- return (hAsync(Host, { key: 'b31341357553adac08f518e48d83127415f36500', class: createColorClasses$1(this.color, {
42464
+ return (hAsync(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses$1(this.color, {
41944
42465
  [theme]: true,
41945
42466
  'has-value': hasValue,
41946
42467
  'has-focus': hasFocus,
@@ -41952,7 +42473,7 @@ class Textarea {
41952
42473
  'in-item': inItem,
41953
42474
  'textarea-disabled': disabled,
41954
42475
  'textarea-readonly': readonly,
41955
- }) }, hAsync("label", { key: '406cb6739da3382da1f723c42f4ea5aee86e09d4', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '69056191d5f1036bcb88a31d44bc61e3a98f9ebc', class: "textarea-wrapper-inner" },
42476
+ }) }, hAsync("label", { key: '3d21eab560550527de015d36b1c71761792aa516', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '5fe9ec91ac5560d2ebbb93751dd770fe17e5f839', class: "textarea-wrapper-inner" },
41956
42477
  /**
41957
42478
  * For the ionic theme, we render the outline container here
41958
42479
  * instead of higher up, so it can be positioned relative to
@@ -41962,7 +42483,7 @@ class Textarea {
41962
42483
  * <label> element, ensuring that clicking the label text
41963
42484
  * focuses the textarea.
41964
42485
  */
41965
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'eff37b99e2f47f1973cc61611647c28ae7271a4d', class: "textarea-outline" }), hAsync("div", { key: '9c70d10b3d2cce601f670cd86bfc19fff10233da', class: "start-slot-wrapper" }, hAsync("slot", { key: 'b0c92cc7941a0810faabfb1acf177c019e200a5d', name: "start" })), hAsync("div", { key: 'a6f9a2c06a009c322d29aa3a6e2b5a79f3532c5b', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, hAsync("textarea", Object.assign({ key: 'eb6bf7370fa3047ed475680111d3e232f0c0644c', 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: 'e869ef964514267c0d419d474c16303c01d26cec', class: "end-slot-wrapper" }, hAsync("slot", { key: '8e9905fe7caaf4be904f9cfbc3d9d7f9c48deb50', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4287784c6b896b13a4205f5f959aebbbcdd49db3', class: "textarea-highlight" })), this.renderBottomContent()));
42486
+ 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()));
41966
42487
  }
41967
42488
  static get delegatesFocus() { return true; }
41968
42489
  static get formAssociated() { return true; }
@@ -42046,9 +42567,9 @@ class Thumbnail {
42046
42567
  }
42047
42568
  render() {
42048
42569
  const theme = getIonTheme(this);
42049
- return (hAsync(Host, { key: '6053cf163155d4268dad4fc81ffc6bbc70d75659', class: {
42570
+ return (hAsync(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
42050
42571
  [theme]: true,
42051
- } }, hAsync("slot", { key: 'b7afb5835bce7c7ed9e5cf44758bbe2d802e1271' })));
42572
+ } }, hAsync("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
42052
42573
  }
42053
42574
  static get style() { return thumbnailCss(); }
42054
42575
  static get cmpMeta() { return {
@@ -42932,9 +43453,9 @@ class Toast {
42932
43453
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
42933
43454
  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);
42934
43455
  }
42935
- return (hAsync(Host, Object.assign({ key: '6fd286b024a05e6960f7b4b7947a3c26cc129e14', tabindex: "-1" }, this.htmlAttributes, { style: {
43456
+ return (hAsync(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
42936
43457
  zIndex: `${60000 + this.overlayIndex}`,
42937
- }, 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: '42aa178a6c7f25841bb6e257810c37b6a5703b1f', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: '5cb2f2566ce8ab76de6a79ecac02a354eb242c58', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'f5a60e1b8c95bbbb829e3b9b01db64ab5229265a', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'a903491644c03391f66432253cc8365c782b056d', 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')))));
43458
+ }, 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')))));
42938
43459
  }
42939
43460
  get el() { return getElement(this); }
42940
43461
  static get watchers() { return {
@@ -43310,7 +43831,7 @@ class Toggle {
43310
43831
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
43311
43832
  const isIonicTheme = theme === 'ionic';
43312
43833
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
43313
- return (hAsync(Host, { key: 'b12951146a79d3839e6263e91e747398a0fa901d', 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, {
43834
+ 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, {
43314
43835
  [theme]: true,
43315
43836
  'in-item': hostContext('ion-item', el),
43316
43837
  'toggle-activated': activated,
@@ -43322,10 +43843,10 @@ class Toggle {
43322
43843
  [`toggle-${rtl}`]: true,
43323
43844
  'ion-activatable': isIonicTheme,
43324
43845
  'ion-focusable': isIonicTheme,
43325
- }) }, hAsync("label", { key: 'cf1d27243bf9bdd5bafaf6d86b76beb311b5e01c', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'b3eb0f146836f5994c15bf1fd67a79f72b9414f7', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '56ddcfd6452f30fd6b38d0fd85be3ec966aa120b', class: {
43846
+ }) }, 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: {
43326
43847
  'label-text-wrapper': true,
43327
43848
  'label-text-wrapper-hidden': !hasLabel,
43328
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '706e5b667ee242fb1afb3e4afa613f9798fbe25b' }), this.renderHintText()), hAsync("div", { key: '255ccd7d60f7d78b4eba8d380b303a72093e9d16', class: "native-wrapper" }, this.renderToggleControl()))));
43849
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), hAsync("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
43329
43850
  }
43330
43851
  get el() { return getElement(this); }
43331
43852
  static get watchers() { return {
@@ -43617,11 +44138,11 @@ class Toolbar {
43617
44138
  Object.assign(childStyles, style);
43618
44139
  });
43619
44140
  const titlePlacement = this.getTitlePlacement();
43620
- return (hAsync(Host, { key: 'a2103857ffb26f517b4190bb01a8fa170a042e45', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44141
+ return (hAsync(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
43621
44142
  [theme]: true,
43622
44143
  'in-toolbar': hostContext('ion-toolbar', this.el),
43623
44144
  [`toolbar-title-placement-${titlePlacement}`]: true,
43624
- })), childStyles) }, hAsync("div", { key: '288b74048d260c9279d6e60c8733e26105ee0098', class: "toolbar-background", part: "background" }), hAsync("div", { key: 'fa4b8cfb32f3bfb84f451cf3a2420b37fc75533c', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'fe9414ab3fa2ca84d424a400ba91ec8239d700ff', name: "start", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: 'c633cd1b6eef87adbfccfa61857518dcf62ac550', name: "secondary", onSlotchange: () => this.updateSlotClasses }), hAsync("div", { key: 'aff3a3d8acbc480e9daec864aeb85d168ab2c447', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '52b45c5abbfe695e862c857163e7aa00c1c2af9a' })), hAsync("slot", { key: '3157c16fcfe428230998f218c6233d114b550a6f', name: "primary", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: '4b74dff5b832ea0f3030efa319c63c876c3e90e2', name: "end", onSlotchange: () => this.updateSlotClasses }))));
44145
+ })), 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 }))));
43625
44146
  }
43626
44147
  get el() { return getElement(this); }
43627
44148
  static get watchers() { return {
@@ -43680,11 +44201,11 @@ class ToolbarTitle {
43680
44201
  render() {
43681
44202
  const theme = getIonTheme(this);
43682
44203
  const size = this.getSize();
43683
- return (hAsync(Host, { key: '8db3e5f9dbd8b1762a9919eaeef29c98649dfb25', class: createColorClasses$1(this.color, {
44204
+ return (hAsync(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses$1(this.color, {
43684
44205
  [theme]: true,
43685
44206
  [`title-${size}`]: true,
43686
44207
  'title-rtl': document.dir === 'rtl',
43687
- }) }, hAsync("div", { key: 'a31ebae2c494a51d2145eec69d0b1bc635108a01', class: "toolbar-title" }, hAsync("slot", { key: 'f5975b44b3e3afbf98dcbdb53fc78447b49407b3' }))));
44208
+ }) }, hAsync("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, hAsync("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
43688
44209
  }
43689
44210
  get el() { return getElement(this); }
43690
44211
  static get watchers() { return {
@@ -43740,6 +44261,7 @@ registerComponents([
43740
44261
  FabButton,
43741
44262
  FabList,
43742
44263
  Footer,
44264
+ Gallery,
43743
44265
  Grid,
43744
44266
  Header,
43745
44267
  Icon,