@ionic/core 8.8.7-dev.11778599050.191a48e3 → 8.8.7-dev.11778680417.1f9234bd

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 +490 -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 +575 -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 +488 -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-192e7509.entry.js → p-15e3e8f5.entry.js} +1 -1
  256. package/dist/ionic/{p-5ac21be2.entry.js → p-1709b0aa.entry.js} +1 -1
  257. package/dist/ionic/{p-2bf931ae.entry.js → p-1c2c1869.entry.js} +1 -1
  258. package/dist/ionic/{p-3bf01c2c.entry.js → p-1c4de46b.entry.js} +1 -1
  259. package/dist/ionic/p-1e1c8d61.entry.js +4 -0
  260. package/dist/ionic/p-2aa7567e.entry.js +4 -0
  261. package/dist/ionic/{p-bc5713f7.entry.js → p-2ad79c23.entry.js} +1 -1
  262. package/dist/ionic/{p-5a3fc28e.entry.js → p-2f0073af.entry.js} +1 -1
  263. package/dist/ionic/{p-833910ae.entry.js → p-35b144f5.entry.js} +1 -1
  264. package/dist/ionic/{p-59b4f8d0.entry.js → p-3f79f594.entry.js} +1 -1
  265. package/dist/ionic/p-4079cee3.entry.js +4 -0
  266. package/dist/ionic/{p-f061fcb7.entry.js → p-48026d15.entry.js} +1 -1
  267. package/dist/ionic/{p-4091ad21.entry.js → p-50b61fab.entry.js} +1 -1
  268. package/dist/ionic/{p-8516eb69.entry.js → p-50cd2d57.entry.js} +1 -1
  269. package/dist/ionic/{p-50d90690.entry.js → p-5274f999.entry.js} +1 -1
  270. package/dist/ionic/{p-3093958a.entry.js → p-586d4270.entry.js} +1 -1
  271. package/dist/ionic/{p-6991ffa2.entry.js → p-7054a1b9.entry.js} +1 -1
  272. package/dist/ionic/{p-b8b20b7e.entry.js → p-71b6014c.entry.js} +1 -1
  273. package/dist/ionic/{p-9b9b1450.entry.js → p-72491468.entry.js} +1 -1
  274. package/dist/ionic/{p-c2894f9e.entry.js → p-76307d10.entry.js} +1 -1
  275. package/dist/ionic/{p-f740c359.entry.js → p-7d5057c4.entry.js} +1 -1
  276. package/dist/ionic/{p-091a95ea.entry.js → p-83c693c4.entry.js} +1 -1
  277. package/dist/ionic/{p-2aa44c65.entry.js → p-8537b2fb.entry.js} +1 -1
  278. package/dist/ionic/{p-02ecc684.entry.js → p-90e653e3.entry.js} +1 -1
  279. package/dist/ionic/p-96001281.entry.js +4 -0
  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 +171 -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 +628 -126
  300. package/hydrate/index.mjs +628 -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,504 @@ 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
+ propertiesChanged() {
18809
+ this.updateResponsiveStyles(true);
18810
+ this.scheduleMasonryResize();
18811
+ // Wait until the next animation frame to warn about unused order
18812
+ // to avoid erroneous warnings when the layout and order are updated
18813
+ // in the same frame.
18814
+ raf(() => {
18815
+ this.warnUnusedOrder();
18816
+ });
18817
+ }
18818
+ componentDidLoad() {
18819
+ this.updateResponsiveStyles(true);
18820
+ this.resizeObserver = new ResizeObserver(() => {
18821
+ this.updateResponsiveStyles();
18822
+ this.scheduleMasonryResize();
18823
+ });
18824
+ this.resizeObserver.observe(this.el);
18825
+ this.scheduleMasonryResize();
18826
+ this.warnUnusedOrder();
18827
+ }
18828
+ disconnectedCallback() {
18829
+ var _a;
18830
+ if (this.masonryRaf !== undefined) {
18831
+ cancelAnimationFrame(this.masonryRaf);
18832
+ this.masonryRaf = undefined;
18833
+ }
18834
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
18835
+ this.resizeObserver = undefined;
18836
+ }
18837
+ /**
18838
+ * Listen for the load event on child elements.
18839
+ * When the layout is `masonry`, this listener is used to schedule a resize
18840
+ * of the masonry grid when the child elements load. This is useful for when
18841
+ * images take time to load.
18842
+ */
18843
+ onChildLoad(ev) {
18844
+ if (this.layout !== 'masonry') {
18845
+ return;
18846
+ }
18847
+ const target = ev.target;
18848
+ if (target !== null && this.el.contains(target)) {
18849
+ this.scheduleMasonryResize();
18850
+ }
18851
+ }
18852
+ /**
18853
+ * Batch masonry measurements to a single animation frame.
18854
+ * This avoids repeated sync layouts during rapid resize/load/slot changes.
18855
+ */
18856
+ scheduleMasonryResize() {
18857
+ if (this.layout !== 'masonry') {
18858
+ this.clearMasonryStyles();
18859
+ return;
18860
+ }
18861
+ if (this.masonryRaf !== undefined) {
18862
+ cancelAnimationFrame(this.masonryRaf);
18863
+ }
18864
+ this.masonryRaf = requestAnimationFrame(this.resizeMasonryGrid);
18865
+ }
18866
+ /**
18867
+ * Normalize a single column value (`columns` as a number, string, or one entry from
18868
+ * a `columns` breakpoint map) to a positive integer. Returns `undefined` when
18869
+ * the input cannot be interpreted as a finite number.
18870
+ */
18871
+ sanitizeColumns(columns) {
18872
+ if (columns === undefined) {
18873
+ return undefined;
18874
+ }
18875
+ const numericColumns = typeof columns === 'number' ? columns : Number(columns);
18876
+ if (!Number.isFinite(numericColumns) || !Number.isInteger(numericColumns) || numericColumns <= 0) {
18877
+ return undefined;
18878
+ }
18879
+ return numericColumns;
18880
+ }
18881
+ /**
18882
+ * Normalize a single gap value (`gap` as a number, string, or one entry from
18883
+ * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
18884
+ * the input cannot be interpreted as a valid CSS length.
18885
+ */
18886
+ sanitizeGap(gap) {
18887
+ if (gap === undefined) {
18888
+ return undefined;
18889
+ }
18890
+ const normalizedGap = typeof gap === 'string' ? gap.trim() : gap;
18891
+ if (normalizedGap === '' || typeof normalizedGap === 'object') {
18892
+ return undefined;
18893
+ }
18894
+ const numericGap = Number(normalizedGap);
18895
+ if (Number.isFinite(numericGap)) {
18896
+ return numericGap < 0 ? undefined : `${numericGap}px`;
18897
+ }
18898
+ if (typeof normalizedGap !== 'string') {
18899
+ return undefined;
18900
+ }
18901
+ const isValidCssLength = isValidLengthPercentage(normalizedGap);
18902
+ return isValidCssLength ? normalizedGap : undefined;
18903
+ }
18904
+ /**
18905
+ * Check if the value is a breakpoint map object.
18906
+ */
18907
+ isBreakpointMap(value) {
18908
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18909
+ }
18910
+ /**
18911
+ * Check if the breakpoint map has any invalid values for the provided sanitizer.
18912
+ */
18913
+ hasInvalidBreakpointMap(breakpointMap, sanitizeValue) {
18914
+ for (const breakpoint of BREAKPOINT_ORDER) {
18915
+ const value = breakpointMap[breakpoint];
18916
+ if (value !== undefined && sanitizeValue(value) === undefined) {
18917
+ return true;
18918
+ }
18919
+ }
18920
+ return false;
18921
+ }
18922
+ /**
18923
+ * Resolve a responsive value from a breakpoint map.
18924
+ * Uses a breakpoint-specific default when custom values are missing/invalid.
18925
+ */
18926
+ resolveFromBreakpoints(width, breakpointMap, sanitizeProvided, getSanitizedDefault) {
18927
+ let resolvedValue;
18928
+ for (const bp of BREAKPOINT_ORDER) {
18929
+ const providedValue = breakpointMap[bp];
18930
+ const sanitizedProvided = sanitizeProvided(providedValue);
18931
+ const sanitizedDefault = getSanitizedDefault(bp);
18932
+ const resolved = providedValue === undefined || sanitizedProvided === undefined ? sanitizedDefault : sanitizedProvided;
18933
+ if (resolved !== undefined && width >= BREAKPOINTS[bp]) {
18934
+ resolvedValue = resolved;
18935
+ }
18936
+ }
18937
+ return resolvedValue;
18938
+ }
18939
+ /**
18940
+ * Get the columns from a responsive breakpoint map.
18941
+ * Returns the columns for the last matching breakpoint.
18942
+ */
18943
+ getColumnsFromBreakpointMap(width, breakpointMap) {
18944
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeColumns(value), (bp) => this.sanitizeColumns(DEFAULT_COLUMNS[bp]));
18945
+ }
18946
+ /**
18947
+ * Get the gap from a responsive breakpoint map.
18948
+ * Returns the gap for the last matching breakpoint.
18949
+ */
18950
+ getGapFromBreakpointMap(width, breakpointMap) {
18951
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeGap(value), () => this.sanitizeGap(DEFAULT_GAP));
18952
+ }
18953
+ /**
18954
+ * Warn about an invalid columns value when it is set to a non-positive
18955
+ * integer or a breakpoint map object with invalid values.
18956
+ */
18957
+ warnInvalidColumns(columns) {
18958
+ if (this.hasWarnedInvalidColumns) {
18959
+ return;
18960
+ }
18961
+ 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);
18962
+ this.hasWarnedInvalidColumns = true;
18963
+ }
18964
+ /**
18965
+ * Warn about an invalid gap value when it is set to a negative number
18966
+ * or a breakpoint map object with invalid values.
18967
+ */
18968
+ warnInvalidGap(gap) {
18969
+ if (this.hasWarnedInvalidGap) {
18970
+ return;
18971
+ }
18972
+ 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);
18973
+ this.hasWarnedInvalidGap = true;
18974
+ }
18975
+ /**
18976
+ * Warn when `order` is explicitly set while layout is `uniform`.
18977
+ */
18978
+ warnUnusedOrder() {
18979
+ const { layout } = this;
18980
+ const order = this.order == null ? undefined : this.order;
18981
+ if (this.hasWarnedUnusedOrder || layout !== 'uniform' || order === undefined) {
18982
+ return;
18983
+ }
18984
+ printIonWarning(`[ion-gallery] - "order" has no effect when "layout" is "uniform". Set "layout" to "masonry" for "order" to apply.`, this.el);
18985
+ this.hasWarnedUnusedOrder = true;
18986
+ }
18987
+ /**
18988
+ * Resolve the active columns value for the current width. Falls back to
18989
+ * the default responsive columns when the provided prop is invalid.
18990
+ */
18991
+ getColumnsForWidth(width) {
18992
+ const { columns } = this;
18993
+ const isBreakpointColumns = this.isBreakpointMap(columns);
18994
+ const hasInvalidBreakpointColumns = isBreakpointColumns && this.hasInvalidBreakpointMap(columns, (value) => this.sanitizeColumns(value));
18995
+ const sanitizedColumns = isBreakpointColumns
18996
+ ? this.getColumnsFromBreakpointMap(width, columns)
18997
+ : this.sanitizeColumns(columns);
18998
+ if (hasInvalidBreakpointColumns || (!isBreakpointColumns && sanitizedColumns === undefined)) {
18999
+ this.warnInvalidColumns(columns);
19000
+ }
19001
+ if (sanitizedColumns !== undefined) {
19002
+ return sanitizedColumns;
19003
+ }
19004
+ return this.getColumnsFromBreakpointMap(width, DEFAULT_COLUMNS);
19005
+ }
19006
+ /**
19007
+ * Resolve the active gap value for the current width.
19008
+ */
19009
+ getGapForWidth(width) {
19010
+ const { gap } = this;
19011
+ const providedGap = gap !== null && gap !== void 0 ? gap : DEFAULT_GAP;
19012
+ const isBreakpointGap = this.isBreakpointMap(providedGap);
19013
+ const hasInvalidBreakpointGap = isBreakpointGap && this.hasInvalidBreakpointMap(providedGap, (value) => this.sanitizeGap(value));
19014
+ const sanitizedGap = isBreakpointGap
19015
+ ? this.getGapFromBreakpointMap(width, providedGap)
19016
+ : this.sanitizeGap(providedGap);
19017
+ if (hasInvalidBreakpointGap || (!isBreakpointGap && sanitizedGap === undefined)) {
19018
+ this.warnInvalidGap(providedGap);
19019
+ }
19020
+ if (sanitizedGap !== undefined) {
19021
+ return sanitizedGap;
19022
+ }
19023
+ return this.sanitizeGap(DEFAULT_GAP);
19024
+ }
19025
+ /**
19026
+ * Update the responsive styles for the gallery. This is used to update
19027
+ * the columns and gap when the component width changes.
19028
+ */
19029
+ updateResponsiveStyles(force = false) {
19030
+ const width = this.el.getBoundingClientRect().width;
19031
+ // Only update the columns if the component width has changed by more than
19032
+ // 1px or if the force flag is true. This prevents unnecessary re-renders
19033
+ // when the component width has not changed.
19034
+ if (!width || (!force && this.lastWidth !== undefined && Math.abs(this.lastWidth - width) < 1)) {
19035
+ return;
19036
+ }
19037
+ this.lastWidth = width;
19038
+ const columns = this.getColumnsForWidth(width);
19039
+ this.el.style.setProperty('--internal-gallery-columns', `${columns}`);
19040
+ const gap = this.getGapForWidth(width);
19041
+ this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
19042
+ }
19043
+ /**
19044
+ * Return all directly slotted HTMLElement children of the gallery.
19045
+ */
19046
+ getItems() {
19047
+ return Array.from(this.el.children).filter((child) => child instanceof HTMLElement);
19048
+ }
19049
+ /**
19050
+ * Clear the item styles for the given item element.
19051
+ * This is used to switch between uniform and masonry layouts.
19052
+ */
19053
+ clearItemStyles(itemEl) {
19054
+ itemEl.style.gridRowStart = '';
19055
+ itemEl.style.gridRowEnd = '';
19056
+ itemEl.style.gridColumn = '';
19057
+ itemEl.style.marginBottom = '';
19058
+ }
19059
+ /**
19060
+ * Clear placement styles for all items when leaving masonry mode.
19061
+ */
19062
+ clearMasonryStyles() {
19063
+ this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
19064
+ }
19065
+ /**
19066
+ * Convert a rendered item height to the number of grid rows it should span.
19067
+ * Returns undefined for images that are not fully loaded yet.
19068
+ */
19069
+ calculateRowSpan(itemEl, rowHeight, rowGap) {
19070
+ if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
19071
+ return undefined;
19072
+ }
19073
+ const height = itemEl.getBoundingClientRect().height;
19074
+ const itemStyles = getComputedStyle(itemEl);
19075
+ const marginBottom = parseFloat(itemStyles.getPropertyValue('margin-bottom')) || 0;
19076
+ const denominator = rowHeight + rowGap;
19077
+ if (!denominator || !Number.isFinite(denominator)) {
19078
+ return 1;
19079
+ }
19080
+ return Math.ceil((height + marginBottom + rowGap) / denominator) || 1;
19081
+ }
19082
+ /**
19083
+ * Get the index of the column to position the item in.
19084
+ * When the order is `best-fit`, the column with the shortest height is
19085
+ * returned. Otherwise, items are placed in the column that matches their
19086
+ * natural DOM order.
19087
+ */
19088
+ getColumnIndex(index, columnHeights, columns) {
19089
+ const order = this.getOrder();
19090
+ if (order === 'best-fit') {
19091
+ let columnIndex = 0;
19092
+ for (let i = 1; i < columns; i++) {
19093
+ if (columnHeights[i] < columnHeights[columnIndex]) {
19094
+ columnIndex = i;
19095
+ }
19096
+ }
19097
+ return columnIndex;
19098
+ }
19099
+ return index % columns;
19100
+ }
19101
+ /**
19102
+ * Apply masonry placement by assigning each item a column and row span.
19103
+ */
19104
+ layoutMasonry(items, rowHeight, rowGap, columns) {
19105
+ const columnHeights = new Array(columns).fill(0);
19106
+ const lastItemsByColumn = new Array(columns).fill(undefined);
19107
+ items.forEach((itemEl, i) => {
19108
+ itemEl.style.marginBottom = '';
19109
+ const span = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19110
+ if (span === undefined) {
19111
+ this.clearItemStyles(itemEl);
19112
+ return;
19113
+ }
19114
+ const columnIndex = this.getColumnIndex(i, columnHeights, columns);
19115
+ const start = columnHeights[columnIndex] + 1;
19116
+ itemEl.style.gridColumn = `${columnIndex + 1}`;
19117
+ itemEl.style.gridRowStart = `${start}`;
19118
+ itemEl.style.gridRowEnd = `span ${span}`;
19119
+ columnHeights[columnIndex] = start + span - 1;
19120
+ lastItemsByColumn[columnIndex] = itemEl;
19121
+ });
19122
+ // Remove trailing space from the final item in each column while preserving
19123
+ // spacing between all non-final items.
19124
+ lastItemsByColumn.forEach((itemEl) => {
19125
+ if (itemEl === undefined) {
19126
+ return;
19127
+ }
19128
+ itemEl.style.marginBottom = '0px';
19129
+ const spanWithoutTrailingGap = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19130
+ if (spanWithoutTrailingGap === undefined) {
19131
+ this.clearItemStyles(itemEl);
19132
+ return;
19133
+ }
19134
+ itemEl.style.gridRowEnd = `span ${spanWithoutTrailingGap}`;
19135
+ });
19136
+ }
19137
+ /**
19138
+ * Resolved order for layout and CSS. Order should be `undefined` for
19139
+ * the uniform layout. When order is not set, it should be `"sequential"`
19140
+ * for the masonry layout.
19141
+ */
19142
+ getOrder() {
19143
+ const { layout } = this;
19144
+ const order = this.order == null ? undefined : this.order;
19145
+ if (layout === 'uniform') {
19146
+ return undefined;
19147
+ }
19148
+ if (layout === 'masonry' && order === undefined) {
19149
+ return 'sequential';
19150
+ }
19151
+ return order;
19152
+ }
19153
+ render() {
19154
+ const { layout } = this;
19155
+ const order = this.getOrder();
19156
+ const theme = getIonTheme(this);
19157
+ return (hAsync(Host, { key: '8a8266626f1ba8beb7e382c89ae7905372fe23a9', class: {
19158
+ [theme]: true,
19159
+ [`gallery-layout-${layout}`]: true,
19160
+ [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
19161
+ } }, hAsync("slot", { key: '7758e89bda53a91d593b9ece0cbe60a4bce0a0fa', onSlotchange: this.onSlotChange })));
19162
+ }
19163
+ get el() { return getElement(this); }
19164
+ static get watchers() { return {
19165
+ "columns": [{
19166
+ "propertiesChanged": 0
19167
+ }],
19168
+ "gap": [{
19169
+ "propertiesChanged": 0
19170
+ }],
19171
+ "layout": [{
19172
+ "propertiesChanged": 0
19173
+ }],
19174
+ "order": [{
19175
+ "propertiesChanged": 0
19176
+ }]
19177
+ }; }
19178
+ static get style() { return galleryCss(); }
19179
+ static get cmpMeta() { return {
19180
+ "$flags$": 265,
19181
+ "$tagName$": "ion-gallery",
19182
+ "$members$": {
19183
+ "layout": [1],
19184
+ "order": [1],
19185
+ "columns": [8],
19186
+ "gap": [8]
19187
+ },
19188
+ "$listeners$": [[2, "load", "onChildLoad"]],
19189
+ "$lazyBundleId$": "-",
19190
+ "$attrsToReflect$": []
19191
+ }; }
19192
+ }
19193
+
18694
19194
  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
19195
 
18696
19196
  /**
@@ -18707,10 +19207,10 @@ class Grid {
18707
19207
  }
18708
19208
  render() {
18709
19209
  const theme = getIonTheme(this);
18710
- return (hAsync(Host, { key: 'cd55886cabaeab57e3b13193381b196bec2f07f8', class: {
19210
+ return (hAsync(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
18711
19211
  [theme]: true,
18712
19212
  'grid-fixed': this.fixed,
18713
- } }, hAsync("slot", { key: 'c9b95999e6a274a8a0c997451c0be45b1304d77b' })));
19213
+ } }, hAsync("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
18714
19214
  }
18715
19215
  static get style() { return gridCss(); }
18716
19216
  static get cmpMeta() { return {
@@ -19112,7 +19612,7 @@ class Header {
19112
19612
  const isCondensed = collapse === 'condense';
19113
19613
  // banner role must be at top level, so remove role if inside a menu
19114
19614
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
19115
- return (hAsync(Host, Object.assign({ key: '658d5746920c349cc9fe85666c7215f2edc3c794', role: roleType, class: {
19615
+ return (hAsync(Host, Object.assign({ key: 'b43e5f542bdcec5e94c299556183cf6d9d673438', role: roleType, class: {
19116
19616
  [theme]: true,
19117
19617
  // Used internally for styling
19118
19618
  [`header-${theme}`]: true,
@@ -19120,7 +19620,7 @@ class Header {
19120
19620
  [`header-collapse-${collapse}`]: true,
19121
19621
  [`header-translucent-${theme}`]: this.translucent,
19122
19622
  ['header-divider']: divider,
19123
- } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: '4a1470d86e1aac6f8d545fe01e75b4dce665fb70', class: "header-background" }), hAsync("slot", { key: '3b02661242bda5834c4e13e4eb61bf79b53ba33e' })));
19623
+ } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: 'fd9938f02edd38e1afc83025373ec0aec5633711', class: "header-background" }), hAsync("slot", { key: '900aaa7da5d6f08e6f94b128fa065348d595159e' })));
19124
19624
  }
19125
19625
  get el() { return getElement(this); }
19126
19626
  static get style() { return {
@@ -19471,9 +19971,9 @@ class Img {
19471
19971
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19472
19972
  const { draggable } = inheritedAttributes;
19473
19973
  const theme = getIonTheme(this);
19474
- return (hAsync(Host, { key: '840d5b29d81222b061ac72168ef6551b5a061e3a', class: {
19974
+ return (hAsync(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
19475
19975
  [theme]: true,
19476
- } }, hAsync("img", { key: 'e22e66ee4bb3a648b21c6080674e68eebf4a3feb', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19976
+ } }, hAsync("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19477
19977
  }
19478
19978
  get el() { return getElement(this); }
19479
19979
  static get watchers() { return {
@@ -19778,7 +20278,7 @@ class InfiniteScroll {
19778
20278
  render() {
19779
20279
  const theme = getIonTheme(this);
19780
20280
  const disabled = this.disabled;
19781
- return (hAsync(Host, { key: '22d99824cb589d9024666a3c1ed205f781858eed', class: {
20281
+ return (hAsync(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
19782
20282
  [theme]: true,
19783
20283
  'infinite-scroll-loading': this.isLoading,
19784
20284
  'infinite-scroll-enabled': !disabled,
@@ -19841,11 +20341,11 @@ class InfiniteScrollContent {
19841
20341
  }
19842
20342
  render() {
19843
20343
  const theme = getIonTheme(this);
19844
- return (hAsync(Host, { key: 'e94d19f17ef9d4d77786716152e3206366feb546', class: {
20344
+ return (hAsync(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
19845
20345
  [theme]: true,
19846
20346
  // Used internally for styling
19847
20347
  [`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())));
20348
+ } }, 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
20349
  }
19850
20350
  static get style() { return {
19851
20351
  ionic: ionicInfiniteScrollContentMdCss(),
@@ -20593,7 +21093,7 @@ class Input {
20593
21093
  * TODO(FW-5592): Remove hasStartEndSlots condition
20594
21094
  */
20595
21095
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20596
- return (hAsync(Host, { key: 'd62741432c3e1421d69fdf2ed2e8058a1ce3544f', class: createColorClasses$1(this.color, {
21096
+ return (hAsync(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses$1(this.color, {
20597
21097
  [theme]: true,
20598
21098
  'has-value': hasValue,
20599
21099
  'has-focus': hasFocus,
@@ -20606,7 +21106,7 @@ class Input {
20606
21106
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20607
21107
  'input-disabled': disabled,
20608
21108
  '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 },
21109
+ }) }, 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
21110
  /**
20611
21111
  * For the ionic theme, we render the outline container here
20612
21112
  * instead of higher up, so it can be positioned relative to
@@ -20616,14 +21116,14 @@ class Input {
20616
21116
  * <label> element, ensuring that clicking the label text
20617
21117
  * focuses the input.
20618
21118
  */
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) => {
21119
+ 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
21120
  /**
20621
21121
  * This prevents mobile browsers from
20622
21122
  * blurring the input when the clear
20623
21123
  * button is activated.
20624
21124
  */
20625
21125
  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()));
21126
+ }, 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
21127
  }
20628
21128
  get el() { return getElement(this); }
20629
21129
  static get watchers() { return {
@@ -21388,7 +21888,7 @@ class InputOTP {
21388
21888
  const tabbableIndex = this.getTabbableIndex();
21389
21889
  const pattern = this.getPattern();
21390
21890
  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, {
21891
+ return (hAsync(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses$1(color, {
21392
21892
  [mode]: true,
21393
21893
  'has-focus': hasFocus,
21394
21894
  [`input-otp-size-${size}`]: true,
@@ -21396,10 +21896,10 @@ class InputOTP {
21396
21896
  [`input-otp-fill-${fill}`]: true,
21397
21897
  'input-otp-disabled': disabled,
21398
21898
  '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: {
21899
+ }) }, 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
21900
  'input-otp-description': true,
21401
21901
  'input-otp-description-hidden': !hasDescription,
21402
- }, part: "description" }, hAsync("slot", { key: '9fd331ceff04ab93f8d4aec251565cc201f19294' }))));
21902
+ }, part: "description" }, hAsync("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
21403
21903
  }
21404
21904
  static get formAssociated() { return true; }
21405
21905
  get el() { return getElement(this); }
@@ -21547,16 +22047,16 @@ class InputPasswordToggle {
21547
22047
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
21548
22048
  const mode = getIonMode$1(this);
21549
22049
  const isPasswordVisible = type === 'text';
21550
- return (hAsync(Host, { key: 'e3c21d5bedebeadb57c0c9b7f065d15ab0d49e4a', class: createColorClasses$1(color, {
22050
+ return (hAsync(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses$1(color, {
21551
22051
  [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) => {
22052
+ }) }, 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
22053
  /**
21554
22054
  * This prevents mobile browsers from
21555
22055
  * blurring the input when the password toggle
21556
22056
  * button is activated.
21557
22057
  */
21558
22058
  ev.preventDefault();
21559
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'af9a7e202fe0b3f75f10b3e13bf1e5fb653194d1', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22059
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
21560
22060
  }
21561
22061
  get el() { return getElement(this); }
21562
22062
  static get watchers() { return {
@@ -21931,11 +22431,11 @@ class ItemDivider {
21931
22431
  }
21932
22432
  render() {
21933
22433
  const theme = getIonTheme(this);
21934
- return (hAsync(Host, { key: '4d481e6233a75f3c3042b5825d9c14fe77280f03', class: createColorClasses$1(this.color, {
22434
+ return (hAsync(Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: createColorClasses$1(this.color, {
21935
22435
  [theme]: true,
21936
22436
  'item-divider-sticky': this.sticky,
21937
22437
  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" }))));
22438
+ }) }, 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
22439
  }
21940
22440
  get el() { return getElement(this); }
21941
22441
  static get style() { return {
@@ -21972,7 +22472,7 @@ class ItemGroup {
21972
22472
  }
21973
22473
  render() {
21974
22474
  const theme = getIonTheme(this);
21975
- return (hAsync(Host, { key: '3fb0784b321736344604e259cfb05c6307159bed', role: "group", class: {
22475
+ return (hAsync(Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
21976
22476
  [theme]: true,
21977
22477
  // Used internally for styling
21978
22478
  [`item-group-${theme}`]: true,
@@ -22068,14 +22568,14 @@ class ItemOption {
22068
22568
  href: this.href,
22069
22569
  target: this.target,
22070
22570
  };
22071
- return (hAsync(Host, { key: '810fe351aa83d6e88cb0e2ebee307b3050e65b45', onClick: this.onClick, class: createColorClasses$1(this.color, {
22571
+ return (hAsync(Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: createColorClasses$1(this.color, {
22072
22572
  [theme]: true,
22073
22573
  [`item-option-${shape}`]: shape !== undefined,
22074
22574
  [`item-option-${hue}`]: hue !== undefined,
22075
22575
  'item-option-disabled': disabled,
22076
22576
  'item-option-expandable': expandable,
22077
22577
  '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' }))));
22578
+ }) }, 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
22579
  }
22080
22580
  get el() { return getElement(this); }
22081
22581
  static get style() { return {
@@ -22133,7 +22633,7 @@ class ItemOptions {
22133
22633
  render() {
22134
22634
  const theme = getIonTheme(this);
22135
22635
  const isEnd = isEndSide(this.side);
22136
- return (hAsync(Host, { key: 'cc55282505679d51fb90ebf30869e930c71afbd4', class: {
22636
+ return (hAsync(Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
22137
22637
  [theme]: true,
22138
22638
  // Used internally for styling
22139
22639
  [`item-options-${theme}`]: true,
@@ -22985,7 +23485,7 @@ class ItemSliding {
22985
23485
  }
22986
23486
  render() {
22987
23487
  const theme = getIonTheme(this);
22988
- return (hAsync(Host, { key: 'ca0730d5ee00f245b6a139d9fb53fcc8c529a8c6', class: {
23488
+ return (hAsync(Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
22989
23489
  [theme]: true,
22990
23490
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
22991
23491
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -23104,13 +23604,13 @@ class Label {
23104
23604
  render() {
23105
23605
  const position = this.position;
23106
23606
  const theme = getIonTheme(this);
23107
- return (hAsync(Host, { key: 'd730045c08ba576082563398ab51fc903577d214', class: createColorClasses$1(this.color, {
23607
+ return (hAsync(Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: createColorClasses$1(this.color, {
23108
23608
  [theme]: true,
23109
23609
  'in-item-color': hostContext('ion-item.ion-color', this.el),
23110
23610
  [`label-${position}`]: position !== undefined,
23111
23611
  [`label-no-animate`]: this.noAnimate,
23112
23612
  'label-rtl': document.dir === 'rtl',
23113
- }) }, hAsync("slot", { key: '604289ef567339c83fb409371224906819a9d7cc' })));
23613
+ }) }, hAsync("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
23114
23614
  }
23115
23615
  get el() { return getElement(this); }
23116
23616
  static get watchers() { return {
@@ -23190,7 +23690,7 @@ class List {
23190
23690
  const theme = getIonTheme(this);
23191
23691
  const shape = this.getShape();
23192
23692
  const { lines, inset } = this;
23193
- return (hAsync(Host, { key: 'dcdfb595a6b45307f9810e1ded25ba635c947940', role: "list", class: {
23693
+ return (hAsync(Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
23194
23694
  [theme]: true,
23195
23695
  // Used internally for styling
23196
23696
  [`list-${theme}`]: true,
@@ -23240,10 +23740,10 @@ class ListHeader {
23240
23740
  render() {
23241
23741
  const { lines } = this;
23242
23742
  const theme = getIonTheme(this);
23243
- return (hAsync(Host, { key: '0be4fb7d4f9cd6f50229cf7b361c74e94fbfce91', class: createColorClasses$1(this.color, {
23743
+ return (hAsync(Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: createColorClasses$1(this.color, {
23244
23744
  [theme]: true,
23245
23745
  [`list-header-lines-${lines}`]: lines !== undefined,
23246
- }) }, hAsync("div", { key: '4dcc3374685728ae9270d8d58b1ea1c08b0bbc08', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: '5658cc9185680bfa96328685d817b84b18e9ab5a' }))));
23746
+ }) }, hAsync("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
23247
23747
  }
23248
23748
  static get style() { return {
23249
23749
  ionic: listHeaderIonicCss(),
@@ -23532,9 +24032,9 @@ class Loading {
23532
24032
  * Otherwise, don't set aria-labelledby.
23533
24033
  */
23534
24034
  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: {
24035
+ return (hAsync(Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
23536
24036
  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" })));
24037
+ }, 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
24038
  }
23539
24039
  get el() { return getElement(this); }
23540
24040
  static get watchers() { return {
@@ -24595,14 +25095,14 @@ class Menu {
24595
25095
  * the ionBackButton listener in the menu controller
24596
25096
  * will handle closing the menu when Escape is pressed.
24597
25097
  */
24598
- return (hAsync(Host, { key: '12bd2c4e9aa2f314ffc45d7f43290bd9910ca8b0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25098
+ return (hAsync(Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24599
25099
  [theme]: true,
24600
25100
  [`menu-type-${type}`]: true,
24601
25101
  'menu-enabled': !disabled,
24602
25102
  [`menu-side-${side}`]: true,
24603
25103
  'menu-pane-visible': isPaneVisible,
24604
25104
  '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" })));
25105
+ } }, 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
25106
  }
24607
25107
  get el() { return getElement(this); }
24608
25108
  static get watchers() { return {
@@ -24736,7 +25236,7 @@ class MenuButton {
24736
25236
  type: this.type,
24737
25237
  };
24738
25238
  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, {
25239
+ return (hAsync(Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
24740
25240
  [theme]: true,
24741
25241
  button: true, // ion-buttons target .button
24742
25242
  'menu-button-hidden': hidden,
@@ -24745,7 +25245,7 @@ class MenuButton {
24745
25245
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
24746
25246
  'ion-activatable': true,
24747
25247
  '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" }))));
25248
+ }) }, 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
25249
  }
24750
25250
  get el() { return getElement(this); }
24751
25251
  static get style() { return {
@@ -24802,10 +25302,10 @@ class MenuToggle {
24802
25302
  render() {
24803
25303
  const theme = getIonTheme(this);
24804
25304
  const hidden = this.autoHide && !this.visible;
24805
- return (hAsync(Host, { key: 'c3ddce789a90d720769919ebf854d05cc75f599e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25305
+ return (hAsync(Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
24806
25306
  [theme]: true,
24807
25307
  'menu-toggle-hidden': hidden,
24808
- } }, hAsync("slot", { key: 'f1334ba9d20148b673a0b6185ab5ef92f448f720' })));
25308
+ } }, hAsync("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
24809
25309
  }
24810
25310
  static get style() { return menuToggleCss(); }
24811
25311
  static get cmpMeta() { return {
@@ -28308,20 +28808,20 @@ class Modal {
28308
28808
  const isHandleCycle = handleBehavior === 'cycle';
28309
28809
  const shape = this.getShape();
28310
28810
  const isSheetModalWithHandle = isSheetModal && showHandle;
28311
- return (hAsync(Host, Object.assign({ key: 'e4b82f87c76d3ad5aae7794c4c882e6c95ef7c97', "no-router": true,
28811
+ return (hAsync(Host, Object.assign({ key: '2d3a31da1613386cf90f0d59d6b26c9a5b654d2a', "no-router": true,
28312
28812
  // Allow the modal to be navigable when the handle is focusable
28313
28813
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
28314
28814
  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',
28815
+ }, 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
28816
  /*
28317
28817
  role and aria-modal must be used on the
28318
28818
  same element. They must also be set inside the
28319
28819
  shadow DOM otherwise ion-button will not be highlighted
28320
28820
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
28321
28821
  */
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",
28822
+ 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
28823
  // 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 }))));
28824
+ 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
28825
  }
28326
28826
  get el() { return getElement(this); }
28327
28827
  static get watchers() { return {
@@ -29281,7 +29781,7 @@ class Nav {
29281
29781
  }
29282
29782
  }
29283
29783
  render() {
29284
- return hAsync("slot", { key: 'd6dd0b1e0ba59381a139f4a49de3eb8351fa87a4' });
29784
+ return hAsync("slot", { key: '87188d8fb4232d448ef2ad8e3db29c3730b1ff9e' });
29285
29785
  }
29286
29786
  get el() { return getElement(this); }
29287
29787
  static get watchers() { return {
@@ -29362,7 +29862,7 @@ class NavLink {
29362
29862
  };
29363
29863
  }
29364
29864
  render() {
29365
- return hAsync(Host, { key: '61246716bdf9556db90e07680bc1a289f9658d5c', onClick: this.onClick });
29865
+ return hAsync(Host, { key: '38f3d2e7a3ae4e57ac1479436c143e6820d25cd2', onClick: this.onClick });
29366
29866
  }
29367
29867
  get el() { return getElement(this); }
29368
29868
  static get cmpMeta() { return {
@@ -29396,9 +29896,9 @@ class Note {
29396
29896
  }
29397
29897
  render() {
29398
29898
  const theme = getIonTheme(this);
29399
- return (hAsync(Host, { key: 'a8470df6b8fb8ca327a282fc23705bc230f13a40', class: createColorClasses$1(this.color, {
29899
+ return (hAsync(Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: createColorClasses$1(this.color, {
29400
29900
  [theme]: true,
29401
- }) }, hAsync("slot", { key: '07cbdef68f010b06638f359f70dff3f1d659d899' })));
29901
+ }) }, hAsync("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
29402
29902
  }
29403
29903
  static get style() { return {
29404
29904
  ionic: ionicNoteMdCss(),
@@ -30164,11 +30664,11 @@ class Picker {
30164
30664
  render() {
30165
30665
  const { htmlAttributes } = this;
30166
30666
  const theme = getIonTheme(this);
30167
- return (hAsync(Host, Object.assign({ key: 'efcc823fad9cb37c1379bef4f4b84c6461f3a3a6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30667
+ return (hAsync(Host, Object.assign({ key: 'b0c1fc8eee284f03c696f0c8aaa29f4a6d7be0be', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30168
30668
  zIndex: `${20000 + this.overlayIndex}`,
30169
30669
  }, class: Object.assign({ [theme]: true,
30170
30670
  // 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" })));
30671
+ [`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
30672
  }
30173
30673
  get el() { return getElement(this); }
30174
30674
  static get watchers() { return {
@@ -31146,9 +31646,9 @@ class PickerColumnCmp {
31146
31646
  render() {
31147
31647
  const col = this.col;
31148
31648
  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: {
31649
+ 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
31650
  '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))));
31651
+ } }, 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
31652
  }
31153
31653
  get el() { return getElement(this); }
31154
31654
  static get watchers() { return {
@@ -31273,10 +31773,10 @@ class PickerColumnOption {
31273
31773
  render() {
31274
31774
  const { color, disabled, ariaLabel } = this;
31275
31775
  const theme = getIonTheme(this);
31276
- return (hAsync(Host, { key: '9ceebae71b6df0b01f36691d82d716f6756625d9', class: createColorClasses$1(color, {
31776
+ return (hAsync(Host, { key: '54c254f01017aa47aac76c0833f9ef04bf20bdc9', class: createColorClasses$1(color, {
31277
31777
  [theme]: true,
31278
31778
  ['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' }))));
31779
+ }) }, hAsync("div", { key: '36b21f1b7d9a5b05f0211ce8be90f66578641224', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '154bf9ca37ca1c6e5d34d42c16b04203e83210be' }))));
31280
31780
  }
31281
31781
  get el() { return getElement(this); }
31282
31782
  static get watchers() { return {
@@ -32845,9 +33345,9 @@ class Popover {
32845
33345
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
32846
33346
  const desktop = isPlatform('desktop');
32847
33347
  const enableArrow = arrow && !parentPopover;
32848
- return (hAsync(Host, Object.assign({ key: 'ba8801218aa8543eae0e8e2c57fbd0d4fbb2c8ff', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33348
+ return (hAsync(Host, Object.assign({ key: '43128f8b7e57f08a451af1a237534d0517d86eda', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
32849
33349
  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' })))));
33350
+ }, 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
33351
  }
32852
33352
  get el() { return getElement(this); }
32853
33353
  static get watchers() { return {
@@ -32975,7 +33475,7 @@ class ProgressBar {
32975
33475
  const shape = this.getShape();
32976
33476
  // If the progress is displayed as a solid bar.
32977
33477
  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, {
33478
+ return (hAsync(Host, { key: '0f6202e25d884fb85d18578769f6cfa5c704e9d9', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
32979
33479
  [theme]: true,
32980
33480
  [`progress-bar-${type}`]: true,
32981
33481
  'progress-paused': paused,
@@ -33168,7 +33668,7 @@ class Radio {
33168
33668
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
33169
33669
  const theme = getIonTheme(this);
33170
33670
  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, {
33671
+ return (hAsync(Host, { key: '82127b11eac97fa45886179d248c8509ca07655a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33172
33672
  [theme]: true,
33173
33673
  'in-item': inItem,
33174
33674
  'radio-checked': checked,
@@ -33179,10 +33679,10 @@ class Radio {
33179
33679
  // Focus and active styling should not apply when the radio is in an item
33180
33680
  'ion-activatable': !inItem,
33181
33681
  '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: {
33682
+ }), 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
33683
  'label-text-wrapper': true,
33184
33684
  'label-text-wrapper-hidden': !hasLabel,
33185
- }, part: "label" }, hAsync("slot", { key: 'f06b9b57e1c2d66d3eb6790ca30f4d5e85d0d264' })), hAsync("div", { key: '780fc11778f5661d95e60c6cd72a9ed78910b889', class: "native-wrapper" }, this.renderRadioControl()))));
33685
+ }, part: "label" }, hAsync("slot", { key: '9c26b977843398be61f1b753251d8fe40d65702a' })), hAsync("div", { key: '336b2d6aeb5e86dc1d994ac1eac52634f5da5b9c', class: "native-wrapper" }, this.renderRadioControl()))));
33186
33686
  }
33187
33687
  get el() { return getElement(this); }
33188
33688
  static get watchers() { return {
@@ -33452,10 +33952,10 @@ class RadioGroup {
33452
33952
  const { label, labelId, el, name, value } = this;
33453
33953
  const theme = getIonTheme(this);
33454
33954
  renderHiddenInput(true, el, name, value, false);
33455
- return (hAsync(Host, { key: '39246fbf1f1e3a6ba27dd715f030445d4434999b', class: {
33955
+ return (hAsync(Host, { key: 'c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e', class: {
33456
33956
  [theme]: true,
33457
33957
  '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' })));
33958
+ }, 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
33959
  }
33460
33960
  get el() { return getElement(this); }
33461
33961
  static get watchers() { return {
@@ -34305,7 +34805,7 @@ class Range {
34305
34805
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
34306
34806
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
34307
34807
  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, {
34808
+ return (hAsync(Host, { key: '6c11f7ad176a00ca5368be9ba46c29f6a9aa02bb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34309
34809
  [theme]: true,
34310
34810
  'in-item': inItem,
34311
34811
  'range-disabled': disabled,
@@ -34319,10 +34819,10 @@ class Range {
34319
34819
  'range-item-end-adjustment': needsEndAdjustment,
34320
34820
  'range-value-min': valueAtMin,
34321
34821
  'range-value-max': valueAtMax,
34322
- }) }, hAsync("label", { key: '98b02130c9bb5a9ba6557be28f1ac09be0d10806', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '570083103b51b335c805672918d69e997dc30e66', class: {
34822
+ }) }, hAsync("label", { key: '4ac202cf5fd17a9f69e288508e89cfe266a2c8f2', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '1261d51ce247e066e5005f4aaa7b474ae0ddd421', class: {
34323
34823
  'label-text-wrapper': true,
34324
34824
  '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" })))));
34825
+ }, 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
34826
  }
34327
34827
  get el() { return getElement(this); }
34328
34828
  static get watchers() { return {
@@ -35397,7 +35897,7 @@ class Refresher {
35397
35897
  }
35398
35898
  render() {
35399
35899
  const theme = getIonTheme(this);
35400
- return (hAsync(Host, { key: '0be6aed52363cda66f8324ddfb9b0aeda92ce0bf', slot: "fixed", class: {
35900
+ return (hAsync(Host, { key: 'd2671f7850b565e7a6fc5b3ff15b2410bcf7cb32', slot: "fixed", class: {
35401
35901
  [theme]: true,
35402
35902
  // Used internally for styling
35403
35903
  [`refresher-${theme}`]: true,
@@ -35636,9 +36136,9 @@ class RefresherContent {
35636
36136
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
35637
36137
  const theme = getIonTheme(this);
35638
36138
  const arrowIcon = theme === 'ionic' ? caretLeftFillSvg : caretBackSharp;
35639
- return (hAsync(Host, { key: '3a3a3fb44f8397bb8e5019b51254ada8c26ae371', class: {
36139
+ return (hAsync(Host, { key: '684bf1189acba94c502e2bb421f0b65313c3e9f9', class: {
35640
36140
  [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())));
36141
+ } }, 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
36142
  }
35643
36143
  get el() { return getElement(this); }
35644
36144
  static get style() { return {
@@ -35707,9 +36207,9 @@ class Reorder {
35707
36207
  render() {
35708
36208
  const { reorderHandleIcon } = this;
35709
36209
  const theme = getIonTheme(this);
35710
- return (hAsync(Host, { key: 'ba59a095c200b70c6d847dc7362d52b315dc853a', class: {
36210
+ return (hAsync(Host, { key: '2a30643d0c5dbebab97a7aca68c165ee79ceed33', class: {
35711
36211
  [theme]: true,
35712
- } }, hAsync("slot", { key: '79be263f78cc21c9c4f91326e557e65849ab1e51' }, hAsync("ion-icon", { key: '6e5c47c8bbd33f5cd405a5fd531831cb87c8e57e', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36212
+ } }, hAsync("slot", { key: '9ac45a0cc21aea6ed0ec03aa12334886219b1051' }, hAsync("ion-icon", { key: '6d6789a718db4f252c6b3b4484148be2a65c80b8', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
35713
36213
  }
35714
36214
  get el() { return getElement(this); }
35715
36215
  static get style() { return {
@@ -35985,7 +36485,7 @@ class ReorderGroup {
35985
36485
  }
35986
36486
  render() {
35987
36487
  const theme = getIonTheme(this);
35988
- return (hAsync(Host, { key: 'df12858536c409c76552fe79b88827b3c4a5d9c5', class: {
36488
+ return (hAsync(Host, { key: 'f618089290a47bae34bcaaed968c3f8f4daa827f', class: {
35989
36489
  [theme]: true,
35990
36490
  'reorder-enabled': !this.disabled,
35991
36491
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -36111,7 +36611,7 @@ class RippleEffect {
36111
36611
  }
36112
36612
  render() {
36113
36613
  const theme = getIonTheme(this);
36114
- return (hAsync(Host, { key: '502ce1841747f255dfab542914bebd0d0f4ae9bd', role: "presentation", class: {
36614
+ return (hAsync(Host, { key: 'f4db39623cfd1bdc773e222b2dd9ed52a26cc685', role: "presentation", class: {
36115
36615
  [theme]: true,
36116
36616
  unbounded: this.unbounded,
36117
36617
  } }));
@@ -37096,10 +37596,10 @@ class RouterLink {
37096
37596
  rel: this.rel,
37097
37597
  target: this.target,
37098
37598
  };
37099
- return (hAsync(Host, { key: '518b86cf40eb95e03f75a20ff44fff804ac8ec4d', onClick: this.onClick, class: createColorClasses$1(this.color, {
37599
+ return (hAsync(Host, { key: '989574921f3bf06e4e5ad4e98ea3cce2e5c7165e', onClick: this.onClick, class: createColorClasses$1(this.color, {
37100
37600
  [theme]: true,
37101
37601
  'ion-activatable': true,
37102
- }) }, hAsync("a", Object.assign({ key: 'dbf3cc12752b4fa2d3873723a8ea5a30b053d261' }, attrs), hAsync("slot", { key: '9614e46a8d35201937f1f9a39b88f71b78efa7a0' }))));
37602
+ }) }, hAsync("a", Object.assign({ key: 'ee72dba91cc13ca4f251ba6bb5a8b7bf54b6f88d' }, attrs), hAsync("slot", { key: '8e8b5afd795bb213b8765f731463e0588799b001' }))));
37103
37603
  }
37104
37604
  static get style() { return routerLinkCss(); }
37105
37605
  static get cmpMeta() { return {
@@ -37299,7 +37799,7 @@ class RouterOutlet {
37299
37799
  return true;
37300
37800
  }
37301
37801
  render() {
37302
- return hAsync("slot", { key: '3f107f085a977b4d27c7266771a9564e3219f736' });
37802
+ return hAsync("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
37303
37803
  }
37304
37804
  get el() { return getElement(this); }
37305
37805
  static get watchers() { return {
@@ -37339,9 +37839,9 @@ class Row {
37339
37839
  }
37340
37840
  render() {
37341
37841
  const theme = getIonTheme(this);
37342
- return (hAsync(Host, { key: '6f5dd5032485a69ddf9510e2e539a7ba90afda47', class: {
37842
+ return (hAsync(Host, { key: '64ff6346d95be8d99d6500a6263067081f3fe254', class: {
37343
37843
  [theme]: true,
37344
- } }, hAsync("slot", { key: '994dcbbc871d606b61ff5993fb29aa1fa349c483' })));
37844
+ } }, hAsync("slot", { key: 'e9b4c111f3a49515a721bf679ef2f1a039c9822a' })));
37345
37845
  }
37346
37846
  static get style() { return rowCss(); }
37347
37847
  static get cmpMeta() { return {
@@ -37900,8 +38400,8 @@ class Searchbar {
37900
38400
  const shouldShowCancelButton = this.shouldShowCancelButton();
37901
38401
  const shape = this.getShape();
37902
38402
  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, {
38403
+ 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))));
38404
+ return (hAsync(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
37905
38405
  [theme]: true,
37906
38406
  'searchbar-animated': animated,
37907
38407
  'searchbar-disabled': this.disabled,
@@ -37915,14 +38415,14 @@ class Searchbar {
37915
38415
  [`searchbar-shape-${shape}`]: shape !== undefined,
37916
38416
  [`searchbar-size-${size}`]: size !== undefined,
37917
38417
  '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) => {
38418
+ }) }, 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
38419
  /**
37920
38420
  * This prevents mobile browsers from
37921
38421
  * blurring the input when the clear
37922
38422
  * button is activated.
37923
38423
  */
37924
38424
  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));
38425
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
37926
38426
  }
37927
38427
  get el() { return getElement(this); }
37928
38428
  static get watchers() { return {
@@ -38537,14 +39037,14 @@ class Segment {
38537
39037
  }
38538
39038
  render() {
38539
39039
  const theme = getIonTheme(this);
38540
- return (hAsync(Host, { key: 'aa903445e6c04076cb4b29cf7195e7b843b158aa', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39040
+ return (hAsync(Host, { key: '2c0631392507f2e903670070232029928470bf11', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
38541
39041
  [theme]: true,
38542
39042
  'in-toolbar': hostContext('ion-toolbar', this.el),
38543
39043
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
38544
39044
  'segment-activated': this.activated,
38545
39045
  'segment-disabled': this.disabled,
38546
39046
  'segment-scrollable': this.scrollable,
38547
- }) }, hAsync("slot", { key: '761df7f38ea889287f466ba35076a50b5e8d7b72', onSlotchange: this.onSlottedItemsChange })));
39047
+ }) }, hAsync("slot", { key: 'ed99c28b8976c4d51ad12089680cb8fb51d835a7', onSlotchange: this.onSlottedItemsChange })));
38548
39048
  }
38549
39049
  get el() { return getElement(this); }
38550
39050
  static get watchers() { return {
@@ -38696,7 +39196,7 @@ class SegmentButton {
38696
39196
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
38697
39197
  const theme = getIonTheme(this);
38698
39198
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
38699
- return (hAsync(Host, { key: '75eeffd15e3581c15f48a0b12cbf5a4229b087d6', class: {
39199
+ return (hAsync(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
38700
39200
  [theme]: true,
38701
39201
  'in-toolbar': hostContext('ion-toolbar', this.el),
38702
39202
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -38712,7 +39212,7 @@ class SegmentButton {
38712
39212
  'ion-activatable': true,
38713
39213
  'ion-activatable-instant': true,
38714
39214
  '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" }))));
39215
+ } }, 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
39216
  }
38717
39217
  get el() { return getElement(this); }
38718
39218
  static get watchers() { return {
@@ -38750,7 +39250,7 @@ class SegmentContent {
38750
39250
  registerInstance(this, hostRef);
38751
39251
  }
38752
39252
  render() {
38753
- return (hAsync(Host, { key: '81cc29460a17c32592fbf9fca6242f4bb1738aa6' }, hAsync("slot", { key: '4f718420caf11c6672642fcf1a1bdb7f48d6cdfc' })));
39253
+ return (hAsync(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, hAsync("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
38754
39254
  }
38755
39255
  static get style() { return segmentContentCss(); }
38756
39256
  static get cmpMeta() { return {
@@ -38878,11 +39378,11 @@ class SegmentView {
38878
39378
  }
38879
39379
  render() {
38880
39380
  const { disabled, isManualScroll, swipeGesture } = this;
38881
- return (hAsync(Host, { key: 'f03a6e740fde773dc02e0aad79fd73475c3227fa', class: {
39381
+ return (hAsync(Host, { key: '48ce45ca6c45d4bbc804390c31a43729a60abb8a', class: {
38882
39382
  'segment-view-disabled': disabled,
38883
39383
  'segment-view-scroll-disabled': isManualScroll === false,
38884
39384
  'segment-view-swipe-disabled': swipeGesture === false,
38885
- } }, hAsync("slot", { key: '3c850dd0e7ca795af8497162c8824eaede3bbc29' })));
39385
+ } }, hAsync("slot", { key: 'e248ce5b24b355bd6b51cbfd25741addf4ffd4fb' })));
38886
39386
  }
38887
39387
  get el() { return getElement(this); }
38888
39388
  static get style() { return {
@@ -39818,7 +40318,7 @@ class Select {
39818
40318
  * TODO(FW-5592): Remove hasStartEndSlots condition
39819
40319
  */
39820
40320
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
39821
- return (hAsync(Host, { key: 'b75ee27abca24a0ee5ec2bcecec98aeab85d11b2', onClick: this.onClick, class: createColorClasses$1(this.color, {
40321
+ return (hAsync(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses$1(this.color, {
39822
40322
  [theme]: true,
39823
40323
  'in-item': inItem,
39824
40324
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -39837,7 +40337,7 @@ class Select {
39837
40337
  [`select-shape-${shape}`]: shape !== undefined,
39838
40338
  [`select-label-placement-${labelPlacement}`]: true,
39839
40339
  [`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" },
40340
+ }) }, 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
40341
  /**
39842
40342
  * For the ionic theme, we render the outline container here
39843
40343
  * instead of higher up, so it can be positioned relative to
@@ -39847,7 +40347,7 @@ class Select {
39847
40347
  * <label> element, ensuring that clicking the label text
39848
40348
  * focuses the select.
39849
40349
  */
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()));
40350
+ 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
40351
  }
39852
40352
  get el() { return getElement(this); }
39853
40353
  static get watchers() { return {
@@ -40239,7 +40739,7 @@ class SelectModal {
40239
40739
  });
40240
40740
  }
40241
40741
  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()))));
40742
+ 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
40743
  }
40244
40744
  get el() { return getElement(this); }
40245
40745
  static get style() { return {
@@ -40284,7 +40784,7 @@ class SelectOption {
40284
40784
  }
40285
40785
  render() {
40286
40786
  const theme = getIonTheme(this);
40287
- return (hAsync(Host, { key: 'fd2c00d514768451e7d51631e4ce4cdb2a7a92ad', class: {
40787
+ return (hAsync(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
40288
40788
  [theme]: true,
40289
40789
  }, role: "option", id: this.inputId }));
40290
40790
  }
@@ -40453,9 +40953,9 @@ class SelectPopover {
40453
40953
  const { header, message, options, subHeader } = this;
40454
40954
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
40455
40955
  const theme = getIonTheme(this);
40456
- return (hAsync(Host, { key: '75388b15e655f05df0849bbcd79064e4f9f72294', class: {
40956
+ return (hAsync(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
40457
40957
  [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))));
40958
+ } }, 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
40959
  }
40460
40960
  get el() { return getElement(this); }
40461
40961
  static get style() { return {
@@ -40510,11 +41010,11 @@ class SkeletonText {
40510
41010
  const animated = this.animated && config.getBoolean('animated', true);
40511
41011
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
40512
41012
  const theme = getIonTheme(this);
40513
- return (hAsync(Host, { key: '5014563646b6c5213750d503babce3013b66ec96', class: {
41013
+ return (hAsync(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
40514
41014
  [theme]: true,
40515
41015
  'skeleton-text-animated': animated,
40516
41016
  'in-media': inMedia,
40517
- } }, hAsync("span", { key: '4b816883b1c71bb1db66d8b2b084559f7cb489bd' }, "\u00A0")));
41017
+ } }, hAsync("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
40518
41018
  }
40519
41019
  get el() { return getElement(this); }
40520
41020
  static get style() { return skeletonTextCss(); }
@@ -40587,7 +41087,7 @@ class Spinner {
40587
41087
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
40588
41088
  }
40589
41089
  }
40590
- return (hAsync(Host, { key: '0b3ce4b99c2c828d05b507c4f073811ebbe17d0f', class: createColorClasses$1(self.color, {
41090
+ return (hAsync(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses$1(self.color, {
40591
41091
  [theme]: true,
40592
41092
  [`spinner-${spinnerName}`]: true,
40593
41093
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -40631,6 +41131,7 @@ const splitPaneIosCss = () => `:host{--side-width:100%;right:0;left:0;top:0;bott
40631
41131
 
40632
41132
  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
41133
 
41134
+ // TODO(FW-7285): Replace with global breakpoints
40634
41135
  const QUERY = {
40635
41136
  lg: '(min-width: 992px)'};
40636
41137
  /**
@@ -40698,12 +41199,12 @@ class SplitPane {
40698
41199
  }
40699
41200
  render() {
40700
41201
  const theme = getIonTheme(this);
40701
- return (hAsync(Host, { key: '9d0c67f1f81b09bb9a6f14a66053e5cc7431a286', class: {
41202
+ return (hAsync(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
40702
41203
  [theme]: true,
40703
41204
  // Used internally for styling
40704
41205
  [`split-pane-${theme}`]: true,
40705
41206
  'split-pane-visible': this.visible,
40706
- } }, hAsync("slot", { key: 'ab7b3050d3c5484bd00949cf57efa4396b4d5bc3' })));
41207
+ } }, hAsync("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
40707
41208
  }
40708
41209
  get el() { return getElement(this); }
40709
41210
  static get watchers() { return {
@@ -40780,10 +41281,10 @@ class Tab {
40780
41281
  }
40781
41282
  render() {
40782
41283
  const { tab, active, component } = this;
40783
- return (hAsync(Host, { key: 'b249545a5adfcef4616afe79aa0f215bab464d0a', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41284
+ return (hAsync(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
40784
41285
  'ion-page': component === undefined,
40785
41286
  'tab-hidden': !active,
40786
- } }, hAsync("slot", { key: '19e2a406d96d20d8d4af8c3ff900e975d06021f6' })));
41287
+ } }, hAsync("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
40787
41288
  }
40788
41289
  get el() { return getElement(this); }
40789
41290
  static get watchers() { return {
@@ -40990,7 +41491,7 @@ class TabBar {
40990
41491
  const theme = getIonTheme(this);
40991
41492
  const shape = this.getShape();
40992
41493
  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, {
41494
+ return (hAsync(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
40994
41495
  [theme]: true,
40995
41496
  'tab-bar-translucent': translucent,
40996
41497
  'tab-bar-hidden': shouldHide,
@@ -40998,7 +41499,7 @@ class TabBar {
40998
41499
  'tab-bar-scroll-hidden': scrollHidden,
40999
41500
  [`tab-bar-${expand}`]: true,
41000
41501
  [`tab-bar-${shape}`]: shape !== undefined,
41001
- }) }, hAsync("slot", { key: '96ad10c451a6ae1e2b7c48d94d0f158fb8cde1dc' })));
41502
+ }) }, hAsync("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
41002
41503
  }
41003
41504
  get el() { return getElement(this); }
41004
41505
  static get watchers() { return {
@@ -41126,7 +41627,7 @@ class TabButton {
41126
41627
  rel,
41127
41628
  target,
41128
41629
  };
41129
- return (hAsync(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41630
+ return (hAsync(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41130
41631
  [theme]: true,
41131
41632
  'tab-selected': selected,
41132
41633
  'tab-disabled': disabled,
@@ -41139,7 +41640,7 @@ class TabButton {
41139
41640
  'ion-selectable': true,
41140
41641
  [`tab-button-shape-${shape}`]: shape !== undefined,
41141
41642
  '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" }))));
41643
+ } }, 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
41644
  }
41144
41645
  get el() { return getElement(this); }
41145
41646
  static get style() { return {
@@ -41335,7 +41836,7 @@ class Tabs {
41335
41836
  return Array.from(this.el.querySelectorAll('ion-tab'));
41336
41837
  }
41337
41838
  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" })));
41839
+ 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
41840
  }
41340
41841
  get el() { return getElement(this); }
41341
41842
  static get style() { return tabsCss(); }
@@ -41376,9 +41877,9 @@ class Text {
41376
41877
  }
41377
41878
  render() {
41378
41879
  const theme = getIonTheme(this);
41379
- return (hAsync(Host, { key: '7a3f31d6e219207a1ff98ac441357caa512012e5', class: createColorClasses$1(this.color, {
41880
+ return (hAsync(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses$1(this.color, {
41380
41881
  [theme]: true,
41381
- }) }, hAsync("slot", { key: '392d48d6a5e0e5d1b44e762ec96fb8b53b3ebd49' })));
41882
+ }) }, hAsync("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
41382
41883
  }
41383
41884
  static get style() { return textCss(); }
41384
41885
  static get cmpMeta() { return {
@@ -41942,7 +42443,7 @@ class Textarea {
41942
42443
  * TODO(FW-5592): Remove hasStartEndSlots condition
41943
42444
  */
41944
42445
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
41945
- return (hAsync(Host, { key: 'b31341357553adac08f518e48d83127415f36500', class: createColorClasses$1(this.color, {
42446
+ return (hAsync(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses$1(this.color, {
41946
42447
  [theme]: true,
41947
42448
  'has-value': hasValue,
41948
42449
  'has-focus': hasFocus,
@@ -41954,7 +42455,7 @@ class Textarea {
41954
42455
  'in-item': inItem,
41955
42456
  'textarea-disabled': disabled,
41956
42457
  '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" },
42458
+ }) }, 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
42459
  /**
41959
42460
  * For the ionic theme, we render the outline container here
41960
42461
  * instead of higher up, so it can be positioned relative to
@@ -41964,7 +42465,7 @@ class Textarea {
41964
42465
  * <label> element, ensuring that clicking the label text
41965
42466
  * focuses the textarea.
41966
42467
  */
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()));
42468
+ 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
42469
  }
41969
42470
  static get delegatesFocus() { return true; }
41970
42471
  static get formAssociated() { return true; }
@@ -42048,9 +42549,9 @@ class Thumbnail {
42048
42549
  }
42049
42550
  render() {
42050
42551
  const theme = getIonTheme(this);
42051
- return (hAsync(Host, { key: '6053cf163155d4268dad4fc81ffc6bbc70d75659', class: {
42552
+ return (hAsync(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
42052
42553
  [theme]: true,
42053
- } }, hAsync("slot", { key: 'b7afb5835bce7c7ed9e5cf44758bbe2d802e1271' })));
42554
+ } }, hAsync("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
42054
42555
  }
42055
42556
  static get style() { return thumbnailCss(); }
42056
42557
  static get cmpMeta() { return {
@@ -42934,9 +43435,9 @@ class Toast {
42934
43435
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
42935
43436
  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
43437
  }
42937
- return (hAsync(Host, Object.assign({ key: '6fd286b024a05e6960f7b4b7947a3c26cc129e14', tabindex: "-1" }, this.htmlAttributes, { style: {
43438
+ return (hAsync(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
42938
43439
  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')))));
43440
+ }, 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
43441
  }
42941
43442
  get el() { return getElement(this); }
42942
43443
  static get watchers() { return {
@@ -43312,7 +43813,7 @@ class Toggle {
43312
43813
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
43313
43814
  const isIonicTheme = theme === 'ionic';
43314
43815
  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, {
43816
+ 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
43817
  [theme]: true,
43317
43818
  'in-item': hostContext('ion-item', el),
43318
43819
  'toggle-activated': activated,
@@ -43324,10 +43825,10 @@ class Toggle {
43324
43825
  [`toggle-${rtl}`]: true,
43325
43826
  'ion-activatable': isIonicTheme,
43326
43827
  '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: {
43828
+ }) }, 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
43829
  'label-text-wrapper': true,
43329
43830
  '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()))));
43831
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), hAsync("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
43331
43832
  }
43332
43833
  get el() { return getElement(this); }
43333
43834
  static get watchers() { return {
@@ -43619,11 +44120,11 @@ class Toolbar {
43619
44120
  Object.assign(childStyles, style);
43620
44121
  });
43621
44122
  const titlePlacement = this.getTitlePlacement();
43622
- return (hAsync(Host, { key: 'a2103857ffb26f517b4190bb01a8fa170a042e45', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44123
+ return (hAsync(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
43623
44124
  [theme]: true,
43624
44125
  'in-toolbar': hostContext('ion-toolbar', this.el),
43625
44126
  [`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 }))));
44127
+ })), 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
44128
  }
43628
44129
  get el() { return getElement(this); }
43629
44130
  static get watchers() { return {
@@ -43682,11 +44183,11 @@ class ToolbarTitle {
43682
44183
  render() {
43683
44184
  const theme = getIonTheme(this);
43684
44185
  const size = this.getSize();
43685
- return (hAsync(Host, { key: '8db3e5f9dbd8b1762a9919eaeef29c98649dfb25', class: createColorClasses$1(this.color, {
44186
+ return (hAsync(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses$1(this.color, {
43686
44187
  [theme]: true,
43687
44188
  [`title-${size}`]: true,
43688
44189
  'title-rtl': document.dir === 'rtl',
43689
- }) }, hAsync("div", { key: 'a31ebae2c494a51d2145eec69d0b1bc635108a01', class: "toolbar-title" }, hAsync("slot", { key: 'f5975b44b3e3afbf98dcbdb53fc78447b49407b3' }))));
44190
+ }) }, hAsync("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, hAsync("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
43690
44191
  }
43691
44192
  get el() { return getElement(this); }
43692
44193
  static get watchers() { return {
@@ -43742,6 +44243,7 @@ registerComponents([
43742
44243
  FabButton,
43743
44244
  FabList,
43744
44245
  Footer,
44246
+ Gallery,
43745
44247
  Grid,
43746
44248
  Header,
43747
44249
  Icon,