@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.js CHANGED
@@ -13108,6 +13108,7 @@ class Chip {
13108
13108
  }; }
13109
13109
  }
13110
13110
 
13111
+ // TODO(FW-7285): Replace with global breakpoints
13111
13112
  const SIZE_TO_MEDIA = {
13112
13113
  xs: '(min-width: 0px)',
13113
13114
  sm: '(min-width: 576px)',
@@ -13131,8 +13132,9 @@ const matchBreakpoint = (breakpoint) => {
13131
13132
 
13132
13133
  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}`;
13133
13134
 
13135
+ // TODO(FW-7285): Replace with global breakpoints
13134
13136
  // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
13135
- const BREAKPOINTS = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
13137
+ const BREAKPOINTS$1 = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
13136
13138
  /**
13137
13139
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
13138
13140
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -13147,7 +13149,7 @@ class Col {
13147
13149
  // matches and grab the column value from the relevant prop if so
13148
13150
  getColumns(property) {
13149
13151
  let matched;
13150
- for (const breakpoint of BREAKPOINTS) {
13152
+ for (const breakpoint of BREAKPOINTS$1) {
13151
13153
  const matches = matchBreakpoint(breakpoint);
13152
13154
  // Grab the value of the property, if it exists and our
13153
13155
  // media query matches we return the value
@@ -13208,12 +13210,12 @@ class Col {
13208
13210
  const colSize = this.getSizeClass();
13209
13211
  const colOrder = this.getOrderClass();
13210
13212
  const colOffset = this.getOffsetClass();
13211
- return (hAsync(Host, { key: '4620a4eb3c94f744d6169ae9d4cc43e86a271a52', class: {
13213
+ return (hAsync(Host, { key: '7fc98e15bd75e9c22fe7eaf71f2f49f5d987613a', class: {
13212
13214
  [theme]: true,
13213
13215
  [`${colSize}`]: colSize !== undefined,
13214
13216
  [`${colOrder}`]: colOrder !== undefined,
13215
13217
  [`${colOffset}`]: colOffset !== undefined,
13216
- } }, hAsync("slot", { key: '5c3be98deed2050634396339b7787f2770a05d35' })));
13218
+ } }, hAsync("slot", { key: '6ed04a2c2bcdb0400354368c568e58414a60fc39' })));
13217
13219
  }
13218
13220
  get el() { return getElement(this); }
13219
13221
  static get style() { return colCss(); }
@@ -18691,6 +18693,524 @@ class Footer {
18691
18693
  }; }
18692
18694
  }
18693
18695
 
18696
+ /**
18697
+ * Helpers for validating user-supplied CSS values using regular expressions, without
18698
+ * relying on browser CSS APIs.
18699
+ */
18700
+ // Matches `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
18701
+ const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
18702
+ // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18703
+ const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
18704
+ /**
18705
+ * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18706
+ * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
18707
+ * Also supports simple `calc` / `min` / `max` / `clamp(...)` functions.
18708
+ *
18709
+ * @param value String value to validate.
18710
+ */
18711
+ function isValidLengthPercentage(value) {
18712
+ const v = value.trim();
18713
+ if (!v) {
18714
+ return false;
18715
+ }
18716
+ return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
18717
+ }
18718
+
18719
+ const DEFAULT_COLUMNS = {
18720
+ xs: 2,
18721
+ sm: 3,
18722
+ md: 4,
18723
+ lg: 6,
18724
+ xl: 8,
18725
+ xxl: 10,
18726
+ };
18727
+ const DEFAULT_GAP = '16px';
18728
+
18729
+ 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}`;
18730
+
18731
+ // TODO(FW-7285): Replace with global breakpoints
18732
+ const BREAKPOINTS = {
18733
+ xs: 0,
18734
+ sm: 576,
18735
+ md: 768,
18736
+ lg: 992,
18737
+ xl: 1200,
18738
+ xxl: 1400,
18739
+ };
18740
+ const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
18741
+ /**
18742
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
18743
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
18744
+ *
18745
+ * @slot - Content is placed in a responsive gallery layout.
18746
+ */
18747
+ class Gallery {
18748
+ constructor(hostRef) {
18749
+ registerInstance(this, hostRef);
18750
+ // Keep track of whether we've warned about invalid columns, invalid gap,
18751
+ // and unused order properties to avoid duplicate warnings on screen resize.
18752
+ this.hasWarnedInvalidColumns = false;
18753
+ this.hasWarnedInvalidGap = false;
18754
+ this.hasWarnedUnusedOrder = false;
18755
+ /**
18756
+ * The visual layout of the gallery. When `uniform`, rows take up the height
18757
+ * of the tallest item and are spaced evenly across the gallery. Additionally,
18758
+ * items will have an aspect ratio of 1/1, forcing them to be square unless a
18759
+ * height is explicitly set. When `masonry`, items will be positioned under each
18760
+ * other with only the specified gap between them.
18761
+ */
18762
+ this.layout = 'uniform';
18763
+ /**
18764
+ * The number of columns to display. Can be set as a number or an object of
18765
+ * breakpoint values (e.g. `{ xs: 2, sm: 3, md: 4 }`).
18766
+ */
18767
+ this.columns = DEFAULT_COLUMNS;
18768
+ /**
18769
+ * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18770
+ * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
18771
+ * or numbers (treated as pixel values). Can also be set as a breakpoint map
18772
+ * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
18773
+ * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
18774
+ */
18775
+ this.gap = DEFAULT_GAP;
18776
+ /**
18777
+ * Listen for the slotchange event on the slot.
18778
+ * When the layout is `masonry`, this listener is used to schedule a resize
18779
+ * of the masonry grid when the slot changes. This is useful for when items
18780
+ * are added or removed from the gallery.
18781
+ */
18782
+ this.onSlotChange = () => {
18783
+ this.scheduleMasonryResize();
18784
+ };
18785
+ /**
18786
+ * Measure the host and children, then compute masonry placement.
18787
+ */
18788
+ this.resizeMasonryGrid = () => {
18789
+ this.masonryRaf = undefined;
18790
+ if (this.layout !== 'masonry') {
18791
+ this.clearMasonryStyles();
18792
+ return;
18793
+ }
18794
+ const width = this.el.getBoundingClientRect().width;
18795
+ const columns = this.getColumnsForWidth(width);
18796
+ // Skip masonry placement when width/columns does not resolve
18797
+ // to a valid breakpoint column count.
18798
+ if (columns === undefined) {
18799
+ return;
18800
+ }
18801
+ const styles = getComputedStyle(this.el);
18802
+ const rowHeight = parseFloat(styles.getPropertyValue('grid-auto-rows')) || 0;
18803
+ const rowGap = parseFloat(styles.getPropertyValue('row-gap')) || parseFloat(styles.getPropertyValue('gap')) || 0;
18804
+ const items = this.getItems();
18805
+ this.layoutMasonry(items, rowHeight, rowGap, columns);
18806
+ };
18807
+ }
18808
+ onColumnsOrGapChanged() {
18809
+ this.syncResponsiveLayout();
18810
+ }
18811
+ onLayoutOrOrderChanged() {
18812
+ this.syncResponsiveLayout();
18813
+ // Wait until the next animation frame to warn about unused order
18814
+ // to avoid erroneous warnings when the layout and order are updated
18815
+ // in the same frame.
18816
+ raf(() => {
18817
+ this.warnUnusedOrder();
18818
+ });
18819
+ }
18820
+ componentDidLoad() {
18821
+ this.updateResponsiveStyles(true);
18822
+ this.resizeObserver = new ResizeObserver(() => {
18823
+ this.updateResponsiveStyles();
18824
+ this.scheduleMasonryResize();
18825
+ });
18826
+ this.resizeObserver.observe(this.el);
18827
+ this.scheduleMasonryResize();
18828
+ this.warnUnusedOrder();
18829
+ }
18830
+ disconnectedCallback() {
18831
+ var _a;
18832
+ if (this.masonryRaf !== undefined) {
18833
+ cancelAnimationFrame(this.masonryRaf);
18834
+ this.masonryRaf = undefined;
18835
+ }
18836
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
18837
+ this.resizeObserver = undefined;
18838
+ }
18839
+ /**
18840
+ * Listen for the load event on child elements.
18841
+ * When the layout is `masonry`, this listener is used to schedule a resize
18842
+ * of the masonry grid when the child elements load. This is useful for when
18843
+ * images take time to load.
18844
+ */
18845
+ onChildLoad(ev) {
18846
+ if (this.layout !== 'masonry') {
18847
+ return;
18848
+ }
18849
+ const target = ev.target;
18850
+ if (target instanceof Node && this.el.contains(target)) {
18851
+ this.scheduleMasonryResize();
18852
+ }
18853
+ }
18854
+ /**
18855
+ * Recompute the gallery column and gap variables and masonry placement when
18856
+ * columns, gap, layout, or order change.
18857
+ */
18858
+ syncResponsiveLayout() {
18859
+ this.updateResponsiveStyles(true);
18860
+ this.scheduleMasonryResize();
18861
+ }
18862
+ /**
18863
+ * Batch masonry measurements to a single animation frame.
18864
+ * This avoids repeated sync layouts during rapid resize/load/slot changes.
18865
+ */
18866
+ scheduleMasonryResize() {
18867
+ if (this.layout !== 'masonry') {
18868
+ this.clearMasonryStyles();
18869
+ return;
18870
+ }
18871
+ if (this.masonryRaf !== undefined) {
18872
+ cancelAnimationFrame(this.masonryRaf);
18873
+ }
18874
+ this.masonryRaf = requestAnimationFrame(this.resizeMasonryGrid);
18875
+ }
18876
+ /**
18877
+ * Normalize a single column value (`columns` as a number, string, or one entry from
18878
+ * a `columns` breakpoint map) to a positive integer. Returns `undefined` when
18879
+ * the input cannot be interpreted as a finite number.
18880
+ */
18881
+ sanitizeColumns(columns) {
18882
+ if (columns === undefined) {
18883
+ return undefined;
18884
+ }
18885
+ const numericColumns = typeof columns === 'number' ? columns : Number(columns);
18886
+ if (!Number.isFinite(numericColumns) || !Number.isInteger(numericColumns) || numericColumns <= 0) {
18887
+ return undefined;
18888
+ }
18889
+ return numericColumns;
18890
+ }
18891
+ /**
18892
+ * Normalize a single gap value (`gap` as a number, string, or one entry from
18893
+ * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
18894
+ * the input cannot be interpreted as a valid CSS length.
18895
+ */
18896
+ sanitizeGap(gap) {
18897
+ if (gap === undefined) {
18898
+ return undefined;
18899
+ }
18900
+ const normalizedGap = typeof gap === 'string' ? gap.trim() : gap;
18901
+ if (normalizedGap === '' || typeof normalizedGap === 'object') {
18902
+ return undefined;
18903
+ }
18904
+ const numericGap = Number(normalizedGap);
18905
+ if (Number.isFinite(numericGap)) {
18906
+ return numericGap < 0 ? undefined : `${numericGap}px`;
18907
+ }
18908
+ if (typeof normalizedGap !== 'string') {
18909
+ return undefined;
18910
+ }
18911
+ const isValidCssLength = isValidLengthPercentage(normalizedGap);
18912
+ return isValidCssLength ? normalizedGap : undefined;
18913
+ }
18914
+ /**
18915
+ * Check if the value is a breakpoint map object.
18916
+ */
18917
+ isBreakpointMap(value) {
18918
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18919
+ }
18920
+ /**
18921
+ * Check if the breakpoint map has any invalid values for the provided
18922
+ * sanitizer. A breakpoint map is invalid when there are no valid breakpoint
18923
+ * keys set (e.g. `{}` or `{ colums: 3 }`), or when a value under a
18924
+ * breakpoint key fails the sanitizer (e.g. `{ xs: -3 }`, `{ sm: 'foo' }`).
18925
+ */
18926
+ hasInvalidBreakpointMap(breakpointMap, sanitizeValue) {
18927
+ let hasBreakpointEntry = false;
18928
+ for (const breakpoint of BREAKPOINT_ORDER) {
18929
+ const value = breakpointMap[breakpoint];
18930
+ if (value !== undefined) {
18931
+ hasBreakpointEntry = true;
18932
+ if (sanitizeValue(value) === undefined) {
18933
+ return true;
18934
+ }
18935
+ }
18936
+ }
18937
+ return !hasBreakpointEntry;
18938
+ }
18939
+ /**
18940
+ * Resolve a responsive value from a breakpoint map.
18941
+ * Uses a breakpoint-specific default when custom values are missing/invalid.
18942
+ */
18943
+ resolveFromBreakpoints(width, breakpointMap, sanitizeProvided, getSanitizedDefault) {
18944
+ let resolvedValue;
18945
+ for (const bp of BREAKPOINT_ORDER) {
18946
+ const providedValue = breakpointMap[bp];
18947
+ const sanitizedProvided = sanitizeProvided(providedValue);
18948
+ const sanitizedDefault = getSanitizedDefault(bp);
18949
+ const resolved = providedValue === undefined || sanitizedProvided === undefined ? sanitizedDefault : sanitizedProvided;
18950
+ if (resolved !== undefined && width >= BREAKPOINTS[bp]) {
18951
+ resolvedValue = resolved;
18952
+ }
18953
+ }
18954
+ return resolvedValue;
18955
+ }
18956
+ /**
18957
+ * Get the columns from a responsive breakpoint map.
18958
+ * Returns the columns for the last matching breakpoint.
18959
+ */
18960
+ getColumnsFromBreakpointMap(width, breakpointMap) {
18961
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeColumns(value), (bp) => this.sanitizeColumns(DEFAULT_COLUMNS[bp]));
18962
+ }
18963
+ /**
18964
+ * Get the gap from a responsive breakpoint map.
18965
+ * Returns the gap for the last matching breakpoint.
18966
+ */
18967
+ getGapFromBreakpointMap(width, breakpointMap) {
18968
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeGap(value), () => this.sanitizeGap(DEFAULT_GAP));
18969
+ }
18970
+ /**
18971
+ * Warn about an invalid columns value when it is set to a negative number,
18972
+ * an empty breakpoint map, a map with no supported breakpoint keys,
18973
+ * or a map with invalid breakpoint values.
18974
+ */
18975
+ warnInvalidColumns(columns) {
18976
+ if (this.hasWarnedInvalidColumns) {
18977
+ return;
18978
+ }
18979
+ 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);
18980
+ this.hasWarnedInvalidColumns = true;
18981
+ }
18982
+ /**
18983
+ * Warn about an invalid gap value when it is set to a negative number,
18984
+ * an empty breakpoint map, a map with no supported breakpoint keys,
18985
+ * or a map with invalid breakpoint values.
18986
+ */
18987
+ warnInvalidGap(gap) {
18988
+ if (this.hasWarnedInvalidGap) {
18989
+ return;
18990
+ }
18991
+ 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);
18992
+ this.hasWarnedInvalidGap = true;
18993
+ }
18994
+ /**
18995
+ * Warn when `order` is explicitly set while layout is `uniform`.
18996
+ */
18997
+ warnUnusedOrder() {
18998
+ const { layout } = this;
18999
+ const order = this.order == null ? undefined : this.order;
19000
+ if (this.hasWarnedUnusedOrder || layout !== 'uniform' || order === undefined) {
19001
+ return;
19002
+ }
19003
+ printIonWarning(`[ion-gallery] - "order" has no effect when "layout" is "uniform". Set "layout" to "masonry" for "order" to apply.`, this.el);
19004
+ this.hasWarnedUnusedOrder = true;
19005
+ }
19006
+ /**
19007
+ * Resolve the active columns value for the current width. Falls back to
19008
+ * the default responsive columns when the provided prop is invalid.
19009
+ */
19010
+ getColumnsForWidth(width) {
19011
+ const { columns } = this;
19012
+ const isBreakpointColumns = this.isBreakpointMap(columns);
19013
+ const hasInvalidBreakpointColumns = isBreakpointColumns && this.hasInvalidBreakpointMap(columns, (value) => this.sanitizeColumns(value));
19014
+ const sanitizedColumns = isBreakpointColumns
19015
+ ? this.getColumnsFromBreakpointMap(width, columns)
19016
+ : this.sanitizeColumns(columns);
19017
+ if (hasInvalidBreakpointColumns || (!isBreakpointColumns && sanitizedColumns === undefined)) {
19018
+ this.warnInvalidColumns(columns);
19019
+ }
19020
+ if (sanitizedColumns !== undefined) {
19021
+ return sanitizedColumns;
19022
+ }
19023
+ return this.getColumnsFromBreakpointMap(width, DEFAULT_COLUMNS);
19024
+ }
19025
+ /**
19026
+ * Resolve the active gap value for the current width.
19027
+ */
19028
+ getGapForWidth(width) {
19029
+ const { gap } = this;
19030
+ const providedGap = gap !== null && gap !== void 0 ? gap : DEFAULT_GAP;
19031
+ const isBreakpointGap = this.isBreakpointMap(providedGap);
19032
+ const hasInvalidBreakpointGap = isBreakpointGap && this.hasInvalidBreakpointMap(providedGap, (value) => this.sanitizeGap(value));
19033
+ const sanitizedGap = isBreakpointGap
19034
+ ? this.getGapFromBreakpointMap(width, providedGap)
19035
+ : this.sanitizeGap(providedGap);
19036
+ if (hasInvalidBreakpointGap || (!isBreakpointGap && sanitizedGap === undefined)) {
19037
+ this.warnInvalidGap(providedGap);
19038
+ }
19039
+ if (sanitizedGap !== undefined) {
19040
+ return sanitizedGap;
19041
+ }
19042
+ return this.sanitizeGap(DEFAULT_GAP);
19043
+ }
19044
+ /**
19045
+ * Update the responsive styles for the gallery. This is used to update
19046
+ * the columns and gap when the component width changes.
19047
+ */
19048
+ updateResponsiveStyles(force = false) {
19049
+ const width = this.el.getBoundingClientRect().width;
19050
+ // Only update the columns if the component width has changed by more than
19051
+ // 1px or if the force flag is true. This prevents unnecessary re-renders
19052
+ // when the component width has not changed.
19053
+ if (!width || (!force && this.lastWidth !== undefined && Math.abs(this.lastWidth - width) < 1)) {
19054
+ return;
19055
+ }
19056
+ this.lastWidth = width;
19057
+ const columns = this.getColumnsForWidth(width);
19058
+ this.el.style.setProperty('--internal-gallery-columns', `${columns}`);
19059
+ const gap = this.getGapForWidth(width);
19060
+ this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
19061
+ }
19062
+ /**
19063
+ * Return all directly slotted children of the gallery that can be grid items
19064
+ * with inline placement styles (HTML elements and SVG elements).
19065
+ */
19066
+ getItems() {
19067
+ return Array.from(this.el.children).filter((child) => { var _a; return typeof ((_a = child.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function'; });
19068
+ }
19069
+ /**
19070
+ * Clear the item styles for the given item element.
19071
+ * This is used to switch between uniform and masonry layouts.
19072
+ */
19073
+ clearItemStyles(itemEl) {
19074
+ itemEl.style.gridRowStart = '';
19075
+ itemEl.style.gridRowEnd = '';
19076
+ itemEl.style.gridColumn = '';
19077
+ itemEl.style.marginBottom = '';
19078
+ }
19079
+ /**
19080
+ * Clear placement styles for all items when leaving masonry mode.
19081
+ */
19082
+ clearMasonryStyles() {
19083
+ this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
19084
+ }
19085
+ /**
19086
+ * Convert a rendered item height to the number of grid rows it should span.
19087
+ * Returns undefined for images that are not fully loaded yet.
19088
+ */
19089
+ calculateRowSpan(itemEl, rowHeight, rowGap) {
19090
+ if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
19091
+ return undefined;
19092
+ }
19093
+ const height = itemEl.getBoundingClientRect().height;
19094
+ const itemStyles = getComputedStyle(itemEl);
19095
+ const marginBottom = parseFloat(itemStyles.getPropertyValue('margin-bottom')) || 0;
19096
+ const denominator = rowHeight + rowGap;
19097
+ if (!denominator || !Number.isFinite(denominator)) {
19098
+ return 1;
19099
+ }
19100
+ return Math.ceil((height + marginBottom + rowGap) / denominator) || 1;
19101
+ }
19102
+ /**
19103
+ * Get the index of the column to position the item in.
19104
+ * When the order is `best-fit`, the column with the shortest height is
19105
+ * returned. Otherwise, items are placed in the column that matches their
19106
+ * natural DOM order.
19107
+ */
19108
+ getColumnIndex(index, columnHeights, columns) {
19109
+ const order = this.getOrder();
19110
+ if (order === 'best-fit') {
19111
+ let columnIndex = 0;
19112
+ for (let i = 1; i < columns; i++) {
19113
+ if (columnHeights[i] < columnHeights[columnIndex]) {
19114
+ columnIndex = i;
19115
+ }
19116
+ }
19117
+ return columnIndex;
19118
+ }
19119
+ return index % columns;
19120
+ }
19121
+ /**
19122
+ * Apply masonry placement by assigning each item a column and row span.
19123
+ */
19124
+ layoutMasonry(items, rowHeight, rowGap, columns) {
19125
+ const columnHeights = new Array(columns).fill(0);
19126
+ const lastItemsByColumn = new Array(columns).fill(undefined);
19127
+ items.forEach((itemEl, i) => {
19128
+ itemEl.style.marginBottom = '';
19129
+ const span = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19130
+ if (span === undefined) {
19131
+ this.clearItemStyles(itemEl);
19132
+ return;
19133
+ }
19134
+ const columnIndex = this.getColumnIndex(i, columnHeights, columns);
19135
+ const start = columnHeights[columnIndex] + 1;
19136
+ itemEl.style.gridColumn = `${columnIndex + 1}`;
19137
+ itemEl.style.gridRowStart = `${start}`;
19138
+ itemEl.style.gridRowEnd = `span ${span}`;
19139
+ columnHeights[columnIndex] = start + span - 1;
19140
+ lastItemsByColumn[columnIndex] = itemEl;
19141
+ });
19142
+ // Remove trailing space from the final item in each column while preserving
19143
+ // spacing between all non-final items.
19144
+ lastItemsByColumn.forEach((itemEl) => {
19145
+ if (itemEl === undefined) {
19146
+ return;
19147
+ }
19148
+ itemEl.style.marginBottom = '0px';
19149
+ const spanWithoutTrailingGap = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19150
+ if (spanWithoutTrailingGap === undefined) {
19151
+ this.clearItemStyles(itemEl);
19152
+ return;
19153
+ }
19154
+ itemEl.style.gridRowEnd = `span ${spanWithoutTrailingGap}`;
19155
+ });
19156
+ }
19157
+ /**
19158
+ * Resolved order for layout and CSS. Order should be `undefined` for
19159
+ * the uniform layout. When order is not set, it should be `"sequential"`
19160
+ * for the masonry layout.
19161
+ */
19162
+ getOrder() {
19163
+ const { layout } = this;
19164
+ const order = this.order == null ? undefined : this.order;
19165
+ if (layout === 'uniform') {
19166
+ return undefined;
19167
+ }
19168
+ if (layout === 'masonry' && order === undefined) {
19169
+ return 'sequential';
19170
+ }
19171
+ return order;
19172
+ }
19173
+ render() {
19174
+ const { layout } = this;
19175
+ const order = this.getOrder();
19176
+ const theme = getIonTheme(this);
19177
+ return (hAsync(Host, { key: '1bf2973d22835c0dbddf3214b602f8c08b95e421', class: {
19178
+ [theme]: true,
19179
+ [`gallery-layout-${layout}`]: true,
19180
+ [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
19181
+ } }, hAsync("slot", { key: '0dea31f609f6afdb1d73ecb2d873909ffe49203f', onSlotchange: this.onSlotChange })));
19182
+ }
19183
+ get el() { return getElement(this); }
19184
+ static get watchers() { return {
19185
+ "columns": [{
19186
+ "onColumnsOrGapChanged": 0
19187
+ }],
19188
+ "gap": [{
19189
+ "onColumnsOrGapChanged": 0
19190
+ }],
19191
+ "layout": [{
19192
+ "onLayoutOrOrderChanged": 0
19193
+ }],
19194
+ "order": [{
19195
+ "onLayoutOrOrderChanged": 0
19196
+ }]
19197
+ }; }
19198
+ static get style() { return galleryCss(); }
19199
+ static get cmpMeta() { return {
19200
+ "$flags$": 265,
19201
+ "$tagName$": "ion-gallery",
19202
+ "$members$": {
19203
+ "layout": [1],
19204
+ "order": [1],
19205
+ "columns": [8],
19206
+ "gap": [8]
19207
+ },
19208
+ "$listeners$": [[2, "load", "onChildLoad"]],
19209
+ "$lazyBundleId$": "-",
19210
+ "$attrsToReflect$": []
19211
+ }; }
19212
+ }
19213
+
18694
19214
  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}`;
18695
19215
 
18696
19216
  /**
@@ -18707,10 +19227,10 @@ class Grid {
18707
19227
  }
18708
19228
  render() {
18709
19229
  const theme = getIonTheme(this);
18710
- return (hAsync(Host, { key: 'cd55886cabaeab57e3b13193381b196bec2f07f8', class: {
19230
+ return (hAsync(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
18711
19231
  [theme]: true,
18712
19232
  'grid-fixed': this.fixed,
18713
- } }, hAsync("slot", { key: 'c9b95999e6a274a8a0c997451c0be45b1304d77b' })));
19233
+ } }, hAsync("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
18714
19234
  }
18715
19235
  static get style() { return gridCss(); }
18716
19236
  static get cmpMeta() { return {
@@ -19112,7 +19632,7 @@ class Header {
19112
19632
  const isCondensed = collapse === 'condense';
19113
19633
  // banner role must be at top level, so remove role if inside a menu
19114
19634
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
19115
- return (hAsync(Host, Object.assign({ key: '658d5746920c349cc9fe85666c7215f2edc3c794', role: roleType, class: {
19635
+ return (hAsync(Host, Object.assign({ key: 'b43e5f542bdcec5e94c299556183cf6d9d673438', role: roleType, class: {
19116
19636
  [theme]: true,
19117
19637
  // Used internally for styling
19118
19638
  [`header-${theme}`]: true,
@@ -19120,7 +19640,7 @@ class Header {
19120
19640
  [`header-collapse-${collapse}`]: true,
19121
19641
  [`header-translucent-${theme}`]: this.translucent,
19122
19642
  ['header-divider']: divider,
19123
- } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: '4a1470d86e1aac6f8d545fe01e75b4dce665fb70', class: "header-background" }), hAsync("slot", { key: '3b02661242bda5834c4e13e4eb61bf79b53ba33e' })));
19643
+ } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: 'fd9938f02edd38e1afc83025373ec0aec5633711', class: "header-background" }), hAsync("slot", { key: '900aaa7da5d6f08e6f94b128fa065348d595159e' })));
19124
19644
  }
19125
19645
  get el() { return getElement(this); }
19126
19646
  static get style() { return {
@@ -19471,9 +19991,9 @@ class Img {
19471
19991
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19472
19992
  const { draggable } = inheritedAttributes;
19473
19993
  const theme = getIonTheme(this);
19474
- return (hAsync(Host, { key: '840d5b29d81222b061ac72168ef6551b5a061e3a', class: {
19994
+ return (hAsync(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
19475
19995
  [theme]: true,
19476
- } }, hAsync("img", { key: 'e22e66ee4bb3a648b21c6080674e68eebf4a3feb', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19996
+ } }, hAsync("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19477
19997
  }
19478
19998
  get el() { return getElement(this); }
19479
19999
  static get watchers() { return {
@@ -19778,7 +20298,7 @@ class InfiniteScroll {
19778
20298
  render() {
19779
20299
  const theme = getIonTheme(this);
19780
20300
  const disabled = this.disabled;
19781
- return (hAsync(Host, { key: '22d99824cb589d9024666a3c1ed205f781858eed', class: {
20301
+ return (hAsync(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
19782
20302
  [theme]: true,
19783
20303
  'infinite-scroll-loading': this.isLoading,
19784
20304
  'infinite-scroll-enabled': !disabled,
@@ -19841,11 +20361,11 @@ class InfiniteScrollContent {
19841
20361
  }
19842
20362
  render() {
19843
20363
  const theme = getIonTheme(this);
19844
- return (hAsync(Host, { key: 'e94d19f17ef9d4d77786716152e3206366feb546', class: {
20364
+ return (hAsync(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
19845
20365
  [theme]: true,
19846
20366
  // Used internally for styling
19847
20367
  [`infinite-scroll-content-${theme}`]: true,
19848
- } }, 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())));
20368
+ } }, 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())));
19849
20369
  }
19850
20370
  static get style() { return {
19851
20371
  ionic: ionicInfiniteScrollContentMdCss(),
@@ -20593,7 +21113,7 @@ class Input {
20593
21113
  * TODO(FW-5592): Remove hasStartEndSlots condition
20594
21114
  */
20595
21115
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20596
- return (hAsync(Host, { key: 'd62741432c3e1421d69fdf2ed2e8058a1ce3544f', class: createColorClasses$1(this.color, {
21116
+ return (hAsync(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses$1(this.color, {
20597
21117
  [theme]: true,
20598
21118
  'has-value': hasValue,
20599
21119
  'has-focus': hasFocus,
@@ -20606,7 +21126,7 @@ class Input {
20606
21126
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20607
21127
  'input-disabled': disabled,
20608
21128
  'input-readonly': readonly,
20609
- }) }, hAsync("label", { key: '9707227d9eb977e0983c78757af20219eb1651c6', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '8bc5197ecb665e268668137844f122b74f69cc2d', class: "native-wrapper", onClick: this.onLabelClick },
21129
+ }) }, hAsync("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
20610
21130
  /**
20611
21131
  * For the ionic theme, we render the outline container here
20612
21132
  * instead of higher up, so it can be positioned relative to
@@ -20616,14 +21136,14 @@ class Input {
20616
21136
  * <label> element, ensuring that clicking the label text
20617
21137
  * focuses the input.
20618
21138
  */
20619
- 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) => {
21139
+ 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) => {
20620
21140
  /**
20621
21141
  * This prevents mobile browsers from
20622
21142
  * blurring the input when the clear
20623
21143
  * button is activated.
20624
21144
  */
20625
21145
  ev.preventDefault();
20626
- }, 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()));
21146
+ }, 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()));
20627
21147
  }
20628
21148
  get el() { return getElement(this); }
20629
21149
  static get watchers() { return {
@@ -21388,7 +21908,7 @@ class InputOTP {
21388
21908
  const tabbableIndex = this.getTabbableIndex();
21389
21909
  const pattern = this.getPattern();
21390
21910
  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()) !== '';
21391
- return (hAsync(Host, { key: 'aee59cdba3f3c3783519cf114c668ae92f74fcef', class: createColorClasses$1(color, {
21911
+ return (hAsync(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses$1(color, {
21392
21912
  [mode]: true,
21393
21913
  'has-focus': hasFocus,
21394
21914
  [`input-otp-size-${size}`]: true,
@@ -21396,10 +21916,10 @@ class InputOTP {
21396
21916
  [`input-otp-fill-${fill}`]: true,
21397
21917
  'input-otp-disabled': disabled,
21398
21918
  'input-otp-readonly': readonly,
21399
- }) }, 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: {
21919
+ }) }, 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: {
21400
21920
  'input-otp-description': true,
21401
21921
  'input-otp-description-hidden': !hasDescription,
21402
- }, part: "description" }, hAsync("slot", { key: '9fd331ceff04ab93f8d4aec251565cc201f19294' }))));
21922
+ }, part: "description" }, hAsync("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
21403
21923
  }
21404
21924
  static get formAssociated() { return true; }
21405
21925
  get el() { return getElement(this); }
@@ -21547,16 +22067,16 @@ class InputPasswordToggle {
21547
22067
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
21548
22068
  const mode = getIonMode$1(this);
21549
22069
  const isPasswordVisible = type === 'text';
21550
- return (hAsync(Host, { key: 'e3c21d5bedebeadb57c0c9b7f065d15ab0d49e4a', class: createColorClasses$1(color, {
22070
+ return (hAsync(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses$1(color, {
21551
22071
  [mode]: true,
21552
- }) }, 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) => {
22072
+ }) }, 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) => {
21553
22073
  /**
21554
22074
  * This prevents mobile browsers from
21555
22075
  * blurring the input when the password toggle
21556
22076
  * button is activated.
21557
22077
  */
21558
22078
  ev.preventDefault();
21559
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'af9a7e202fe0b3f75f10b3e13bf1e5fb653194d1', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22079
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
21560
22080
  }
21561
22081
  get el() { return getElement(this); }
21562
22082
  static get watchers() { return {
@@ -21931,11 +22451,11 @@ class ItemDivider {
21931
22451
  }
21932
22452
  render() {
21933
22453
  const theme = getIonTheme(this);
21934
- return (hAsync(Host, { key: '4d481e6233a75f3c3042b5825d9c14fe77280f03', class: createColorClasses$1(this.color, {
22454
+ return (hAsync(Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: createColorClasses$1(this.color, {
21935
22455
  [theme]: true,
21936
22456
  'item-divider-sticky': this.sticky,
21937
22457
  item: true,
21938
- }) }, 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" }))));
22458
+ }) }, 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" }))));
21939
22459
  }
21940
22460
  get el() { return getElement(this); }
21941
22461
  static get style() { return {
@@ -21972,7 +22492,7 @@ class ItemGroup {
21972
22492
  }
21973
22493
  render() {
21974
22494
  const theme = getIonTheme(this);
21975
- return (hAsync(Host, { key: '3fb0784b321736344604e259cfb05c6307159bed', role: "group", class: {
22495
+ return (hAsync(Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
21976
22496
  [theme]: true,
21977
22497
  // Used internally for styling
21978
22498
  [`item-group-${theme}`]: true,
@@ -22068,14 +22588,14 @@ class ItemOption {
22068
22588
  href: this.href,
22069
22589
  target: this.target,
22070
22590
  };
22071
- return (hAsync(Host, { key: '810fe351aa83d6e88cb0e2ebee307b3050e65b45', onClick: this.onClick, class: createColorClasses$1(this.color, {
22591
+ return (hAsync(Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: createColorClasses$1(this.color, {
22072
22592
  [theme]: true,
22073
22593
  [`item-option-${shape}`]: shape !== undefined,
22074
22594
  [`item-option-${hue}`]: hue !== undefined,
22075
22595
  'item-option-disabled': disabled,
22076
22596
  'item-option-expandable': expandable,
22077
22597
  'ion-activatable': true,
22078
- }) }, 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' }))));
22598
+ }) }, 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' }))));
22079
22599
  }
22080
22600
  get el() { return getElement(this); }
22081
22601
  static get style() { return {
@@ -22133,7 +22653,7 @@ class ItemOptions {
22133
22653
  render() {
22134
22654
  const theme = getIonTheme(this);
22135
22655
  const isEnd = isEndSide(this.side);
22136
- return (hAsync(Host, { key: 'cc55282505679d51fb90ebf30869e930c71afbd4', class: {
22656
+ return (hAsync(Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
22137
22657
  [theme]: true,
22138
22658
  // Used internally for styling
22139
22659
  [`item-options-${theme}`]: true,
@@ -22985,7 +23505,7 @@ class ItemSliding {
22985
23505
  }
22986
23506
  render() {
22987
23507
  const theme = getIonTheme(this);
22988
- return (hAsync(Host, { key: 'ca0730d5ee00f245b6a139d9fb53fcc8c529a8c6', class: {
23508
+ return (hAsync(Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
22989
23509
  [theme]: true,
22990
23510
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
22991
23511
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -23104,13 +23624,13 @@ class Label {
23104
23624
  render() {
23105
23625
  const position = this.position;
23106
23626
  const theme = getIonTheme(this);
23107
- return (hAsync(Host, { key: 'd730045c08ba576082563398ab51fc903577d214', class: createColorClasses$1(this.color, {
23627
+ return (hAsync(Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: createColorClasses$1(this.color, {
23108
23628
  [theme]: true,
23109
23629
  'in-item-color': hostContext('ion-item.ion-color', this.el),
23110
23630
  [`label-${position}`]: position !== undefined,
23111
23631
  [`label-no-animate`]: this.noAnimate,
23112
23632
  'label-rtl': document.dir === 'rtl',
23113
- }) }, hAsync("slot", { key: '604289ef567339c83fb409371224906819a9d7cc' })));
23633
+ }) }, hAsync("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
23114
23634
  }
23115
23635
  get el() { return getElement(this); }
23116
23636
  static get watchers() { return {
@@ -23190,7 +23710,7 @@ class List {
23190
23710
  const theme = getIonTheme(this);
23191
23711
  const shape = this.getShape();
23192
23712
  const { lines, inset } = this;
23193
- return (hAsync(Host, { key: 'dcdfb595a6b45307f9810e1ded25ba635c947940', role: "list", class: {
23713
+ return (hAsync(Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
23194
23714
  [theme]: true,
23195
23715
  // Used internally for styling
23196
23716
  [`list-${theme}`]: true,
@@ -23240,10 +23760,10 @@ class ListHeader {
23240
23760
  render() {
23241
23761
  const { lines } = this;
23242
23762
  const theme = getIonTheme(this);
23243
- return (hAsync(Host, { key: '0be4fb7d4f9cd6f50229cf7b361c74e94fbfce91', class: createColorClasses$1(this.color, {
23763
+ return (hAsync(Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: createColorClasses$1(this.color, {
23244
23764
  [theme]: true,
23245
23765
  [`list-header-lines-${lines}`]: lines !== undefined,
23246
- }) }, hAsync("div", { key: '4dcc3374685728ae9270d8d58b1ea1c08b0bbc08', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: '5658cc9185680bfa96328685d817b84b18e9ab5a' }))));
23766
+ }) }, hAsync("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
23247
23767
  }
23248
23768
  static get style() { return {
23249
23769
  ionic: listHeaderIonicCss(),
@@ -23532,9 +24052,9 @@ class Loading {
23532
24052
  * Otherwise, don't set aria-labelledby.
23533
24053
  */
23534
24054
  const ariaLabelledBy = message !== undefined ? msgId : null;
23535
- return (hAsync(Host, Object.assign({ key: '0c475f8e28e680e28e09317557795fc56e0835d8', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24055
+ return (hAsync(Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
23536
24056
  zIndex: `${40000 + this.overlayIndex}`,
23537
- }, 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" })));
24057
+ }, 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" })));
23538
24058
  }
23539
24059
  get el() { return getElement(this); }
23540
24060
  static get watchers() { return {
@@ -24595,14 +25115,14 @@ class Menu {
24595
25115
  * the ionBackButton listener in the menu controller
24596
25116
  * will handle closing the menu when Escape is pressed.
24597
25117
  */
24598
- return (hAsync(Host, { key: '12bd2c4e9aa2f314ffc45d7f43290bd9910ca8b0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25118
+ return (hAsync(Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24599
25119
  [theme]: true,
24600
25120
  [`menu-type-${type}`]: true,
24601
25121
  'menu-enabled': !disabled,
24602
25122
  [`menu-side-${side}`]: true,
24603
25123
  'menu-pane-visible': isPaneVisible,
24604
25124
  'split-pane-side': hostContext('ion-split-pane', el),
24605
- } }, 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" })));
25125
+ } }, 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" })));
24606
25126
  }
24607
25127
  get el() { return getElement(this); }
24608
25128
  static get watchers() { return {
@@ -24736,7 +25256,7 @@ class MenuButton {
24736
25256
  type: this.type,
24737
25257
  };
24738
25258
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
24739
- return (hAsync(Host, { key: '206b8482b58e7ee49ea89393a15e9cf30578297b', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25259
+ return (hAsync(Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
24740
25260
  [theme]: true,
24741
25261
  button: true, // ion-buttons target .button
24742
25262
  'menu-button-hidden': hidden,
@@ -24745,7 +25265,7 @@ class MenuButton {
24745
25265
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
24746
25266
  'ion-activatable': true,
24747
25267
  'ion-focusable': true,
24748
- }) }, 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" }))));
25268
+ }) }, 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" }))));
24749
25269
  }
24750
25270
  get el() { return getElement(this); }
24751
25271
  static get style() { return {
@@ -24802,10 +25322,10 @@ class MenuToggle {
24802
25322
  render() {
24803
25323
  const theme = getIonTheme(this);
24804
25324
  const hidden = this.autoHide && !this.visible;
24805
- return (hAsync(Host, { key: 'c3ddce789a90d720769919ebf854d05cc75f599e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25325
+ return (hAsync(Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
24806
25326
  [theme]: true,
24807
25327
  'menu-toggle-hidden': hidden,
24808
- } }, hAsync("slot", { key: 'f1334ba9d20148b673a0b6185ab5ef92f448f720' })));
25328
+ } }, hAsync("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
24809
25329
  }
24810
25330
  static get style() { return menuToggleCss(); }
24811
25331
  static get cmpMeta() { return {
@@ -28308,20 +28828,20 @@ class Modal {
28308
28828
  const isHandleCycle = handleBehavior === 'cycle';
28309
28829
  const shape = this.getShape();
28310
28830
  const isSheetModalWithHandle = isSheetModal && showHandle;
28311
- return (hAsync(Host, Object.assign({ key: 'e4b82f87c76d3ad5aae7794c4c882e6c95ef7c97', "no-router": true,
28831
+ return (hAsync(Host, Object.assign({ key: '2d3a31da1613386cf90f0d59d6b26c9a5b654d2a', "no-router": true,
28312
28832
  // Allow the modal to be navigable when the handle is focusable
28313
28833
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
28314
28834
  zIndex: `${20000 + this.overlayIndex}`,
28315
- }, 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',
28835
+ }, 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',
28316
28836
  /*
28317
28837
  role and aria-modal must be used on the
28318
28838
  same element. They must also be set inside the
28319
28839
  shadow DOM otherwise ion-button will not be highlighted
28320
28840
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
28321
28841
  */
28322
- 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",
28842
+ 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",
28323
28843
  // Prevents the handle from receiving keyboard focus when it does not cycle
28324
- 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 }))));
28844
+ 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 }))));
28325
28845
  }
28326
28846
  get el() { return getElement(this); }
28327
28847
  static get watchers() { return {
@@ -29281,7 +29801,7 @@ class Nav {
29281
29801
  }
29282
29802
  }
29283
29803
  render() {
29284
- return hAsync("slot", { key: 'd6dd0b1e0ba59381a139f4a49de3eb8351fa87a4' });
29804
+ return hAsync("slot", { key: '87188d8fb4232d448ef2ad8e3db29c3730b1ff9e' });
29285
29805
  }
29286
29806
  get el() { return getElement(this); }
29287
29807
  static get watchers() { return {
@@ -29362,7 +29882,7 @@ class NavLink {
29362
29882
  };
29363
29883
  }
29364
29884
  render() {
29365
- return hAsync(Host, { key: '61246716bdf9556db90e07680bc1a289f9658d5c', onClick: this.onClick });
29885
+ return hAsync(Host, { key: '38f3d2e7a3ae4e57ac1479436c143e6820d25cd2', onClick: this.onClick });
29366
29886
  }
29367
29887
  get el() { return getElement(this); }
29368
29888
  static get cmpMeta() { return {
@@ -29396,9 +29916,9 @@ class Note {
29396
29916
  }
29397
29917
  render() {
29398
29918
  const theme = getIonTheme(this);
29399
- return (hAsync(Host, { key: 'a8470df6b8fb8ca327a282fc23705bc230f13a40', class: createColorClasses$1(this.color, {
29919
+ return (hAsync(Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: createColorClasses$1(this.color, {
29400
29920
  [theme]: true,
29401
- }) }, hAsync("slot", { key: '07cbdef68f010b06638f359f70dff3f1d659d899' })));
29921
+ }) }, hAsync("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
29402
29922
  }
29403
29923
  static get style() { return {
29404
29924
  ionic: ionicNoteMdCss(),
@@ -30164,11 +30684,11 @@ class Picker {
30164
30684
  render() {
30165
30685
  const { htmlAttributes } = this;
30166
30686
  const theme = getIonTheme(this);
30167
- return (hAsync(Host, Object.assign({ key: 'efcc823fad9cb37c1379bef4f4b84c6461f3a3a6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30687
+ return (hAsync(Host, Object.assign({ key: 'b0c1fc8eee284f03c696f0c8aaa29f4a6d7be0be', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30168
30688
  zIndex: `${20000 + this.overlayIndex}`,
30169
30689
  }, class: Object.assign({ [theme]: true,
30170
30690
  // Used internally for styling
30171
- [`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" })));
30691
+ [`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" })));
30172
30692
  }
30173
30693
  get el() { return getElement(this); }
30174
30694
  static get watchers() { return {
@@ -31146,9 +31666,9 @@ class PickerColumnCmp {
31146
31666
  render() {
31147
31667
  const col = this.col;
31148
31668
  const theme = getIonTheme(this);
31149
- 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: {
31669
+ 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: {
31150
31670
  'max-width': this.col.columnWidth,
31151
- } }, 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))));
31671
+ } }, 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))));
31152
31672
  }
31153
31673
  get el() { return getElement(this); }
31154
31674
  static get watchers() { return {
@@ -31273,10 +31793,10 @@ class PickerColumnOption {
31273
31793
  render() {
31274
31794
  const { color, disabled, ariaLabel } = this;
31275
31795
  const theme = getIonTheme(this);
31276
- return (hAsync(Host, { key: '9ceebae71b6df0b01f36691d82d716f6756625d9', class: createColorClasses$1(color, {
31796
+ return (hAsync(Host, { key: '54c254f01017aa47aac76c0833f9ef04bf20bdc9', class: createColorClasses$1(color, {
31277
31797
  [theme]: true,
31278
31798
  ['option-disabled']: disabled,
31279
- }) }, hAsync("div", { key: '1f26246d601779dadfaf055d195e2a4959180f5a', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'eed413474a8b7ec7a73da27fa72a2d0a9a2aae2b' }))));
31799
+ }) }, hAsync("div", { key: '36b21f1b7d9a5b05f0211ce8be90f66578641224', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '154bf9ca37ca1c6e5d34d42c16b04203e83210be' }))));
31280
31800
  }
31281
31801
  get el() { return getElement(this); }
31282
31802
  static get watchers() { return {
@@ -32845,9 +33365,9 @@ class Popover {
32845
33365
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
32846
33366
  const desktop = isPlatform('desktop');
32847
33367
  const enableArrow = arrow && !parentPopover;
32848
- return (hAsync(Host, Object.assign({ key: 'ba8801218aa8543eae0e8e2c57fbd0d4fbb2c8ff', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33368
+ return (hAsync(Host, Object.assign({ key: '43128f8b7e57f08a451af1a237534d0517d86eda', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
32849
33369
  zIndex: `${20000 + this.overlayIndex}`,
32850
- }, 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' })))));
33370
+ }, 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' })))));
32851
33371
  }
32852
33372
  get el() { return getElement(this); }
32853
33373
  static get watchers() { return {
@@ -32975,7 +33495,7 @@ class ProgressBar {
32975
33495
  const shape = this.getShape();
32976
33496
  // If the progress is displayed as a solid bar.
32977
33497
  const progressSolid = buffer === 1;
32978
- return (hAsync(Host, { key: '9adef68c31bdf39d48199e01587f8d5295d4c6af', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33498
+ return (hAsync(Host, { key: '0f6202e25d884fb85d18578769f6cfa5c704e9d9', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
32979
33499
  [theme]: true,
32980
33500
  [`progress-bar-${type}`]: true,
32981
33501
  'progress-paused': paused,
@@ -33168,7 +33688,7 @@ class Radio {
33168
33688
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
33169
33689
  const theme = getIonTheme(this);
33170
33690
  const inItem = hostContext('ion-item', el);
33171
- return (hAsync(Host, { key: '19cc76c559551a34e4968f4902709be6f104dede', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33691
+ return (hAsync(Host, { key: '82127b11eac97fa45886179d248c8509ca07655a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33172
33692
  [theme]: true,
33173
33693
  'in-item': inItem,
33174
33694
  'radio-checked': checked,
@@ -33179,10 +33699,10 @@ class Radio {
33179
33699
  // Focus and active styling should not apply when the radio is in an item
33180
33700
  'ion-activatable': !inItem,
33181
33701
  'ion-focusable': !inItem,
33182
- }), 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: {
33702
+ }), 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: {
33183
33703
  'label-text-wrapper': true,
33184
33704
  'label-text-wrapper-hidden': !hasLabel,
33185
- }, part: "label" }, hAsync("slot", { key: 'f06b9b57e1c2d66d3eb6790ca30f4d5e85d0d264' })), hAsync("div", { key: '780fc11778f5661d95e60c6cd72a9ed78910b889', class: "native-wrapper" }, this.renderRadioControl()))));
33705
+ }, part: "label" }, hAsync("slot", { key: '9c26b977843398be61f1b753251d8fe40d65702a' })), hAsync("div", { key: '336b2d6aeb5e86dc1d994ac1eac52634f5da5b9c', class: "native-wrapper" }, this.renderRadioControl()))));
33186
33706
  }
33187
33707
  get el() { return getElement(this); }
33188
33708
  static get watchers() { return {
@@ -33452,10 +33972,10 @@ class RadioGroup {
33452
33972
  const { label, labelId, el, name, value } = this;
33453
33973
  const theme = getIonTheme(this);
33454
33974
  renderHiddenInput(true, el, name, value, false);
33455
- return (hAsync(Host, { key: '39246fbf1f1e3a6ba27dd715f030445d4434999b', class: {
33975
+ return (hAsync(Host, { key: 'c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e', class: {
33456
33976
  [theme]: true,
33457
33977
  'in-list': hostContext('ion-list', el),
33458
- }, 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' })));
33978
+ }, 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' })));
33459
33979
  }
33460
33980
  get el() { return getElement(this); }
33461
33981
  static get watchers() { return {
@@ -34305,7 +34825,7 @@ class Range {
34305
34825
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
34306
34826
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
34307
34827
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
34308
- return (hAsync(Host, { key: '1b8ca217fa6965fc038fb4ca8f0bc9142b3893ad', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34828
+ return (hAsync(Host, { key: '6c11f7ad176a00ca5368be9ba46c29f6a9aa02bb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34309
34829
  [theme]: true,
34310
34830
  'in-item': inItem,
34311
34831
  'range-disabled': disabled,
@@ -34319,10 +34839,10 @@ class Range {
34319
34839
  'range-item-end-adjustment': needsEndAdjustment,
34320
34840
  'range-value-min': valueAtMin,
34321
34841
  'range-value-max': valueAtMax,
34322
- }) }, hAsync("label", { key: '98b02130c9bb5a9ba6557be28f1ac09be0d10806', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '570083103b51b335c805672918d69e997dc30e66', class: {
34842
+ }) }, hAsync("label", { key: '4ac202cf5fd17a9f69e288508e89cfe266a2c8f2', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '1261d51ce247e066e5005f4aaa7b474ae0ddd421', class: {
34323
34843
  'label-text-wrapper': true,
34324
34844
  'label-text-wrapper-hidden': !hasLabel,
34325
- }, 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" })))));
34845
+ }, 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" })))));
34326
34846
  }
34327
34847
  get el() { return getElement(this); }
34328
34848
  static get watchers() { return {
@@ -35397,7 +35917,7 @@ class Refresher {
35397
35917
  }
35398
35918
  render() {
35399
35919
  const theme = getIonTheme(this);
35400
- return (hAsync(Host, { key: '0be6aed52363cda66f8324ddfb9b0aeda92ce0bf', slot: "fixed", class: {
35920
+ return (hAsync(Host, { key: 'd2671f7850b565e7a6fc5b3ff15b2410bcf7cb32', slot: "fixed", class: {
35401
35921
  [theme]: true,
35402
35922
  // Used internally for styling
35403
35923
  [`refresher-${theme}`]: true,
@@ -35636,9 +36156,9 @@ class RefresherContent {
35636
36156
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
35637
36157
  const theme = getIonTheme(this);
35638
36158
  const arrowIcon = theme === 'ionic' ? caretLeftFillSvg : caretBackSharp;
35639
- return (hAsync(Host, { key: '3a3a3fb44f8397bb8e5019b51254ada8c26ae371', class: {
36159
+ return (hAsync(Host, { key: '684bf1189acba94c502e2bb421f0b65313c3e9f9', class: {
35640
36160
  [theme]: true,
35641
- } }, 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())));
36161
+ } }, 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())));
35642
36162
  }
35643
36163
  get el() { return getElement(this); }
35644
36164
  static get style() { return {
@@ -35707,9 +36227,9 @@ class Reorder {
35707
36227
  render() {
35708
36228
  const { reorderHandleIcon } = this;
35709
36229
  const theme = getIonTheme(this);
35710
- return (hAsync(Host, { key: 'ba59a095c200b70c6d847dc7362d52b315dc853a', class: {
36230
+ return (hAsync(Host, { key: '2a30643d0c5dbebab97a7aca68c165ee79ceed33', class: {
35711
36231
  [theme]: true,
35712
- } }, hAsync("slot", { key: '79be263f78cc21c9c4f91326e557e65849ab1e51' }, hAsync("ion-icon", { key: '6e5c47c8bbd33f5cd405a5fd531831cb87c8e57e', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36232
+ } }, hAsync("slot", { key: '9ac45a0cc21aea6ed0ec03aa12334886219b1051' }, hAsync("ion-icon", { key: '6d6789a718db4f252c6b3b4484148be2a65c80b8', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
35713
36233
  }
35714
36234
  get el() { return getElement(this); }
35715
36235
  static get style() { return {
@@ -35985,7 +36505,7 @@ class ReorderGroup {
35985
36505
  }
35986
36506
  render() {
35987
36507
  const theme = getIonTheme(this);
35988
- return (hAsync(Host, { key: 'df12858536c409c76552fe79b88827b3c4a5d9c5', class: {
36508
+ return (hAsync(Host, { key: 'f618089290a47bae34bcaaed968c3f8f4daa827f', class: {
35989
36509
  [theme]: true,
35990
36510
  'reorder-enabled': !this.disabled,
35991
36511
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -36111,7 +36631,7 @@ class RippleEffect {
36111
36631
  }
36112
36632
  render() {
36113
36633
  const theme = getIonTheme(this);
36114
- return (hAsync(Host, { key: '502ce1841747f255dfab542914bebd0d0f4ae9bd', role: "presentation", class: {
36634
+ return (hAsync(Host, { key: 'f4db39623cfd1bdc773e222b2dd9ed52a26cc685', role: "presentation", class: {
36115
36635
  [theme]: true,
36116
36636
  unbounded: this.unbounded,
36117
36637
  } }));
@@ -37096,10 +37616,10 @@ class RouterLink {
37096
37616
  rel: this.rel,
37097
37617
  target: this.target,
37098
37618
  };
37099
- return (hAsync(Host, { key: '518b86cf40eb95e03f75a20ff44fff804ac8ec4d', onClick: this.onClick, class: createColorClasses$1(this.color, {
37619
+ return (hAsync(Host, { key: '989574921f3bf06e4e5ad4e98ea3cce2e5c7165e', onClick: this.onClick, class: createColorClasses$1(this.color, {
37100
37620
  [theme]: true,
37101
37621
  'ion-activatable': true,
37102
- }) }, hAsync("a", Object.assign({ key: 'dbf3cc12752b4fa2d3873723a8ea5a30b053d261' }, attrs), hAsync("slot", { key: '9614e46a8d35201937f1f9a39b88f71b78efa7a0' }))));
37622
+ }) }, hAsync("a", Object.assign({ key: 'ee72dba91cc13ca4f251ba6bb5a8b7bf54b6f88d' }, attrs), hAsync("slot", { key: '8e8b5afd795bb213b8765f731463e0588799b001' }))));
37103
37623
  }
37104
37624
  static get style() { return routerLinkCss(); }
37105
37625
  static get cmpMeta() { return {
@@ -37299,7 +37819,7 @@ class RouterOutlet {
37299
37819
  return true;
37300
37820
  }
37301
37821
  render() {
37302
- return hAsync("slot", { key: '3f107f085a977b4d27c7266771a9564e3219f736' });
37822
+ return hAsync("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
37303
37823
  }
37304
37824
  get el() { return getElement(this); }
37305
37825
  static get watchers() { return {
@@ -37339,9 +37859,9 @@ class Row {
37339
37859
  }
37340
37860
  render() {
37341
37861
  const theme = getIonTheme(this);
37342
- return (hAsync(Host, { key: '6f5dd5032485a69ddf9510e2e539a7ba90afda47', class: {
37862
+ return (hAsync(Host, { key: '64ff6346d95be8d99d6500a6263067081f3fe254', class: {
37343
37863
  [theme]: true,
37344
- } }, hAsync("slot", { key: '994dcbbc871d606b61ff5993fb29aa1fa349c483' })));
37864
+ } }, hAsync("slot", { key: 'e9b4c111f3a49515a721bf679ef2f1a039c9822a' })));
37345
37865
  }
37346
37866
  static get style() { return rowCss(); }
37347
37867
  static get cmpMeta() { return {
@@ -37900,8 +38420,8 @@ class Searchbar {
37900
38420
  const shouldShowCancelButton = this.shouldShowCancelButton();
37901
38421
  const shape = this.getShape();
37902
38422
  const size = this.getSize();
37903
- 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))));
37904
- return (hAsync(Host, { key: 'e6af154631381ee0549c5d1d39577a86b8ae7b3f', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38423
+ 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))));
38424
+ return (hAsync(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
37905
38425
  [theme]: true,
37906
38426
  'searchbar-animated': animated,
37907
38427
  'searchbar-disabled': this.disabled,
@@ -37915,14 +38435,14 @@ class Searchbar {
37915
38435
  [`searchbar-shape-${shape}`]: shape !== undefined,
37916
38436
  [`searchbar-size-${size}`]: size !== undefined,
37917
38437
  'in-toolbar': hostContext('ion-toolbar', this.el),
37918
- }) }, 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) => {
38438
+ }) }, 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) => {
37919
38439
  /**
37920
38440
  * This prevents mobile browsers from
37921
38441
  * blurring the input when the clear
37922
38442
  * button is activated.
37923
38443
  */
37924
38444
  ev.preventDefault();
37925
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'f60f21ce6f8c3e37d768ff0bd5c69e5797dd77fd', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38445
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
37926
38446
  }
37927
38447
  get el() { return getElement(this); }
37928
38448
  static get watchers() { return {
@@ -38537,14 +39057,14 @@ class Segment {
38537
39057
  }
38538
39058
  render() {
38539
39059
  const theme = getIonTheme(this);
38540
- return (hAsync(Host, { key: 'aa903445e6c04076cb4b29cf7195e7b843b158aa', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39060
+ return (hAsync(Host, { key: '2c0631392507f2e903670070232029928470bf11', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
38541
39061
  [theme]: true,
38542
39062
  'in-toolbar': hostContext('ion-toolbar', this.el),
38543
39063
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
38544
39064
  'segment-activated': this.activated,
38545
39065
  'segment-disabled': this.disabled,
38546
39066
  'segment-scrollable': this.scrollable,
38547
- }) }, hAsync("slot", { key: '761df7f38ea889287f466ba35076a50b5e8d7b72', onSlotchange: this.onSlottedItemsChange })));
39067
+ }) }, hAsync("slot", { key: 'ed99c28b8976c4d51ad12089680cb8fb51d835a7', onSlotchange: this.onSlottedItemsChange })));
38548
39068
  }
38549
39069
  get el() { return getElement(this); }
38550
39070
  static get watchers() { return {
@@ -38696,7 +39216,7 @@ class SegmentButton {
38696
39216
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
38697
39217
  const theme = getIonTheme(this);
38698
39218
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
38699
- return (hAsync(Host, { key: '75eeffd15e3581c15f48a0b12cbf5a4229b087d6', class: {
39219
+ return (hAsync(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
38700
39220
  [theme]: true,
38701
39221
  'in-toolbar': hostContext('ion-toolbar', this.el),
38702
39222
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -38712,7 +39232,7 @@ class SegmentButton {
38712
39232
  'ion-activatable': true,
38713
39233
  'ion-activatable-instant': true,
38714
39234
  'ion-focusable': true,
38715
- } }, 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" }))));
39235
+ } }, 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" }))));
38716
39236
  }
38717
39237
  get el() { return getElement(this); }
38718
39238
  static get watchers() { return {
@@ -38750,7 +39270,7 @@ class SegmentContent {
38750
39270
  registerInstance(this, hostRef);
38751
39271
  }
38752
39272
  render() {
38753
- return (hAsync(Host, { key: '81cc29460a17c32592fbf9fca6242f4bb1738aa6' }, hAsync("slot", { key: '4f718420caf11c6672642fcf1a1bdb7f48d6cdfc' })));
39273
+ return (hAsync(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, hAsync("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
38754
39274
  }
38755
39275
  static get style() { return segmentContentCss(); }
38756
39276
  static get cmpMeta() { return {
@@ -38878,11 +39398,11 @@ class SegmentView {
38878
39398
  }
38879
39399
  render() {
38880
39400
  const { disabled, isManualScroll, swipeGesture } = this;
38881
- return (hAsync(Host, { key: 'f03a6e740fde773dc02e0aad79fd73475c3227fa', class: {
39401
+ return (hAsync(Host, { key: '48ce45ca6c45d4bbc804390c31a43729a60abb8a', class: {
38882
39402
  'segment-view-disabled': disabled,
38883
39403
  'segment-view-scroll-disabled': isManualScroll === false,
38884
39404
  'segment-view-swipe-disabled': swipeGesture === false,
38885
- } }, hAsync("slot", { key: '3c850dd0e7ca795af8497162c8824eaede3bbc29' })));
39405
+ } }, hAsync("slot", { key: 'e248ce5b24b355bd6b51cbfd25741addf4ffd4fb' })));
38886
39406
  }
38887
39407
  get el() { return getElement(this); }
38888
39408
  static get style() { return {
@@ -39818,7 +40338,7 @@ class Select {
39818
40338
  * TODO(FW-5592): Remove hasStartEndSlots condition
39819
40339
  */
39820
40340
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
39821
- return (hAsync(Host, { key: 'b75ee27abca24a0ee5ec2bcecec98aeab85d11b2', onClick: this.onClick, class: createColorClasses$1(this.color, {
40341
+ return (hAsync(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses$1(this.color, {
39822
40342
  [theme]: true,
39823
40343
  'in-item': inItem,
39824
40344
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -39837,7 +40357,7 @@ class Select {
39837
40357
  [`select-shape-${shape}`]: shape !== undefined,
39838
40358
  [`select-label-placement-${labelPlacement}`]: true,
39839
40359
  [`select-size-${size}`]: size !== undefined,
39840
- }) }, 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" },
40360
+ }) }, 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" },
39841
40361
  /**
39842
40362
  * For the ionic theme, we render the outline container here
39843
40363
  * instead of higher up, so it can be positioned relative to
@@ -39847,7 +40367,7 @@ class Select {
39847
40367
  * <label> element, ensuring that clicking the label text
39848
40368
  * focuses the select.
39849
40369
  */
39850
- 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()));
40370
+ 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()));
39851
40371
  }
39852
40372
  get el() { return getElement(this); }
39853
40373
  static get watchers() { return {
@@ -40239,7 +40759,7 @@ class SelectModal {
40239
40759
  });
40240
40760
  }
40241
40761
  render() {
40242
- 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()))));
40762
+ 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()))));
40243
40763
  }
40244
40764
  get el() { return getElement(this); }
40245
40765
  static get style() { return {
@@ -40284,7 +40804,7 @@ class SelectOption {
40284
40804
  }
40285
40805
  render() {
40286
40806
  const theme = getIonTheme(this);
40287
- return (hAsync(Host, { key: 'fd2c00d514768451e7d51631e4ce4cdb2a7a92ad', class: {
40807
+ return (hAsync(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
40288
40808
  [theme]: true,
40289
40809
  }, role: "option", id: this.inputId }));
40290
40810
  }
@@ -40453,9 +40973,9 @@ class SelectPopover {
40453
40973
  const { header, message, options, subHeader } = this;
40454
40974
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
40455
40975
  const theme = getIonTheme(this);
40456
- return (hAsync(Host, { key: '75388b15e655f05df0849bbcd79064e4f9f72294', class: {
40976
+ return (hAsync(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
40457
40977
  [theme]: true,
40458
- } }, 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))));
40978
+ } }, 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))));
40459
40979
  }
40460
40980
  get el() { return getElement(this); }
40461
40981
  static get style() { return {
@@ -40510,11 +41030,11 @@ class SkeletonText {
40510
41030
  const animated = this.animated && config.getBoolean('animated', true);
40511
41031
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
40512
41032
  const theme = getIonTheme(this);
40513
- return (hAsync(Host, { key: '5014563646b6c5213750d503babce3013b66ec96', class: {
41033
+ return (hAsync(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
40514
41034
  [theme]: true,
40515
41035
  'skeleton-text-animated': animated,
40516
41036
  'in-media': inMedia,
40517
- } }, hAsync("span", { key: '4b816883b1c71bb1db66d8b2b084559f7cb489bd' }, "\u00A0")));
41037
+ } }, hAsync("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
40518
41038
  }
40519
41039
  get el() { return getElement(this); }
40520
41040
  static get style() { return skeletonTextCss(); }
@@ -40587,7 +41107,7 @@ class Spinner {
40587
41107
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
40588
41108
  }
40589
41109
  }
40590
- return (hAsync(Host, { key: '0b3ce4b99c2c828d05b507c4f073811ebbe17d0f', class: createColorClasses$1(self.color, {
41110
+ return (hAsync(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses$1(self.color, {
40591
41111
  [theme]: true,
40592
41112
  [`spinner-${spinnerName}`]: true,
40593
41113
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -40631,6 +41151,7 @@ const splitPaneIosCss = () => `:host{--side-width:100%;right:0;left:0;top:0;bott
40631
41151
 
40632
41152
  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%}`;
40633
41153
 
41154
+ // TODO(FW-7285): Replace with global breakpoints
40634
41155
  const QUERY = {
40635
41156
  lg: '(min-width: 992px)'};
40636
41157
  /**
@@ -40698,12 +41219,12 @@ class SplitPane {
40698
41219
  }
40699
41220
  render() {
40700
41221
  const theme = getIonTheme(this);
40701
- return (hAsync(Host, { key: '9d0c67f1f81b09bb9a6f14a66053e5cc7431a286', class: {
41222
+ return (hAsync(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
40702
41223
  [theme]: true,
40703
41224
  // Used internally for styling
40704
41225
  [`split-pane-${theme}`]: true,
40705
41226
  'split-pane-visible': this.visible,
40706
- } }, hAsync("slot", { key: 'ab7b3050d3c5484bd00949cf57efa4396b4d5bc3' })));
41227
+ } }, hAsync("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
40707
41228
  }
40708
41229
  get el() { return getElement(this); }
40709
41230
  static get watchers() { return {
@@ -40780,10 +41301,10 @@ class Tab {
40780
41301
  }
40781
41302
  render() {
40782
41303
  const { tab, active, component } = this;
40783
- return (hAsync(Host, { key: 'b249545a5adfcef4616afe79aa0f215bab464d0a', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41304
+ return (hAsync(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
40784
41305
  'ion-page': component === undefined,
40785
41306
  'tab-hidden': !active,
40786
- } }, hAsync("slot", { key: '19e2a406d96d20d8d4af8c3ff900e975d06021f6' })));
41307
+ } }, hAsync("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
40787
41308
  }
40788
41309
  get el() { return getElement(this); }
40789
41310
  static get watchers() { return {
@@ -40990,7 +41511,7 @@ class TabBar {
40990
41511
  const theme = getIonTheme(this);
40991
41512
  const shape = this.getShape();
40992
41513
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
40993
- return (hAsync(Host, { key: '7a91bb00ad289d94d34271bdecefb7221c093fd6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41514
+ return (hAsync(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
40994
41515
  [theme]: true,
40995
41516
  'tab-bar-translucent': translucent,
40996
41517
  'tab-bar-hidden': shouldHide,
@@ -40998,7 +41519,7 @@ class TabBar {
40998
41519
  'tab-bar-scroll-hidden': scrollHidden,
40999
41520
  [`tab-bar-${expand}`]: true,
41000
41521
  [`tab-bar-${shape}`]: shape !== undefined,
41001
- }) }, hAsync("slot", { key: '96ad10c451a6ae1e2b7c48d94d0f158fb8cde1dc' })));
41522
+ }) }, hAsync("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
41002
41523
  }
41003
41524
  get el() { return getElement(this); }
41004
41525
  static get watchers() { return {
@@ -41126,7 +41647,7 @@ class TabButton {
41126
41647
  rel,
41127
41648
  target,
41128
41649
  };
41129
- return (hAsync(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41650
+ return (hAsync(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41130
41651
  [theme]: true,
41131
41652
  'tab-selected': selected,
41132
41653
  'tab-disabled': disabled,
@@ -41139,7 +41660,7 @@ class TabButton {
41139
41660
  'ion-selectable': true,
41140
41661
  [`tab-button-shape-${shape}`]: shape !== undefined,
41141
41662
  'ion-focusable': true,
41142
- } }, 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" }))));
41663
+ } }, 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" }))));
41143
41664
  }
41144
41665
  get el() { return getElement(this); }
41145
41666
  static get style() { return {
@@ -41335,7 +41856,7 @@ class Tabs {
41335
41856
  return Array.from(this.el.querySelectorAll('ion-tab'));
41336
41857
  }
41337
41858
  render() {
41338
- 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" })));
41859
+ 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" })));
41339
41860
  }
41340
41861
  get el() { return getElement(this); }
41341
41862
  static get style() { return tabsCss(); }
@@ -41376,9 +41897,9 @@ class Text {
41376
41897
  }
41377
41898
  render() {
41378
41899
  const theme = getIonTheme(this);
41379
- return (hAsync(Host, { key: '7a3f31d6e219207a1ff98ac441357caa512012e5', class: createColorClasses$1(this.color, {
41900
+ return (hAsync(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses$1(this.color, {
41380
41901
  [theme]: true,
41381
- }) }, hAsync("slot", { key: '392d48d6a5e0e5d1b44e762ec96fb8b53b3ebd49' })));
41902
+ }) }, hAsync("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
41382
41903
  }
41383
41904
  static get style() { return textCss(); }
41384
41905
  static get cmpMeta() { return {
@@ -41942,7 +42463,7 @@ class Textarea {
41942
42463
  * TODO(FW-5592): Remove hasStartEndSlots condition
41943
42464
  */
41944
42465
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
41945
- return (hAsync(Host, { key: 'b31341357553adac08f518e48d83127415f36500', class: createColorClasses$1(this.color, {
42466
+ return (hAsync(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses$1(this.color, {
41946
42467
  [theme]: true,
41947
42468
  'has-value': hasValue,
41948
42469
  'has-focus': hasFocus,
@@ -41954,7 +42475,7 @@ class Textarea {
41954
42475
  'in-item': inItem,
41955
42476
  'textarea-disabled': disabled,
41956
42477
  'textarea-readonly': readonly,
41957
- }) }, hAsync("label", { key: '406cb6739da3382da1f723c42f4ea5aee86e09d4', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '69056191d5f1036bcb88a31d44bc61e3a98f9ebc', class: "textarea-wrapper-inner" },
42478
+ }) }, hAsync("label", { key: '3d21eab560550527de015d36b1c71761792aa516', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '5fe9ec91ac5560d2ebbb93751dd770fe17e5f839', class: "textarea-wrapper-inner" },
41958
42479
  /**
41959
42480
  * For the ionic theme, we render the outline container here
41960
42481
  * instead of higher up, so it can be positioned relative to
@@ -41964,7 +42485,7 @@ class Textarea {
41964
42485
  * <label> element, ensuring that clicking the label text
41965
42486
  * focuses the textarea.
41966
42487
  */
41967
- 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()));
42488
+ 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()));
41968
42489
  }
41969
42490
  static get delegatesFocus() { return true; }
41970
42491
  static get formAssociated() { return true; }
@@ -42048,9 +42569,9 @@ class Thumbnail {
42048
42569
  }
42049
42570
  render() {
42050
42571
  const theme = getIonTheme(this);
42051
- return (hAsync(Host, { key: '6053cf163155d4268dad4fc81ffc6bbc70d75659', class: {
42572
+ return (hAsync(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
42052
42573
  [theme]: true,
42053
- } }, hAsync("slot", { key: 'b7afb5835bce7c7ed9e5cf44758bbe2d802e1271' })));
42574
+ } }, hAsync("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
42054
42575
  }
42055
42576
  static get style() { return thumbnailCss(); }
42056
42577
  static get cmpMeta() { return {
@@ -42934,9 +43455,9 @@ class Toast {
42934
43455
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
42935
43456
  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);
42936
43457
  }
42937
- return (hAsync(Host, Object.assign({ key: '6fd286b024a05e6960f7b4b7947a3c26cc129e14', tabindex: "-1" }, this.htmlAttributes, { style: {
43458
+ return (hAsync(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
42938
43459
  zIndex: `${60000 + this.overlayIndex}`,
42939
- }, 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')))));
43460
+ }, 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')))));
42940
43461
  }
42941
43462
  get el() { return getElement(this); }
42942
43463
  static get watchers() { return {
@@ -43312,7 +43833,7 @@ class Toggle {
43312
43833
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
43313
43834
  const isIonicTheme = theme === 'ionic';
43314
43835
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
43315
- 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, {
43836
+ 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, {
43316
43837
  [theme]: true,
43317
43838
  'in-item': hostContext('ion-item', el),
43318
43839
  'toggle-activated': activated,
@@ -43324,10 +43845,10 @@ class Toggle {
43324
43845
  [`toggle-${rtl}`]: true,
43325
43846
  'ion-activatable': isIonicTheme,
43326
43847
  'ion-focusable': isIonicTheme,
43327
- }) }, 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: {
43848
+ }) }, 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: {
43328
43849
  'label-text-wrapper': true,
43329
43850
  'label-text-wrapper-hidden': !hasLabel,
43330
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '706e5b667ee242fb1afb3e4afa613f9798fbe25b' }), this.renderHintText()), hAsync("div", { key: '255ccd7d60f7d78b4eba8d380b303a72093e9d16', class: "native-wrapper" }, this.renderToggleControl()))));
43851
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), hAsync("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
43331
43852
  }
43332
43853
  get el() { return getElement(this); }
43333
43854
  static get watchers() { return {
@@ -43619,11 +44140,11 @@ class Toolbar {
43619
44140
  Object.assign(childStyles, style);
43620
44141
  });
43621
44142
  const titlePlacement = this.getTitlePlacement();
43622
- return (hAsync(Host, { key: 'a2103857ffb26f517b4190bb01a8fa170a042e45', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44143
+ return (hAsync(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
43623
44144
  [theme]: true,
43624
44145
  'in-toolbar': hostContext('ion-toolbar', this.el),
43625
44146
  [`toolbar-title-placement-${titlePlacement}`]: true,
43626
- })), 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 }))));
44147
+ })), 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 }))));
43627
44148
  }
43628
44149
  get el() { return getElement(this); }
43629
44150
  static get watchers() { return {
@@ -43682,11 +44203,11 @@ class ToolbarTitle {
43682
44203
  render() {
43683
44204
  const theme = getIonTheme(this);
43684
44205
  const size = this.getSize();
43685
- return (hAsync(Host, { key: '8db3e5f9dbd8b1762a9919eaeef29c98649dfb25', class: createColorClasses$1(this.color, {
44206
+ return (hAsync(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses$1(this.color, {
43686
44207
  [theme]: true,
43687
44208
  [`title-${size}`]: true,
43688
44209
  'title-rtl': document.dir === 'rtl',
43689
- }) }, hAsync("div", { key: 'a31ebae2c494a51d2145eec69d0b1bc635108a01', class: "toolbar-title" }, hAsync("slot", { key: 'f5975b44b3e3afbf98dcbdb53fc78447b49407b3' }))));
44210
+ }) }, hAsync("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, hAsync("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
43690
44211
  }
43691
44212
  get el() { return getElement(this); }
43692
44213
  static get watchers() { return {
@@ -43742,6 +44263,7 @@ registerComponents([
43742
44263
  FabButton,
43743
44264
  FabList,
43744
44265
  Footer,
44266
+ Gallery,
43745
44267
  Grid,
43746
44268
  Header,
43747
44269
  Icon,